MACD

By | 2019-02-15

MACD的英文原名為 Moving Average Convergnece & Divergence,也就是收斂發散移動平均線的意思,所以顧名思義它是移動平均線的一種。這個指標在技術分析各指標當中,算是極普遍又有名的一個。以下是MACD的計算步驟,附表1即為MACD的計算範例:

1.      計算出真實成本:

 

 Pt=Ct ´ 1/2 + Ht ´ ¼ + Lt  ´ ¼    其中 Ct為收盤價, Ht為最高價, Lt為最低價

 

2.      計算兩條平滑平均線 12EMA26EMA


Et =  Et-1  +  α  
´  (  Pt  –  Et-1  )

其中 Et為當日平滑平均值, Et-1為前一日平滑平均值,  Pt為當日真實成本,         

α= 2 / ( 1+ MA)   MA = 平均天數 (=1226 )

3. 計算正負差線


DIF = 12EMA – 26EMA

4. 計算MACD(或稱EDA)

   DIF線取九天EMA平均值即得

 

5.柱線 = DIF線–MACD

 

一般說來,MACD指標可以說是一個非常優秀的指標,也正因為如此,所以它才會那麼廣受歡迎。

MACD的函數

1SetBarMode(1);
2
3// MACD function
4// Input: Price序列, FastLength, SlowLength, MACDLength
5// Output: DifValue, MACDValue, OscValue
6// 
7Input: Price(numericseries), FastLength(numericsimple), SlowLength(numericsimple), MACDLength(numericsimple);
8Input: DifValue(numericref), MACDValue(numericref), OscValue(numericref);
9
10DifValue = XAverage(price, FastLength) - XAverage(price, SlowLength);
11MACDValue = XAverage(DifValue, MACDLength) ;
12OscValue = DifValue - MACDValue;

指標腳本

1// XQ: MACD指標
2//
3input: FastLength(12), SlowLength(26), MACDLength(9);
4variable: price(0);
5
6SetInputName(1, "DIF短天數");
7SetInputName(2, "DIF長天數");
8SetInputName(3, "MACD天數");
9
10price = WeightedClose();
11
12Value1 = XAverage(price, FastLength) - XAverage(price, SlowLength);
13Value2 = XAverage(Value1, MACDLength) ;
14Value3 = Value1 - Value2 ;
15
16// 前面區段資料變動較大, 先不繪出
17//
18if CurrentBar <= SlowLength then
19begin
20 Value1 = 0;
21 Value2 = 0;
22 Value3 = 0;
23end;
24
25Plot1(Value1, "DIF");
26Plot2(Value2, "MACD");
27Plot3(Value3, "Osc");

參考的圖

MACD