MACD 在盤整市常出現金叉後下跌、死叉後反彈,未必是公式出錯。它把過去價格平滑後再比較,當價格在區間內反覆,訊號也可能跟著反覆。真正需要檢查的是:你如何事前辨認環境、如何定義假訊號,以及頻繁交易後還剩多少幅度。
以下使用日線 MACD 12/26/9,柱體=DIF−DEA,未乘 2。所有事件與費用均為假設算例,不是 SPY 回測結果;研究目標是把訊號密度和成本分開核對。

什麼是盤整?不要等看完後市才畫區間
肉眼看到一段行情最後沒升沒跌,很容易稱它為盤整,但交易當時並不知道區間會維持多久。可先選一個可計算定義,例如最近 20 根最高價與最低價之差,除以目前收市價不超過 6%,且 SMA20 與五根前的變化不超過 0.5%。門檻只是研究設定,不是通用市場標準。
假設窗口最高 103、最低 98、當前收市 100,區間寬度=5÷100=5%;SMA20 從 100 升至 100.2,變化為 0.2%,因此符合這個設定。若隔天突破區間,就只能從隔天起改變分類,不能把之前符合條件的日期從樣本中刪掉。
價格區間與 MACD 纏繞也要分開。前者描述 OHLC 範圍,後者描述 DIF 與 DEA 常常交換上下位置;兩者可以同時發生,卻不是完全相同的判準。否則以交叉太多定義盤整,再宣稱盤整交叉多,會變成循環論證。
延遲怎樣造成反覆?先理解兩層平滑
DIF 是 EMA12 減 EMA26,DEA 再把 DIF 做九根 EMA。價格短暫上升時,快 EMA 較快回應,DIF 可能上穿 DEA;若價格隨即回到區間下方,又可能反向交叉。交叉確認的是平滑值關係,不是價格已突破區間的證明。
Fidelity 的官方指標說明也列出區間行情中的反覆交叉現象。把參數縮短可能較早反應,同時也可能更頻密;拉長參數可能減少事件,卻更晚捕捉真正轉向。這是需要測試的取捨,沒有只改善一面而不付代價的按鈕。
有哪些事前過濾方法?每項都要留下代價欄位
可研究三種互不等同的方法:價格突破預先定義區間才接受交叉;要求均線方向一致;或要求 DIF 與 DEA 差距超過某個尺度後才確認。每次只改一項,分別記錄減少多少交易、延後幾根,以及錯過哪些後來延伸的行情。
若採固定美元差距,不同價位股票難以公平比較;如改用價格百分比或 ATR 尺度,要另外明示公式。若從交叉當根起要求連續兩根成立,須等第二根收市才確認,較原交叉晚一根;若另等兩根,則應明說不含交叉當根。模擬成交必須發生在相應確認之後,不能沿用原金叉那根的價格。
最低持有期也不能當成沒有風險的過濾。它可避免立即因小交叉平倉,但若失效價已被跌穿,是否仍強迫持有?應將訊號出場與保護性出場的優先順序寫清楚,否則只是把原本短虧損延長。
交易成本怎樣改變結果?用美元與每股單位核算
| 項目 | 每次往返 | 20 次合計 |
|---|---|---|
| 未扣成本平均價格收益 0.08 美元/股 | 8 美元 | 160 美元 |
| 兩邊價差與滑價合計 0.06 美元/股 | 6 美元 | 120 美元 |
| 兩邊其他費用合計 | 2 美元 | 40 美元 |
| 上述假設下的淨額 | 0 美元 | 0 美元 |
這裡 0.06 已經是往返合計,不能再乘二。若改成「單邊每股 0.06」,往返便是 0.12,結果會不同;記帳時要寫單邊或往返。實際價格、股數與費率逐筆變動,上表不是任何券商的報價,也沒有把稅務或融資成本包進去。
零佣金不等於零交易摩擦。若用中間價作模擬基準,可另加半價差與額外滑價;若已採實際買入賣出報價,便要檢查是否重複扣了價差。TradingView 的模擬成交文件提供費用及滑價設定說明,實際研究仍須按自己的假設逐項校對。
實作:先數交叉,再討論交易結果
從有授權的 SPY 日線資料選一個事前日期範圍,記錄供應商、擷取日期、價格調整方式與交易時段。先套用盤整條件,保留所有符合日期,再用已完成 K 線計算 MACD;初值與前置資料長度亦寫進表頭。
- 金叉記為前根 DIF≤DEA、當根 DIF>DEA;死叉使用相反不等式。
- 列出每個事件日期、距上次交叉根數,以及當時是否符合盤整分類。
- 計算每 20 根的交叉數、交叉間隔中位數;沒有事件的窗口也保留。
- 另開成交表,加入進出場、費用與取消原因,才可評估淨結果。
把「十根內又反向交叉」定為一種訊號反覆標記可以,但不要直接叫虧損率。是否虧損還受成交與出場規則影響。保留原始事件表,日後才能確認過濾究竟減少了反覆,還是只是少做交易。
反例:盤整結束的第一個金叉,也可能被過濾掉
假設價格長期在 98 至 103,新的金叉出現時仍在 102,嚴格要求突破 103 的規則不接受;之後跳空到 108。這並不證明過濾錯誤,而是顯示減少區間交易可能同時延後真正突破。要連同錯過的事件記錄,不能只展示成功避開的虧損。
相反,假突破到 104 後迅速跌回 100,也可能讓價格過濾與 MACD 一起失效。清楚保留兩種反例,才能合理比較設定。需要重溫訊號本身可讀MACD 教學;交易摩擦可參考買賣價差與滑價。
常見問題
MACD 為什麼常常金叉後下跌?
金叉只描述 DIF 上穿 DEA。價格可能仍在區間、確認有延遲,或隨後出現新資訊;不能把交叉當作之後必漲的條件。
盤整市就不能用 MACD 嗎?
不是絕對禁用。可用來研究訊號密度或不同規則,但若作交易,必須核對反覆穿越、成交成本及過濾造成的機會損失。
MACD 適合超短線嗎?
分鐘線可以計算,卻有不同的資料噪音、時段及摩擦。日線上的觀察不能直接當成分鐘策略證據,須另立資料與執行測試。
延伸閱讀
本文供投資研究與學習參考,不構成個別投資建議;指標與假設算例不保證未來報酬,投資可能損失本金。