//仅刷新最后一根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却不会累加
//仅刷新最后一根K线图,相关代码如下: 这个确实变成了全局变量了 ,反映给开发查查! |
我认为,从程序角度来讲:
第一个是正确的。
第2,3才是错误的。要改进的是第2,3
同意楼上的观点。我感觉第一种情况不是想要的,但是是合理的。
这里使用全局变量和超级全局变量效果一样,都达到了控制X在最后一周期不继续累计的问题,但是好像没有道理。
比如第二种情况,用全局变量。如果在最后一个周期,每次刷新,variable:x=0;发挥了作用(按理如此),那么最后X应该恒定等于1.
如果最后一周期,每次刷新,variable:x=0;没有发挥作用,那么X应该一如既往继续累加才对。因此,不管哪种情况,都不应该得到“正常”的结果。
问题已经在随后发布的2.87版得到了修正
A:=CLOSE;
B:=0;
CC:A/B;
结果:CC=CLOSE.