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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 某些股票出现-1.#R的错误

   

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


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

主题:某些股票出现-1.#R的错误

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


加好友 发短信
等级:新手上路 帖子:41 积分:0 威望:0 精华:0 注册:2014/9/10 16:48:54
某些股票出现-1.#R的错误  发帖心情 Post By:2018/6/12 13:22:19    Post IP:182.148.58.34[只看该作者]

有个指标公式,在大部分股票上都可以成功应用,但在某些股票上的结果是-1.#R.

 

这个该怎么解决呢?

 

源代码如下:

序列模式公式 :

a1:= ref(h,N)=hhv(h,2*N+1); //为前后N天的波峰
b1:=filter(a1,N);
c1:=backset(b1,N+1);
HD:= filter(c1,N);
波峰高度:if(HD,h,0); //波峰高度
近日高点: const(hhv(h,10));
满足前高: barslast(波峰高度>近日高点); //最近的一个零值表示最近的一个前高

 

逐K模式公式:
previoushigh:=stkindi('','波峰高度.满足前高',0,6,0); //最近的一个零值表示最近的一个前高

前高周期:= if(hhv(h,5)=hhv(h,0),0,barslast(previoushigh=0));

前高:=rounds(if(hhv(h,5)=hhv(h,0),0,ref(h,前高周期)),2);

cc:=filter(c>0,5);
drawnumber(cc=1,high,前高,2);

 

具体错误见图片,前两个是错误的例子,第三个是正确的例子。日线数据都是补全了的。

 

 


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/6/12 13:24:33    Post IP:180.169.30.6[只看该作者]

 没看到图。图表用IE浏览器传才行。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/6/12 13:27:45    Post IP:180.169.30.6[只看该作者]

 一般这种都是数据出问题了,可能是计算所需量不足,你再拓展下数据量试下。或者你说是那个品种,我去看下。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
guojordan
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:41 积分:0 威望:0 精华:0 注册:2014/9/10 16:48:54
  发帖心情 Post By:2018/6/12 13:49:16    Post IP:182.148.58.34[只看该作者]


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

 

图表上传了


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


加好友 发短信
等级:新手上路 帖子:41 积分:0 威望:0 精华:0 注册:2014/9/10 16:48:54
  发帖心情 Post By:2018/6/12 13:51:01    Post IP:182.148.58.34[只看该作者]

您说的拓展数据量是什么意思呢?

 

我测试的时候选的时间周期感觉已经挺长的了。

 

而且在图表模式下,已经把上市以来所有周期都涵盖近来了,譬如603816和603866,但都有这个问题


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/6/12 14:13:08    Post IP:180.169.30.6[只看该作者]

序列模式的代码里有些变量在某些品种上的计算结果导致的。

最终导致HD一直是0,因此barslast的计算就出问题了 ,因为不存在 满足 “波峰高度>近日高点” 这个条件的情况了。具体原因只能说和你本身计算逻辑以及参数有关系。

那个桃李面包在我这里就正常,我N设置成3就是可以的。

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


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/6/12 14:16:17    Post IP:180.169.30.6[只看该作者]

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

这个也正常了。。你调整下参数试试?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
guojordan
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:41 积分:0 威望:0 精华:0 注册:2014/9/10 16:48:54
  发帖心情 Post By:2018/6/12 14:46:08    Post IP:116.237.17.219[只看该作者]

我把N设为3还是一样的问题呢。

我调试了一下,在第一个序列模式下,所有输出都是正常的。以截至18/3/15的桃李面包为例,“满足前高”的最近一个零值出现在18/1/18.

 

序列模式,令N=13

a1:= ref(h,N)=hhv(h,2*N+1); //为前后N天的波峰
b1:=filter(a1,N);
c1:=backset(b1,N+1);
HD:= filter(c1,N);
波峰高度:if(HD,h,0); //波峰高度
近日高点: const(hhv(h,N));
满足前高: barslast(波峰高度>近日高点); //最近的一个零值表示最近的一个前高

在序列模式下调试的结果看上去一切正常。满足前高的数字一直在正确地赋值。

 

但是当进入第二个逐K模式时,

previoushigh:=stkindi('','前高判断中间值.满足前高',0,6,0); //最近的一个零值表示最近的一个前高

前高周期:=barslast(previoushigh=0);

前高:=rounds(if(hhv(h,13)=hhv(h,0),0,ref(h,前高周期)),2);

cc:=filter(c>0,3);
drawnumber(cc=1,high,前高,2);

 

桃李面包previoushigh就一直没有数字,而飞科电气previoushigh就一直正常有数字。

 

您这边也是同样的作法吗?太奇怪了。

 

我是把第一个公式放在条件选股下,第二个公式放在技术指标里面的,这个应该不会有影响啊?

另外日线数据都补全了的,其他还有什么我没有考虑到的呢?

 

 


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


加好友 发短信
等级:新手上路 帖子:41 积分:0 威望:0 精华:0 注册:2014/9/10 16:48:54
  发帖心情 Post By:2018/6/12 14:54:11    Post IP:116.237.17.219[只看该作者]

也就是说,在第一个公式中,大家都是正确计算的。

 

但是在第二个公式中,有的前高数值能够传递出来,有的在我这里就传递不出来。实在是不知道哪里出了问题。


 回到顶部