提前n秒下单,用的是众多坛友用的经典的控制代码:p2:=if(islastbar,dynainfo(207),time);
p3:=time0-timetot0(p2),linethick0;
今天有一个奇怪的问题,模拟交易rb连续,1秒轮询,15分周期,11:15:32时候居然有平空开多的交易,但当时图表上并没有信号。查纪录,发现是11:15:25触发下单,这就奇怪了,因为我设置下单都需要满足条件p3<=5,即提前5秒下单,而15分周期窗口在11:25:25时刻应该不可能满足p3<5。想来想去怀疑是否p3的计算可能有漏洞,即提取time0,dynainfo(207)、time等函数的值时万一出现错误,使得p3的计算值为零或者为负数,导致不能正确控制下单时刻,交易信号忽闪??
胡思乱想这么多还不如用实际的调试来验证你的想法
用debugfile来分别输出:p2;p3;p3>5;time0;time0-timetot0(p2);timetot0(p2)
这几项,看看在下单时,分别为多少
主要这问题难得一见,几十天头一次见,我也真搞不懂怎么回事。调试倒是会,没时间分析这么小概率的事件阿。
大哥,几十天碰到一次的问题,怎么测试。代码就是阿火提的提前n秒下单代码,论坛里很多人在用。
p2:=if(islastbar,dynainfo(207),time);
p3:=time0-timetot0(p2),linethick0;
交易代码:
SELL(平多条件 AND HOLDING>0 and p3<=5,0,limitr,jgs-hdk);
SELLSHORT(平空仓条件 AND HOLDING<0 and p3<=5,0,limitr,jgx+hdd);
BUY(开多条件 AND HOLDING=0 and p3<=5,手数,limitr,jgx+hdd);
BUYSHORT(开空条件 AND HOLDING=0 and p3<=5,手数,limitr,jgs-hdk);
那麻烦按照上面的调试要求编写调试代码进策略里面。等再一次碰到问题时,发送调试日志和下单日志到论坛上
用debugfile监控的方法也许可行,但是我框架内有6个窗口,每个窗口都用debugfile监控,导致的程序负担太重了。