什麼是回測?
回溯測試是查看策略或模型事後 表現如何的通用方法。回溯測試通過使用歷史數據發現交易策略如何發揮作用來 評估交易策略的可行性,並在未來使用它。
要點
- 回溯測試通過使用歷史數據回顧性地發現交易策略或定價模型的可行性來評估交易策略或定價模型的可行性。
- 基本理論是,任何過去表現良好的策略在未來都可能表現良好,相反,任何過去表現不佳的策略在未來也可能表現不佳。
- 當用歷史數據測試一個想法時,保留一段時間的歷史數據用於測試是有好處的。
了解回測
回溯測試允許交易者在拿任何實際資本冒險之前,使用歷史數據 來模擬交易策略以生成結果並分析風險和盈利能力。
進行良好的回測會產生積極的結果,讓交易者確信該策略從根本上來說是合理的,並且在現實中實施時可能會產生利潤。
複雜的交易策略,例如自動交易系統實施的策略,嚴重依賴回溯測試來證明其價值,因為它們太神秘,無法以其他方式進行評估。
只要交易想法可以量化,就可以進行回溯測試。一些交易者和投資者可能會尋求合格程序員的專業知識,將想法開發為可測試的形式。通常,這涉及程序員將想法編碼為託管的專有語言通過 交易平台。
程序員可以合併用戶定義的輸入變量,允許交易者“調整”系統。這方面的一個例子是系統中使用的兩個移動平均線的簡單移動平均線(SMA) 交叉系統。交易者可以然後回 測以確定哪些長度的移動平均線在歷史數據上表現最好。
理想的回測場景
理想的回測是從反映多種市場狀況的一段時間段內的相關時間段中選取樣本數據,這樣可以更好地判斷回測的結果是代表僥倖還是穩健的交易。
歷史數據集必須包括真正具有代表性的股票樣本,包括最終破產或被出售或清算的公司的股票樣本。另一種選擇,僅包括今天仍然存在的歷史股票的數據,將在回測中產生人為的高回報。
回測應考慮所有交易成本,無論多麼微不足道,因為這些成本可能會在回測期間累積起來,並極大地影響策略盈利能力的表現。交易者應確保其回測軟件考慮了這些成本。
樣本外測試和遠期 性能測試可以進一步確認系統的有效性,並可以在真正的現金上線之前顯示系統的真實面目,這 對於確定交易系統的可行性至關重要。
回溯測試與前向性能測試
遠期性能測試,也稱為 紙面交易,為交易者提供另一組樣本外數據來評估系統。遠期性能測試是對實際交易的模擬,涉及在實時市場中遵循系統的邏輯。也稱為紙上交易,因為所有交易僅在紙上執行;也就是說,交易進入和退出以及系統的任何利潤或損失都會被記錄下來,但不會執行任何實際交易。
正向性能測試的一個重要方面是準確遵循系統的邏輯;否則,即使不是不可能,也很難準確評估流程的這一步。交易者應該誠實對待任何交易進入和退出,並避免諸如櫻桃之類的 行為- 選擇 交易或不包括紙上交易,合理化“我永遠不會進行該交易。”如果交易按照系統邏輯發生,則應記錄和評估。
回測與場景分析
回溯測試使用實際歷史數據來測試擬合或成功,而情景分析則使用假設數據來模擬各種可能的結果,例如利率的變化。
情景分析通常用於估計投資組合價值因不利事件而發生的變化,並且可用於檢查理論上的最壞情況。
回溯測試的一些陷阱
為了讓回溯測試提供有意義的結果,交易者必須制定策略並真誠地對其進行測試,盡可能避免偏見。
這比看起來更難。交易者通常根據歷史數據制定策略。他們必須嚴格使用與訓練模型所用的數據集不同的數據集進行測試。
同樣,交易者必須避免數據挖掘,即他們根據同一組數據測試各種假設策略,這也會產生在實時市場中失敗的成功,因為有許多無效策略可以在一段時間內擊敗市場。具體時間段是偶然的。
彌補數據挖掘或挑選傾向的一種方法是使用在相關或樣本內時間段內成功的策略,並使用來自不同或樣本外時間段的數據進行回溯測試如果樣本內和样本外回測產生相似的結果,那麼它們更有可能被證明是有效的。