globalvariable:aa=6;
if not(islastbar) then exit;
msgout(1,numtostr(aa,0));
if aa>0 then aa:=aa-1;
if aa<0 then aa:=aa+1;
初始值为6,之后如果大于0,则减1 。也就是aa由6 、5、4……直至为0
但是声明多个超全局变量的时候,就出错了。aa并非由6、5、4……直至0了。比如
globalvariable:aa=6,bb=6;
if not(islastbar) then exit;
msgout(1,numtostr(aa,0));
if aa>0 then aa:=aa-1;
if aa<0 then aa:=aa+1;
难道只能声明一个全局变量吗?这也太少了
如果这样声明,也是一样,aa的变动不符合:
globalvariable:aa=6;
globalvariable:bb=6;
if not(islastbar) then exit;
msgout(1,numtostr(aa,0));
if aa>0 then aa:=aa-1;
if aa<0 then aa:=aa+1;
测试了一下没有错,正常编译了。还执行了msgout。
报的什么错误提示啊?
aa的变动情况应该是这样
2011/10/26 11:09:35 6
2011/10/26 11:09:36 5
2011/10/26 11:09:37 4
2011/10/26 11:09:38 3
2011/10/26 11:09:39 2
2011/10/26 11:09:40 1
2011/10/26 11:09:41 0
2011/10/26 11:09:42 0
2011/10/26 11:09:43 0
2011/10/26 11:09:44 0
然后一直为0
多个变量一起声明的时候,aa就不是这样变化了,就出错,如下:
2011/10/26 11:10:15 6
2011/10/26 11:10:16 6
2011/10/26 11:10:17 6
2011/10/26 11:10:18 6
2011/10/26 11:10:19 6
2011/10/26 11:10:20 6
2011/10/26 11:10:21 6
我测试了,确实目前只能设置一个超级全局变量
我反映给开发调试修改
在最新版本里,这个问题,是否已经解决呢?
1.globalvariable只是在局部使用的,比如你的图表上分别有2个策略,都是相同的globalvariable变量名,两者是不相互冲突的,globalvariable会在关闭图表后或者关闭金字塔后,数据消失,而extgbdata是全局的变量,一旦声明,会在所有的公式调用中共同体现,此外extgbdata是放在本地全局变量数据库中,不会随着金字塔软件的关闭而消失
2.可以
3.2.81版后可以
4.只有在你手工清除或者使用extgbdataset把他置0