VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
交易研究社 / 回測與檢驗

回測過度最佳化:為什麼最漂亮的回測通常被高估

當你嘗試許多組參數並只留下最好的一組,它的分數有一部分來自運氣,而且嘗試的組數越多,這一部分就越大。Bailey、López de Prado 等人的研究說明了如何估計運氣的占比,並為勝出者設定更高的門檻。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 為什麼多次回測中的最佳者靠運氣而好看?
  2. 回測過度最佳化的研究發現了什麼?
  3. 光靠運氣能產生多高的 Sharpe ratio?
  4. Deflated Sharpe Ratio 衡量什麼?
  5. Probability of Backtest Overfitting 衡量什麼?
  6. 期貨交易者實際上做了多少次嘗試?
  7. 如何讓折扣維持誠實?
  8. 常見問題
  9. 參考文獻

為什麼多次回測中的最佳者靠運氣而好看?

多次回測中的最佳者通常被高估,因為「挑選」這個動作本身就會增加運氣的成分。當你嘗試許多組參數並留下最好的一組,它的分數有一部分是隨機雜訊的最大值,而且每多試一種變化,這一部分就會變大。Bailey、López de Prado 等人的研究說明了如何估計並扣除這一部分。

請 100 個人各擲公平硬幣 10 次。沒有人具備擲硬幣的技巧。即便如此,至少有一個人擲出 8 次或更多正面的機率仍高於 99%。有人擲出 9 次或 10 次正面的機率約為三分之二。

現在請這位「最會擲硬幣的人」再擲一次。他下一次的成績很可能接近 5 次正面,和其他人一樣。他第一次的結果是真實的,只是並不能證明他有技巧。那只是 100 個隨機結果中的最佳者。

參數掃描就是同樣的實驗。每一組參數就是一個人在擲硬幣,最佳回測就是那位最會擲的人。它的結果有一部分可能是市場中真實的優勢,另一部分則是身為多次嘗試中最大值的運氣。回測過度最佳化,指的是因為某個策略在多次嘗試中得分最高而選了它,於是它的回測結果有一部分來自運氣,而不是真實的優勢。

回測過度最佳化的研究發現了什麼?

研究顯示,只要不斷嘗試各種變化,就很容易做出看起來很強的回測,而且試得越多,勝出者越可能是過度最佳化的結果。David Bailey、Jonathan Borwein、Marcos López de Prado 與 Qiji Jim Zhu 在三篇論文中證明了這一點(列於下方參考文獻)。他們的主要發現,用白話來說:

  • 好看的回測很容易做出來。不需要上百萬次嘗試。在幾年的資料上做相當少量的變化,就足以找到一個看起來很強的結果,即使其中沒有任何一個真的有優勢。
  • 嘗試的變化越多,光靠運氣,最佳者就看起來越好。勝出者是過度最佳化的機率,會隨嘗試次數增加而上升。
  • 嘗試次數通常是隱藏的。多數回測在公布時不會說明測試了多少種變化。沒有這個數字,沒有人能判斷結果有多少是挑選造成的,包括你自己,如果你沒有記錄次數的話。
  • 過度最佳化的策略可能比零還差。如果市場行為在一段走勢之後傾向反轉(例如一段強勢趨勢之後接著震盪),那麼緊貼某一段期間配適出來的參數,在下一段期間可能虧損。此時預期的實單交易結果是負的,而不只是持平。

2014 年 Notices of the AMS 的論文給了一個例子:使用五年的日資料,在大約 45 種獨立變化之後,即使最佳者在新資料上的預期 Sharpe ratio 為零,它在回測中預期仍會呈現約 1 的年化 Sharpe ratio。

Sharpe ratio 是平均報酬除以報酬的波動程度(標準差),通常換算成一年的數值。它衡量的是每單位波動所換來的報酬。1 這個值常被視為不錯的策略,這正是這個例子重要的原因。

光靠運氣能產生多高的 Sharpe ratio?

光靠運氣,在五年資料上做大約 50 種變化後,最佳 Sharpe ratio 就可能被推到約 1,做到 100 種時會高於 1.1。你可以為自己的搜尋估計這個「運氣門檻」。運氣門檻是指,即使你的所有變化都沒有任何優勢,其中最佳者仍會達到的 Sharpe ratio。可用下列公式估計:

運氣門檻 ≈ M ÷ √Y

  • M 是 N 次隨機抽樣中最佳分數的典型值。它來自下方的表格,隨 N 增加而緩慢成長。
  • Y 是回測的年數。√Y 是它的平方根。歷史越長,運氣門檻越低,因為資料越多,隨機的 Sharpe ratio 越會向零靠攏。
  • 結果以年化 Sharpe ratio 表示。

這個公式假設三件事:各種變化彼此獨立、報酬大致呈鐘形分布、且沒有任何一種變化有真實的優勢。請把它當作粗略的尺度,而不是精確的答案。

嘗試的變化數(N)M運氣門檻,5 年運氣門檻,10 年
1000
101.540.690.49
1002.511.120.79
一千3.241.451.02
10,0003.851.721.22
光靠運氣就能達到夏普 1:五年資料、沒有真正優勢,N 次嘗試中最佳夏普比率約為:10 次 0.69、100 次 1.12、一千次 1.45、一萬次 1.72,因此約 100 次嘗試後就超過常被視為良好的 1.0 水準 光靠運氣就能達到夏普 1 N 次嘗試取最佳,5 年,無優勢 夏普 1.0 常被稱為良好 0.69 1.12 1.45 1.72 嘗試次數 (N) 10 100 1千 1萬 100 次嘗試就超過夏普 1。 所以:計次數,提高標準。
範例:在五年資料、且任何變化都沒有真實優勢的情況下,100 種變化中的最佳回測已經呈現高於 1 的 Sharpe ratio。

假設性範例

你在五年資料上測試某個突破系統的 100 種變化。最佳者的 Sharpe ratio 為 1.2。五年內嘗試 100 次的運氣門檻約為 1.1。你的勝出者僅略高於純靠運氣就能得到的水準,所以誠實的折扣幾乎等於整個結果。如果最佳者的 Sharpe ratio 是 2.0,它就大幅超過門檻,這個結果就值得進一步檢驗。

實際的各種變化並不獨立。50 根 K 棒與 52 根 K 棒的移動平均幾乎會產生相同的交易。因此有效的獨立嘗試次數會比原始次數少,但很難知道少多少。請把原始次數當作嚴格的一端,把較低的估計當作寬鬆的一端。如果結果只有在採用寬鬆數字時才過關,那它就很薄弱。

Deflated Sharpe Ratio 衡量什麼?

Deflated Sharpe Ratio(DSR)出自 Bailey 與 López de Prado 2014 年的論文,是把上述概念轉成機率的單一數字。它要問的是:考慮到嘗試了多少種變化,我們有多大把握認為勝出者的真實 Sharpe ratio 高於運氣所能產生的水準?

它會考慮:

  • 嘗試次數。嘗試越多,勝出者必須跨過的門檻越高。
  • 所有嘗試的 Sharpe ratio 分散程度。分散越大,代表運氣能把最佳者推得越高。
  • 績效紀錄的長度。紀錄越短,雜訊越大。
  • 報酬的形狀。偏態衡量不對稱程度。峰態衡量極端結果出現的頻率,常被稱為「肥尾」。一個有許多小獲利、偶爾出現大虧損的策略,其 Sharpe ratio 看起來會比實際風險好,DSR 會把它調低。

輸出是介於 0 到 1 之間的機率。接近 1 的值,例如 0.95,代表結果不太可能只是挑選與雜訊所造成。接近 0.5 或更低的值,代表勝出者大約就是光憑嘗試次數就能預期的水準。

Probability of Backtest Overfitting 衡量什麼?

Probability of Backtest Overfitting(PBO)出自 2017 年的論文,衡量的是你挑選勝出者的方式在未見過的資料上多常失敗;它看的是挑選的過程,而不是某一個勝出者。簡化後的概念如下:

  1. 把歷史資料切成相等的區塊,例如 10 個區塊。
  2. 選出一半區塊作為「挑選」集,另一半留作「檢查」集。對區塊對半分的每一種可能方式都這樣做。10 個區塊共有 252 種方式。
  3. 每一種分法,都先在挑選集上找出最佳的變化,再看這個變化在檢查集上,於所有變化中排第幾名。
  4. 計算被選中的勝出者在檢查集上排名低於中位數的次數占比。

這個占比就是 PBO。如果你的流程沒有真正挑出勝出者的能力,被選中者落在中間之上或之下的次數大約相同,PBO 就會接近 0.5。PBO 遠低於 0.5,代表樣本內的勝出者在未見過的資料上傾向停留在較好的那一半。PBO 高於 0.5,則代表挑選回測領先者還不如隨機挑選。

PBO 需要你嘗試過的所有變化的結果,而不只是勝出者。這是另一個該把每次執行都記錄下來的理由。

期貨交易者實際上做了多少次嘗試?

變化累積的速度比多數交易者察覺到的要快。

假設性範例

20 種回看長度、10 種停損大小與 5 種交易時段過濾條件,就構成一千種組合。把它在三個市場與兩種 K 棒週期上都跑一遍,就是六千種。再加上你上個月試過又放棄的想法,真實的次數還會更高。

你在做出選擇之前看過的所有東西,都算一次嘗試:

  • 參數掃描中的每一種參數組合,
  • 你換進換出的每一個指標或規則,
  • 你測試過的每一個市場、K 棒週期或交易時段,
  • 同一項研究先前的每一輪,即使你把結果丟掉了。

當許多不同的交易規則在同一份資料上測試時,也會出現同樣的問題,勝出者要跨過的門檻也以同樣的方式升高。

自動化的策略生成會放大這個效應。在數百萬個候選策略中搜尋,會浮現回測分數非常高的勝出者,因為每多一個候選策略,運氣門檻就會升高。這並不代表大規模搜尋沒有用。它的意思是,勝出者必須跨過由搜尋規模決定的門檻,並且要在搜尋從未碰過的資料上受到檢查。更完整的討論請見策略生成中的過度最佳化。

如何讓折扣維持誠實?

要讓折扣維持誠實,就要記下每一次嘗試、留住未動用的資料,並用該批次的運氣門檻來衡量勝出者。

  • 記錄你的嘗試次數。替每一個批次留下紀錄:多少種變化、哪些市場、哪段日期範圍。你需要這個數字來設定運氣門檻、計算 DSR 或執行 PBO 檢查。
  • 保留未動用的資料。在開始之前,先把歷史資料中最近的一段留下來,例如最後兩年。只拿你最終的候選策略到這段資料上測試,而且只測一次。如果你看過它、改了規則又再看一次,它就不再是未動用的資料,而成為搜尋的一部分。
  • 偏好穩定的參數區域。看看相鄰參數值的結果。一大片高原,也就是附近的設定也都表現不錯,比較可能反映真實的規律。單一尖銳的峰值被糟糕的結果包圍,則是運氣好抽中的特徵。
  • 盡可能使用更長的歷史資料。測試越長,運氣門檻越低,所以同樣的 Sharpe ratio 在十年資料上比在三年資料上更有說服力。
  • 測試流程,而不只是勝出者。推進分析會在整段歷史上重複「挑選再檢查」的循環,顯示你挑選參數的方式是否站得住腳。
  • 從第一次執行就納入成本。手續費與滑價會在許多由雜訊驅動的小優勢勝出之前就把它們消除;請見回測中的交易成本。
  • 用該批次來衡量勝出者。把最佳結果與該嘗試次數對應的運氣門檻相比。先打折,再拿它和其他東西比較。
相信高原,而非尖峰:兩張示意網格,顯示回測夏普比率隨回看長度與停損幅度的變化;左側一大片相鄰參數組合都得高分,代表穩健;右側只有單一格子高分、周圍都偏低,代表脆弱 相信高原,而非尖峰 依回看長度與停損的夏普值 示意圖 高原:穩健 尖峰:脆弱 高 低 寬廣的高原更值得信賴。 因此:選高原的中間。
圖示:一大片良好結果的高原(左)比周圍都很差的單一明亮格子(右)更值得信賴,即使那個單一格子的分數更高。

如果你使用 AlphaPrime(Valynox),這代表:把每個搜尋批次保存在策略資料庫中,讓嘗試次數有紀錄可查,並在策略檢驗中用推進分析檢查勝出者。

常見問題

測試多少種變化之後,過度最佳化就很可能出現?

沒有固定的數字,因為這取決於你的歷史資料有多長,以及勝出者勝過運氣的幅度。在 Bailey 等人 2014 年 Notices of the AMS 的論文中,在五年日資料上做大約 45 種獨立變化之後,光靠運氣,最佳者預期就會呈現約 1 的回測 Sharpe ratio。請記錄每一次嘗試,並把勝出者與該次數對應的運氣門檻相比。

多高的 Deflated Sharpe Ratio 才算好?

Deflated Sharpe Ratio 是介於 0 到 1 之間的機率。接近 1 的值,例如 0.95,代表結果不太可能只是來自挑選與雜訊。接近 0.5 或更低的值,代表勝出者看起來大約就是嘗試次數靠機率就能預測的水準。

推進分析能消除過度最佳化嗎?

推進分析會在未用來挑選參數的資料上,測試你挑選參數的方式,因此能揭露單一回測中的大部分過度最佳化。但如果你跑了許多次推進分析並留下最好的一個,它就無法消除過度最佳化,因為此時推進分析本身也成了搜尋的一部分。請留下最後一塊未動用的資料作為最終檢查。

為什麼我最好的回測在新資料上表現較差?

最好的回測之所以被選中,是因為它得分最高,而那個分數有一部分是運氣。在新資料上,運氣不會重演,所以結果會回到它真實的水準,那可能是零或更低。你嘗試的變化越多,這個落差往往越大。

參考文獻

  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
  • 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.

AlphaPrime 在這裡能幫上什麼

AlphaPrime 的策略檢驗提供基本、標準與完整三種檢驗等級、推進分析與自訂門檻,讓你能在搜尋從未碰過的資料上檢查搜尋的勝出者。策略資料庫會把每個批次整理好,方便檢閱與重新檢驗。

看方案與價格