您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

老师请讲(延迟交易) [开拓者 TB]

  • 咨询内容: 老师您好,请教一下,我想实现的命令是:当初次条件成立时,记录下当前的时间,然后在隔N分钟后判断如果条件依然成立再发出指令,如果N分钟后条件不成立,就不发单,全局变量不太会用,请老师给出较详细的完整代码,谢谢老师。

     

  • TB技术人员: If(Conditionand GetGlobalVar(18)<900)   
      { pdcsj=Q_LastTime*1000000;
       SetGlobalVar(18,pdcsj); }
    If(Condition And Q_LastTime*1000000-GetGlobalVar(18)>120 And Q_LastTime>0.090001  )
        { Sell(lots,Q_BidPrice+1*MinMove);
    }

    120秒 2分钟后再交易

     

  • TB客服: 请问为什么是18,而且要<900,pdcsj是自己命的名吧,我是否可以自己改。谢谢老师。

     

  • 网友回复: 以下代码会把午休时间和小结时间算入,如果不想把小结时间算入,建议在一分钟周期上使用nthcon函数进行判断延迟
    1. Params
    2.         Numeric n(5);

    3. Vars
    4.         NumericSeries ma1;
    5.         NumericSeries ma2;
    6.        
    7.         NumericSeries aa;

    8. Begin

    9.         ma1=AverageFC(Close,15);
    10.         ma2=AverageFC(Close,20);
    11.        
    12.         If(CrossOver(ma2,ma1))
    13.         {
    14.                 aa=Time*10000;
    15.         }Else
    16.                 aa=aa[1];

    17.         If(aa!=0 && Time*10000-aa>=n && ma2>ma1)
    18.         {
    19.                 Buy(1,Close);
    20.         }
    21.         Commentary("aa="+Text(aa));
    22. End
    复制代码

     

  • 网友回复: If(Conditionand GetGlobalVar(0)<900)   
      { pdcsj=Q_LastTime*1000000;
       SetGlobalVar(0,pdcsj); }
    If(Condition And Q_LastTime*1000000-GetGlobalVar(0)>120 And Q_LastTime>0.090001  )
        { Sell(lots,Q_BidPrice+1*MinMove);
    }
    pdcsj 是平多仓时间

【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容