⚡ Whipsaw 災難解剖 — 為什麼回測 +89% 的策略實戰一定虧

同樣的「均線交叉」策略,在趨勢市 是聖杯,在震盪市 是絞肉機。本文拆解這個量化新手最常踩的坑。

場景:一個看起來不錯的回測

假設你今天試了一個經典策略 — 「5 日均線上穿 60 日均線就買進,反向穿越就出場」 — 跑某支中大型半導體股 10 年歷史,結果:

  • 全期報酬:+89% → 嗯,看起來不錯?
  • 勝率:18% → 等等,這數字怎麼這麼低?
  • 交易次數:75 次 → 平均一年 7-8 次
  • 平均持有:7 天 → 短進短出
  • 最大回撤 MDD:-48% → 接近腰斬
  • OOS 訓練期 Sharpe:-0.6 → 負的!

表面總報酬 +89%,但細節透露策略其實是廢的。為什麼?歡迎進入 whipsaw 災難現場。

什麼是 Whipsaw?

Whipsaw(來回打耳光)是技術交易最常見的災難 — 訊號連續觸發、但實際趨勢沒形成。買進後立刻反轉、出場後又反轉、再買進、再反轉... 每次都損失手續費 + 滑點,還順便繳「看錯方向 」的虧損費。

用我們回測 Demo裡的樣本 E (超高波動)配上短均線 (5/20) 你就能親眼看到:K 線圖會佈滿密集的進出場箭頭,每一對都是一筆小虧損。

Whipsaw 不是策略寫錯,而是策略用錯場合— 趨勢追蹤的鐵則

為什麼會發生?從市場狀態說起

任何時間段的市場都處於以下三種狀態(Regime)之一:

狀態特徵均線策略表現
📈 趨勢市 (Trending) 價格穩定朝同方向移動 ✅ 大賺(贏 1 次 = 賠 5 次)
↔️ 震盪市 (Ranging) 價格在區間內來回 🔴 持續虧損(這篇主角)
💥 突發轉折 (Reversal) 價格急速轉向 🟡 可能小賺可能小虧

真實市場大約70% 時間在震盪 、20% 是趨勢、10% 是轉折。意思是,如果你的均線策略不會「只在趨勢市開機 」,絕對虧錢。

實際發生的事

想像連續 30 個交易日的震盪市,均線分數可能這樣走:

  • Day 5: 5 日均線 = 50.2,60 日均線 = 50.0 → 黃金交叉 → 買進 $50.2
  • Day 8: 5 日均線 = 49.8,60 日均線 = 50.1 → 死亡交叉 → 賣出 $49.8,虧 -0.8% + 0.3% 手續費 = -1.1%
  • Day 12: 5 日 = 50.5,60 日 = 50.2 → 又黃金交叉 → 買進 $50.5
  • Day 15: 5 日 = 49.5,60 日 = 50.0 → 又死亡 → 賣出 $49.5,又虧 -2.3%
  • ... 重複 75 次 ...

累計下來:75 次交易,只有 14 次贏,贏的時候平均 +4%,輸的時候平均 -3%。勝率 18% × 平均賠率 1.33:1 = 期望值接近 0。然後再扣 75 次 × 0.3% 手續費 = -22.5%,你就有了一個負期望、巨幅回撤、看似正報酬(靠少數幾次大波段拉抬)的廢策略

⚠️ 為什麼「全期 +89%」是假象?

因為 10 年裡可能就 2-3 次大趨勢段把分數拉起來,其他時間都在虧。把 10 年切成訓練期 / OOS 驗證期後,訓練期 Sharpe -0.6 就揭穿了 — 策略本身沒效,全期報酬靠少數幸運段

怎麼救?三個檢驗,三個濾網

檢驗 1:看勝率 × 賠率組合,不是只看勝率

趨勢策略勝率本來就不高(35-45%),但贏的時候要賺更多。如果勝率 < 30% 但賠率 < 2:1,策略本質有問題。

Profit Factor (PF) = 賺的總額 ÷ 虧的總額。PF > 1.5 才算可接受,> 2 算優秀。本案 PF = 0.85,代表每虧 1 元只賺 0.85 元 — 典型負期望

檢驗 2:必做 OOS Walk-forward

把資料切成「訓練期 70% / 驗證期 30%」分別計算 Sharpe。本案訓練 Sharpe -0.6 vs 全期 +89%,差距巨大 → 策略過擬合或只是假 alpha(運氣)。

濾網 1:ADX > 25 才開機

ADX (Average Directional Index) 是「趨勢強度」指標。ADX < 25 = 震盪市、ADX > 25 = 趨勢市。在策略外面套一層「ADX > 25 才允許進場」的濾網,可以把 70% 的震盪市進場全部過濾掉。

✅ 實測效果

加上 ADX 濾網後,交易次數可能從 75 次降到 22 次,勝率從 18% 升到 45%,PF 從 0.85 升到 1.6,Sharpe 從 -0.6 升到 +0.8。同一個策略、同樣的歷史、只多一個濾網,完全不同的結果

濾網 2:連續 N 天確認

不要訊號出現當天就進場 — 要求「連續 3-5 天訊號持續成立」才執行。代價是錯過趨勢初段(進場價較高),好處是過濾掉假突破。

濾網 3:大盤 MA60 過濾

大盤指數 > 60 日均線時才買多」 — 整體市場處於上升通道時,個股勝率自動提高。空頭期間直接不交易。

動手實驗

互動回測 Demo跑兩次,你會親眼看到 whipsaw:

  1. 實驗 A: 樣本 E (超高波動) + 均線交叉 (5/20) + 全期 → 看 KPI 卡和進出場箭頭。注意勝率、Sharpe、交易次數。
  2. 實驗 B: 同樣股票 + 均線交叉 (60/120) + 全期 → 比較差異。長均線過濾掉震盪訊號,結果通常完全不同。

同一檔股票、同一個策略概念,只是參數從「5/20」換成「60/120」,KPI 就天差地遠 — 這就是「參數選擇本身就是 50% 的策略設計」。但小心:如果你開始狂試參數找到最佳組合,你就掉進了過擬合陷阱

💡 重點摘要

  • Whipsaw = 訊號連環打耳光,每次都損失手續費 + 看錯方向的小虧,累積起來就是負期望災難。
  • 市場 70% 時間在震盪,任何不會「只在趨勢市開機」的均線策略都會虧錢。
  • 全期回測 +89% ≠ 策略有效。要看勝率 / PF / 訓練期 Sharpe,任一個出問題就是廢策略。
  • 救法:ADX > 25 濾網 + 連續 N 天確認 + 大盤 MA60 濾網。同一個策略加濾網,KPI 可以完全翻盤。
  • 但小心過擬合 — 不要狂試濾網參數找最佳組合,要做 OOS 驗證才知道是真本事。

📚 延伸閱讀