我在策略在初始化的时候,用debugfile输出品种等信息到txt文件,用全局变量控制整个策略运行过程只输出一次,但在同一根K线会重复输出。
策略跑在图表程序化交易,交易选项是等间隔 1秒(用走完K线出现过会漏单),每个tick刷新,金字塔版本是5.0
IF Is_init=1 THEN BEGIN
DEBUGFILE('C:\myTEST.TXT',STRLEFT(FORMULANAME,2)&STRRIGHT(FORMULANAME,2)&STKNAME&'序列位置:'&numtostr(BARPOS,0),0);
Is_init:=0;
END
如何做到同一根K线只输出一条信息?
2019-02-13 21:00:35.289 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:35.539 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:35.789 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:36.039 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:36.289 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:36.539 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:36.789 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:37.039 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:37.289 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:37.539 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:37.789 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:38.289 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:38.540 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:38.790 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:39.040 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:39.290 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:39.540 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:39.790 6B20甲醇1905序列位置:112,当前日期:1190213
2019-02-13 21:00:40.040 6B20甲醇1905序列位置:112,当前日期:1190213
非常感谢回复,我现在的问题是同一根K线内反复输出,应当是每个tick输出一次,下一根K线的时候就不会输出。
我感觉用上面的代码,应当可以防止下一根K线输出,但不知道能否防止同一个K线重得输出,我在debugfile前面加了islastbar,也解决不了。
我代码中用的是如下,不知改成GLOBALVARIABLE能不能起作用?
VARIABLE:is_init=1; if is_init then begin debugfile(); is_init:=0; end |
我夜盘试一下,如果这个可以,那就太神奇了,还是有点不太理解这个机制的原理。
毕竟同一个K线内部,barpos是一样的。