MACD 英文全称:moving average convergence divergence,中文译称为:指数平滑异同平均线 MACD,是从双指数移动平均线发展而来的。
对于股票市场中的双线MACA,它是由快的指数移动平均线(EMA参数 12)减去慢的指数移动平均线(EMA参数26)得到快线DIF,再用2×(快线DIF-DIF的9日加权移动均线DEA)得到MACD柱。
而对于MT4自带的单线MACD,它的柱子是怎么计算的呢?我们打开MT4自带的单线MACD源代码,可以看到其参数如下:
input int InpFastEMA=12; // Fast EMA Period 快EMA均线参数
input int InpSlowEMA=26; // Slow EMA Period 慢EMA均线参数
input int InpSignalSMA=9; // Signal SMA Period
在看一下MACD柱子的计算代码:
for(i=0; i<limit; i++)
ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
很明显就可以看到单线MACD柱子是由快的EMA平均线( 12)减去慢的EMA平均线(26)得到的。

如果要验证它的计算结果,我们可以打开数据窗口用12EMA均线的值减去26EMA均线的值来核对下。因为MACD指标指标线取值是市场报价位数加上一个小数位:
IndicatorDigits(Digits+1);
所以我们计算的结果有个细微尾数差,但这并不影响它的计算方法的。