欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 关于debugfile在同一根K线重复输出的问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2228人关注过本帖树形打印复制链接

主题:关于debugfile在同一根K线重复输出的问题

帅哥哟,离线,有人找我吗?
infocell
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:152 积分:0 威望:0 精华:0 注册:2015/3/2 13:11:05
关于debugfile在同一根K线重复输出的问题  发帖心情 Post By:2019/2/14 7:47:15    Post IP:120.41.159.213[只看该作者]

我在策略在初始化的时候,用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


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/2/14 8:59:16    Post IP:180.169.30.6[只看该作者]

GLOBALVARIABLE:is_init=0;
if barpos>is_init then
begin
 debugfile();
 is_init:=barpos;
end

 回到顶部
帅哥哟,离线,有人找我吗?
infocell
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:152 积分:0 威望:0 精华:0 注册:2015/3/2 13:11:05
  发帖心情 Post By:2019/2/14 11:24:37    Post IP:120.41.159.213[只看该作者]

非常感谢回复,我现在的问题是同一根K线内反复输出,应当是每个tick输出一次,下一根K线的时候就不会输出。

 

我感觉用上面的代码,应当可以防止下一根K线输出,但不知道能否防止同一个K线重得输出,我在debugfile前面加了islastbar,也解决不了。

 

我代码中用的是如下,不知改成GLOBALVARIABLE能不能起作用?

 

VARIABLE:is_init=1;
if is_init then
begin
 debugfile();
 is_init:=0;
end


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/2/14 11:26:37    Post IP:180.169.30.6[只看该作者]

 不能用VARIABLE,你按照2楼的试下就知道了。并且还需要用barpos来限制当前K的重复输出。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
infocell
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:152 积分:0 威望:0 精华:0 注册:2015/3/2 13:11:05
  发帖心情 Post By:2019/2/14 16:07:45    Post IP:194.138.202.50[只看该作者]

我夜盘试一下,如果这个可以,那就太神奇了,还是有点不太理解这个机制的原理。

 

毕竟同一个K线内部,barpos是一样的。


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/2/14 16:11:27    Post IP:180.169.30.6[只看该作者]

在你在当前K给全局变量赋值之前,它保存的都是上一个K的barpos 所以下面这个if的条件一个K只能成立一次。

GLOBALVARIABLE:is_init=0;
if barpos>is_init then
begin
 debugfile();
 is_init:=barpos;
end


命数如织,当如磐石。
 回到顶部