以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  GLOBALVARIABLE的变量重载  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=79730)

--  作者:qq代人发帖
--  发布时间:2015/6/12 14:20:05
--  GLOBALVARIABLE的变量重载
我在tick图中以这样的代码做实验GLOBALVARIABLE: 过滤=0;
VARIABLE:A=0;
IF BARPOS=DATACOUNT-2 AND 过滤=0 THEN
BEGIN
 MSGOUT(1,\'看看!\');
 过滤:=过滤+1;
END 
结果GLOBALVARIABLE的变量一样被重载了

--  作者:jinzhe
--  发布时间:2015/6/12 14:25:21
--  
超全局变量不支持迭代计算
--  作者:静看沉浮
--  发布时间:2015/6/12 14:31:00
--  
GLOBALVARIABLE: 过滤=0;

VARIABLE:A=0;
IF BARPOS=DATACOUNT-2 AND 过滤=0 THEN 
BEGIN
MSGOUT(1,\'看看!\');
过滤:=1;
END
去除迭代部分依然是会重载的。
请问帮助文档里面关于GLOBALVARIABLE的说明是否矛盾:指标加载时定义语句对其初始化一次,后面的时间里,定义语句都不会再对其进行初始化了

--  作者:jinzhe
--  发布时间:2015/6/12 14:37:54
--  
按照我的调试办法,变成1之后就再也没有重置为0过,用户是如何调试出会重置为0的结果的?
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:静看沉浮
--  发布时间:2015/6/12 14:44:19
--  

图片点击可在新窗口打开查看此主题相关图片如下:x2scrap.png
图片点击可在新窗口打开查看
我这边同一的代码,在if tick里面使用同样的代码,指标线上为0,消息窗口不断有消息出来
--  作者:jinzhe
--  发布时间:2015/6/12 15:13:43
--  

超全局变量只在最新的k线上进行计算。

因此当这个判断条件(IF BARPOS=DATACOUNT-2 AND 过滤=0)虽然历史k线上条件满足,但是最新的k线不满足,所以导致了虽然进行了调试输出,但是超全局变量不进行计算。所以,超全局变量的值一直是没有被经过计算的初值0。调试输出的值0,不是被重新赋初值了,而是一直没有被计算

 

把条件BARPOS=DATACOUNT-2改成islastbar 或者什么条件也不加的时候,超全局变量就会被赋值

 


--  作者:静看沉浮
--  发布时间:2015/6/12 15:16:42
--  
顶起~