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

a函數為什么不發單,急.. [開拓者 TB]

  • 咨詢內容: 本帖最后由 xiaosong 于 2013-7-24 08:11 編輯

    Begin   //if(BarStatus==2 && Time==0.090000 && CurrentTime<0.090000) Return; // 集合競價過濾

    If (barstatus==0 || GetGlobalVar(1)==InvalidNumeric)         
         {
           If(A_BuyPosition==0)
            {      
             setglobalvar(1,0);
            } else If(A_BuyPosition>0)               
                {
                   SetGlobalVar(1,1);
                }
            }
         else if(GetGlobalVar(1)!=InvalidNumeric)
                  {
                    SetGlobalVar(1,GetGlobalVar(1));
                  }

    If (barstatus==0 || GetGlobalVar(2)==InvalidNumeric)
         {
           If(A_SellPosition==0)
             {
               SetGlobalVar(2,0);
                           
              } else If(A_SellPosition>0)
                   {
                     SetGlobalVar(2,1);
                   }  
           } else if(GetGlobalVar(2)!=InvalidNumeric)
                   {
                     SetGlobalVar(2,GetGlobalVar(2));            
                        }

    If (barstatus==0 || GetGlobalVar(0)==InvalidNumeric)
        {
           if(A_TotalPosition()==0)
             {
              SetGlobalVar(0,0);
             }else if(A_TotalPosition()!=0)
              {
               SetGlobalVar(0,1);
              }
        } else if(GetGlobalVar(0)!=InvalidNumeric)
             {
                SetGlobalVar(0,GetGlobalVar(0));
             }

    conEntryReady=CurrentTime*100 >=tradBegin  and CurrentTime*100<tradEnd and Q_LowerLimit>20*MinMove*PriceScale AND Q_UpperLimit-C>20*MinMove*PriceScale;//不靠近漲跌停


    if(A_GetOpenOrderCount==0 and A_TotalPosition()==0 AND  A_AccountID!="" and conEntryReady AND GetGlobalVar(0)==0 AND GetGlobalVar(1)==0 AND GetGlobalVar(2)==0) //返回當前公式應用的帳戶下當前商品的總持倉 (無持倉)
    {
       IF(a>b) //開多條件
       {
          A_SendOrder(Enum_Buy,Enum_Entry,Lots,Q_AskPrice()+N*MinMove*PriceScale);//發送委托單 開多倉一手
          SetGlobalVar(0,1);
          SetGlobalVar(1,1);
          SetGlobalVar(2,0);
          
         }
       IF(a<b) // 開空條件
          {
             A_SendOrder(Enum_Sell,Enum_Entry,Lots,Q_BidPrice()-N*MinMove*PriceScale); //發送委托單 開空倉一手
          SetGlobalVar(0,1);
             SetGlobalVar(1,1);
             SetGlobalVar(2,0);
           }
       }


    急啊.......................
    ...........................................
    ..................

     

  • TB技術人員: 管量員在嗎?版主在嗎????????????????????????????

    我是你們付費用戶啊.

     

  • TB客服:
    xiaosong 發表于 2013-7-24 08:08
    管量員在嗎?版主在嗎????????????????????????????

    我是你們付費用戶啊. ...


    抱歉啊。公司的論壇維護人員是沒有上夜班的。所以沒法在夜里及時的回復您的問題,請諒解。

    你的公式,前面一段的回局變量的賦值是干什么用的呢??感覺邏輯上有不太合理的地方呢。
    其一,a_xxx類函數只在最后K線有效,所以你條件里的barstatus==0的情況下是絕對不能取到a_buyposition==0這樣的判斷。于是你只能從 GetGlobalVar(1)==InvalidNumeric這一條件進入判斷。既然如此 ,那barstatus==0放在這里也是沒有必要的。
    其二,看到這些全局變量僅是簡單地判斷持倉而進行賦值的。感覺沒有必要啊。在后面的交易中,直接判斷持倉量來決定是否下單更好,不必要增加這三個全局變量的。

    交易部分。
    1,建議不要使用上述三個全局變量的判斷。直接判斷持倉量來決定開平動作就好。
    2,建議將所有用得到的判斷變量都輸出日志,查看一下到底是哪些交易不符合你的要求,從而沒有發出指令的。
    3,想要判斷多空均無持倉,直接使用a_buyposition==0,a_sellposition==0即可,不必要判斷a_totalposition的.
    4,因為a_xxxx函數,只在最后K線有效,建議在使用中加上barstatus==2的判斷能提高效率。

     

  • 網友回復: 謝謝老大. 謝謝回貼,這個軟件是不錯,是能解決小資金的執行力的問題. 但是編程的確是有難度,這主限制它的推廣

    你們不是說:當一個Tick來時觸發條件,這時發單,如果因延時成交回單沒有回來時,再來一個Tick觸發條件,再發一次單.
    所以,我設想三個全面變量. 0 為開與平. 1為持多倉與無持多倉, 2為持空倉與無持

    Begin   //if(BarStatus==2 && Time==0.090000 && CurrentTime<0.090000) Return; // 集合競價過濾

    If (barstatus==2 || GetGlobalVar(1)==InvalidNumeric)         
         {
           If(A_BuyPosition==0)
            {      
             setglobalvar(1,0);
            } else If(A_BuyPosition>0)               
                {
                   SetGlobalVar(1,1);
                }
            }
         else if(barstatus==2 || GetGlobalVar(1)!=InvalidNumeric)
                  {
                    SetGlobalVar(1,GetGlobalVar(1));
                  }

    If (barstatus==2 || GetGlobalVar(2)==InvalidNumeric)
         {
           If(A_SellPosition==0)
             {
               SetGlobalVar(2,0);
                           
              } else If(A_SellPosition>0)
                   {
                     SetGlobalVar(2,1);
                   }  
           } else if(barstatus==2 GetGlobalVar(2)!=InvalidNumeric)
                   {
                     SetGlobalVar(2,GetGlobalVar(2));            
                        }

    If (barstatus==2 || GetGlobalVar(0)==InvalidNumeric)
        {
           if(a_buyposition==0 and a_sellposition==0)
             {
              SetGlobalVar(0,0);
             }else if(A_TotalPosition()!=0)
              {
               SetGlobalVar(0,1);
              }
        } else if(barstatus==2 || GetGlobalVar(0)!=InvalidNumeric)
             {
                SetGlobalVar(0,GetGlobalVar(0));
             }



    if(barstatus==2 and a_buyposition==0 and a_sellposition==0 AND  GetGlobalVar(0)==0 AND GetGlobalVar(1)==0 AND GetGlobalVar

    (2)==0) )無持倉
    {
       IF(a>b) //開多條件
       {
          A_SendOrder(Enum_Buy,Enum_Entry,Lots,Q_AskPrice()+N*MinMove*PriceScale);//發送委托單 開多倉一手
          SetGlobalVar(0,1); 因為開了倉 全面變量0設為1
          SetGlobalVar(1,1); 因為開的多 全面變量1設為1
          SetGlobalVar(2,0);
          
         }
       IF(a<b) // 開空條件
          {
          A_SendOrder(Enum_Sell,Enum_Entry,Lots,Q_BidPrice()-N*MinMove*PriceScale); //發送委托單 開空倉一手
             SetGlobalVar(0,1); 因為開了倉 全面變量0設為1
             SetGlobalVar(1,1);
             SetGlobalVar(2,0); 因為開的多 全面變量2設為1
           }
       }
                     SetGlobalVar(2,GetGlobalVar(2));            
                        }
       



    if(barstatus==2 and a_buyposition>0 and a_sellposition==0 AND  GetGlobalVar(0)==1 AND GetGlobalVar(1)==1 AND GetGlobalVar

    (2)==0) ) //持多倉,在沒有檢查到用戶函數,又因為有全局變量的二種控制,所以,保證不重發單

    {  if(c>b) 平多條件
         
         ..........................................
             SetGlobalVar(0,1); 因為平了倉 全面變量0設為0
             SetGlobalVar(1,1); 因為平多了 全面變量1設為0
             SetGlobalVar(2,0);

      }

     

  • 網友回復:
    xiaosong 發表于 2013-7-24 11:46
    謝謝老大. 謝謝回貼,這個軟件是不錯,是能解決小資金的執行力的問題. 但是編程的確是有難度,這主限制它的 ...


    這樣寫,感覺不是很合理喲。至少不是很適用于實際交易。
    建議先看一下F1里公式策略進階里關于a_sendorder與全局變量配合使用的例子。

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 1145508240  有需要幫忙請點擊這里留言!!!進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 手机看片福利永久国产日韩| 欧美高清色视频在线播放| 国产精品免费看香蕉| 免费a级毛片在线播放| 99久久99久久精品国产| 欧美成人观看免费完全| 国产999精品久久久久久| 羞羞漫画成人在线| 嫩草影院www| 久久婷婷五月综合色国产香蕉| 精品视频无码一区二区三区| 国产精品亚洲综合久久| 久久久精品人妻一区亚美研究所| 污网站在线观看| 啊灬啊别停灬用力啊呻吟| h视频在线观看免费观看| 天天操狠狠操夜夜操| 久久se精品动漫一区二区三区| 欧美人与物另类| 亚洲黄色网站视频| 老司机免费福利午夜入口ae58 | 韩国护士hd高清xxxx| 国产精品污WWW一区二区三区| 久久天堂成人影院| 欧美日韩国产精品自在自线| 国产内射爽爽大片视频社区在线| 一本一本久久aa综合精品| 欧美日韩亚洲国产无线码| 午夜福利视频合集1000| 青青青爽在线视频观看| 国产精品单位女同事在线| ak福利午夜在线观看| 最近中文字幕高清中文字幕无 | 波多野结衣和黑人| 国产呻吟久久久久久久92| 91进入蜜桃臀在线播放| 小受被多男摁住—灌浓精| 亚洲成a人v欧美综合天堂| 被农民工玩的校花雯雯| 国产精品久久国产精品99| a毛片免费全部播放完整成|