以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  历史上最近的波峰价格  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=163938)

--  作者:guojordan
--  发布时间:2018/6/9 10:27:42
--  历史上最近的波峰价格

我在序列模式下已经标注出所有的波峰位置。

 

我的需求是针对每一个日线周期,找出历史上离这个周期最近的一个波峰的价格。请问如何实现?


--  作者:wenarm
--  发布时间:2018/6/10 9:48:25
--  
请提供你标注波峰的代码。

--  作者:guojordan
--  发布时间:2018/6/11 20:27:03
--  

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;

 

这个是标注波峰的公式。我想知道每一天的前高是多少。譬如今天的前高定义是,比今天的最高价高的所有波峰之中,离得最近的那个。昨天的前高定义是,比昨天的最高价高的所有波峰之中,离得最近的那个,以此类推。

 

谢谢!


--  作者:guojordan
--  发布时间:2018/6/11 20:47:16
--  

前面那个代码有点小问题。请看这个代码。

 

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;


--  作者:guojordan
--  发布时间:2018/6/11 21:10:20
--  

我尝试在另一个策略中以逐K运行,然后用stkindi(\'\',\'波峰标注.波峰高度\',0,6,0)去调用前面那个公式中的“波峰高度”,再用

前高周期:=barslast(stkindi(\'\',\'波峰标注.波峰高度\',0,6,0)>h); 去找到前高的位置。

但是调试过程中发现,波峰高度的数值总是传递不出来。

 

不知道是哪里出了问题。还望指教!


--  作者:guojordan
--  发布时间:2018/6/12 8:25:26
--  

我的想法是把“波峰高度”作为一整个序列调用到逐K模式中。然后用Barslast(波峰高度>近5日高点)来找上一个高点的位置。

 

不过没有找到可以把波峰高度整个调用的办法。我用stkindi函数,只能调用当天是否存在波峰,无法把过去的所有波峰数据一并给出,所以barslast老是用不好。这个问题该怎么解决呢?

 

或者老师能提供其他的找到前高的办法也行。感谢!

 

 


--  作者:wenarm
--  发布时间:2018/6/12 8:42:39
--  

有相应的值输出。你引用的变量必须用:表示

波峰高度:if(HD,h,0);

 


--  作者:guojordan
--  发布时间:2018/6/12 9:08:29
--  
谢谢老师,已经改了。但是输出的只是当前k线的波峰值。我想知道针对当前k线所有的历史波峰值,这样才能用barslast去找最近的一个高于近期高点的历史波峰。这个应该怎么实现呢?
--  作者:FireScript
--  发布时间:2018/6/12 9:26:37
--  
 你用stkind引用的时候,它引用的就是整个序列变量。也就是历史K的波峰高度都包含在这个序列中。


然后你再看下NEWHBARS这个函数。

--  作者:guojordan
--  发布时间:2018/6/12 10:00:24
--  

newhbars无法识别之前的高点是不是波峰。

 

根据老师指点,我在逐k模式下用stkindi引用之前的波峰高度,然后用barslast(波峰高度>近期高点)来找前高位置,代码如下

 

previoushigh:= stkindi(\'\',\'波峰高度.波峰高度\',0,6,0); //历史上的波峰高度
variable: recenthigh:=hhv(h,5);  //最近五天的高点

前高周期:=barslast(previoushigh>recenthigh);  //寻找历史上高于近期高点的,最近的一个波峰

 

 

现在previoushigh已经可以正确引用了,但是recenthigh的值自从第一次赋值后就不再随着日期变化而变化了。这个是什么问题呢?