以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 关于debugfile在同一根K线重复输出的问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=168212) |
|
-- 作者:infocell -- 发布时间:2019/2/14 7:47:15 -- 关于debugfile在同一根K线重复输出的问题 我在策略在初始化的时候,用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线只输出一条信息?
|
|
-- 作者:yukizzc -- 发布时间:2019/2/14 8:59:16 -- GLOBALVARIABLE:is_init=0; if barpos>is_init then begin debugfile(); is_init:=barpos; end |
|
-- 作者:infocell -- 发布时间:2019/2/14 11:24:37 -- 非常感谢回复,我现在的问题是同一根K线内反复输出,应当是每个tick输出一次,下一根K线的时候就不会输出。
我感觉用上面的代码,应当可以防止下一根K线输出,但不知道能否防止同一个K线重得输出,我在debugfile前面加了islastbar,也解决不了。
我代码中用的是如下,不知改成GLOBALVARIABLE能不能起作用?
|
|
-- 作者:FireScript -- 发布时间:2019/2/14 11:26:37 -- 不能用VARIABLE,你按照2楼的试下就知道了。并且还需要用barpos来限制当前K的重复输出。 |
|
-- 作者:infocell -- 发布时间:2019/2/14 16:07:45 -- 我夜盘试一下,如果这个可以,那就太神奇了,还是有点不太理解这个机制的原理。
毕竟同一个K线内部,barpos是一样的。 |
|
-- 作者:FireScript -- 发布时间:2019/2/14 16:11:27 -- 在你在当前K给全局变量赋值之前,它保存的都是上一个K的barpos 所以下面这个if的条件一个K只能成立一次。 GLOBALVARIABLE:is_init=0;
if barpos>is_init then begin debugfile(); is_init:=barpos; end |