您現(xiàn)在的位置:程序化交易>> 期貨公式>> 交易開拓者(TB)>> 開拓者知識(shí)>>正文內(nèi)容

發(fā)個(gè)模板,歡迎共享,歡迎測(cè)試、改進(jìn)、完善 - TradeBlazer公式 [開拓者 TB]

  • 咨詢內(nèi)容: //本模板包含兩個(gè)模塊:開多倉,平多倉。
    //本模板還沒有完全測(cè)試完畢。已發(fā)現(xiàn)有個(gè)別重復(fù)發(fā)單現(xiàn)象。原因尚在查找中。
    //歡迎copy,歡迎拍磚。

    Params
            //模板參數(shù)
            Numeric        lastOpenTime(14.55);//開倉時(shí)間限制
            Numeric        lastCloseTime(14.56);//退出時(shí)間限制
            Numeric        waittimeEntry(20);//等待入場(chǎng)成交時(shí)間秒數(shù)
            Numeric        waittimeExit(20);//等待出場(chǎng)成交時(shí)間秒數(shù)
            Numeric        lots(1);                //交易量       


    Vars
            //模板變量
            Bool                conBuyEntry;//開多條件
            Bool                conOpenOrderBuyEntry;//已存在未成交開多單
            Bool                conWaitTime;
            Numeric                        priceBuyEntry;
            Bool                conSellExit;
            Bool                conOpenOrderSellExit;//已存在未成交平多單
            Numeric                        priceSellExit;
           
            //個(gè)性變量

           

    Begin
    //開多*******************************************************************************************************

            //判斷是否已有未成交多單 (防止網(wǎng)絡(luò)延時(shí)以及全局變量意外丟失正確值)
            conOpenOrderBuyEntry=(GetGlobalVar(10)==1) || (A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry) != InvalidInteger) ;       
            If ( CurrentTime*100<lastOpenTime && A_BuyPosition==0 )
            {       
    FileAppend("d:\\h.log",text(currenttime*100)+"***********************************準(zhǔn)備開多");                       
                                                                                           
    //-------------------------------------------------------------------------------------求開多條件
                   
                   
                   
                   
                   
                    conBuyEntry=True;
    //-------------------------------------------------------------------------------------求開多條件完畢               
                   
                    If (conBuyEntry)        //多頭條件
                    {
                            //處理已有未成交多單                        
                            If ( conOpenOrderBuyEntry )       
                            {
                                    // 判斷等待時(shí)間
                                    If (GetGlobalVar(11)==InvalidNumeric)       
                                            SetGlobalVar(11,0);//初始化等待時(shí)間變量
                                    conWaitTime=(MyDecTime( currenttime,GetGlobalVar(11))>waittimeEntry)
                                                    || ( MyDecTime(currenttime,A_OpenOrderTime( A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry) )) > waittimeEntry );                                                       
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"等待時(shí)間秒數(shù)1="+text(MyDecTime( currenttime,GetGlobalVar(11)))
            +"      等待時(shí)間秒數(shù)2="+text( MyDecTime(currenttime,A_OpenOrderTime( A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry) ))));       
                                    If ( conWaitTime )
                                    {
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"延時(shí)已到,撤單重發(fā)");               
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"撤單合同號(hào)="
            +A_OpenOrderContractNo( A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry)));                               
                                            A_DeleteOrder( A_OpenOrderContractNo( A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry) ) );        //撤單                                               
                                            //算價(jià)、下單、設(shè)置、計(jì)時(shí)
                                            priceBuyEntry=        ;                                                                                       
                                            A_SendOrder(Enum_Buy,Enum_Entry,lots,priceBuyEntry);       
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"重發(fā)單(未成交)索引號(hào)="
            +text( A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry)));                                       
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"重發(fā)合同號(hào)(未成交)="
            +A_OpenOrderContractNo( A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry)));       
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"重發(fā)合同號(hào)(末合同)="
            +A_OrderContractNo( A_GetLastOrderIndex(Enum_Buy,Enum_Entry)));               
                                            SetGlobalVar(10,1);
                                            SetGlobalVar(11,currenttime);                                       
                                    }                                               
                            }
                            Else       
                            {
                            //算價(jià)、下單、設(shè)置、計(jì)時(shí)
                                    priceBuyEntry=              ;

                            A_SendOrder(Enum_Buy,Enum_Entry,lots,priceBuyEntry);
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"首次發(fā)單");
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"首發(fā)合同號(hào)="
            +A_OpenOrderContractNo( A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry)));
                            SetGlobalVar(10,1);
                            SetGlobalVar(11,currenttime);                                                               
                            }               
                    }
                    Else
                    {
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"不符合多頭條件");       
                            //有多單則撤單
                            If ( (A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry) != InvalidInteger) )        //不采用全局變量,需等待前面的單子可撤。
                                    A_DeleteOrder( A_OpenOrderContractNo( A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry) ) );                               
                                   
                            SetGlobalVar(10,0);
                    }
                   
            }
           
            Else
            {
                    If ( (A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry) != InvalidInteger) )        //不采用全局變量,需等待前面的單子可撤。
                            A_DeleteOrder( A_OpenOrderContractNo( A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry) ) );
                    SetGlobalVar(10,0);
            }
           
    //處理多頭倉位*************************************************************************************************************************************
           
            If ( A_BuyPosition!=0 )        
            {       
                    //判斷是否已有未成交平多單 (防止網(wǎng)絡(luò)延時(shí)以及全局變量意外丟失正確值)
                    conOpenOrderSellExit=(GetGlobalVar(30)==1) || (A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday) != InvalidInteger) ;       
    FileAppend("d:\\h.log",text(currenttime*100)+"================================================準(zhǔn)備平多倉");       
                    If (CurrentTime*100<=lastCloseTime)        //退出時(shí)間限制
                    {
                            //有單無單分別處理                        
                            If ( conOpenOrderSellExit )         //有單處理,有手工單也同樣處理
                            {
                                    If (GetGlobalVar(31)==InvalidNumeric)       
                                            SetGlobalVar(31,0);//初始化等待時(shí)間變量
                                    conWaitTime=(MyDecTime( currenttime,GetGlobalVar(31))>waittimeExit)
                                                    || ( MyDecTime(currenttime,A_OpenOrderTime( A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday) )) > waittimeExit );
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"平倉等待時(shí)間秒數(shù)1="+text(MyDecTime( currenttime,GetGlobalVar(31)))
            +"      平倉等待時(shí)間秒數(shù)2="+text( MyDecTime(currenttime,A_OpenOrderTime( A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday) ))));       
                                    If ( conWaitTime )                // 等待成交的延時(shí)已到,撤單追價(jià)重發(fā)
                                    {
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"延時(shí)已到,撤平倉單重發(fā)");               
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"撤單合同號(hào)="
            +A_OpenOrderContractNo( A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday)));                               
                                            A_DeleteOrder( A_OpenOrderContractNo( A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday) ) );        //撤單                                                               
                                            //算價(jià)、下單、設(shè)置、計(jì)時(shí)
                                            PriceSellExit=            ;                                               
                                            A_SendOrder(Enum_Sell,Enum_Exit,lots,PriceSellExit);
                                            SetGlobalVar(30,1);
                                            SetGlobalVar(31,currenttime);                                       
                                    }                                               
                            }
                            Else        //無單處理
                            {
                                   
    //-------------------------------------------------------------------------------------求平多條件
                   
                   
                   
                   
                   
                                    conSellExit=true;                       
    //-------------------------------------------------------------------------------------求平多條件完畢                                               
                                                                                                                                                                                   
                                    If (conSellExit)        //平多條件
                                    {
                                    //算價(jià)、下單、設(shè)置、計(jì)時(shí)
                                            PriceSellExit=          ;

                                    A_SendOrder(Enum_Sell,Enum_Exit,lots,PriceSellExit);
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"首次平倉發(fā)單");                               
                                    SetGlobalVar(30,1);
                                    SetGlobalVar(31,currenttime);                                                               
                                    }
                            }

                    }
                    Else        //退出時(shí)間已到,有單撤單,以停板價(jià)委托,之后不撤單
                    {
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"退出時(shí)限已到");               
                            If (GetGlobalVar(39)==InvalidNumeric)
                                    SetGlobalVar(39,0);//初始化
                            If ( A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday)!=InvalidInteger && GetGlobalVar(39)!=1)
                            {
                                    A_DeleteOrder( A_OpenOrderContractNo( A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday) ) );
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"有平倉單撤單");
                                    SetGlobalVar(30,0);
                            }
                            If ( GetGlobalVar(39)!=1 )
                            {
                            A_SendOrder(Enum_Sell,Enum_Exit,lots, Q_LowerLimit);        
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"跌停價(jià)發(fā)平倉單");
                            SetGlobalVar(30,1);
                            SetGlobalVar(39,1);
                            }
                    }
            }
            Else
                    SetGlobalVar(30,0);
                   
             
           
    End

     

  • TB技術(shù)人員: 上面的用戶函數(shù)mydectime用于計(jì)算兩個(gè)時(shí)間的秒差

    Params
            Numeric MyTime1; //如0.143059
            Numeric MyTime2;

    Vars
            Numeric MyHH1;
            Numeric MyMM1;
            Numeric MySS1;
            Numeric MyHH2;
            Numeric MyMM2;
            Numeric MySS2;

    Begin
            MyHH1 = IntPart(MyTime1*100);
            MyMM1 = IntPart(MyTime1*10000)-MyHH1*100;
            MySS1 = MyTime1*1000000-MyHH1*10000-MyMM1*100;
            MyHH2 = IntPart(MyTime2*100);
            MyMM2 = IntPart(MyTime2*10000)-MyHH2*100;
            MySS2 = MyTime2*1000000-MyHH2*10000-MyMM2*100;
            Return MyHH1*3600 + MyMM1*60 + MySS1 - MyHH2*3600 - MyMM2*60 - MySS2;
    End

     

  • TB客服: 要是tb能提供收盤時(shí)間也能進(jìn)行盤中測(cè)試就好了

     

  • 網(wǎng)友回復(fù): 很高興“順勢(shì)順心”利用我的MyDecTime函數(shù)。但是我自己并不使用該函數(shù),實(shí)際上使用Tick計(jì)算更合適,我認(rèn)為。
    有時(shí)間研究一下你的程序框架。

     

  • 網(wǎng)友回復(fù):
    很高興“順勢(shì)順心”利用我的MyDecTime函數(shù)。但是我自己并不使用該函數(shù),實(shí)際上使用Tick計(jì)算更合適,我認(rèn)為。
    有時(shí)間研究一下你的程序框架。
    efrog 發(fā)表于 2010-9-13 12:31


    引用你的函數(shù)沒有注明出處。哈哈。我也忘了從誰那copy的。把你的時(shí)間小數(shù)位數(shù)改了點(diǎn)。

 

如果以上指標(biāo)公式不適用于您常用的行情軟件

或者您想改編成選股公式,以便快速選出某種形態(tài)個(gè)股的話,

可以聯(lián)系我們相關(guān)技術(shù)人員 QQ: 262069696  點(diǎn)擊在線交流進(jìn)行 有償 改編!

 


【字體: 】【打印文章】【查看評(píng)論

相關(guān)文章

    沒有相關(guān)內(nèi)容
主站蜘蛛池模板: 成年女人在线视频| 污污视频在线免费观看| 国产精品入口麻豆免费观看| 一级毛片视频在线| 日韩欧美色综合| 亚洲精品国产综合久久一线| 美女内射毛片在线看免费人动物| 国产男女猛视频在线观看| av在线播放日韩亚洲欧| 放进去岳就不挣扎了| 亚洲av成人片在线观看| 波多野结衣医生| 午夜毛片不卡高清免费| 黄网站在线观看高清免费| 国产精品视频第一区二区三区| 一二三四在线观看免费高清视频| 日本无卡无吗在线| 亚洲中文久久精品无码1| 特级片在线观看| 另类国产ts人妖视频网站| 免费观看美女用震蛋喷水的视频| 在公车上被一个接一个| 一级做a爰片久久毛片免费看| 日本边添边摸边做边爱喷水| 亚洲国产日韩欧美| 激情视频在线观看网站| 医生好大好硬好爽好紧| 被黑人侵犯若妻中文字幕| 国产真实乱子伦精品视| 99re6在线精品视频免费播放| 思思久久99热只有精品| 久久久久人妻精品一区三寸蜜桃 | 日本免费电影在线观看| 亚洲国产精品久久久久秋霞小| 男人的j插入女人的p| 啦啦啦资源在线观看视频| 黄网在线免费观看| 国产精品一区二区久久沈樵 | a级毛片免费高清视频| 成人无码av一区二区| 久久亚洲综合色|