下面是测试公式:
===========================
runmode:0;//逐K线模式
a:=1;
if C>O then begin
a:=0;
b:=1;
end
aa:a;
bb:b;
===========================
按说 b 不应该始终是1啊. 最好是全部公式变量在开始全部初始化为0;
但bb(=b) 应该在 C>O 的条件下才可能是1,其它情况应该是0 ;
但公式结果显示, 全部是1. 说明 条件里面的变量b最初没有初始化为=0,而是初始化为条件里面的=1.
我没有用最新的金字塔版本,不知道最新版是否也这样结果.
记得以前说过是因为B没有初始的值,然后因为后面被赋值,最后自动对前面没有被赋值的序列进行了赋值
记得以前说过是因为B没有初始的值,然后因为后面被赋值,最后自动对前面没有被赋值的序列进行了赋值
个人认为,这样的处理会造成失误, 还是把公式所有变量先初始化为0 更好.
runmode:0;//逐K线模式
a:=1;
if C>O then begin
a:=0;
b:=1;
end
if c<=o then b:=drawnull;
aa:a;
bb:b;
那么,就可以了
补救方法我知道, 这肯定是个问题,稍不留神就会出错,而且很难觉察.
我只是建议,看在以后版本中能否修正下.
不会吧? 在C 或者 java 里面, 全局变量 如果没有初始化, 会被编译器赋缺省值的(或空 或0).
金字塔公式里面,即使最开始是在if 里面 出现的变量,其实也是按照全局变量来使用的.
大智慧中对这种情况,是显示的空值(应该就是初始化为空值). 这样也不错,至少可以从结果中看出错漏来.
另: 我上面说的全局变量不是金字塔公式里面的GLOBALVARIABLE.