![]() 在技术分析指标中, 由于MACD指标的使用相对简单且出错几率较小而被广大投资者所运用。 仅作为策略思路拓展,不建议直接用于期货等投资实盘中(投资有风险,入市须谨慎)。 MACD构成中是有2条曲线的,首先是快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26)得到快线DIF,还有就是DIF的9日加权移动均线DEA 1、黄白线定义 DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);// 快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26) DEA : EMA(DIFF,9);// DIF的9日加权移动均线 2、黄白线比较 DIFF>REF(DIFF,1);//上涨 3、黄白线交叉(穿越) CROSS(DIFF,DEA);//金叉 4、黄白线变色 5、黄白线区域填充 6、黄白线交叉到当前距离 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);//上上上上次金叉距离 ![]() MACD:2*(DIFF-DEA),COLORSTICK;//2×(快线DIF-DIF的9日加权移动均线DEA)得到MACD柱 2、柱体比较 3、柱体的判断 4、柱体更改 因为MACD红绿柱是细线,所以更改时用DRAWLINE 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面积 6、柱体标注 DIFF :EMA(CLOSE,12) - EMA(CLOSE,26); DEA :EMA(DIFF,9); MACD:2*(DIFF-DEA),COLORSTICK; DRAWICON(CROSS(DIFF,DEA),MACD,'ICO4');//MACD金叉处标注红色向上箭头 DRAWICON(CROSSDOWN(DIFF,DEA),MACD,'ICO5'); //MACD死叉处标注绿色向下箭头 1、如金死叉预警: 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; 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); |
|