有个指标公式,在大部分股票上都可以成功应用,但在某些股票上的结果是-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);
具体错误见图片,前两个是错误的例子,第三个是正确的例子。日线数据都是补全了的。
您说的拓展数据量是什么意思呢?
我测试的时候选的时间周期感觉已经挺长的了。
而且在图表模式下,已经把上市以来所有周期都涵盖近来了,譬如603816和603866,但都有这个问题
我把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就一直正常有数字。
您这边也是同样的作法吗?太奇怪了。
我是把第一个公式放在条件选股下,第二个公式放在技术指标里面的,这个应该不会有影响啊?
另外日线数据都补全了的,其他还有什么我没有考虑到的呢?
也就是说,在第一个公式中,大家都是正确计算的。
但是在第二个公式中,有的前高数值能够传递出来,有的在我这里就传递不出来。实在是不知道哪里出了问题。