以下公式很简单,结果我就不贴图了,请技术人员看本地结果更好。
globalvariable:aa=0;
aa:=aa+2;
msgout(1,numtostr(aa,0));
三个问题:
1. 为什么执行msgout输出的频率远远高于aa计算语句?换句话说,为什么它们不是同步执行?
2. 这个不是主要问题,我没有添加allowrepeat为什么msgout在轮询中也可以不断重复执行?
3. 如果把上面两句放进islastbar判断里面,两者的执行频率就一致了,为什么?
谢谢。
你的公式在盘中会刷新不??那么如果刷新的话会不会输出呢??
你输出一个
a:close
看下这个a取值变不变呢?
逐k是从头刷新到尾,放在islastbar里面就只会在最后一根k里计算了。
主要要学会看函数说明
globalvariable里面有说到的是只在最新一根k里才会计算
公式会刷新,输出结果类似下面这个样(应该跟你本地是差不多的)
2
2
2
...
4
4
...
6
...
看这样的输出结果,每一行输出似乎可以看成是公式进行了一次轮询,msgout执行了一遍,为什么aa不是每次都参与计算?
是不是因为逐k是全部都扫描一遍,而globalvariable没有历史数据,所以aa值没有变化?如果只刷新最后一根k线是不是就不会出现上述问题?