以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2)
---- 这公式解释错误,何解? (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=92694)
|
-- 作者:a141027
-- 发布时间:2016/2/27 0:01:22
-- 这公式解释错误,何解?
公式有时能正常运行,有时不行,不行的时候报错最后一行解释错误。
截图见图片,公式代码如下:
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
|
-- 作者:王锋
-- 发布时间:2016/2/27 0:09:52
--
是3.8新版吗
|
-- 作者:a141027
-- 发布时间:2016/2/27 9:12:10
--
不是,3.63 x64
|
-- 作者:a141027
-- 发布时间:2016/2/27 10:31:23
--
我发现如果在一条公式里面建立超过一个以上的空数组,如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版本,谢谢
|
-- 作者:a141027
-- 发布时间:2016/2/27 13:41:09
--
以下是引用admin在2016/2/27 11:39:52的发言:
试试新发布的3.90版本,谢谢
刚升级了3.9 beta1,问题依然存在。另外,我上面用的解决办法也无效,即使一条公式内只有一个空数组,当你试图通过数组下标调用数组数据时,经常会发生公式无法解释而停止运行,见下图。请速解决。谢谢。
此主题相关图片如下:未命名图片.png
|
-- 作者:a141027
-- 发布时间:2016/2/27 14:30:56
--
我在公式内将数组复制至一个新的数组,然后再来调用就再没出现问题了,同时建立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就一切正常。我就不截屏了。
|
-- 作者:a141027
-- 发布时间:2016/2/27 14:49:02
--
顺便赞一个,3.9版本small,lod2,large,hod2快了真不只是一点点。。。很好!
|
-- 作者:admin
-- 发布时间:2016/2/28 0:30:24
--
查了代码,你是哪行语句使用了空数组,数组未置任何数据导致数组越界了
|
-- 作者:a141027
-- 发布时间:2016/2/28 10:51:57
--
谢谢管理员,不过我没看明白。以7楼代码为例,不是已通过if isup then a:=1对空数组赋值了吗?为什么说未置任何数据?
还以7楼为例,如果不用a1, b1数组,如何通过下标调用a, b数组而不出错?
|