技術分析 · 趨勢指標

MACD 指標完整教學
黃金/死亡交叉的真實用法

2026-06-03·11 分鐘閱讀·初學 ~ 中階

MACD(Moving Average Convergence Divergence,指數平滑移動平均線)由 Gerald Appel 在 1979 年發明,是技術分析最經典的趨勢追蹤指標。 幾乎每個人都聽過「黃金交叉買、死亡交叉賣」,但單看交叉勝率約 50% — 跟丟硬幣差不多。本文講為什麼 + 怎麼改進。

1. MACD 是什麼?三條線在幹嘛

MACD 由三個元素組成:

① MACD 線 = EMA(12) - EMA(26)

兩條均線的差值。當短期 EMA 高過長期 EMA → MACD > 0;反之 < 0。 快速反映短期動能 vs 長期動能的關係。

② Signal 線 = EMA(MACD, 9)

MACD 線的 9 期均線,反應慢一些。當作 MACD 線的「平滑參考」。

③ Histogram = MACD - Signal

兩條線的差值用直方圖呈現。Histogram 為正(綠柱)= MACD 在 Signal 上面 = 多頭動能; 反之為負(紅柱)= 空頭動能。

MACD 指標教學圖上方價格 K 線,下方為 MACD 雙線。MACD(藍)上穿 Signal(橙)為 黃金交叉,價格隨後上漲;下穿為死亡交叉,價格隨後下跌。價格(K 線)MACDMACD 線Signal 線🟢 黃金交叉🔴 死亡交叉
圖 2:MACD 黃金/死亡交叉,搭配價格走勢

2. 入門用法:黃金 / 死亡交叉

這是教科書版本:

  • 黃金交叉:MACD 線從下往上穿越 Signal 線 → 買
  • 死亡交叉:MACD 線從上往下穿越 Signal 線 → 賣
為什麼純交叉策略勝率約 50%
MACD 是滯後指標 — 它是兩條均線的差, 交叉發生時行情已經走了一段。震盪盤更慘, 可能 1 天黃金死亡交叉各 3 次,全部止損出場。

Pine 實作(純交叉,教學用):

pine
//@version=5
strategy("MACD 純交叉(教學版)", overlay=true)

[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)

if (ta.crossover(macdLine, signalLine))
    strategy.entry("Long", strategy.long)

if (ta.crossunder(macdLine, signalLine))
    strategy.entry("Short", strategy.short)

3. 中階用法:MACD + 零軸過濾

黃金交叉發生在零軸上方(MACD > 0) vs零軸下方(MACD < 0)意義不同:

  • 零軸上方的黃金交叉:多頭趨勢中的回踩買點,勝率高
  • 零軸下方的黃金交叉:弱反彈,常常假突破
  • 空頭交叉同理(零軸下方更可靠)
pine
//@version=5
strategy("MACD + 零軸過濾", overlay=true)

[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)

// 只接受「零軸上方的多頭交叉」+「零軸下方的空頭交叉」
longSignal = ta.crossover(macdLine, signalLine) and macdLine > 0
shortSignal = ta.crossunder(macdLine, signalLine) and macdLine < 0

if (longSignal)
    strategy.entry("Long", strategy.long)
if (shortSignal)
    strategy.entry("Short", strategy.short)

4. 進階用法:MACD 直方圖縮放

Histogram 不只是看正負,絕對值大小反映動能強度。 當紅柱連續變短(負值縮小) → 空頭動能在減弱 → 可能反彈。 這比看交叉早 1-2 根 K 棒。

pine
//@version=5
indicator("Histogram 縮放偵測", overlay=false)

[_, _, hist] = ta.macd(close, 12, 26, 9)

// 連續 3 根紅柱越來越短 → 空頭動能衰竭
weakening_down = hist < 0 and hist > hist[1] and hist[1] > hist[2] and hist[2] > hist[3]

// 連續 3 根綠柱越來越短 → 多頭動能衰竭
weakening_up = hist > 0 and hist < hist[1] and hist[1] < hist[2] and hist[2] < hist[3]

bgcolor(weakening_down ? color.new(color.green, 80) : na, title="多頭警示")
bgcolor(weakening_up ? color.new(color.red, 80) : na, title="空頭警示")

5. 高階用法:MACD 背離

跟 RSI 一樣,MACD 也有背離訊號:

  • 價格創新高,MACD 創新高 → 空頭背離(看跌)
  • 價格創新低,MACD 創新低 → 多頭背離(看漲)

MACD 背離跟 RSI 背離原理一樣,但 MACD 的背離通常更早出現(因為 MACD 反應短期動能更敏感)。可以兩個都看,互相確認。

背離怎麼自動化偵測
Pine 內建 ta.pivothighta.pivotlow 可以找 局部高低點。比對價格 pivot vs MACD pivot 的方向就能寫背離偵測。 TradingView 也有許多現成的「MACD Divergence」公開腳本可以參考。

6. MACD 參數可以改嗎?

預設 (12, 26, 9) 是 Wilder 當年用日線得出的。在不同市場 / 時間框架, 可以調:

情境建議參數理由
標準(傳統)(12, 26, 9)通用
較敏感(短線)(5, 13, 5)捕捉短線轉折,雜訊多
較穩定(中長線)(19, 39, 9)過濾雜訊,但訊號慢
高波動加密永續(12, 26, 9) 或 (8, 17, 9)標準仍可用,較短款更應對快波動
不要過度調參
參數調太多很容易 overfit(過擬合)— 在歷史資料上完美但未來不準。 建議先用標準參數驗證策略邏輯,再用前向測試(forward-test) 至少 30 天確認穩定,最後才微調參數。

7. 常見錯誤

❌ 在震盪盤用 MACD

MACD 是趨勢追蹤指標,震盪盤連續假交叉打臉。 先用 ADX / 波動率指標判斷市場狀態,趨勢盤才用 MACD。

❌ 只用 MACD 不設止損

MACD 給的是進場訊號,不是出場保護。 配合 ATR 止損或固定百分比止損是必須的。

❌ 多時間框架不一致

1 小時 MACD 黃金交叉但日線在死亡交叉中 → 逆勢進場,勝率低。 先看大時間框架方向再用小時間框架抓進場點。

Get started

想把今天學到的東西自動化跑起來?

把你的策略接上 TradingView webhook,自動下單到 Binance / OKX / Bybit 等 7 家交易所。

免費註冊 TVSBot

8. 進階:MACD + RSI 雙重確認策略

實戰常見組合:MACD 給進場、RSI 過濾趨勢方向。

pine
//@version=5
strategy("MACD + RSI 雙重確認", overlay=true)

[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
rsi = ta.rsi(close, 14)

// 多頭:MACD 黃金交叉 + MACD > 0 + RSI > 50
longSignal = ta.crossover(macdLine, signalLine) and macdLine > 0 and rsi > 50

// 空頭:MACD 死亡交叉 + MACD < 0 + RSI < 50
shortSignal = ta.crossunder(macdLine, signalLine) and macdLine < 0 and rsi < 50

if (longSignal)
    strategy.entry("Long", strategy.long)
if (shortSignal)
    strategy.entry("Short", strategy.short)