2014年9月23日 星期二

MACD公式計算步驟 (附上Excel範例)



MACD 全名叫 [指數平滑異同移動平均線]。

找了很多資料,有些網站給的公式和計算方式都有點不太一樣,直接看數學公式實在太辛苦了,花了點時間整理和比對看盤軟體,再用Excel驗算整理出來給需要的人。

大家普遍使用MACD(12,26,9),就是12日與26日的EMA(指數平滑平均值),與9日MACD值,目前也還沒看到有人用其它的參數,其計算步驟如下:
  1. 每日需求指數(Demand Index,DI),DI = (最高價 + 最低價 + 2 × 收盤價) ÷ 4。 (註1) 
  2. 首日EMA12 = 12天內DI 總和 ÷ 12 
  3. 首日EMA26 = 26天內DI 總和 ÷ 26 
  4. 當日平滑修正值 EMA12 = [前一日EMA12 × (12 - 1) + 今日DI × 2] ÷ (12+1)
    簡化後 EMA12 = 前一日EMA12 × (11/13) + 今日DI × 2/13 
  5. 當日平滑修正值 EMA26 = [前一日EMA26 × (26 - 1) + 今日DI × 2] ÷ (26+1)
    簡化後 EMA26 = 前一日EMA26 × (25/27) + 今日DI × 2/27 
  6. 差離值DIF = 12日EMA - 26日EMA 
  7. 首日MACD = 9天內DIF總和 ÷ 9 
  8. MACD = (前一日MACD × (9 - 1) + 今日DIF × 2) ÷ (9 + 1)
    簡化後 MACD = (前一日MACD × 8/10 + 今日DIF × 2/10 
  9. OSC = DIF - MACD 

註1: 有些人會直接用收盤價,範例檔有比較使用收盤價直接來當DI值,結果差異不太大,OSC柱反轉時間與比例都沒有不同天的問題。

註: EMA26就需要26天的日K資料,MACD9就需要累積9天,也就是要有34天的日K棒才算的出來MACD值。

註: 指數平滑移動平均線 EMA(Exponential Moving Average),是以指數方式遞減愈久資料權重的移動平均,相對於簡單移動平均來說,更加重了近幾日值的權重,也較能反應短期的波動,算是中短線的指標。


Excel範例,以加權指數為例,下載連結:MACD.xls

10 則留言:

  1. 不好意思,請問一下,我看了你的EXCEL檔以後,發現你沒有使用"當日平滑修正值 ",請問這個"當日平滑修正值 "是做什麼用的?為什麼需要這個東西?

    回覆刪除
  2. 我有用當日平滑修正值啊! 
    當日平滑修正值是為了程式化方便,在計算時只要拿前一天的結果來計算就好了,真的要準當然還是乖乖的照公式算,但為了計算快速(以前的電腦比較慢吧),才搞出來的吧,反正值不會差太多,就勉強接受了。
    不過久而久之,反而變成用當日平滑修正值才是對的,積非成是吧。

    回覆刪除
  3. Excel file 是否已移除,能不能再度享。謝謝

    回覆刪除
  4. 大大你好喔
    如果想用 繪製 週 MACD 那要怎麼辦呢?

    回覆刪除
  5. 可否請樓主 也作一章 (RSI) 的Excel範例
    我弄來弄去都好像不對 也不知道那一點出錯

    回覆刪除
  6. 作者已經移除這則留言。

    回覆刪除
  7. 謝謝,照做成功了,非常感謝!網上其他文章、python ta library 算出來都與台灣各看盤軟體不同!難得這篇文章演示的 excel 公式計算結果與富邦 e01 軟體一致。

    回覆刪除
  8. 感謝分享 學會MACD公式計算了

    回覆刪除