我在序列模式下已经标注出所有的波峰位置。
我的需求是针对每一个日线周期,找出历史上离这个周期最近的一个波峰的价格。请问如何实现?
a1:= ref(h,N)=hhv(h,2*N+1); //为前后N天的波峰
b1:=filter(a1,N);
c1:=backset(b1,N+1);
HD:= filter(c1,N);
波峰高度:=REF(H,BARSLAST(HD)),COLOR00FF00,POINTDOT;
STICKLINE(HD,波峰高度,波峰高度-1,8,0),COLORYELLOW;
这个是标注波峰的公式。我想知道每一天的前高是多少。譬如今天的前高定义是,比今天的最高价高的所有波峰之中,离得最近的那个。昨天的前高定义是,比昨天的最高价高的所有波峰之中,离得最近的那个,以此类推。
谢谢!
前面那个代码有点小问题。请看这个代码。
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);
STICKLINE(HD,波峰高度*1.01,波峰高度,8,0),COLORYELLOW;
我尝试在另一个策略中以逐K运行,然后用stkindi('','波峰标注.波峰高度',0,6,0)去调用前面那个公式中的“波峰高度”,再用
前高周期:=barslast(stkindi('','波峰标注.波峰高度',0,6,0)>h); 去找到前高的位置。
但是调试过程中发现,波峰高度的数值总是传递不出来。
不知道是哪里出了问题。还望指教!
我的想法是把“波峰高度”作为一整个序列调用到逐K模式中。然后用Barslast(波峰高度>近5日高点)来找上一个高点的位置。
不过没有找到可以把波峰高度整个调用的办法。我用stkindi函数,只能调用当天是否存在波峰,无法把过去的所有波峰数据一并给出,所以barslast老是用不好。这个问题该怎么解决呢?
或者老师能提供其他的找到前高的办法也行。感谢!
有相应的值输出。你引用的变量必须用:表示
波峰高度:if(HD,h,0);
newhbars无法识别之前的高点是不是波峰。
根据老师指点,我在逐k模式下用stkindi引用之前的波峰高度,然后用barslast(波峰高度>近期高点)来找前高位置,代码如下
previoushigh:= stkindi('','波峰高度.波峰高度',0,6,0); //历史上的波峰高度
variable: recenthigh:=hhv(h,5); //最近五天的高点
前高周期:=barslast(previoushigh>recenthigh); //寻找历史上高于近期高点的,最近的一个波峰
现在previoushigh已经可以正确引用了,但是recenthigh的值自从第一次赋值后就不再随着日期变化而变化了。这个是什么问题呢?