simon·geofin
Sections
WWeekly
每週觀察
回測:台股雙檔均值回歸策略 2023-2026 — 為何 Sharpe 1.2 是過度樂觀
Backtest · 公開回測

回測:台股雙檔均值回歸策略 2023-2026 — 為何 Sharpe 1.2 是過度樂觀

台股雙檔配對均值回歸策略表面 Sharpe 1.2 看似可行,但加入手續費、滑點與 look-ahead 修正後降至 0.4。本文誠實拆解 RED 訊號:top-2 trades 占 60%、cost-sweep 不穩、結構偏移擊穿假設。

2026-04-259 min readbacktest · 均值回歸 · 台股 · pair-trading · Sharpe · RED-signal
ShareXThreads

目錄

回測:台股雙檔均值回歸策略 2023-2026 — 為何 Sharpe 1.2 是過度樂觀

1. 策略描述

這次測試的是一個常見的入門級配對交易框架:挑選兩檔走勢長期相關的台股 ETF 與成分股(本文以加權指數代理 ^TWII 與一檔追蹤型 ETF 為觀察對象),計算其價差的滾動 z-score,當 z-score 偏離 ±2 時進場,回到 0 出場,設 z-score 突破 ±3 時停損。

背後的 edge 假設很單純:兩個高相關標的的價差在中短期應呈均值回歸,偏離只是雜訊,非結構性事件。這是教科書式 pair trading 邏輯,在學術 literature 中對 2000 年代美股有效,但在 2020 年代資金結構大幅變動的台股是否依然成立,需要逐項驗證。

之所以挑這個策略做誠實紀錄,是因為它在中文量化教學圈被反覆推銷,常見話術是「相關性 0.95 以上的兩檔配對,用 z-score 進出場就能穩定獲利」。這類話術隱藏了三個假設:相關性是穩定的、價差呈定態、執行成本可忽略。本文要做的,正是把這三個假設逐一拆給數據檢驗。

進出場規則:

  • 進場:|z-score| > 2.0
  • 出場:|z-score| < 0.2
  • 停損:|z-score| > 3.0
  • 留倉上限:20 個交易日
  • 部位:等資金兩腿,L/S market-neutral

2. 資料與工具

項目設定
期間2023-01-03 至 2026-04-22
頻率日線收盤
來源TWSE OHLCVYahoo Finance ^TWII 交叉對齊
引擎Python 3.11 + Backtrader 1.9.78
Rolling window60 日 z-score
手續費兩腿單邊 0.1425% × 0.6 折讓,證交稅 ETF 0.1% / 個股 0.3% 出場端
滑點0.05% per leg(初版)→ 0.15% per leg(壓力版)

資料對齊上有兩個小細節值得記錄:^TWII 與 TWSE 收盤時點一致,但若直接用 Yahoo 的調整收盤(adjusted close),除息日的 z-score 會出現假突波。最後採用未調整收盤,股息以單獨欄位回灌 PnL。另一個細節是停牌日處理 — 若任一腿當日無成交,該日整對配對不參與訊號計算,而非用前一日價格 forward-fill。這個小選擇對結果有放大鏡效應,後段會看到差異。

工具版本上,Backtrader 雖然在主動社群維護減少,但 single-strategy event-driven 回測足夠;只要把 commission scheme 與 cheat-on-close 都關掉,並用自寫的 SizerLeg 控制兩腿等資金,就能避開 vendor 預設的隱藏假設。

3. 結果摘要

下表呈現三個漸進嚴格設定下的績效:

設定SharpeMax DDWin rateAvg trade (bps)Trades
A. 無成本、含當日資訊1.78-8.4%58%+24142
B. 含成本、滑點 0.05%1.20-11.6%53%+11138
C. 含成本 + 滑點 0.15% + next-bar 進場0.41-16.2%48%+3135

警示:Sharpe > 2 先假設 seed / per-day / fill bug。本回測未跨過此門檻,但 Sharpe 1.2 在加上現實約束後迅速衰退,本身就是 edge 脆弱的訊號。

設定 A 是教學上常見的「show off」版本,是把假設當結論的危險樣本;設定 C 才是接近真實可執行的版本。從 A 到 C 的衰退路徑,本身就是這次回測最有價值的觀察。

4. 觀察重點 1 — 績效分解暴露集中度問題

單句主旨:三年半 135 筆交易中,正報酬 60% 來自前 2 筆

把設定 C 下所有交易按 PnL 排序後拆解:

  • 全期累計毛獲利約 +405 bps
  • 第 1 筆貢獻約 +162 bps(約占 40%)
  • 第 2 筆貢獻約 +82 bps(約占 20%)
  • 其餘 133 筆合計約 +161 bps,平均單筆 +1.2 bps

兩筆「明星交易」分別發生在 2024 年 8 月台股單月最大震盪(月內加權指數一度自高點下挫近 12%)與 2025 年 4 月某次 AI 鏈短期回檔。這兩個事件本質上是 regime shock 而非均值回歸,策略只是「碰巧」站對方向。換言之,這兩筆並不是策略 edge 的證據,而是樣本期內被一兩次極端事件「拗回來」的偶發勝利。

把這兩筆移除後,剩下 133 筆的累計毛獲利約 +161 bps,扣除設定 C 的全成本後接近歸零;再算 Sharpe 為 0.06。若回測者只看完整樣本的數字而沒做 trade-level 分解,很容易把運氣誤當成 alpha。

Phase 6 RPT diagnostics 思路常用的 top-2 contribution gate,門檻通常設在 30%。本回測 top-2 占比約 60%,明確逾越警戒。

5. 觀察重點 2 — sanity checks 三項全敗

單句主旨:cost-sweep、ffill rate、next-bar latency 三道過濾器全部踩到紅線

依高頻均值回歸常用的 fill fantasy gate(見 RPT Day 3 經驗):

Sanity check門檻實測判定
Cost sweep 1×→2×Sharpe 衰退 < 30%1.20 → 0.62 (-48%)RED
Cost sweep 1×→3×Sharpe > 01.20 → 0.06RED-edge
Slippage 0.05%→0.15%Sharpe 衰退 < 40%1.20 → 0.41 (-66%)RED
Next-bar entrySharpe 衰退 < 25%1.20 → 0.83 (-31%)RED
Stale fill rate< 10%14.6%RED

特別值得注意的是 stale fill。z-score 觸發時,有相當比例的進場價並非當日真實交易得到的價格,而是低成交量時段被 forward-fill 的「紙上價格」。把這些位置強制 next-bar 真實成交,Sharpe 從 1.20 直接掉到 0.83,再加 0.15% 滑點即跌穿 0.5。

這種衰退模式跟 Phase 7 Day 3 RPT 1-min calendar MR 的崩盤路徑高度相似:diagnostics 看起來通過,但 fill 真實性檢查一上,edge 就消失。也就是說,設定 B 的 Sharpe 1.2 並非因為策略真有 alpha,而是因為回測引擎默許了不切實際的成交假設,把雜訊算成了報酬。

更進一步把 cost 從 1× 等距 sweep 到 4×,Sharpe 呈單調下滑且在 2.5× 附近就跌至 0.5 以下,完全沒有 plateau。健全 edge 的特徵是:cost 微幅上升時績效幾乎不動;本策略卻像浮木一樣,水位稍漲就沒頂。

6. RED signals 判定

按既有的 cross-source / fill-fantasy / event-lottery 三道 gate 框架,本策略至少踩到三條:

  1. Top-2 trade 占比 ~60%:遠超 30% 門檻 → event-lottery RED
  2. Cost-sweep 1× → 3× 接近歸零:edge 對成本極度敏感 → fragile-edge RED
  3. Stale fill 14.6%:fill fantasy 風險 → fill-fantasy RED

更深一層,2023-2026 期間台股經歷了 AI 帶動權值股集中度大幅上升,加權指數中前十大成分股市值占比顯著高於 2010-2019 區間,這對「指數 vs 成分」型 pair 是結構性逆風 — 兩腿的相關性內嵌了結構偏移,而非單純的隨機 spread。換言之,均值回歸假設在這個樣本期間本身就站不太住。

值得補上一個診斷:對 60 日 rolling correlation 做時間序列觀察,2023 年中以前確實穩在 0.93 以上,但 2024 年後段曾數度跌破 0.85,且修復路徑長達數十個交易日;這段期間進場的部位往往不是回歸,而是 spread 的單邊擴張。回測上的「停損」反覆觸發,是放大虧損而非保護資金。

7. 結論與下一步

把以上所有觀察彙整為一句話:在 2023-2026 樣本期、日線頻率、加上接近真實的成本與滑點假設下,本配對均值回歸框架在台股沒有可重複的優勢,Sharpe 1.2 是回測引擎默許的幻覺。這是一個**典型的「初看可行、細看潰散」**回測案例,結論誠實寫:設定 A 的 Sharpe 1.78 與設定 B 的 Sharpe 1.2 都是過度樂觀,真正可比照真實執行的設定 C 落在 0.4,屬於零 edge 區間

可記錄的負面結論:

  • 教科書 pair trading 在 2023-2026 台股、日線、權值代理對上,扣除真實成本後沒有可重複的 alpha
  • 大樣本 Sharpe 數字若 top-2 集中度 > 50%,應降權看待
  • 若有人對外宣稱「台股均值回歸 Sharpe 1+」而未公布 cost sweep / fill 真實性 / top-2 contribution,通常是過度樂觀

下一步的合理探索方向(也就是「不會再走原路」):

  • 換到更高頻 + 真實 L2 book 來源評估 microstructure 而非統計 spread
  • 把 pair 對象換成同產業近似標的(例如兩檔同類型 ETF),避開「指數 vs 成分」的結構偏移
  • 加入 regime filter(例如波動度區間),只在特定市場狀態下啟動,但需明示這是 conditional strategy 而非 universal alpha

無論哪一條,出發前必須先補齊本文揭示的三道 sanity gate。直接套教科書框架到當前台股,扣完成本後幾乎沒有空間。

最後留下一段給未來自己的備註:回測的價值不在於漂亮的權益曲線,而在於誠實標示哪些假設被擊穿、哪些區間是運氣。一份只列 Sharpe、Max DD、Win rate 的摘要表,看起來專業,卻常常掩蓋掉 fill 真實性、成本敏感度、單筆貢獻度這三個真正關鍵的訊號。把這三道 gate 內建進後續的回測流程,才是這次失敗測試最有價值的副產品。

如果未來有人拿著相似的均值回歸框架,主張在台股可以穩定取得超額報酬,合理的回應是要求對方公開:全期間的 trade-level PnL 分布、cost 1× 至 4× 的 Sharpe sweep、以及 next-bar 真實成交版本的權益曲線。三項任何一項拿不出來,結論可逕自視為過度樂觀。

來源


本站為觀察研究,不作價格預測或個股薦股;上列所有數字以撰文時為準,後續發展請自行追蹤一手來源。

Geofin Research Weekly

地緣優先的投資觀察週報

每週一封。方法論、失敗紀錄、量化驗證結果。不寄明牌,不寄投資建議。 免費訂閱即可收到精選摘要,付費解鎖完整深度研究。

  • 免費版:每週 1 篇精選 + 市場速覽
  • 付費版:每週 3 篇深度研究 + 數據附件
免費訂閱 →隨時取消,不綁約