全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
延迟发单
2021-10-13 18:03

是不是可以通过CREATTIMER来实现延迟发单的功能?

比如说,30分钟周期上,在每天的1400点作个计算,如果符合条件就在1400延迟3秒开仓。

这个延迟3秒开仓,是不是可以用CREATTIMER来实现?

我感觉应该是可以,TIMER应该可以实现这个功能,就是自己不会代码实现。

工程师能不能帮忙实现下?

谢谢

wangkaiming

createtimer定时器研究一下,帮助文档都有

通过设置参数,在特定的时间触发,按固定的间隔运行,按设计好的次数运行

每天14:00, 一般是是if(time==0.1400)

2021-10-15 09:55
kilolakebob
@wangkaiming

麻烦王老师看到了给回复下呵

好像Ontimer机制是不支持历史回测地

先谢谢王老师了

2021-10-20 15:25
kilolakebob

谢谢亲爱帅气的王老师如此迅速的回复。

对于createtimer定时器实在不熟悉,还得麻烦王老师看下我的代码。

实现的功能就是在15分周期的bar数据上,在1400如果有多单信号,就延迟3秒发单;

====================

Params    
    Integer millsec(3000); //定时器触发时间
Vars
       Global Integer timeID1; //定时器ID 

       Global Interger My_Delay;

Events    
    OnInit()
    {
        
        timeID1 = CreateTimer(millsec,IntPart(SystemDateTime)+0.140000,3);
        //创建定时器,3000毫秒触发一次,每天1400开始,触发3次       
    }
    
    
    //定时器触发函数 id 当前触发定时函数的ID millsecs 定时器触发时间间隔
    OnTimer(Integer id,Integer millsecs)
    {       
        if(id == timeID1)
           My_delay = 1;

        else

           My_delay  = 0;        
    }
 

onBar(ArrayRef<Integer> indexs)

{

   if ( buy_con and time == 0.140000 and My_delay ==1)

       buy(lots,price);

}

2021-10-18 13:27
kilolakebob

问题一,上述代码能否实现在15分周期的bar数据上,在1400如果有多单信号,就延迟3(或者6,9)秒发单;

问题二,timeID1 = CreateTimer(millsec,IntPart(SystemDateTime)+0.140000,3);这个代码能否实现创建定时器,3000毫秒触发一次,每天1400开始,触发3次 

 

2021-10-18 13:32
您未登录,请先 登录注册 后发表评论
顶部