欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 这公式解释错误,何解?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3545人关注过本帖树形打印复制链接

主题:这公式解释错误,何解?

帅哥哟,离线,有人找我吗?
a141027
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:472 积分:0 威望:0 精华:0 注册:2014/10/27 16:51:49
这公式解释错误,何解?  发帖心情 Post By: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
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/2/27 0:09:52 [只看该作者]

是3.8新版吗


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
a141027
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:472 积分:0 威望:0 精华:0 注册:2014/10/27 16:51:49
  发帖心情 Post By:2016/2/27 9:12:10 [只看该作者]

不是,3.63 x64

 回到顶部
帅哥哟,离线,有人找我吗?
a141027
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:472 积分:0 威望:0 精华:0 注册:2014/10/27 16:51:49
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2016/2/27 11:39:52 [只看该作者]

试试新发布的3.90版本,谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
a141027
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:472 积分:0 威望:0 精华:0 注册:2014/10/27 16:51:49
  发帖心情 Post By:2016/2/27 13:41:09 [只看该作者]

以下是引用admin在2016/2/27 11:39:52的发言:

试试新发布的3.90版本,谢谢

刚升级了3.9 beta1,问题依然存在。另外,我上面用的解决办法也无效,即使一条公式内只有一个空数组,当你试图通过数组下标调用数组数据时,经常会发生公式无法解释而停止运行,见下图。请速解决。谢谢。

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名图片.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
a141027
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:472 积分:0 威望:0 精华:0 注册:2014/10/27 16:51:49
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:472 积分:0 威望:0 精华:0 注册:2014/10/27 16:51:49
  发帖心情 Post By:2016/2/27 14:49:02 [只看该作者]

顺便赞一个,3.9版本small,lod2,large,hod2快了真不只是一点点。。。很好!图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2016/2/28 0:30:24 [只看该作者]

查了代码,你是哪行语句使用了空数组,数组未置任何数据导致数组越界了


 回到顶部
帅哥哟,离线,有人找我吗?
a141027
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:472 积分:0 威望:0 精华:0 注册:2014/10/27 16:51:49
  发帖心情 Post By:2016/2/28 10:51:57 [只看该作者]

谢谢管理员,不过我没看明白。以7楼代码为例,不是已通过if isup then a:=1对空数组赋值了吗?为什么说未置任何数据?

还以7楼为例,如果不用a1, b1数组,如何通过下标调用a, b数组而不出错?

 回到顶部