simon·geofin
Sections
WWeekly
每週觀察
Deflated Sharpe 與 PBO:為什麼最佳化後的 Sharpe 會說謊
Research · 方法論研究

Deflated Sharpe 與 PBO:為什麼最佳化後的 Sharpe 會說謊

當你掃過 450 組參數挑出最高 Sharpe,那個數字有很大一部分是運氣而非技術。本文用一個示意推導說明:純雜訊在 450 次試誤下也能擠出 Sharpe 約 0.91,並整理 Deflated Sharpe 與 PBO 兩種把試誤次數折抵回來的檢驗工具。

2026-05-179 min readDeflated Sharpe · PBO · 回測過擬合 · 方法論 · 量化研究
ShareXThreads

目錄

幾乎每一份失敗的量化研究報告,都有一個共同句型:「我們掃過數百組參數,挑出表現最好的這一組,回測 Sharpe 達 2.1」。這句話聽起來像成果,實際上卻同時揭露了問題本身。當一個數字是從大量候選裡「挑」出來的最大值,它就不再是一個誠實的績效估計,而是一個被選擇偏誤系統性放大的統計量。

本文不談資料外驗證(out-of-sample)的滲漏問題——那是另一個鏡頭,與本文互補但不重疊;本文專注在一個更前置、更純粹的統計事實:只要你試夠多次,雜訊本身就會給你一個漂亮的 Sharpe。這正是 Bailey 與 López de Prado 提出 Deflated Sharpe Ratio(DSR)與 Probability of Backtest Overfitting(PBO)要修正的東西。

方法論問題

傳統 Sharpe ratio 的顯著性檢定,隱含一個假設:你只看了「這一個」策略。t 統計量、p-value 的整套機制,都建立在「單次檢定」之上。但量化研究的真實流程不是這樣——研究者會掃參數、換濾網、調出場規則,一個策略族系下面可能藏著數十到數千個變體。每多試一次,就多一次「靠運氣撞到高分」的機會。

這是統計學裡的多重檢定(multiple testing)問題。在標準假設檢定中,單次檢定常把顯著水準設在 p 小於 0.05——即使沒有真實效果,大約每二十次也會有一次被誤判為「有效」。但如果你獨立試了 100 次,至少出現一次「假顯著」幾乎是必然:作為示意推導,其機率約為 1 − 0.95¹⁰⁰,趨近於一。換句話說,在足夠多的試誤下,出現一個看似顯著的結果幾乎是必然,而不是發現

把這個邏輯套回 Sharpe ratio:你回報的不是隨機抽一組參數的 Sharpe,而是 N 組裡的「最大值」。最大值的期望本來就比平均值高;試誤次數 N 越大,這個被抬高的幅度越大。問題的核心因此可以一句話概括:單一回測數字無法區分「真實 edge」與「N 次試誤後的最大雜訊」,除非你把 N 折抵回去。

假設

本文檢驗的假設,刻意寫成可被證偽的形式:

H1: 對於一個經過參數最佳化的策略,若不揭露試誤次數 N、不對其折抵,則所報告的最佳 Sharpe 系統性高估真實 edge;當以試誤次數折抵後的統計量(DSR / PBO)檢驗,大部分「最佳化勝出」的策略無法拒絕「edge = 0」的虛無假設。

這個假設可被證偽的方式很明確:如果一批最佳化後的策略,在 DSR 與 PBO 檢驗下仍維持高存活率(例如 DSR 對應機率大於 0.95、PBO 小於 0.1),那 H1 就被推翻——代表最佳化流程本身並未引入系統性膨脹。實務上的反覆觀察是相反的:折抵後存活率往往大幅下降。下面逐步拆解兩個工具的直覺。

觀察重點 1 — 選擇偏誤的直覺:純雜訊也能擠出 Sharpe

先建立直覺。假設有一個策略族系,真實 edge 完全為零——每一組參數的真實 Sharpe 都是 0,觀察到的 Sharpe 純粹來自有限樣本的隨機波動。問題是:如果掃過 N 組參數,挑出其中最高的那個,你會看到多大的 Sharpe?

Bailey 與 López de Prado 在《The Deflated Sharpe Ratio》中給出虛無假設下「期望最大 Sharpe」的近似式(Bailey & López de Prado, 2014):

\mathbb{E}[\max SR] \approx \sqrt{V} \left[ (1-\gamma)\,\Phi^{-1}\!\left(1-\tfrac{1}{N}\right) + \gamma\,\Phi^{-1}\!\left(1-\tfrac{1}{N e}\right) \right]

其中 V 是各次試誤 Sharpe 的橫斷面變異數,γ ≈ 0.5772 是 Euler–Mascheroni 常數,e ≈ 2.718,Φ⁻¹ 是標準常態的反累積分布函數,N 是獨立試誤次數。

作為示意推導,把它具體化。假設條件(每一條都明列,讀者可自行替換):

  • 試誤次數 N = 450(這是一個量化研究單次參數掃描常見的量級)。
  • 各次試誤的年化 Sharpe 在虛無假設下,橫斷面標準差 √V ≈ 1.0(亦即不同參數估出的 Sharpe 散布大約一個標準差,對年度級回測是保守的設定)。

代入:N = 450 時,1 − 1/N ≈ 0.99778,其標準常態分位數 Φ⁻¹ ≈ 2.846;1 − 1/(Ne) ≈ 0.99918,Φ⁻¹ ≈ 3.149。於是

\mathbb{E}[\max SR] \approx 1.0 \times \big[ 0.4228 \times 2.846 + 0.5772 \times 3.149 \big] \approx 0.91

**結論:即使每一組參數的真實 edge 都是零,光是從 450 組裡挑最大值,你「預期」就會看到一個約 0.91 的年化 Sharpe。**這還只是期望值;實際抽樣的最大值會在它上下波動,撞到 1.2、1.5 都不罕見。一個回測報告若寫「掃了 450 組,最佳 Sharpe = 1.3」,在這個示意框架下,它甚至沒有顯著高於「純雜訊的最佳值」。如果 √V 設得更大,或 N 上看數千(GA、貝氏最佳化很容易達到),這條雜訊基線會更高。

這就是 DSR 的核心動作:它把觀察到的 Sharpe,拿去和「在你這個 N 與這個變異數下,雜訊能達到的水準」相比,再轉成一個機率——這個 edge 是真的、而非選擇偏誤產物的機率。揭露 N 因此不是禮貌,而是讓數字可被解讀的必要前提。

觀察重點 2 — PBO:用組合對稱交叉驗證問「最佳化是否在挑運氣」

DSR 折抵的是「單一最佳數字」的膨脹;PBO(Probability of Backtest Overfitting)問的是一個更直接的問題:你的最佳化流程,有多大機率只是在挑運氣?

Bailey、Borwein、López de Prado 與 Zhu 在《The Probability of Backtest Overfitting》提出組合對稱交叉驗證(Combinatorially Symmetric Cross-Validation, CSCV)(Bailey, Borwein, López de Prado & Zhu, 2015)。其邏輯不依賴任何報酬分布假設,直覺如下:

  1. 把整段回測期切成 S 個等長區塊。
  2. 列舉所有「把一半區塊當訓練、另一半當測試」的組合。對每一種切法,在訓練集裡挑出表現最佳的策略,再看它在對應測試集裡的排名。
  3. 統計這件事:訓練集冠軍,在測試集裡掉到後半段的頻率有多高? 這個頻率就是 PBO。

PBO 的精神是「對稱性」——既然訓練、測試只是時間區塊的分割,就把所有可能的分割方式都跑一遍,而不是只信任某一條被精心挑選(或無意間挑選)的切法。若一個策略真的有結構性 edge,它在訓練集領先時,測試集通常也不該太差;反之,若它純靠最佳化撈到訓練期的特定噪音,訓練冠軍在測試集就會系統性退步——PBO 會很高。實務上的觀察是:參數空間越大、最佳化越激進(尤其 GA、隨機搜尋掃出數千組),PBO 越容易逼近甚至超過 0.5,意味著「最佳化挑出的策略,在新區塊比中位數還差」的機率過半。這時所謂的「最佳參數」其實是過擬合的同義詞。

DSR 與 PBO 在實務上互補:DSR 給你一個「這個 Sharpe 在 N 次試誤下還算不算數」的單點機率;PBO 給你一個「整個最佳化流程是否在系統性挑運氣」的流程級診斷。兩者都把「試誤次數」這個被刻意省略的變數,重新放回統計量裡。

觀察重點 3 — 把 edge 寫成可證偽假設,而非單一數字

前兩節的工具,最終指向一個方法論態度的轉變。一份誠實的策略研究,不該以「最佳 Sharpe = X」作為結論,而應該把 edge 表述成一個可被證偽的假設,並附上讓他人能複驗、推翻它的全部條件:

  • 揭露 N。 報告試誤次數(掃了幾組參數、幾種濾網、幾個出場規則的笛卡兒積),否則任何 Sharpe 都無法折抵、無法解讀。
  • 報告折抵後統計量,而非原始 Sharpe。 至少給出 DSR 對應機率與 PBO;原始 Sharpe 可以附,但不能當主結論。
  • 把結論寫成虛無假設的拒絕。 「在 N = 450、樣本長度 L、折抵後,我們(無法)拒絕 edge = 0」比「Sharpe = 2.1」資訊量大得多,也誠實得多。
  • 預先登錄參數空間。 在跑最佳化之前就定義好要掃的範圍與評選準則,避免「看到結果再回頭擴大搜尋」這種會讓真實 N 不可知的污染。

這個轉變的本質是:把回測從「展示一個漂亮數字」改成「提出一個附帶完整反駁說明書的科學主張」。一個無法被他人用 DSR / PBO 推翻的 edge,在方法論上根本還不算被觀察到。

局限與如何被檢驗

DSR 與 PBO 不是萬靈丹,需要明列其邊界,否則會變成另一種被誤用的單一數字:

  • N 往往不可知。 公式需要試誤次數 N,但實務中研究者常無意識地試了更多次(手動微調、看圖反覆改規則)。低估 N 會讓 DSR 過於樂觀。應對方式是保守地高估 N,並把參數空間預先登錄。
  • 獨立性假設。 期望最大 Sharpe 的近似式假設各次試誤近似獨立;但相鄰參數高度相關,有效獨立試誤數可能遠小於名目 N。這會讓直接代入 N 偏保守(高估雜訊基線)——方向上是安全的,但代表 DSR 是一道篩,不是精準量尺。
  • 變異數 V 需估計。 √V 來自橫斷面 Sharpe 散布,設定不同會明顯改變雜訊基線;本文示意推導刻意把每個假設攤開,正是因為這個量值敏感,必須讓讀者能替換重算。
  • PBO 不保證 edge 真實。 PBO 低只代表「不太像在挑運氣」,不等於 edge 在未來存在;它排除一類錯誤,不證明正確。

這些局限本身使本文假設 H1 可被檢驗:任何人都能取一批最佳化後的策略,明確列出 N、樣本長度與 √V,套用上面的公式與 CSCV 程序;若折抵後仍維持高存活率,H1 即被推翻。能被這樣具體推翻,正是它作為方法論主張、而非口號的條件。

來源


本站為觀察研究,不作價格預測或個股薦股。

Geofin Research Weekly

地緣優先的投資觀察週報

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

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