以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  金字塔软件问题提交  (http://222.73.7.161/bbs/list.asp?boardid=2)
----  [求助]过多全局变量有神奇的bug  (http://222.73.7.161/bbs/dispbbs.asp?boardid=2&id=30272)

--  作者:readonly
--  发布时间:2012/10/31 21:29:20
--  [求助]过多全局变量有神奇的bug
当全局变量超过15个,神奇的问题就出现了。它非常隐秘,我找了半年时间,终于逮住它了。

如下公式,aaa 竟然不等于 bbb,但是删掉任意一个variable设置,就一切正常了。
================================================
variable: aa=5, bb=225, cc=0, dd=v,
ee=h, ff=h, gg=5, hh=0,
ii=l, jj=l, kk=5, ll=1,
mm=h, nn=l, oo=o, 趋势=0,
pp=h, qq=l, rr=o;

if barpos<5 then exit;
if day<>ref(day,1) then
今高:=h;

if 趋势<1 then if h>今高 then 趋势:=1;

aaa:=ref(趋势,1);
bbb:=趋势[barpos-1];

DRAWICON(ref(趋势,1)<>趋势[barpos-1],h*1.001,2); //有问题显示icon

================================================
以上公式仅仅是显示这个bug的范例。

--  作者:readonly
--  发布时间:2012/10/31 21:32:47
--  
发到论坛排版变乱了,再发一次公式:

variable:aa=5,bb=225,cc=0,dd=v,ee=h,ff=h,gg=5,hh=0,ii=l,jj=l,kk=5,ll=1,mm=h,nn=l,oo=o,趋势=0,pp=h,qq=l,rr=o;
if barpos<5 then exit;

if day<>ref(day,1) then 今高:=h;

if 趋势<1 then if h>今高 then 趋势:=1;

aaa:=ref(趋势,1);
bbb:=趋势[barpos-1];

DRAWICON(ref(趋势,1)<>趋势[barpos-1],h*1.001,2);//有问题显示icon
[此贴子已经被作者于2012-10-31 21:33:26编辑过]

--  作者:every
--  发布时间:2012/11/1 10:48:57
--  

这里的趋势,要定义成数组吧


--  作者:every
--  发布时间:2012/11/1 10:54:40
--  
您在论坛发的全局变量的其它帖子,我也在看
[此贴子已经被作者于2012-11-1 10:54:56编辑过]

--  作者:readonly
--  发布时间:2012/11/1 14:18:44
--  
这个不需要定义数组的。

现在问题与程序使用中的变量完全无关,删掉、移动尚未使用的全局变量声明的位置,都会对程序造成影响。
我认为完全是系统的缺陷,等老大来处理吧。

--  作者:readonly
--  发布时间:2012/11/2 8:57:22
--  
老大又结婚去了吗?

帮忙解决一下这个问题啊。