提前1秒钟间隔太短了。在行情不活跃时容易漏单。
你看到的时间是本地计算机时间,代码中是按行情时间判断的。肯定多少有点偏差
你的电脑时间永远不可能做到和交易所一点不差的
实际你上你就是提前一秒了,只是那个显示记录那边让你觉得不是差一秒
这个不用去管,就好比你电脑一定不会准这个无法改变
另外行情时间是根据行情来的,提前一秒这个前提条件是59秒必须有行情,这种太苛刻了,如果该品种58秒然后直接跳到00那么你就漏单了
early:=(time0-timetot0(dynainfo(207))
这个是根据行情时间计算的逻辑。dynainfo(207)是行情时间。
提前下单的时间建议你在3秒以上。如果是不活跃品种还要大,否者某根k上如果没有最后几秒的数据,这个条件就不成立了。
计算机本地时间和交易所行情时间多少都会有点出入,即使你不停与时间服务器进行同步也只能缩小时间误差。你不用太在意记录的本地时间。
只要保证行情接收正常,公式计算没有卡顿就行。
你自己如果想判断触发的时间是否在最后几秒内,完全可以用debugfile输出参与计算的行情时间dynainfo(207)
aa:dynainfo(207);
if time0-timetot0(dynainfo(207))<=1) or not(islastbar) then begin
debugfile(.....,aa);
end