以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  反映一个问题  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=55284)

--  作者:dwjgwsm
--  发布时间:2013/8/16 17:47:07
--  反映一个问题
如果一个变量xx没有设初始值

VARIABLE:xx=0;

而是直接在代码中赋值

xx:=……

那么,当xx变量在第一次满足条件之前的那些K线里,k线会随机地被赋予一个值,也就是该变量所指向的内存地址中的任何事先存储值。在我的测试中,我翻看另一个合约,然后在返回来,再shift+Q查看,每次的该K线的值都不一样,说明了这一点。但是,如果用调试F5的手段去调试就会发现,该值又始终为0(为0当然是好的)。

解决办法是事先设一个初始值,对于变量很多的代码、不知情的用户而言,就会遇到小问题。不管怎么说,这也算是一个bug吧。

--  作者:dwjgwsm
--  发布时间:2013/8/17 14:59:53
--  
但是,如果采用事先设初值的方法,并且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编辑过]

--  作者:王锋
--  发布时间:2013/8/17 16:25:49
--  
变量的声明,是需要初始化一个值的,这是编程上的一个基本概念。