什麼是回測/復盤(backtesting)?
回測是用來檢視某個策略或模型在過去的表現是否良好的一般方法。它透過使用歷史數據發現策略的可行性,看看該策略將如何發揮作用。如果回測有效,交易者和分析師可以有信心在未來採用它。
關鍵要點
- 回測透過使用歷史數據發現某個交易策略或定價模型的可行性,了解該策略在過去如何表現。
- 基本理論是任何在過去表現良好的策略未來可能也會表現良好,相反地,過去表現不佳的策略未來可能也會表現不佳。
- 在歷史數據上測試一個想法時,保留一個歷史數據期間用於測試的目的是有益的。如果成功,將其在替代時間段或非樣本數據上測試可以幫助確認其潛在可行性。
理解回測
回測允許交易者使用歷史數據來模擬交易策略,生成結果並分析風險和盈利能力,這樣做之前不需要冒任何實際資本的風險。
一個進行良好的回測如果得到積極的結果,會讓交易者相信該策略基本上是可靠的,並在現實中實施時可能會獲利。相反,進行良好的回測如果得到不理想的結果,會促使交易者修改或放棄該策略。
特別複雜的交易策略,例如由自動交易系統實施的策略,嚴重依賴回測來證明其價值,因為它們太過深奧無法以其他方式評估。
只要交易想法可以量化,就可以進行回測。一些交易者和投資者可能會尋求合格程式員的專業知識將想法轉化為可測試的形式。通常,這涉及程式員將想法編碼到交易平臺的專有語言中。
程式員可以加入用戶定義的輸入變量,允許交易者「調整」系統。一個例子是簡單移動平均(SMA)交叉系統。交易者可以輸入(或更改)系統中使用的兩個移動平均線的長度。然後,交易者可以回測以確定哪些移動平均線的長度在歷史數據上表現最佳。
理想的回測情境
理想的回測會選擇有相關性且反映多種市場條件的時間段樣本數據。這樣可以更好地判斷回測結果是偶然還是可靠的交易。
歷史數據集必須包含真正具代表性的股票樣本,包括最終破產、被賣掉或清算的公司的股票。另一種做法是僅包括今天仍存在的歷史股票數據,在回測中會產生成高的回報率。
回測應考慮所有交易成本,不管多麼微不足道,因為這些成本在回測期間會累積起來並極大地影響策略的盈虧情況。交易者應確保其回測軟體計入這些成本。
樣本外測試和前向性能測試提供了更多關於系統有效性的確認,可以在實際資金投入之前展示系統的真實情況。回測、樣本外和前向性能測試結果之間的強相關性對於確定交易系統的可行性至關重要。
回測與前向性能測試
前向性能測試,也稱為紙上交易,為交易者提供了另一組樣本外數據來評估系統。前向性能測試是實際交易的模擬,涉及在實時市場中遵循系統邏輯。之所以稱為紙上交易,因為所有交易都僅在紙面上進行;也就是說,記錄交易進、出以及系統的任何盈虧,但不執行真實交易。
前向性能測試的一個重要方面是嚴格遵循系統邏輯,否則就很難準確評估這一步驟。交易者應誠實地記錄任何交易進出,避免挑選交易或不記錄某筆交易,然後合理化地說「我不會做那筆交易」。如果交易是按照系統邏輯進行的,就應記錄並評估。
回測與情景分析
回測使用實際歷史數據來測試適合度或成功率,而情景分析則使用模擬各種可能結果的假設數據。例如,情景分析會模擬組合中證券價值的特定變化或關鍵因素變化,例如利率變化。
情景分析通常用於估算組合價值因不利事件發生而發生的變化,並可能用於檢查理論上的最壞情況。
回測的一些陷阱
為了讓回測產生有意義的結果,交易者必須誠實地開發其策略並盡可能避免偏見。這意味著該策略應在不依賴回測數據的情況下開發。
這比看起來要困難。交易者通常根據歷史數據建構策略。他們必須嚴格測試與其訓練模型時不同的數據集。否則,回測將生成沒有意義的輝煌結果。
同樣,交易者必須避免資料挖掘,即他們對同一組數據測試大量假設策略,這也會在實時市場中失敗,因為有很多無效的策略會在特定時間段內偶然扭轉市場。
補償資料挖掘或挑選交易的一種方法是使用在相關(樣本內)時間段中成功的策略,並使用不同(樣本外)時間段的數據進行回測。如果樣本內和樣本外回測結果相似,則更有可能被證明是有效的。