初學者的Python金融分析日記 – QuantConnect爬分之旅 EP3 時間× 錯誤 × 程式碼 × 改善

常見回測錯誤

這邊順便補充一些常見的回測錯誤。

1. 前視偏誤(Look Ahead Bias)

Look Ahead Bias指得是不小心用到未來的資訊,舉一個例子,如果我們在開盤就取得今日的收盤價,那我們就可以設計策略像是如果收盤價大於開盤價就買入之類的賺錢策略,但到實盤交易就毫無作用。

QC回測系統的設計模式是”基於事件”(Event Based),隨著時間的演進,回測系統會模擬各項事件,像是資料更新等等,來擬合交易狀況,所以在每個時點,回測系統會限制演算法只能取得這個時間點所能取得的數值。從而規避掉使用到未來數值的可能性。

但避免掉使用未來數值的可能性並不代表不會犯Look Ahead Bias,舉例來說,我們在回測時已經知道台積電會表現良好,所以刻意把台積電選進來當作我們的標的,儘管沒有在回測系統裡面使用到未來的數值,但在選取這個步驟已經使用到未來資訊。

2. 過度配適(Overfitting)

另一個回測常見的問題是過度配適,通常指我們的策略過度複雜或是參數太多,導致過度擬合資料,以至於在未來的實盤表現無法跟回測相比。

舉例來說,當回測一個短線壓長線的策略,這邊可能使用了兩個參數,分別為短線的期數以及長線的期數,這時候回測完發現某一段時期的表現特別差,所以又加了一個新指標來規避這段時期的表現,反覆類似的操作之後,就極有可能造成overfitting。

QC平台有一個overfitting的自動評分機制,但由於是自動規則計算,所以參考即可。

3. 過度失真的模擬

如果模擬回測時過度簡陋,可能會使得模擬效果失真,這在中低頻的交易策略特別容易發生,舉例來說,如果現在要回測一個交易頻率為數天的長線策略,則我們可能會拿日線價格來直接進行回測,假設我們的交易策略是超過3天均線價要買入,但由於使用的是日線資料,所以有可能在日內價格已經數次達到目標價,但回測時卻沒有辦法模擬到買入。

因此,回測策略時,資料的頻率較低會比較不會失真,當然,伴隨的成本就是計算的成本增加。

Share

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *