simon·geofin
Sections
WWeekly
每週觀察
公開回測紀律:為什麼我們把 Sharpe > 2 先當成 bug
Backtest · 公開回測

公開回測紀律:為什麼我們把 Sharpe > 2 先當成 bug

十多次失敗的回測告訴我一件事:高 Sharpe 不是 edge,是訊號。是「該去找 bug」的訊號。本文整理三個最常見的高 Sharpe 假象、對應的診斷步驟、以及為何把「先假設壞掉」寫成預設值,對長期研究才誠實。把門檻寫出來,是為了下次看到漂亮數字時仍能按順序跑完七條檢查,而不是被僥倖拉走。

2026-04-207 min readmethodology · failure-log · discipline · sharpe · diagnostics
ShareXThreads

目錄

寫在前面

這不是一篇高深的回測技術文,而是一份紀律手冊的公開草稿。研究室一路下來,多次在回測結果看到漂亮的 Sharpe 數字 — 2.1、2.5、甚至更高 — 事後拆開卻發現幾乎每一次都是錯誤資料、錯誤流程、或錯誤假設下的副作用,而非真實的 edge。

把結果寫出來,一方面兌現本軸的公開承諾 — 誠實記錄每一次回測,包括失敗與 overfit;另一方面建立一份「下次再看到 Sharpe > 2 時要怎麼做」的作業流程。

為什麼是 2 而不是別的數字

先把條件寫清楚:這裡說的「Sharpe > 2 先當 bug」不是普世法則,而是在這個研究室的特定資料與策略族之下的經驗值。具體說:

  • 標的:日線 OHLCV 或更高頻,資料來源為公開或券商盤後
  • 策略族:古典 cross-sectional momentum / mean-reversion / 價量結構
  • 時間尺度:multi-year OOS

在這個範圍內,長期穩定可達 Sharpe > 2 的策略在公開資料世界幾乎必然已被套利吃掉。這個直覺也被 Harvey、Liu、Zhu (2016) 的跨因子研究 反覆驗證:多數學術文獻裡號稱顯著的因子,多重檢定校正後的 Sharpe 都會被壓到低於 1。若我在這樣的環境裡跑出 Sharpe > 2,理性的預設是: 先假設有 bug,再去證明沒有。

反之,如果是在:

  • 非公開專屬資料(L3/L4 層級的 order book / flow)
  • 或極高頻的微結構策略
  • 或有明確的結構性摩擦 carry 來源

那 Sharpe 基準會不同,本篇的紀律就不直接套用。

觀察重點 1 — Seed 樂透

症狀:把同一條策略、同一組參數、換 N 個隨機種子跑,Sharpe 分布非常發散 — 中位數可能接近 0,但少數幾個種子就能拉到 2 以上。若只盯「最好的那一筆」,就會誤以為策略有 edge。

觸發情境: 當策略裡包含任何涉及隨機性的組件 — 特別是 LightGBM / XGBoost / 任何未明確 pin seed 的機器學習模型,或 Monte Carlo 重採樣 — 都是高風險區。

診斷步驟:

  1. 同樣條件,換 7–10 個不同 seed 重跑
  2. 看的是 Sharpe 的中位數 + 標準差,不是最佳值
  3. 若標準差 > 0.5 而中位數 < 1,基本可判這個 edge 其實不存在,只是在隨機空間裡挑到幸運的那一個

研究室在一個台期當沖案例就踩過這坑:單一 seed 看似 Sharpe 接近 2,展開到 7 seed 後中位數幾乎為零、標準差接近 2。結論:不是策略有 edge,是 seed 有運氣。

觀察重點 2 — 資料源樂透

症狀:同一條策略,用兩個不同廠商的日線資料跑,結果 PnL 量級差 10 倍以上,甚至符號相反。其中一邊看起來很漂亮,另一邊是虧損的。

觸發情境: 最常見在期貨歷史資料 — 不同廠商對「連續合約」的拼接規則不一,除權除息、未平倉調整方式、還原方式都可能出現差異。股票相對單純,但跨國交易所 / ADR 也會踩到。

診斷步驟:

  1. 至少使用 兩個獨立資料源 各跑一次
  2. 對比 daily P&L 序列: 相關係數 < 0.9 就是警訊
  3. 符號相反 或 量級差 10× 以上 = 自動判 RED,不進下一步診斷

這條紀律已經寫進研究室的 Cross-Source Consistency Gate: 任何標示 GREEN 的回測都必須至少在兩個獨立資料源上復現。差異過大先不假設策略錯,先假設資料拼接錯,但在拼接方法未查清前,絕對不把結果當作 edge 的證據。

觀察重點 3 — 成交假象 (Fill Fantasy)

症狀:回測報表漂亮,放到更嚴格的成交條件下就崩盤。例子包括:

  • Stale price fill:市場沒成交的時間戳上,用上一筆 tick 回填再當成「有成交」
  • Next-bar entry 落差:訊號產生當下立即進場 vs. 等下一根 bar 進場,Sharpe 差 2 以上
  • 成本低估:把手續費 / 滑價設得過於樂觀,真實成本被低估為實際值的一半左右

觸發情境:分鐘級以下的 mean reversion 或高頻 spread 策略特別容易踩。因為成交密度低的時段,ffill(forward fill)會製造出大量「可成交」的假點。

診斷步驟:

  1. Forward fill rate 必須低於一成。超過就懷疑;若超過兩成五基本上結果不可信
  2. Break-even cost 必須 >= 2× 真實成本。如果策略在真實成本下剛好損益兩平,實務上就是穩定虧錢
  3. Next-bar 延遲測試: 把進場延遲 1 根 bar,觀察 Sharpe 是否崩盤。若原本 Sharpe 接近 2.4,延遲 1 bar 變負值,代表原本的 edge 其實來自「知道未來一格」

研究室在一個盤中價差回歸的案例裡,上述三條一次全踩: 看似有 edge 的候選,套 liquidity gate 後 Sharpe 崩到明顯負值;真實成本後變成損益兩平;延遲一根 bar 進場則直接轉虧。所有漂亮數字都是假的,教訓深刻。這種現象也與 Bailey 等 (2014) 對 backtest overfitting 機率上限的推導 一致:在稀疏樣本 + 未加 OOS holdout 的設計下,被「選出」的最佳策略幾乎必然有很大的 overfit 成分。

紀律手冊 — 看到 Sharpe > 2 當下要做什麼

把上面三條收成一份可 checklist 的預設動作。任何時候回測跑出 Sharpe > 2,先不要興奮,按順序跑過:

  1. Seed 穩定性測試 → 7 seed 中位數 < 1.0 就直接判疑
  2. 資料源交叉驗證 → 第二個資料源差異過大自動 RED
  3. ffill rate 檢查 → 超過一成判疑,超過兩成五判廢
  4. 成本 stress test → 成本加倍還賺不賺
  5. Next-bar entry 延遲 → 延遲後還能維持 Sharpe > 1 才算
  6. Top 2 trades contribution → 前兩筆交易的 P&L 若佔全期超過五成判定 event lottery,不是 edge
  7. Threshold sweep 連續性 → 參數掃描結果應該有穩定 plateau,不能只有單一閾值表現好

七條全過,再考慮下一階段的 walk-forward + 跨市場 robustness。

為什麼這份紀律值得公開

兩個原因:

第一,對自己是約束。 把標準白紙黑字寫在網路上,下次看到 Sharpe 2.5 時,就算心裡想放水一次,還是會被這份文章拉回來。

第二,對讀者是過濾器。 這個實驗桌不會出現「我找到聖杯策略」那種語言。所有公開的回測都會預先標註 — 通過了哪幾層、沒通過哪幾層、哪些 sanity check 跑了哪些沒跑。讀者可以照樣檢視,而不是聽我說好就算數。

兩者合起來,就是這條軸想做的事:方法論優先於結論,失敗紀錄跟成功紀錄同樣重要。真的找到 edge 的那一天(如果有的話),這份紀律會是它的最好背書。

下一步

這份手冊會隨研究室實戰經驗持續擴充。計畫中下一篇:

  • 因子失效檢查清單 2026-Q2 — 過去六個月台股 / 美股常見因子的 decay 觀察
  • Walk-forward 設計守則 — OOS 不是跑一次就算,而是一組配套條件

讀者若想追蹤更新,可訂閱 每週觀察 — 方法論變更都會在當週記錄。

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

來源

  • Harvey, Campbell R., Yan Liu, and Heqing Zhu.「...and the Cross-Section of Expected Returns.」The Review of Financial Studies. SSRN 連結
  • Bailey, David H., Jonathan M. Borwein, Marcos López de Prado, and Qiji Jim Zhu.「The Probability of Backtest Overfitting.」Journal of Computational Finance. SSRN 連結
  • López de Prado, Marcos.「The 7 Reasons Most Machine Learning Funds Fail.」The Journal of Portfolio Management. SSRN 連結
  • Walk-forward analysis 的原始設計可參考 Robert Pardo 在 The Evaluation and Optimization of Trading Strategies 的論述
Geofin Research Weekly

地緣優先的投資觀察週報

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

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