平減夏普比率:修正你測試了多少種變體
當你不知道自己測試了多少種變體時,用一個寬鬆的試驗次數上界來平減夏普比率,並與有效 N 的估計互相對照。只看一次的全新保留樣本是最後的檢查。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
平減夏普比率修正的是什麼?
平減夏普比率問的是:你最好的回測,是否勝過 N 次試驗後單靠運氣所能得到的最佳結果。如果你不知道 N,就用一個寬鬆的上界,因為運氣門檻隨 N 上升得很慢。對相關的變體估計一個有效 N,再用只看一次的全新保留樣本確認結果。
想像一千個人各自擲十次硬幣。沒有人擅長擲硬幣,但其中至少有一個人幾乎必然會擲出九次或十次正面。如果你只看贏家,就會看到一種根本不存在的才能。策略搜尋也是同樣的道理。你每測試一個變體,就多一個人在擲硬幣,而你最好的回測就是這場比賽的贏家。
夏普比率是策略的平均報酬除以報酬的標準差,衡量的是每單位波動所換得的報酬。多重檢定是指你測試許多變體後只保留最好的那一個時會出現的問題:最好的分數偏高,部分原因就是你搜尋過。平減夏普比率是指在考慮你做過的試驗之後,策略的真實夏普比率高於單靠運氣所能預期的最佳夏普比率的機率(Bailey & López de Prado, 2014)。如果你要先取得原始夏普比率,免費的夏普比率計算器可以從報酬序列算出來。
| 輸入項 | 意義 | 對平減夏普比率的影響 |
|---|---|---|
| 試驗次數(N) | 你在選定一個變體之前,測試過多少個獨立的變體 | 試驗越多,運氣門檻越高,結果就越低 |
| 各試驗夏普比率的離散程度 | 各次試驗的夏普比率彼此相差多少 | 離散程度越大,運氣門檻越高 |
| 樣本長度(T) | 報酬觀測值的數量,例如日報酬 | 樣本越長,估計越精確,結果就離 0.5 越遠:夏普比率高於門檻時往上,低於門檻時往下 |
| 偏態 | 報酬是否偏向一側 | 負偏態會降低結果 |
| 峰態 | 極端報酬出現的頻率 | 厚尾會降低結果 |
偏態衡量報酬是否偏向一側。負偏態代表許多小額獲利,加上偶爾的大額虧損。峰態衡量與常態鐘形曲線相比,極端報酬出現的頻率。常態分布的峰態為 3,數值越高代表尾部越厚。在夏普比率相同、報酬筆數相同的情況下,負偏態與厚尾會讓量測到的夏普比率較不可靠,因此平減夏普比率會變得較低。
運氣門檻隨試驗次數成長得多快?
運氣門檻會隨試驗次數成長,但很慢:試驗次數超過約十次之後,每增加十倍,只多出大約一個離散單位或更少。當你不知道自己的試驗次數時,這是最有用的事實。
門檻是指 N 個純靠運氣的策略中,最好的那一個平均能達到的夏普比率:
運氣門檻 ≈ 離散程度 × 運氣倍數
這裡的離散程度是指各次試驗夏普比率的標準差,顯示你的各個變體結果相距多遠。運氣倍數是從常態鐘形曲線獨立抽取 N 次時,預期的最佳分數。下表列出常見試驗次數下的數值,採用的是 Bailey 與 López de Prado(2014)的近似法。
| 獨立試驗次數(N) | 運氣倍數(高於零的離散單位) |
|---|---|
| 1 | 0 |
| 10 | 約 1.5 |
| 100 | 約 2.5 |
| 一千 | 約 3.2 |
| 10,000 | 約 3.9 |
| 100,000 | 約 4.4 |
假設你的次數少算了一半。在 100 次試驗附近,這只會讓門檻移動約 0.2 個離散單位。如果你少算了十倍,在大多數交易人工作的範圍內,門檻會移動約 0.7 到 1 個離散單位。
如何誠實計算試驗次數?
一次試驗,是指任何一個策略版本,只要它的結果可能影響了你最後留下哪個策略,就算在內,包括你已經丟掉的版本。請計入以下各項:
- 參數掃描中的每一種參數組合。假設你測試移動平均長度從 10 到 50、間隔 5。那是九次試驗,不是一次。再搭配三種停損距離,就是 27 次。
- 每一種規則變體。包括每一種進場型態、每一個出場,以及你加入或移除的每一個濾網。
- 你嘗試過這個想法的每個市場、K 棒週期與交易時段。
- 在同一份資料上測試過而被否決的想法。這包括你只看過一眼權益曲線就放棄的想法。
- 在同一段歷史上做過的早期研究。這涵蓋你過去幾年自己的研究,也涵蓋書籍或論壇上因為在這個市場的過去表現好看而流行起來的想法。
- 在你更動成本、日期或設定之後的重跑,前提是你因為結果而做了這項更動。
完全相同、重現同樣數字的重跑,不算新的試驗。第 4 項與第 5 項是你永遠無法完整計算的部分。這就是為什麼寬鬆的上界往往比精確的統計更誠實。至於為什麼大規模搜尋中的最佳結果會被高估,請見回測過度最佳化:為什麼最好的回測通常被高估。
在自動化搜尋中,次數可能非常龐大。已公開的 AlphaPrime(Valynox)基準測試,在一張 RTX 3090 上以 18 h 23 min 記錄了 1,268,200,000 次策略評估。測量日期為 2026-10-05,使用 TY 37 分鐘 K 棒,期間從 2015-01-01 到 2026-09-25,每個候選策略 114,371 根 K 棒,每次評估都已計入手續費與滑價。實際速度取決於顯示卡、資料長度與研究設定。如果你把其中每一次評估都視為獨立試驗,運氣倍數大約是 6。不過,這類搜尋中的大多數候選策略彼此近乎複製,所以有效 N 才重要。如果你把每次搜尋當作一批存進 AlphaPrime 的策略資料庫,你就有書面紀錄可以用來計數,而不必靠記憶。
該用上界還是有效 N?
兩者都用。保守的上界告訴你策略能否撐過你最壞情況的計數;有效 N 的估計則告訴你,那個計數中有多少是真正的多樣性。有效 N 是指你那些相關的變體,實際上相當於多少個真正獨立的試驗。如果你向 400 個人問路,其中 360 人看的是同一張地圖,你得到的大約是 40 種意見,而不是 400 種。
| 保守上界 | 有效 N | |
|---|---|---|
| 如何取得 | 把上面清單中的一切加總,再為沒有記錄的想法寬鬆地往上乘 | 把報酬走勢一致的變體分組,然後數有幾組 |
| 優點 | 很難自欺 | 反映你真正測試了多少種不同的想法 |
| 缺點 | 把近乎複製的變體視為獨立,所以可能過於嚴苛 | 需要各變體的報酬序列,而且你可以靠選擇分組方式來左右結果 |
| 最適用情況 | 沒有測試過什麼的紀錄 | 有系統化搜尋的報酬紀錄 |
估計有效 N 的方法:
- 儲存每個變體(或其中一大批隨機樣本)的日報酬序列。
- 量測每兩個變體之間的相關性,也就是它們的報酬走勢有多接近。
- 把走勢緊密一致的變體分組。常見的做法是階層式分群,它會反覆合併最相似的兩個變體或群組,直到剩下的群組明顯不同為止。
- 數有幾組。那個數字就是你的有效 N。
- 量測夏普比率的離散程度時,用每組一個代表,而不是所有變體。
分組比單一的平均相關性更好。假設同一個想法的 300 個近乎複製的變體,旁邊還有 100 個互不相關的想法。平均相關性看起來很高,但你其實測試了超過 100 個不同的想法。
假設範例
你記錄了同一個突破想法的 400 個變體。最佳變體的年化夏普比率為 1.6。各次試驗的離散程度為 0.5,本例假設每一列的離散程度相同。你還試過一些沒有記錄的想法,所以把上界設為 4,000 次試驗。依相關性把已記錄的變體分組,得到約 40 組。對上界套用同樣的比例,得到約 400。
| 採用的次數 | N | 運氣倍數 | 門檻 | 最佳變體(1.6) |
|---|---|---|---|---|
| 上界,視為獨立試驗 | 4,000 | 約 3.6 | 約 1.8 | 低於門檻 |
| 已記錄的變體,視為獨立試驗 | 400 | 約 3.0 | 約 1.5 | 剛好高於門檻 |
| 由上界換算的有效 N | 約 400 | 約 3.0 | 約 1.5 | 剛好高於門檻 |
| 由已記錄變體得出的有效 N | 約 40 | 約 2.2 | 約 1.1 | 明顯高於門檻 |
只有在你不計入未記錄的想法,或把近乎複製的變體分組時,這個策略才能跨過門檻。這是個臨界的結果。換一種修正方法並不能解決它,但新的資料可以。
最能左右答案的兩個選擇,是你是否計入未記錄的想法,以及是否把近乎複製的變體分組。方法的細節影響要小得多。當你的上界與有效 N 給出不同的結論時,就把這個策略視為尚未證實,並進入保留樣本的檢驗。
如何一步步計算平減夏普比率?
做法是先量測運氣門檻,再問真實夏普比率高於該門檻的可能性有多大。機率夏普比率是指在給定樣本長度、偏態與峰態的情況下,真實夏普比率高於所選基準的機率。平減版本則把那個基準設為運氣門檻。
- 取所選策略扣除成本後的淨報酬,使用單一固定的期間,例如日。
- 以同一期間計算夏普比率,不要年化。同時計算偏態、峰態與報酬筆數 T。請確認你的軟體報告的是峰態還是超額峰態(峰態減 3)。公式使用的是一般峰態。
- 選擇 N。用上界跑一次,再用有效 N 跑一次。
- 量測各次試驗之單期夏普比率的離散程度。
- 把離散程度乘以運氣倍數,得到門檻。
- 把夏普比率、門檻、T、偏態與峰態代入 Bailey 與 López de Prado(2014)中的機率夏普比率公式。結果就是平減夏普比率。
- 把結果當成機率來解讀。接近 1 的值代表有餘裕地跨過門檻。接近 0.5 的值代表策略大致與單靠運氣得到的最佳結果相當。許多研究者以 0.95 作為標準線。
為什麼只看一次的全新保留樣本是最乾淨的檢查?
只看一次的全新保留樣本之所以是最乾淨的檢查,是因為它只是一次試驗。它不需要試驗次數、不需要相關性估計,也不需要平減。保留樣本是你在研究開始前就預先留出的一段資料,在最後測試之前,不用於任何決策。它就像學生從沒見過的考試,而不是學生背熟的練習題。
- 在任何研究之前先把保留樣本留出來。常見的選擇是最近的一段歷史。
- 在你查看之前先寫下通過標準,例如:扣除成本後的淨損益大於零,且回撤不比研究期間的差。
- 凍結策略,包括它的成本與交易時段設定。
- 只測試一個最終的候選策略。如果你在保留樣本上測試 50 個候選策略,就又回到 50 次試驗了。
- 只執行一次測試。如果策略失敗,不要重新調整後在同一份資料上再測一次。保留樣本現在已成為你研究資料的一部分。
保留樣本有一個弱點:它很短,所以結果有雜訊。假設報酬彼此獨立且呈常態分布。有一年的資料時,量測到的年化夏普比率通常與真實值相差約 1 或稍多;統計學家把這種典型的偏差稱為標準誤(Lo, 2002)。因此一年的資料無法可靠地區分夏普比率 0.5 與 1.5。這兩種檢查互為補充:平減夏普比率運用長期歷史,而保留樣本則消除了計數問題。
推進分析的各個視窗,在單次執行內屬於樣本外。如果你把研究重跑許多次,並保留最好的推進分析結果,那些視窗就不再是全新的了。推進分析的指南說明了如何設定視窗。AlphaPrime 的策略檢驗涵蓋推進分析,並讓你設定自己的門檻,所以你可以在執行前先寫下通過標準。
哪些問題是任何修正方法都無法解決的?
修正方法調整的是你搜尋得多努力。它們無法修復一個本身就有錯的回測、你從未計入的試驗,或是已經改變的市場。
- 有偏誤的回測。漏掉手續費與滑價、在觸發訊號的同一根 K 棒收盤價成交,或是資料不良,都會在任何平減發生之前就膨脹夏普比率。
- 超出你上界的試驗。如果真實次數遠高於你所用的上界,門檻就太低。
- 調整修正方式直到策略通過為止。嘗試好幾個 N 值或好幾種方法,然後保留最寬鬆的那一個,這本身又是另一次試驗。
- 市場的改變。每一種方法都假設未來的行為與樣本相似。
- 短樣本。修正可以是正確的,答案卻仍然不確定。
還有其他方法處理同樣的問題。White 的現實檢驗(White, 2000)與 Hansen 的優越預測能力檢定(Hansen, 2005),會對你測試過的所有規則做重抽樣。Sullivan、Timmermann 與 White(1999)把這種方法應用在技術交易規則上。回測過度最佳化機率(Bailey et al., 2017)比較許多次試驗的樣本內與樣本外排名。Harvey 與 Liu(2015)則依檢定次數,給出夏普比率的折減。所有這些方法都需要你做過的完整試驗集合,所以沒有一個能解決 N 未知的問題。只有保留樣本能避開這個問題。
如果你使用 AlphaPrime,這代表:把你的搜尋當作批次保存,以便計算試驗次數。用你的上界與分組後的計數,兩者都拿來評判最佳候選策略,並讓最後一段資料保持封閉,直到最後一次執行。
常見問題
平減夏普比率多少算好?
平減夏普比率是介於 0 與 1 之間的機率。許多研究者把高於 0.95 的值視為強力證據,表示真實夏普比率高於運氣門檻。接近 0.5 的值代表策略大致與相同試驗次數後單靠運氣所能預期的最佳結果相當。
平減夏普比率中該用多少試驗次數?
當你不知道獨立試驗的次數時,請計算兩次:一次用包含未記錄想法的寬鬆上界,一次用把相關變體分組後得到的有效 N。如果兩者都通過,結果就穩健;如果只有較小的次數通過,就用全新的保留樣本測試這個策略。
推進分析能免除多重檢定修正的需要嗎?
不能。推進分析是在該次執行未用來調整的資料上測試每一次執行。如果你重複研究許多次,並保留最好的推進分析結果,你就又做了許多次試驗。請把這些執行次數計入,或用只看一次的保留樣本確認結果。
可以把年化夏普比率代入平減夏普比率公式嗎?
夏普比率、各次試驗的離散程度與樣本長度,必須全部使用相同的期間。如果你的報酬是日報酬,就用日夏普比率與天數。把年化夏普比率與日資料的筆數混用,會得到誤導的結果。
參考文獻
- Bailey, D. H., & López de Prado, M. (2014). The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting and Non-Normality. The Journal of Portfolio Management, 40(5), 94–107.
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2017). The Probability of Backtest Overfitting. Journal of Computational Finance, 20(4), 39–69.
- White, H. (2000). A Reality Check for Data Snooping. Econometrica, 68(5), 1097–1126.
- Hansen, P. R. (2005). A Test for Superior Predictive Ability. Journal of Business & Economic Statistics, 23(4), 365–380.
- Sullivan, R., Timmermann, A., & White, H. (1999). Data-Snooping, Technical Trading Rule Performance, and the Bootstrap. The Journal of Finance, 54(5), 1647–1691.
- Harvey, C. R., & Liu, Y. (2015). Backtesting. The Journal of Portfolio Management, 42(1), 13–28.
- Lo, A. W. (2002). The Statistics of Sharpe Ratios. Financial Analysts Journal, 58(4), 36–52.
AlphaPrime 在這裡能幫上什麼
AlphaPrime 的策略檢驗提供基本、標準與完整檢驗、推進分析,以及你自訂的門檻。績效報表會顯示權益、回撤、交易與各期間績效,你可以在最後的保留樣本執行之前,用它來評估候選策略的報酬。

