交易學習 12

第十一章 回測、樣本和策略研究

11.1 為什麼要回測

回測不是為了證明策略未來必然盈利,而是為了回答:

  • 這個規則在歷史上有沒有重複出現?
  • 勝率、盈虧比、回撤大概是什麼範圍?
  • 虧損連續出現時能否承受?
  • 加入手續費和滑點後是否還有效?
  • 哪些市場狀態下策略表現差?

沒有回測的策略,往往只是幾張漂亮截圖。

11.2 回測的基本要素

一個基本回測至少要定義:

交易品種:
時間週期:
樣本區間:
入場規則:
出場規則:
止損規則:
止盈規則:
倉位規則:
手續費:
滑點:
最大同時持倉:
不交易條件:

規則越模糊,回測越容易自欺。比如“看到強勢K線入場”就不夠明確,必須定義強勢K線是什麼。

11.3 常見回測陷阱

過擬合:

為了讓歷史結果好看,不斷調整參數。過擬合策略在歷史上漂亮,在未來可能失效。

倖存者偏差:

只回測現在還活著或表現好的品種,忽略已經退市或失敗的樣本。

未來函數:

回測時使用了當時不可能知道的資訊,例如用當天收盤後才確認的數據做盤中入場。

忽略成本:

不計手續費、滑點、點差和資金費率,會顯著高估短線策略。

樣本太少:

幾個成功案例不能證明策略有效。至少要積累足夠交易次數,並跨不同市場狀態觀察。

模擬成交過於理想:

回測如果默認每次都按信號價完整成交,會低估真實交易難度。尤其是突破、開盤、新聞後和低流動性品種,真實成交可能包含滑點、部分成交、點差擴大和無法成交。

11.4 樣本外驗證

把數據分成兩部分:

  • 樣本內:用於設計和調整規則。
  • 樣本外:用於驗證規則是否仍然有效。

如果策略只在樣本內表現好,樣本外明顯失效,很可能只是擬合歷史噪音。

也可以做前向測試:用很小倉位或模擬帳戶按真實時間執行,觀察執行成本、心理壓力和滑點是否符合回測假設。

樣本外數據要提前鎖定,不能反覆修改參數直到樣本外也變好。只要你根據樣本外結果繼續調參,樣本外就會變成新的樣本內,驗證意義會下降。

11.5 策略評估指標

除了總收益,還要看:

  • 最大回撤。
  • 盈虧比。
  • 勝率。
  • 期望值。
  • 連續虧損次數。
  • Profit Factor。
  • 平均持倉時間。
  • 單筆最大虧損。
  • 收益是否來自少數極端交易。

一個策略收益高但最大回撤巨大,可能並不適合真實執行。適合你的策略,不僅要數學上成立,還要心理上能堅持。

回測結果還要看穩定性。若收益主要來自少數幾筆極端行情,或參數稍微變化結果就大幅惡化,說明策略可能依賴偶然樣本。真實交易前,應檢查不同年份、不同波動環境、不同成本假設下結果是否仍能接受。

11.6 本章練習

選擇一個最簡單的模型,例如“上升趨勢中回踩20EMA後出現看漲吞沒入場”。手工回測最近100次樣本,記錄:

  • 入場是否嚴格符合規則。
  • 每筆最大虧損和最大盈利。
  • 實際能否成交。
  • 加入手續費滑點後的R倍數。
  • 連續虧損最長幾次。

這比反覆觀看碎片化交易內容更接近真實進步。