MACD 指標詳解:計算方式、訊號與參數設定
MACD 是 12 期與 26 期指數移動平均線的差距,再加上 9 期訊號線與柱狀圖。它的交叉、零軸與背離,要寫成明確的規則並把交易成本算進去回測,才真正有用。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
什麼是 MACD 指標?
MACD(指數平滑異同移動平均線,moving average convergence divergence)是一種動能指標,用 12 期指數移動平均線減去 26 期指數移動平均線。這個差值再取 9 期平均,就是訊號線,兩條線之間的差距則是柱狀圖。交易者會看兩條線的交叉、零軸穿越,以及與價格之間的背離。
想像有兩個人跟著價格走,一個快、一個慢。價格開始上漲時,快的人先反應,跑在前面。MACD 線就是這兩個人之間的距離。名稱也由此而來:行情轉強時,兩條平均線會拉開(diverge,發散);行情轉弱時,兩條平均線會靠攏(converge,收斂)。
柱狀圖多了第二層資訊。汽車的時速表顯示你的速度,而你在座椅上感受到的推背感,則顯示你是否還在加速。MACD 線就是速度,柱狀圖就是那股推背感。
MACD 怎麼計算?
MACD 經過三個平均步驟,全部以每根 K 棒的收盤價為基礎。指數移動平均線(EMA)是近期收盤價的平均,給最新的價格最大的權重,並讓較舊的價格逐漸淡出。就像你判斷天氣的方式:昨天比上個月更重要,但上個月也不會被忘掉。若想了解各種平均線的背景,可參考移動平均線指標頁面。
- 計算收盤價的 12 期 EMA。
- 計算收盤價的 26 期 EMA。
- 用快速 EMA 減去慢速 EMA,得到 MACD 線。
- 對 MACD 線本身計算 9 期 EMA,得到訊號線。
- 用 MACD 線減去訊號線,把結果畫成零軸上下的柱子,就是柱狀圖。
你只需要記得第 3 步的公式:
MACD 線 = EMA(12) − EMA(26)
EMA(12) 是收盤價的 12 期指數移動平均線,EMA(26) 是 26 期的。一期就是一根 K 棒。在 5 分鐘圖上,12 期代表最近 12 根 5 分鐘 K 棒;在日線圖上,則代表 12 個交易日。
訊號線是 MACD 線的平滑版本,走勢略微落後於 MACD 線。柱狀圖是 MACD 線與訊號線之間的距離。MACD 線在訊號線之上時,柱子在零軸上方。
如果需要能跨市場比較的版本,可以用價格百分比震盪指標(percentage price oscillator),它把兩條平均線的差距除以較慢的那條平均線。形狀相同,但以百分比表示。
如何解讀 MACD 的線與柱狀圖?
常見的解讀有三種:訊號線交叉、相對零軸的位置,以及與價格的背離。每一種都有簡單的意義,也有可以檢驗的明確版本。
| 解讀 | 代表什麼 | 回測用的明確版本 |
|---|---|---|
| 多頭交叉 | 短期動能相對於自身近期平均正在轉強 | 這根 K 棒收盤時 MACD 線在訊號線之上,前一次收盤時在其之下 |
| 空頭交叉 | 短期動能正在轉弱 | 這次收盤時 MACD 線在訊號線之下,前一次收盤時在其之上 |
| MACD 在零軸之上 | 12 期 EMA 在 26 期 EMA 之上,偏向上漲 | K 棒收盤時 MACD 線大於 0 |
| 零軸穿越 | 快速 EMA 已穿越慢速 EMA | MACD 線從一次收盤到下一次收盤改變正負號 |
| 柱狀圖縮小 | MACD 與訊號線之間的差距正在收窄,動能放慢 | 柱狀圖的大小比前一根 K 棒小,並持續一段設定的 K 棒數 |
| 背離 | 價格與動能走勢不一致 | 需要明確定義的波段高點或低點,例如最近 N 根 K 棒的最高價 |
柱狀圖之所以有用,是因為它會在交叉發生之前先縮小。柱子變小,代表 MACD 線正在向訊號線彎曲。這能更早提示轉折,但同時也會帶來更多錯誤提示。
背離是指價格創新高或新低,但 MACD 沒有跟著創新高或新低。空頭背離是價格創出更高的高點,而 MACD 的高點卻更低。多頭背離是價格創出更低的低點,而 MACD 的低點卻更高。背離在圖表上很受歡迎,但比較難回測。你必須決定什麼算是波段點,這個選擇會增加參數與延遲。背離也可能在價格轉向之前,持續經歷好幾個更高的高點。
MACD 的 12、26、9 參數設定會改變什麼?
較短的週期讓 MACD 反應更快、訊號更頻繁;較長的週期讓它更平滑、更慢、更安靜。預設的 12、26、9 只是慣例,並不是針對你的市場測出來的最佳值。
| 設定風格 | 範例數值 | 改變了什麼 |
|---|---|---|
| 較快 | 6, 13, 5 | 交叉更早出現、訊號更多、假訊號更多,每一筆交易都要負擔成本 |
| 預設 | 12, 26, 9 | 多數圖表顯示的標準設定 |
| 較慢 | 24, 52, 18 | 訊號較少、線條較平滑,進場與出場都較晚 |
K 棒週期的作用就像週期參數。在 5 分鐘 K 棒上使用 12、26、9,慢速平均線涵蓋約兩小時的交易(26 × 5 分鐘);在日線上,則涵蓋約五週。把 K 棒長度加倍、週期減半,會得到相近的圖形。請選擇符合你預計持有時間的 K 棒週期,再調整各期數。
訊號線週期主要決定你會得到多少次交叉。較短的訊號線緊貼 MACD 線,經常與它交叉;較長的訊號線交叉較少,也較晚。
多數看盤軟體,包括免費的網頁圖表與券商圖表,都以 12、26、9 作為 MACD 的預設值。比較不同圖表之前,先確認兩件事:兩條平均線都是指數型(有些平台可以切換成簡單平均),以及來源價格是收盤價。不同的選擇會得到不同的數值,交叉出現的 K 棒也不同。
為什麼 MACD 會給出遲到與錯誤的訊號?
MACD 由移動平均線構成,所以永遠是落後的;在盤整市場中,它還會來回交叉。這兩個弱點解釋了大多數 MACD 表現不佳的原因。
落後是指價格變動與指標顯示之間的延遲。EMA 大約落後價格其週期的一半。12 期 EMA 約落後 6 根 K 棒,26 期 EMA 約落後 12 根 K 棒,訊號線還會再疊加自己的延遲。因此訊號線交叉會在轉折之後好幾根 K 棒才出現,零軸穿越則更晚。在短而急的行情中,訊號出現時,行情可能已經走完大半。
假突破來回(whipsaw)是指訊號出現不久後就反轉,通常以小額虧損收場。在區間盤整時,12 期與 26 期 EMA 靠得很近,MACD 線在零軸附近徘徊,一次又一次與訊號線交叉。每次交叉都是一筆交易,每筆交易都要付手續費與滑價。
交易者通常用三種方式減少假突破來回:
- 順著零軸方向交易。只在 MACD 位於零軸之上時接受多頭交叉,只在零軸之下時接受空頭交叉。
- 加入趨勢強度濾網。例如只在 ADX 指標高於某個設定水準時才接受訊號,這樣能略過許多平靜的盤整區間。
- 要求最小差距。忽略柱狀圖始終很小的交叉,並以相對近期波動度來衡量,而不是用固定點數。
每一種濾網都會去掉一些假訊號,同時也去掉一些好訊號。每一種濾網也都增加一個你會忍不住想去調整的參數。這就是接下來兩個步驟很重要的原因。
如何把 MACD 變成可以回測的規則?
只要每個決定都寫得足夠明確,讓兩個人得出同樣的交易,MACD 的想法就變得可以檢驗。請依照以下順序:
- 固定市場、K 棒週期與交易時段。在期貨上,只含日盤的 K 棒與全時段的 K 棒會產生不同的 EMA 數值,所以請在回測前先選好。
- 在 K 棒收盤時定義訊號。例如:「這次收盤時 MACD 線在訊號線之上,前一次收盤時在其之下。」
- 在下一根 K 棒執行。收盤時才知道的訊號,無法在同一個收盤價成交。請在下一根 K 棒的開盤成交。
- 定義出場。反向交叉、停損、時間限制,或交易時段結束。出場要寫得和進場一樣精確。
- 略過暖機期。EMA 需要足夠的歷史資料,數值才會穩定。使用 12、26、9 時,至少要在大約 100 根 K 棒之後才開始計算交易。
- 為每一筆交易加上手續費與滑價。滑價是指回測所假設的價格與你實際會成交的價格之間的差額。
- 保留規則從未見過的資料。留下較晚的一段期間,用於樣本外檢驗。
假設範例
一條只做多的規則,用在 ES(E-mini S&P 500)15 分鐘 K 棒上,在多頭交叉時買進,在下一次空頭交叉時賣出。回測顯示 400 筆交易,毛損益為 $12,000,也就是每筆 $30。
每一買一賣(來回)的成本:手續費與規費 $5,再加上進場與出場各一個跳動點的滑價。ES 一個跳動點是 $12.50,所以滑價為 $25。總成本:每筆 $30。淨損益為每筆 $0。毛損益的回測看起來不錯,扣掉成本之後什麼都不剩。
現在加上零軸濾網。假設剩下 150 筆交易,毛損益為 $9,000,也就是每筆 $60。扣掉同樣的 $30 成本後,淨損益為每筆 $30。重點在於這個算術:筆數少而單筆較大的交易,比筆數多而單筆很小的交易更容易扛住成本。
回測中的交易成本這篇指南說明如何為你自己的商品估算手續費與滑價。在 AlphaPrime(Valynox)中,策略生成把研究想法轉成可檢驗的交易規則,包含進場與出場條件、參數範圍與搜尋限制。AlphaPrime 的回測接著成批評估這些候選策略,並納入手續費與滑價、下一根 K 棒執行與交易時段。
如何測試大量 MACD 參數設定而不自欺?
測試很多組設定沒有問題;只相信最好的那一組才是錯誤。你嘗試的組合越多,最好的那個結果就越可能有一部分的光彩來自運氣。
假設範例
你測試快速週期 6 到 15(10 個值)、慢速週期 20 到 40 以 2 為間隔(11 個值),以及訊號週期 5 到 12(8 個值)。這就是 10 × 11 × 8 = 880 種組合。880 種組合中最好的那一組,看起來會比它真正的品質更好,單純因為它是被挑選出來的最佳者。
Sullivan、Timmermann 與 White(1999)指出,當許多技術交易規則在同一份資料上測試時,最好的那一條可能只是靠運氣而看起來顯著,他們使用 bootstrap 檢定來對此做修正。Bailey 與共同作者(2014)指出,只要試驗次數夠多,即使沒有任何規則具有優勢,也可能出現很強的樣本內結果。請使用以下檢查:
- 看鄰近的參數。如果 12、26、9 表現好,那麼 11、26、9 與 13、28、9 也應該表現不差。被糟糕設定包圍的孤立峰值,是被擬合進去的雜訊。
- 評估樣本外期間。用較早的資料選出設定,再原封不動地套用在保留的資料上執行。
- 隨時間重複切分。推進分析在每個視窗上重新選擇設定,並在下一個視窗上檢驗,因此每個結果都來自選擇時未見過的資料。
- 計算交易筆數。只有 20 筆交易的設定,無論看起來多好,能告訴你的都很少。
如果你使用 AlphaPrime,這代表:把 MACD 當作一個想法,寫成明確的進場與出場條件並帶入貼近現實的成本,再用樣本外結果與鄰近設定來評斷它,而不是只看單一最佳的回測。
常見問題
最佳的 MACD 參數設定是什麼?
沒有哪一組設定對所有市場與 K 棒週期都是最好的。12、26、9 是常見的預設值,也是合理的起點。若要選擇自己的設定,請在你的市場上測試一個範圍的設定,並確認鄰近設定與樣本外結果也站得住腳。
MACD 是領先指標還是落後指標?
MACD 是落後指標,因為它由過去價格的移動平均線構成。它的柱狀圖會在訊號線交叉之前轉向,所以反應比兩條線更早。但它仍然是在價格已經移動之後才反應。
MACD 可以用在期貨當沖嗎?
可以。MACD 適用於任何 K 棒週期,而且週期數的單位是 K 棒,所以在 5 分鐘 K 棒上使用 12、26、9,幾小時內就會有反應。日內規則通常交易更頻繁,所以手續費與滑價佔每筆交易的比重更大。回測前請先決定使用日盤還是全時段的 K 棒。
哪裡可以看到免費的 MACD 圖表?
大多數看盤軟體與券商圖表都免費內建 MACD,通常以 12、26、9 為預設值。請確認兩條平均線都是指數型,且指標使用的是收盤價。不同的設定會產生不同的數值與交叉的 K 棒。
MACD 線與 MACD 柱狀圖有什麼差別?
MACD 線是 12 期 EMA 減去 26 期 EMA。柱狀圖是 MACD 線減去它的 9 期訊號線。MACD 線顯示動能;柱狀圖顯示這股動能是在增強還是減弱。
參考文獻
- Sullivan, R., Timmermann, A., & White, H. (1999). Data-Snooping, Technical Trading Rule Performance, and the Bootstrap. The Journal of Finance, 54(5), 1647–1691.
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
AlphaPrime 在這裡能幫上什麼
策略生成把研究想法轉成可檢驗的交易規則,包含進場與出場條件及參數範圍。AlphaPrime 的回測成批評估這些規則,並納入手續費、滑價、下一根 K 棒執行與交易時段。

