以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  以下这种情况,仅刷新最后一根K线图的情况下变量在最后一根K线会一直累加  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=11139)

--  作者:阿火
--  发布时间:2012/4/18 9:30:15
--  以下这种情况,仅刷新最后一根K线图的情况下变量在最后一根K线会一直累加

//仅刷新最后一根K线图,相关代码如下:
if time=091600 then x:=0;
x:=x+1;
aa:x;
//这种情况,x在最后一根K线图会一直累加。建议改进一下

 

也就说,勾选仅刷新最后一根K线和不勾选会有2种不同效果。

 

当然,如果把X声明一下就没问题

variable:x=0;

if time=091600 then x:=0;
x:=x+1;
aa:x;

 

 

如果声明 超全局变量,反而不会累加了

//仅刷新最后一根K线图
globalvariable:x=0;
if islastbar then begin
 x:=x+1;
end
//这种情况,x却不会累加

[此贴子已经被作者于2012-4-18 9:36:30编辑过]

--  作者:董小球
--  发布时间:2012/4/18 10:54:52
--  

//仅刷新最后一根K线图,相关代码如下:
if time=091600 then x:=0;
x:=x+1;
aa:x;
//这种情况,x在最后一根K线图会一直累加。建议改进一下


这个确实变成了全局变量了 ,反映给开发查查!






--  作者:董小球
--  发布时间:2012/4/18 11:00:10
--  
其他两个全局变量 我倒是觉得是正常的,没问题
--  作者:g555
--  发布时间:2012/4/18 11:53:33
--  

我认为,从程序角度来讲:

第一个是正确的。

第2,3才是错误的。要改进的是第2,3


--  作者:无极无名
--  发布时间:2012/4/18 14:57:57
--  

同意楼上的观点。我感觉第一种情况不是想要的,但是是合理的。

 

这里使用全局变量和超级全局变量效果一样,都达到了控制X在最后一周期不继续累计的问题,但是好像没有道理。

 

比如第二种情况,用全局变量。如果在最后一个周期,每次刷新,variable:x=0;发挥了作用(按理如此),那么最后X应该恒定等于1.

如果最后一周期,每次刷新,variable:x=0;没有发挥作用,那么X应该一如既往继续累加才对。因此,不管哪种情况,都不应该得到“正常”的结果。

 

 


--  作者:admin
--  发布时间:2012/4/18 16:08:21
--  

问题已经在随后发布的2.87版得到了修正


--  作者:无极无名
--  发布时间:2012/4/19 0:35:53
--  还有个小错

A:=CLOSE;

B:=0;

 

CC:A/B;

 

结果:CC=CLOSE.

[此贴子已经被作者于2012-4-19 0:38:46编辑过]