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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 轮询中条件语句不起作用?

   

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


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

主题:轮询中条件语句不起作用?

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


加好友 发短信
等级:论坛游侠 帖子:472 积分:0 威望:0 精华:0 注册:2014/10/27 16:51:49
轮询中条件语句不起作用?  发帖心情 Post By:2016/5/12 16:31:43 [只看该作者]

我想控制轮询中某些语句的执行次数,试验中碰到条件语句在轮询中不起作用的奇怪现象。公式如下:

variable:exe=0;
tb:todaybar,nodraw,colorwhite;
aa:=numtostr(tb,0);
if islastbar and exe=0 then 
begin
msgout(1,aa);
exe:=1;
end;

check_exe:exe,nodraw,colorwhite;

设计意图是msgout只执行一次,下一次就不再执行了,但实际执行结果是回测正常,但实盘就不对,msgout不断执行。详见附件截图。请问msgout语句在轮询中为何会反复执行?
图片点击可在新窗口打开查看此主题相关图片如下:未命名图片1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:未命名图片2.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2016/5/12 16:37:10 [只看该作者]

是的,盘中会一直输出;

variable:num=0;

 

a:num;

if i then num:=1;

b:num;

 

通过这个了解下ab的数值不同


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


加好友 发短信
等级:论坛游侠 帖子:472 积分:0 威望:0 精华:0 注册:2014/10/27 16:51:49
  发帖心情 Post By:2016/5/12 16:39:07 [只看该作者]

你里面的i是什么?

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


加好友 发短信
等级:论坛游侠 帖子:472 积分:0 威望:0 精华:0 注册:2014/10/27 16:51:49
  发帖心情 Post By:2016/5/12 17:23:11 [只看该作者]

我猜i是islastbar吧。我明白你意思,判断语句在赋值语句之前,那时exe值还是0,因此条件判断通过。但我不理解的也是这里,exe已被声明为全局变量,轮询第一次的时候exe应该已被赋值为1,那么第二次轮询的时候exe值为什么又变回0呢?

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2016/5/12 17:25:43 [只看该作者]

看我2楼的代码

variable的全局变量是不会在当根k里面累加,如果你能理解a和b在盘中不断计算后的输出结果,应该就能知道这个函数的全局的概念了

或者看下http://www.weistock.com/WeisoftHelp/zbgs003.htm

[此贴子已经被作者于2016-5-12 17:26:58编辑过]

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


加好友 发短信
等级:论坛游侠 帖子:472 积分:0 威望:0 精华:0 注册:2014/10/27 16:51:49
  发帖心情 Post By:2016/5/12 18:14:55 [只看该作者]

嗯,现在明白了,换成globalvariable使刷新不会重置exe值就可以了。谢谢。

 回到顶部