针对开盘立即触发的下单信号,延迟5秒再下单,请问有什么办法实现?其他时间段都是收到信号立即下单。
这个的确很复杂,我已实现了,原理这样:
1、用OnSignal接管信号处理
2、把系统时间赋值到信号的时间字段,也就是借用这个字段存储时间 sig[i].dateTime=SystemDateTime();
3、判断时间差:DateTimeDiff(delaySigs[i2].datetime,SystemDateTime) >= 5
4、大于你想要的秒数后:A函数发单
具体可联系我 fang3shen
这个需求看起来虽然很简单,但是想要实现还是蛮复杂并且麻烦的,tbl语言没有现成的命令,需要自己使用onsignal域接管信号以后,创建一个5s的定时器,在ontimer域里执行对应的报单。
总的来说需要三个事件域,onbar里判断交易信号,onsignal域里接管信号命令的后续执行,创建定时器,ontimer里最后执行报单动作。
由于需要多个事件域交互,复杂度比较高