回測

回測過擬合 - 樣本內與樣本外

  • March 2, 2020

最近,我閱讀了 De Prado 等人的一篇很棒的論文。關於量化金融中的回測過擬合問題,題為偽數學和金融騙術:回測過擬合對樣本外性能的影響

在第一章中,他們定義了樣本內(IS)和样本外性能(OOS)如下:

關於回測策略的測量性能,我們必須區分兩個非常不同的讀數:樣本內 (IS) 和样本外 (OOS)。IS 性能是在策略設計中使用的樣本上模擬的性能(在機器學習文獻中也稱為“學習期”或“訓練集”)。OOS 性能是在策略設計中未使用的樣本(又稱“測試集”)上模擬的。當 IS 性能與 OOS 性能一致時,回測是現實的。

上面的定義非常直截了當,但讓我感到困惑的是論文中的資訊,即大多數人在評估不同策略時會查看 IS 的回測性能。金融界真的是這樣嗎?

例如,我過去進行回測的大部分時間都使用所謂的滾動視窗方法:我使用過去的數據擬合模型/策略參數,然後使用這個擬合模型進行一段時間的交易時間(比方說一個月)。在這段時間之後,我添加了最近一段時間的數據並重新擬合了模型。有關此類管道的視覺化,請參見下圖:

在此處輸入圖像描述

這種方法被認為是 IS 還是 OOS?(我的直覺是它是OOS,但是我的直覺也是這是執行回測的最自然的方式,根據De Prado 的論文似乎並非如此)。

它不是沒有樣本。這稱為前向回測,問題在於您根據 PnL 曲線調整模型。您添加了改進以減少回撤併增加回報,因此在您對訓練中未使用的性能進行評分和衡量時,您可以根據評分數據調整模型。因此,該數據構成您的驗證集的一部分,並且不是樣本外的。

如果你這樣做 - 你很可能會過擬合。

要真實反映樣本外的性能,您應該保留一個保留樣本,並且只對其進行幾次評分以衡量您的 OOS 性能。

這為 Lopez de Prado 這麼說奠定了基礎:

回測不是研究工具 - 特徵重要性是。

我想回顧一下之前關於交叉驗證是黃金標準的一些評論。您的 CV 表現是根據您的驗證集創建的,而不是您的 OOS 集。該模型在訓練集上進行訓練,並在驗證集上進行評分。要查看它是否會在樣本外執行,您需要傳遞一個真正的 OOS 集。


在設計開始之前,您會將數據分成兩部分,一個訓練集和一個測試 (OOS) 集。然後,您將繼續在您的訓練數據上應用 KFold CV,現在將其拆分為訓練集和驗證集。在步進技術的上下文中,您正在對所有數據(或滾動視窗)進行訓練,然後對驗證集進行評分,通常是您的下一次觀察,但這不是樣本外的。

引用自:https://quant.stackexchange.com/questions/50806