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

百度搜索

發個模板,歡迎共享,歡迎測試、改進、完善 - TradeBlazer公式 [開拓者 TB]

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

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


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

           

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

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

                            A_SendOrder(Enum_Buy,Enum_Entry,lots,priceBuyEntry);
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"首次發單");
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"首發合同號="
            +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 )        
            {       
                    //判斷是否已有未成交平多單 (防止網絡延時以及全局變量意外丟失正確值)
                    conOpenOrderSellExit=(GetGlobalVar(30)==1) || (A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday) != InvalidInteger) ;       
    FileAppend("d:\\h.log",text(currenttime*100)+"================================================準備平多倉");       
                    If (CurrentTime*100<=lastCloseTime)        //退出時間限制
                    {
                            //有單無單分別處理                        
                            If ( conOpenOrderSellExit )         //有單處理,有手工單也同樣處理
                            {
                                    If (GetGlobalVar(31)==InvalidNumeric)       
                                            SetGlobalVar(31,0);//初始化等待時間變量
                                    conWaitTime=(MyDecTime( currenttime,GetGlobalVar(31))>waittimeExit)
                                                    || ( MyDecTime(currenttime,A_OpenOrderTime( A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday) )) > waittimeExit );
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"平倉等待時間秒數1="+text(MyDecTime( currenttime,GetGlobalVar(31)))
            +"      平倉等待時間秒數2="+text( MyDecTime(currenttime,A_OpenOrderTime( A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday) ))));       
                                    If ( conWaitTime )                // 等待成交的延時已到,撤單追價重發
                                    {
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"延時已到,撤平倉單重發");               
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"撤單合同號="
            +A_OpenOrderContractNo( A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday)));                               
                                            A_DeleteOrder( A_OpenOrderContractNo( A_GetLastOpenOrderIndex(Enum_Sell,Enum_ExitToday) ) );        //撤單                                                               
                                            //算價、下單、設置、計時
                                            PriceSellExit=            ;                                               
                                            A_SendOrder(Enum_Sell,Enum_Exit,lots,PriceSellExit);
                                            SetGlobalVar(30,1);
                                            SetGlobalVar(31,currenttime);                                       
                                    }                                               
                            }
                            Else        //無單處理
                            {
                                   
    //-------------------------------------------------------------------------------------求平多條件
                   
                   
                   
                   
                   
                                    conSellExit=true;                       
    //-------------------------------------------------------------------------------------求平多條件完畢                                               
                                                                                                                                                                                   
                                    If (conSellExit)        //平多條件
                                    {
                                    //算價、下單、設置、計時
                                            PriceSellExit=          ;

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

                    }
                    Else        //退出時間已到,有單撤單,以停板價委托,之后不撤單
                    {
    FileAppend("d:\\h.log",text(currenttime*100)+"     "+"退出時限已到");               
                            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)+"     "+"跌停價發平倉單");
                            SetGlobalVar(30,1);
                            SetGlobalVar(39,1);
                            }
                    }
            }
            Else
                    SetGlobalVar(30,0);
                   
             
           
    End

     

  • TB技術人員: 上面的用戶函數mydectime用于計算兩個時間的秒差

    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能提供收盤時間也能進行盤中測試就好了

     

  • 網友回復: 很高興“順勢順心”利用我的MyDecTime函數。但是我自己并不使用該函數,實際上使用Tick計算更合適,我認為。
    有時間研究一下你的程序框架。

     

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


    引用你的函數沒有注明出處。哈哈。我也忘了從誰那copy的。把你的時間小數位數改了點。

 

如果以上指標公式不適用于您常用的行情軟件

或者您想改編成選股公式,以便快速選出某種形態個股的話,

可以聯系我們相關技術人員 QQ: 262069696  點擊在線交流進行 有償 改編!

 


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
主站蜘蛛池模板: 狂野欧美激情性xxxx在线观看| 亚洲三级在线视频| 97精品在线观看| 欧美丰满熟妇BBB久久久| 国产区图片区小说区亚洲区| 97人伦影院a级毛片| 成人午夜视频网站| 久久精品午夜福利| 精品黑人一区二区三区| 在线看中文字幕| 中文字幕免费观看全部电影| 男男(h)肉视频网站| 国产在线jyzzjyzz免费麻豆| 啊啊啊好爽在线观看| 久久夜色精品国产网站| 毛片免费在线播放| 国产精品亚洲五月天高清 | 国产一级特黄高清免费下载| 87福利电影网| 女同学下面粉嫩又紧多水| 久久99亚洲网美利坚合众国| 校草让我脱了内裤给全班看| 亚洲视频网站在线观看| 日本人强jizzjizz| 女人18毛片a级毛片| 亚洲国产欧美久久香综合| 精品久久久久久久99热| 国产熟女一区二区三区五月婷| 三年片在线观看免费观看大全中国 | 久久精品国产亚洲av四虎| 欧美人和黑人牲交网站上线| 亚洲欧洲国产视频| 美女把尿口扒开给男人桶视频| 怡红院免费全部视频在线视频| 人人干人人干人人干| 精品视频一区二区三三区四区| 国产一卡2卡3卡4卡无卡免费视频| 顶级欧美妇高清xxxxx| 在线免费视频一区二区| jlzz奶水太多奶水太多| 日本天码aⅴ片在线电影网站|
网站统计