MACD的英文原名為 Moving Average Convergnece & Divergence,也就是收斂發散移動平均線的意思,所以顧名思義它是移動平均線的一種。這個指標在技術分析各指標當中,算是極普遍又有名的一個。以下是MACD的計算步驟,附表1即為MACD的計算範例:
1. 計算出真實成本:
Pt=Ct ´ 1/2 + Ht ´ ¼ + Lt ´ ¼ 其中 Ct為收盤價, Ht為最高價, Lt為最低價
2. 計算兩條平滑平均線 12EMA與26EMA
Et = Et-1 + α ´ ( Pt – Et-1 )
其中 Et為當日平滑平均值, Et-1為前一日平滑平均值, Pt為當日真實成本,
α= 2 / ( 1+ MA) ; MA = 平均天數 (即=12或26 )
3. 計算正負差線
DIF = 12EMA – 26EMA
4. 計算MACD線(或稱EDA線)
將DIF線取九天EMA平均值即得
5.柱線 = DIF線–MACD線
一般說來,MACD指標可以說是一個非常優秀的指標,也正因為如此,所以它才會那麼廣受歡迎。
MACD的函數
SetBarMode(1);
// MACD function
// Input: Price序列, FastLength, SlowLength, MACDLength
// Output: DifValue, MACDValue, OscValue
//
Input: Price(numericseries), FastLength(numericsimple), SlowLength(numericsimple), MACDLength(numericsimple);
Input: DifValue(numericref), MACDValue(numericref), OscValue(numericref);
DifValue = XAverage(price, FastLength) - XAverage(price, SlowLength);
MACDValue = XAverage(DifValue, MACDLength) ;
OscValue = DifValue - MACDValue;
指標腳本
// XQ: MACD指標
//
input: FastLength(12), SlowLength(26), MACDLength(9);
variable: price(0);
SetInputName(1, "DIF短天數");
SetInputName(2, "DIF長天數");
SetInputName(3, "MACD天數");
price = WeightedClose();
Value1 = XAverage(price, FastLength) - XAverage(price, SlowLength);
Value2 = XAverage(Value1, MACDLength) ;
Value3 = Value1 - Value2 ;
// 前面區段資料變動較大, 先不繪出
//
if CurrentBar <= SlowLength then
begin
Value1 = 0;
Value2 = 0;
Value3 = 0;
end;
Plot1(Value1, "DIF");
Plot2(Value2, "MACD");
Plot3(Value3, "Osc");
參考的圖
