MACD指标公式如下:
DIF:EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:EMA(DIF,9);
MACD:(DIF-DEA)*2,COLORSTICK;
(或者 BAR:(DIF-DEA)*2,COLORSTICK; 因为整个指标取名MACD,为防止混淆,可以把柱子叫做BAR)
公式很简单,关键是要理解公式背后的思路。
它的思路我们可以这样的去理解:由于K线相对比较杂乱所以需要先进行均值处理,求的12日均线、26日均线。均线的优点是比较稳定,但缺点是比较滞后。如何进行缺点的改进?就要对两根均线进行差值处理,切得均线差DIF。均线差可以快速地反映两根均线的相互关系,均线差具有又稳又快的特点。
我们再次重复上述的两个过程:对DIF进行均值处理,求得DIF、DEA; DIF可以看做是DIF自身的1日均线,DEA是DIF的9日均线;对DIF、DEA进行差值处理,求得均线差BAR,即柱子。这个过程就可以用下面的图像来表示。

先计算12日均线、26日均线的差值,即DIF;再计算DIF、DEA(DIF的9日均线)的差值,即柱子。其实就是:“‘均线差’的‘均线差’”(进行了2次求稳求快处理)。
与杂乱的K线相比,MACD指标的柱子形态稳定、不滞后,具有又稳又快的特点。许多人认为指标滞后,大多是基于“指标来源于K线、必然滞后”的简单推断,带有想当然的成分。

一、MACD由来:
MACD(Moving Average Convergence and Divergence)是GeralAppel于1979年提出的,它是一项利用短期(常用为12日)移动平均线与长期(常用为26日)移动平均线之间的聚合与分离状况,对买进、卖出时机作出研判的技术指标。
二、MACD指标的原理:
1、MACD指标由双移动平均线发展而来,根据均线的构造原理,对价格的收盘价进行平滑处理,求出算术平均值以后再进行计算,是一种趋向类指标。
2、MACD指标是运用快速(短期)和慢速(长期)移动平均线及其聚合与分离的征兆,加以双重平滑运算。
3、根据移动平均线原理发展出来的MACD,一则去除了移动平均线频繁发出假信号的缺陷,二则保留了移动平均线的效果,因此,MACD指标具有均线趋势性、稳重性、安定性等特点,是用来研判买卖时机,预测价格涨跌的技术分析指标。
4、MACD指标主要是通过EMA、DIF和DEA这三值之间关系的研判,DIF和DEA连接起来的移动平均线的研判以及DIF减去DEM值而绘制成的柱状图(BAR)的研判等来分析判断行情,预测走势中短期趋势的主要的股市技术分析指标。
其中,DIF是核心,DEA是辅助。
DIF是快速平滑移动平均线(EMA1)和慢速平滑移动平均线(EMA2)的差。
BAR柱状图在股市技术软件上是用红柱和绿柱的收缩来研判行情。
三、MACD指标公式:
DIF:EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:EMA(DIF,9);
MACD:(DIF-DEA)*2,COLORSTICK;
1、DIF线(Difference):收盘价短期、长期指数平滑移动平均线间的差;
2、DEA线(Difference Exponential Average):DIF线的M日指数平滑移动平均线;
3、MACD线:DIFF线与DEA线的差,柱状线;
四、简单移动平均与指数移动平均的差异:
1、简单移动平均:将最近n天的价格数据进行算数平均,公式如下:
算术公式:MA为简单移动平均值,pi为第i天的价格;
常用行情软件计算公式:MA(C,5);它的计算方法是,将最近5天的收盘价相加,然后除以5。2、指数移动平均EMA(ExponentialMovingAverage):也叫EXPMA指标,是一种常用的序列数据处理方式,简单移动平均是对每一天都赋予相同的权重,但有些人认为最近的日子价格变化更具有价值,应给与更多的重视。它也是一种趋向类指标,指数平均数指标是以指数式递减加权的移动平均。各数值的加权是随时间而指数式递减,越近期的数据加权越重,但较旧的数据也给予一定的加权。公式如下:
算术公式:EMAt为t日的指数移动平均值,Pt为t日的股票价格,λ(0<λ<1)为指数移动平均值对于历史量测值的权重系数,其值越接近1,表明过去量测值的权重较低,另一角度看,1λ表明指数移动平均值的时效性,即历史值的衰减率,越接近1表明时效性越强,历史值的衰减越快。EMA还表现出一定的吸收瞬间突发的能力,这种能力称为平稳性,随着λ减小,平稳性越强。
3、小结:指数移动平均线和简单移动平均线的构造都是将每期值进行移动平均,但是对每期值赋予的权重有所不同。简单移动平均线对每期值赋予相同的权重,而指数移动平均线对各期值赋予指数式递减加权平均。虽然它们的构造不同,但是简单移动平均线的天数和指数移动平均线的指数值之间存在着乘幂形式的关系。当取的简单移动平均线的天数值和指数移动平均线的指数值对应时,两条线的久期相同,且两条移动平均线的走势相同。
五、MACD指标的一般研判标准:
MACD指标的一般研判标准主要是围绕快速和慢速两条均线及红、绿柱线状况和它们的形态展开。一般分析方法主要包括DIF和MACD值及它们所处的位置、DIF和MACD的交叉情况、红柱状的收缩情况和MACD图形的形态这四个大的方面分析。
1、DIF和MACD的值及线的位置:
A、当DIF和MACD均大于0(即在图形上表示为它们处于零线以上)并向上移动时,一般表示为走势处于多头行情中;
B、当DIF和MACD均小于0(即在图形上表示为它们处于零线以下)并向下移动时,一般表示为走势处于空头行情中。
C、当DIF和MACD均大于0(即在图形上表示为它们处于零线以上)但都向下移动时,一般表示为股票行情处于退潮阶段;
D、当DIF和MACD均小于0时(即在图形上表示为它们处于零线以下)但向上移动时,一般表示为行情即将启动。
2、DIF和MACD的交叉情况:
A、当DIF与MACD都在零线以上,而DIF向上突破MACD时,表明市场处于一种强势之中,走势将再次上涨;
B、当DIF和MACD都在零线以下,而DIF向上突破MACD时,表明市场即将转强,跌势已尽将止跌朝上;
C、当DIF与MACD都在零线以上,而DIF却向下突破MACD时,表明市场即将由强势转为弱势,走势将大跌;
D、当DIF和MACD都在零线以上,而DIF向下突破MACD时,表明市场将再次进入极度弱市中,走势还将下跌。
3、MACD指标中的柱状图分析:DIF值减DEA(即MACD、DEM)值而绘制成柱状图,用红柱状和绿柱状表示,红柱表示正值,绿柱表示负值。A、当红柱状持续放大时,表明处于上涨行情中,股价将继续上涨,直到红柱无法再放大时才考虑卖出。
B、当绿柱状持续放大时,表明处于下跌行情之中,股价将继续下跌,直到绿柱开始缩小时才可以考虑少量买入。
C、当红柱状开始缩小时,表明上涨即将结束(或要进入调整期),走势将大幅下跌。
D、当绿柱状开始收缩时,表明大跌行情即将结束,走势将止跌向上(或进入盘整)。
E、当红柱开始消失、绿柱开始放出时,这是转市信号之一,表明上涨行情(或高位盘整行情)即将结束,走势将开始加速下跌。
F、当绿柱开始消失、红柱开始放出时,这也是转市信号之一,表明下跌行情(或低位盘整)已经结束,走势将开始加速上升。
六、MACD的特殊分析方法:
1、形态法则:MACD指标的研判还可以从MACD图形的形态来帮助研判行情。当MACD的红柱或绿柱构成的图形双重顶底、三重顶底等形态时,也可以按照形态理论的研判方法来加以分析研判。例如顶背离和底背离。
A、MACD指标的背离就是指MACD指标的图形的走势正好和K线图的走势方向正好相反。MACD指标的背离有顶背离和底背离两种。
B、顶背离:当K线图上的走势一峰比一峰高,价格一直在向上涨,而MACD指标图形上的由红柱构成的图形的走势是一峰比一峰低,即当走势的高点比前一次的高点高、而MACD指标的高点比指标的前一次高点低,这叫顶背离现象。顶背离现象一般是走势在高位即将反转转势的信号,表明走势短期内即将下跌,是卖出的信号。
C、底背离:底背离一般出现在走势的低位区。当K线图上的走势还在下跌,而MACD指标图形上的由绿柱构成的图形的走势是一底比一底高,即当走势的低点比前一次低点低,而指标的低点却比前一次的低点高,这叫底背离现象。底背离现象一般是预示走势在低位可能反转向上的信号,表明走势短期内可能反弹向上,是短期买入的信号。
我自己编写通达信特色MACD指标公式

0,LINETHICK2;
DIFF1:=EMA(CLOSE,12)-EMA(CLOSE,26),COLORFFFFFF,LINETHICK2;
DEA1:=EMA(DIFF1,9),COLORYELLOW,LINETHICK2;
macd1:=2*(DIFF1-DEA1);
MacD2:=EMA(MACD1,5);
STICKLINE(MACD1>MACD2 AND MACD1>0,0,MACD1,3,0),COLOR000055;
STICKLINE(MACD1>MACD2 AND MACD1>0,0,MACD1,2.5,0),COLOR000077;
STICKLINE(MACD1>MACD2 AND MACD1>0,0,MACD1,1.5,0),COLOR000099;
STICKLINE(MACD1>MACD2 AND MACD1>0,0,MACD1,1,0),COLOR0000FF;
STICKLINE(MACD1>MACD2 AND MACD1<0,0,MACD1,3,0),COLOR222222;
STICKLINE(MACD1>MACD2 AND MACD1<0,0,MACD1,2.5,0),COLOR444444;
STICKLINE(MACD1>MACD2 AND MACD1<0,0,MACD1,1.5,0),COLOR666666;
STICKLINE(MACD1>MACD2 AND MACD1<0,0,MACD1,0,0),COLOR999999;
STICKLINE(MACD1<MACD2,0,MACD1,3,0),COLORA80000;
STICKLINE(MACD1<MACD2,0,MACD1,2.5,0),COLORB80000;
STICKLINE(MACD1<MACD2,0,MACD1,1.5,0),COLOREC1000;
STICKLINE(MACD1<MACD2,0,MACD1,1,0),COLORFF4600;
STICKLINE(MACD1<MACD2,0,MACD1,0,0),COLORFFAA00;
低位金叉:=crOSS(DIFF1,DEA1) AND DIFF1<-0.1;
STICKLINE(低位金叉,0,DIFF1,3,0),COLOR002222;
STICKLINE(低位金叉,0,DIFF1,2.5,0),COLOR006666;
STICKLINE(低位金叉,0,DIFF1,1.5,0),COLOR009999;
STICKLINE(低位金叉,0,DIFF1,1,0),COLOR00FFFF;
DRAWTEXT(低位金叉,0.2,’ 低位金叉’),COLOR00FF88;
JCCOUNT:=COUNT(CROSS(DIFF1,DEA1),BArslAST(DEA1>=0));
二次金叉:=CROSS(DIFF1,DEA1) AND DEA1<0 AND COUNT(JCCOUNT=2,21)=1;
STICKLINE(二次金叉,MACD1,-0.01,3,0),COLOR440044;
STICKLINE(二次金叉,MACD1,-0.01,2.5,0),COLOR660066;
STICKLINE(二次金叉,MACD1,-0.01,1.5,0),COLOR990099;
STICKLINE(二次金叉,MACD1,-0.01,1,0),COLORFF00FF;
DRAWTEXT(二次金叉,DEA1*1.3,’ 二次金叉’),COLORYELLOW;
A1:=BARSLAST(REF(CROSS(DIFF1,DEA1),1));
底背离:=REF(CLOSE,A1+1)>CLOSE AND DIFF1>REF(DIFF1,A1+1) AND CROSS(DIFF1,DEA1);
STICKLINE(底背离,0,0.03,6,0),COLOR00FF00;
DRAWLINE(A1=0,DEA1,底背离,DEA1,0),COLORRED,LINETHICK1;
DRAWTEXT(底背离,0.03,’ 底背离’),COLORFF00FF;
A2:=BARSLAST(REF(CROSS(DEA1,DIFF1),1));
顶背离:=REF(CLOSE,A2+1)<CLOSE AND REF(DIFF1,A2+1)>DIFF1 AND CROSS(DEA1,DIFF1);
DRAWLINE(A2=0,DEA1,顶背离,DEA1,0),COLORFF8800,LINETHICK1;
DRAWTEXT(顶背离,-0.02,’ 顶背离’),COLORFFFF00;
DIFF:DIFF1,COLOR009922,LINETHICK2;
DEA:DEA1,COLORYELLOW,LINETHICK2;
ZT:=CROSS(DEA,DIFF);
LS0:=BARSLAST(ZT);
S1:=IF(1,LS0=1,ZT) AND IF(1,DIFF<DEA,0);
DRAWTEXT(S1 AND DIFF>0,DIFF*0.8,’1′),COLOR00FF00;
DRAWTEXT(S1 AND DIFF<0,DIFF*1.8,’1′),COLOR00FF00;
S3:=IF(3,LS0=3,ZT) AND IF(3,DIFF<DEA,0);
DRAWTEXT(S3 AND DIFF>0,DIFF*0.8,’3′),COLOR00FF00;
DRAWTEXT(S3 AND DIFF<0,DIFF*1.4,’3′),COLOR00FF00;
S5:=IF(5,LS0=5,ZT) AND IF(5,DIFF<DEA,0);
DRAWTEXT(S5 AND DIFF>0,DIFF*0.8,’5′),COLOR00FF00;
DRAWTEXT(S5 AND DIFF<0,DIFF*1.4,’5′),COLOR00FF00;
S8:=IF(8,LS0=8,ZT) AND IF(8,DIFF<DEA,0);
DRAWTEXT(S8 AND DIFF>0,DIFF*0.8,’8′),COLOR00FF00;
DRAWTEXT(S8 AND DIFF<0,DIFF*1.8,’8′),COLOR00FF00;
S13:=IF(13,LS0=13,ZT) AND IF(8,DIFF<DEA,0);
DRAWTEXT(S13 AND DIFF>0,DIFF*0.8,’13’),COLOR00FF00;
DRAWTEXT(S13 AND DIFF<0,DIFF*1.2,’13’),COLOR00FF00;
S21:=IF(21,LS0=21,ZT) AND IF(21,DIFF<DEA,0);
DRAWTEXT(S21 AND DIFF>0,DIFF*0.8,’21’),COLOR00FF00;
DRAWTEXT(S21 AND DIFF<0,DIFF*1.2,’21’),COLOR00FF00;
S26:=IF(26,LS0=26,ZT) AND IF(26,DIFF<DEA,0);
DRAWTEXT(S26 AND DIFF>0,DIFF*0.8,’26’),COLOR00FF00;
DRAWTEXT(S26 AND DIFF<0,DIFF*1.2,’26’),COLOR00FF00;
S29:=IF(29,LS0=29,ZT) AND IF(29,DIFF<DEA,0);
DRAWTEXT(S29 AND DIFF>0,DIFF*0.8,’29’),COLOR00FF00;
DRAWTEXT(S29 AND DIFF<0,DIFF*1.2,’29’),COLOR00FF00;
S34:=IF(34,LS0=34,ZT) AND IF(34,DIFF<DEA,0);
DRAWTEXT(S34 AND DIFF>0,DIFF*0.8,’34’),COLOR00FF00;
DRAWTEXT(S34 AND DIFF<0,DIFF*1.8,’34’),COLOR00FF00;
S55:=IF(55,LS0=55,ZT) AND IF(55,DIFF<DEA,0);
DRAWTEXT(S55 AND DIFF>0,DIFF*0.8,’55’),COLOR00FF00;
DRAWTEXT(S55 AND DIFF<0,DIFF*1.8,’55’),COLOR00FF00;
S68:=IF(68,LS0=68,ZT) AND IF(68,DIFF<DEA,0);
DRAWTEXT(S68 AND DIFF>0,DIFF*0.8,’68’),COLOR00FF00;
DRAWTEXT(S68 AND DIFF<0,DIFF*1.8,’68’),COLOR00FF00;
ZTJ:=CROSS(DIFF,DEA);
LSJ:=BARSLAST(ZTJ);
SJ1:=IF(1,LSJ=1,ZTJ) AND IF(1,DIFF>DEA,0);
DRAWTEXT(SJ1 AND DIFF>0,DIFF*1.2,’1′),COLORFFFFFF;
DRAWTEXT(SJ1 AND DIFF<0,DIFF*0.8,’1′),COLORFFFFFF;
SJ3:=IF(3,LSJ=3,LSJ) AND IF(3,DIFF>DEA,0);
DRAWTEXT(SJ3 AND DIFF>0,DIFF*1.2,’3′),COLORFFFFFF;
DRAWTEXT(SJ3 AND DIFF<0,DIFF*0.8,’3′),COLORFFFFFF;
SJ5:=IF(5,LSJ=5,ZTJ) AND IF(5,DIFF>DEA,0);
DRAWTEXT(SJ5 AND DIFF>0,DIFF*1.2,’5′),COLORFFFFFF;
DRAWTEXT(SJ5 AND DIFF<0,DIFF*0.8,’5′),COLORFFFFFF;
SJ8:=IF(8,LSJ=8,ZTJ) AND IF(8,DIFF>DEA,0);
DRAWTEXT(SJ8 AND DIFF>0,DIFF*1.2,’8′),COLORFFFFFF;
DRAWTEXT(SJ8 AND DIFF<0,DIFF*0.8,’8′),COLORFFFFFF;
SJ13:=IF(13,LSJ=13,ZTJ) AND IF(8,DIFF>DEA,0);
DRAWTEXT(SJ13 AND DIFF>0,DIFF*1.2,’13’),COLORFFFFFF;
DRAWTEXT(SJ13 AND DIFF<0,DIFF*0.8,’13’),COLORFFFFFF;
SJ18:=IF(18,LSJ=18,ZTJ) AND IF(8,DIFF>DEA,0);
DRAWTEXT(SJ18 AND DIFF>0,DIFF*1.2,’18’),COLORFFFFFF;
DRAWTEXT(SJ18 AND DIFF<0,DIFF*0.8,’18’),COLORFFFFFF;
SJ21:=IF(21,LSJ=21,ZTJ) AND IF(21,DIFF>DEA,0);
DRAWTEXT(SJ21 AND DIFF>0,DIFF*1.2,’21’),COLORFFFFFF;
DRAWTEXT(SJ21 AND DIFF<0,DIFF*0.8,’21’),COLORFFFFFF;
SJ26:=IF(26,LSJ=26,ZTJ) AND IF(26,DIFF>DEA,0);
DRAWTEXT(SJ26 AND DIFF>0,DIFF*1.2,’26’),COLORFFFFFF;
DRAWTEXT(SJ26 AND DIFF<0,DIFF*0.8,’26’),COLORFFFFFF;
SJ29:=IF(29,LSJ=29,ZTJ) AND IF(29,DIFF>DEA,0);
DRAWTEXT(SJ29 AND DIFF>0,DIFF*1.2,’29’),COLORFFFFFF;
DRAWTEXT(SJ29 AND DIFF<0,DIFF*0.8,’29’),COLORFFFFFF;
SJ34:=IF(34,LSJ=34,ZTJ) AND IF(34,DIFF>DEA,0);
DRAWTEXT(SJ34 AND DIFF>0,DIFF*1.2,’34’),COLORFFFFFF;
DRAWTEXT(SJ34 AND DIFF<0,DIFF*0.8,’34’),COLORFFFFFF;
SJ47:=IF(47,LSJ=47,ZTJ) AND IF(47,DIFF>DEA,0);
DRAWTEXT(SJ47 AND DIFF>0,DIFF*1.2,’47’),COLORFFFFFF;
DRAWTEXT(SJ47 AND DIFF<0,DIFF*0.8,’47’),COLORFFFFFF;
SJ55:=IF(55,LSJ=55,ZTJ) AND IF(55,DIFF>DEA,0);
DRAWTEXT(SJ55 AND DIFF>0,DIFF*1.2,’55’),COLORFFFFFF;
DRAWTEXT(SJ55 AND DIFF<0,DIFF*0.8,’55’),COLORFFFFFF;
SJ60:=IF(60,LSJ=60,ZTJ) AND IF(60,DIFF>DEA,0);
DRAWTEXT(SJ60 AND DIFF>0,DIFF*1.2,’63’),COLORFFFFFF;
DRAWTEXT(SJ60 AND DIFF<0,DIFF*0.8,’63’),COLORFFFFFF;
SJ68:=IF(68,LSJ=68,ZTJ) AND IF(68,DIFF>DEA,0);
DRAWTEXT(SJ68 AND DIFF>0,DIFF*1.2,’68’),COLORFFFFFF;
DRAWTEXT(SJ68 AND DIFF<0,DIFF*0.8,’68’),COLORFFFFFF;
DRAWICON(CROSS(MACD,0),MACD,1);
DRAWICON(CROSS(DIFF,DEA),DIFF,1);
DRAWICON(CROSS(DEA,DIFF),DEA,2);