公式有时能正常运行,有时不行,不行的时候报错最后一行解释错误。
截图见图片,公式代码如下:
variable:FHtmp[]=0,RLtmp[]=0;
if isdown then FHtmp:=-1;
if isup then RLtmp:=1;
FHnum:ubound(FHtmp),nodraw,colorwhite;
RLnum:ubound(RLtmp),nodraw,colorwhite;
checkFH1:FHtmp[FHnum],nodraw,colorwhite;
checkRL2:RLtmp[RLnum],nodraw,colorwhite;

此主题相关图片如下:未命名图片.png
我发现如果在一条公式里面建立超过一个以上的空数组,如a[]=0, b[]=0...那样,并分别填充不等长度的任意数据,如if isup then a:=1, if isdown then b:=-1...那样,对这些数组进行各种运算,如求平均值,回归...等,似乎都没有问题,但当你试图调用第二组数组中某个数据时,公式就经常会解释错误,奇怪的是在什么都不改动的情况下偶尔公式又能够正常解释并运行。还有就是如果不调用第二组数组数据,只调用第一组数组数据则不会出现问题。
我检查过数据完整性没有问题,而且公式运行在任意周期,任意品种上都出同样的错误,错误应该和数据无关。
我现在已把要建立的多个数组在n条公式里分别逐一建立,先解决了我的问题,至于上述bug请你们关注。
哦,我的系统环境:3.63 x64,win10 x64。
以下是引用admin在2016/2/27 11:39:52的发言:
试试新发布的3.90版本,谢谢
刚升级了3.9 beta1,问题依然存在。另外,我上面用的解决办法也无效,即使一条公式内只有一个空数组,当你试图通过数组下标调用数组数据时,经常会发生公式无法解释而停止运行,见下图。请速解决。谢谢。
此主题相关图片如下:未命名图片.png

我在公式内将数组复制至一个新的数组,然后再来调用就再没出现问题了,同时建立n个空数组都很正常。盼告知原因。
公式(简化了)
variable:a[]=0,a1[]=0,b[]=0,b1[]=0;
if isup then a:=1;
if isdown then b:=-1;
a_num:=ubound(a);
b_num:=ubound(b);
//如果这时直接通过下标调用a,b两个数组中的数据就会出现公式无法解释的错误
setubound(a1,0);
setubound(a1,a_num);
setubound(b1,0);
setubound(b1,b_num);
a1:=a;
b1:=b;
//这时通过下标来调用a1,b1就一切正常。我就不截屏了。
顺便赞一个,3.9版本small,lod2,large,hod2快了真不只是一点点。。。很好!
查了代码,你是哪行语句使用了空数组,数组未置任何数据导致数组越界了
谢谢管理员,不过我没看明白。以7楼代码为例,不是已通过if isup then a:=1对空数组赋值了吗?为什么说未置任何数据?
还以7楼为例,如果不用a1, b1数组,如何通过下标调用a, b数组而不出错?