1.MACD 黄白线编写——主要是针对MACD中红黄线的定义编写,比如填充颜色,取值和判断
2.MACD 红绿柱编写——主要针对MACD红绿柱的定义编写,比如更改显示
3.MACD 预警——主要是自设页面预警编写,便于客户寻找交易机会
4.MACD 背离示例——背离是MACD指标中较为复杂的思路,这里分享给大家一个具体编写,便于大家学习,仅供参考,不做实盘推荐
(1)以MACD数值变化和合约价格变化的背离介绍
1.MACD曲线
——————————————————————————————————————————————
MACD构成中是有2条曲线的
首先是快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26)得到快线DIF,还有就是DIF的9日加权移动均线DEA
DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);// 快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26)
DEA : EMA(DIFF,9);// DIF的9日加权移动均线
DIFF>REF(DIFF,1);//上涨
CROSS(DIFF,DEA);//金叉
DRAWCOLORLINE(DIFF>REF(DIFF,1),COLORRED,COLORCYAN);//DIFF上涨红色,下跌青色
(5)黄白线区域填充
FILLRGN(DIFF>DEA&&DIFF<0,DIFF,DEA,COLORRED);//0轴之下红柱区间填充为红色
N:=SUMBARS(CROSS(DIFF,DEA),1);//上次金叉距离
M:= SUMBARS(CROSSDOWN(DIFF,DEA),1)//上次死叉距离;
NN:=SUMBARS(CROSS(DIFF,DEA),2);//上上次金叉距离
NN:=SUMBARS(CROSS(DIFF,DEA),3);//上上上次金叉距离
NN:=SUMBARS(CROSS(DIFF,DEA),4);//上上上上次金叉距离
2.MACD的柱体编写
——————————————————————————————————————————————
MACD:2*(DIFF-DEA),COLORSTICK;//
(3)柱体的判断
(4)柱体更改
因为MACD红绿柱是细线,所以更改时用DRAWLINE
DRAWLINE(MACD>0,0,1,MACD,COLORYELLOW);//MACD>0 柱体是黄色
(5)柱体面积
JC:=CROSS(DIFF,DEA); //金叉
SC:=CROSSDOWN(DIFF,DEA);//死叉
N1:=BARSLAST(JC)+1;//金叉到当前距离
N2:=BARSLAST(SC)+1;//死叉到当前距离
MJ:VALUEWHEN(DIFF>DEA,SUM(MACD,N1));//红柱期间MACD面积
MS:VALUEWHEN(DIFF<DEA,-1*SUM(MACD,N2));//绿柱期间MACD面积
预警主要指WH6自设页面预警,设置方法参考 菜单 软件说明书》价格预警》公式预警
公式上就是条件,SPARK;
示例1:如金死叉预警:
JC:=CROSS(DIFF,DEA); //金叉
SC:=CROSSDOWN(DIFF,DEA);//死叉
JC||SC,SPARK;
示例2:复杂点如K线价格上穿或下穿30日线时,并且同时MACD金叉或死叉时弹窗预警:
DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA : EMA(DIFF,9);//DIFF的M个周期指数平滑移动平均
2*(DIFF-DEA),COLORSTICK;
MA30:MA(C,30);//30日均线
CROSS(C,MA30)&&CROSS(DIFF,DEA)||DIFF>DEA&&CROSS(C,MA30),SPARK;
CROSSDOWN(C,MA30)&&CROSSDOWN(DIFF,DEA)||DIFF<DEA&&CROSSDOWN(C,MA30),SPARK;
MACD指标背离,通常分为顶背离和底背离,是预示市场走势即将见顶或者见底。
(1)底背离:当股价的低点比前一次的低点低、而MACD指标的低点比指标的前一次低点高,这叫底背离现象
(2)顶背离:即当股价的高点比前一次的高点高、而MACD指标的高点比指标的前一次高点低,这叫顶背离现象。
DIFF:EMA(CLOSE,12) - EMA(CLOSE,26);
DEA:EMA(DIFF,9);
MACD:2*(DIFF-DEA),COLORSTICK;
JC:=CROSS(DIFF,DEA);
SC:=CROSSDOWN(DIFF,DEA);
N1:=BARSLAST(JC)+1;
N2:=BARSLAST(SC)+1;
HH:=VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(H,N1));//上次MACD红柱期间合约最大值
HH2:=VALUEWHEN(CROSSDOWN(DIFF,DEA),REF(HH,1));//上上次MACD红柱期间合约最大值
MHD:=VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(MACD,N1));//上次MACD红柱期间MACD最大值
MHD2:=VALUEWHEN(CROSSDOWN(DIFF,DEA),REF(MHD,1));//上上次MACD红柱期间MACD最大值
LL:=VALUEWHEN(CROSS(DIFF,DEA),LLV(L,N2));//上次MACD绿柱期间合约最小值
LL2:=VALUEWHEN(CROSS(DIFF,DEA),REF(LL,1));//上上次MACD绿柱期间合约最小值
MLD:=VALUEWHEN(CROSS(DIFF,DEA),LLV(MACD,N2));//上次MACD绿柱期间MACD最小值
MLD2:=VALUEWHEN(CROSS(DIFF,DEA),REF(MLD,1));//上上次MACD绿柱期间MACD最小值
A:=CROSSDOWN(DIFF,DEA)&&HH>HH2&&MHD<MHD2;//顶背离
B:=CROSS(DIFF,DEA)&&LL<LL2&&MLD>MLD2;//底背离
DRAWICON(A,MACD,5);
DRAWICON(B,MACD,4);