如果一个变量xx没有设初始值
VARIABLE:xx=0;
而是直接在代码中赋值
xx:=……
那么,当xx变量在第一次满足条件之前的那些K线里,k线会随机地被赋予一个值,也就是该变量所指向的内存地址中的任何事先存储值。在我的测试中,我翻看另一个合约,然后在返回来,再shift+Q查看,每次的该K线的值都不一样,说明了这一点。但是,如果用调试F5的手段去调试就会发现,该值又始终为0(为0当然是好的)。
解决办法是事先设一个初始值,对于变量很多的代码、不知情的用户而言,就会遇到小问题。不管怎么说,这也算是一个bug吧。
但是,如果采用事先设初值的方法,并且xx的引用先于xx的赋值语句,为了获得前一根k线的xx值,必须直接写成xx,而不能用ref(xx,1)。原因见:
http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=52583&authorid=0&page=0&star=2
[此贴子已经被作者于2013/8/17 15:01:00编辑过]
变量的声明,是需要初始化一个值的,这是编程上的一个基本概念。