對策略進行回溯測試

From FxCodeBaseWiki
Jump to: navigation, search

什麼是回溯測試?

回溯測試是指對歷史資料執行策略或信號。您「假設」歷史價格是「現在」市場上的價格,並觀察在這種市場情況下策略將如何起作用。要執行回溯測試,您必須選擇要觀察的策略,以及測試策略時要採用的歷史時間範圍。通常對一段較長時期(如數月甚至數年)執行策略的回溯測試是比較有意義的。

例如,以下是對 EUR/CHF 的 2010 年歷史資料執行標準 MA_ADVISOR 策略得到的淨值和餘額曲線(350 萬個價格點,每分鐘 8 個價格點),時間框架為 15 分鐘,短期/長期移動平均線 (MA) 參數為 15/55,沒有止損和限價,顯示在 1 小時圖中。您可以看到以移動平均線為基礎的所有「經典」策略存在的問題:它在市場不活躍時較為不精確,只有在充分形成趨勢時,才能很好地發揮作用。

Backtest1.png

回溯測試非常類似於策略偵錯。您可以看到完全相同的資料(價格點日誌、統計、圖表)。唯一的區別在於,您執行策略而不進行任何偵錯,目的只是為了觀察最終結果。因為未使用偵錯功能,執行回溯測試的速度可與執行策略的速度一樣快。如果策略寫得較好,不到一分鐘就可以完成對全年的回溯測試。

回溯測試設定

要對策略進行回溯測試,請使用策略偵錯器 (Strategy Debugger) 的 Check Performance/Backtest(檢查效能/回溯測試)命令(Tools[工具]->Check Performance/Backtest[檢查效能/回溯測試])。將會顯示策略清單。請注意,使用者策略和標准策略都可以進行回溯測試。選擇策略後,將顯示其參數。

設定回溯測試與設定偵錯工作階段的參數相同,因此,請閱讀對策略進行偵錯全文以瞭解詳細資訊。

幾點注意事項:

  • 強烈建議在回溯測試期間使用 1 分鐘資料來模擬市場。
  • SDK 未包含全年價格資料檔案。匯圖寶也不能用於保存超過 1 週的 1 分鐘資料。要獲得價格資料,請參閱 CodeBase 價格存檔,或透過 SDK 使用報價管理器下載資料。
  • 請勿忘記允許您的策略進行交易。大多數策略僅在您明確允許的情況下才會進行交易。

執行回溯測試器

在策略參數中按一下 OK(確定)後,就會開始執行回溯測試。您可以透過模擬的價格點數量和經過的時間瞭解測試進度。全年的 1 分鐘歷史資料會產生 350 萬(每週 5 個交易日)至 500 萬(每週 7 個交易日)個價格點。如果策略寫得較好,在 3GHz 處理器上執行時,執行時間一定不會超過 1 分鐘。處理器是幾核並不重要,回溯測試器始終只使用單核,這一點與策略優化器不同。如果執行時間過長,您可以隨時中斷回溯測試過程,然後選擇較短的時期。

如果您是開發人員,並且您的策略在回溯測試模式下執行時間過長,請閱讀策略優化,這將有助於改善策略效能。

回溯測試結果

回溯測試完成時,會顯示以下資料:

  • 執行回溯測試耗用的時間、模擬的價格點數量以及策略效能(每秒的價格點數)(顯示在 Output[輸出]標籤上)。
  • 回溯測試的完整價格點日誌(顯示在 Streams[流]標籤上)
  • 總體交易表現(顯示在 Statistics[統計]標籤上)
  • 以圖表顯示的策略結果(顯示在 Chart[圖表]標籤上)

要瞭解如何閱讀和使用顯示在這些標籤上的資料,請參閱對策略進行偵錯

與表格相關的標籤和與優化器相關的標籤為空。

關於回溯測試報告的特別說明

假設或模擬的表現結果存在某些局限性。與實際表現記錄不同,模擬的結果並不代表實際交易表現。並且,由於未執行交易,如果存在某些市場因素(如缺少流動性)的影響,測試結果可能會對這種影響進行過少或過多的補償。此外,模擬的交易程式一般是從事後分析的角度設計的,並不表示任何賬戶將來或目前可能發生與所示情況類似的盈虧。

亦請參閱

使用 SDK 2.0 優化策略參數(逐步說明)


其他語言版本

Language: English  • español • français • русский • 中文 • 中文(繁體)‎