-- 作者:单刀赴会
-- 发布时间:2017/11/7 10:10:58
-- 怎么定义MACD金叉死叉最高最低价
此主题相关图片如下:1111png.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2017-11/2017117106454288.png) 如我图上所示怎么能取到出来MACD上个金叉到死叉的过程中的最高价,MACD上个死叉到金叉的过程中产生的最低价?
我是这样写的 不知道对不对 我想要的是价格大于前一个金叉的最高价做多,小于前一个死叉的最低价做空
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26); DEA : =EMA(DIFF,9); MACD1 := 2*(DIFF-DEA), COLORSTICK; jc:=cross(diff,dea); sc:=cross(dea,diff); jc1:=BARSLAST(jc) ; sc1:=BARSLAST(sc); hh:=hhv(h,jc1); ll:=llv(l,sc1);
|
-- 作者:单刀赴会
-- 发布时间:2017/11/7 14:26:36
--
此主题相关图片如下:123213.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2017-11/201711714185879735.png) 写了一下还是不行,我这个是红方狂标记的做空点位是MACD在死叉后也就是波峰的最低价,如果后边价格一旦突破这个价格就做空 图标显示的价格完全不一样,
粉色框的标记的做多是价格如果突破这里再开始做多,但是再最后边一个白色箭头的位置就开始做多了完全不是我要的意思,我的代码如下请大神帮我改改:
策略思路是突破前一个金叉形成的最高地做多,突破前一个死叉形成的最低点做空
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26); DEA : =EMA(DIFF,9); MACD1 := 2*(DIFF-DEA), COLORSTICK; jc:=diff<=dea; sc:=diff>=dea; jc1:=BARSLAST(jc) ; sc1:=BARSLAST(sc);
hh:ref(hhv(h,jc1),jc); ll:ref(llv(l,sc1),sc); ma1:ma(c,10); //PARTLINE(jc1,hh,COLORRED); //PARTLINE(sc1,ll,COLORGREEN);
KD:=C>REF(hh,1) ; //开多条件 PD:=ref(c,1)<ref(ma1,1); //平多条件 KK:=C<REF(ll,1); //开空条件 PK:=ref(c,1)>ref(ma1,1); //平空条件
平空:SELLSHORT(PK,1,LIMITR,OPEN); //平空信号 开多:BUY(KD AND HOLDING=0,1,LIMITR,ref(hh,1)+1*MINDIFF); //开多信号 平多:SELL(PD,1,LIMITR,OPEN); //平多信号 开空:BUYSHORT(KK AND HOLDING=0,1,LIMITR,ref(ll,1)-1*MINDIFF); //开空信号
|
-- 作者:FireScript
-- 发布时间:2017/11/7 14:47:38
--
h:ref(hhv(h,jc1),jc); ll:ref(llv(l,sc1),sc);
这里这样不对吧。
hh:=ref(hhv(h,jc1),sc1); ll:=ref(llv(l,sc1),jc1);
|
-- 作者:wenarm
-- 发布时间:2017/11/7 15:28:16
--
DIFF :=EMA(CLOSE,12) - EMA(CLOSE,26); DEA :=EMA(DIFF,9); MACD :=2*(DIFF-DEA); n1:sumbars(macd>0 and ref(macd<0,1),1); n2:sumbars(macd<0 and ref(macd>0,1),1); 上一个死叉的最低价:ref(llv(low,n2),n1); 上一个金叉的最高价:ref(hhv(HIGH,n1),n2);
|