11.1 為什麼要回測
回測不是為了證明策略未來必然盈利,而是為了回答:
- 這個規則在歷史上有沒有重複出現?
- 勝率、盈虧比、回撤大概是什麼範圍?
- 虧損連續出現時能否承受?
- 加入手續費和滑點後是否還有效?
- 哪些市場狀態下策略表現差?
沒有回測的策略,往往只是幾張漂亮截圖。
11.2 回測的基本要素
一個基本回測至少要定義:
交易品種:
時間週期:
樣本區間:
入場規則:
出場規則:
止損規則:
止盈規則:
倉位規則:
手續費:
滑點:
最大同時持倉:
不交易條件:
規則越模糊,回測越容易自欺。比如“看到強勢K線入場”就不夠明確,必須定義強勢K線是什麼。
11.3 常見回測陷阱
過擬合:
為了讓歷史結果好看,不斷調整參數。過擬合策略在歷史上漂亮,在未來可能失效。
倖存者偏差:
只回測現在還活著或表現好的品種,忽略已經退市或失敗的樣本。
未來函數:
回測時使用了當時不可能知道的資訊,例如用當天收盤後才確認的數據做盤中入場。
忽略成本:
不計手續費、滑點、點差和資金費率,會顯著高估短線策略。
樣本太少:
幾個成功案例不能證明策略有效。至少要積累足夠交易次數,並跨不同市場狀態觀察。
模擬成交過於理想:
回測如果默認每次都按信號價完整成交,會低估真實交易難度。尤其是突破、開盤、新聞後和低流動性品種,真實成交可能包含滑點、部分成交、點差擴大和無法成交。
11.4 樣本外驗證
把數據分成兩部分:
- 樣本內:用於設計和調整規則。
- 樣本外:用於驗證規則是否仍然有效。
如果策略只在樣本內表現好,樣本外明顯失效,很可能只是擬合歷史噪音。
也可以做前向測試:用很小倉位或模擬帳戶按真實時間執行,觀察執行成本、心理壓力和滑點是否符合回測假設。
樣本外數據要提前鎖定,不能反覆修改參數直到樣本外也變好。只要你根據樣本外結果繼續調參,樣本外就會變成新的樣本內,驗證意義會下降。
11.5 策略評估指標
除了總收益,還要看:
- 最大回撤。
- 盈虧比。
- 勝率。
- 期望值。
- 連續虧損次數。
- Profit Factor。
- 平均持倉時間。
- 單筆最大虧損。
- 收益是否來自少數極端交易。
一個策略收益高但最大回撤巨大,可能並不適合真實執行。適合你的策略,不僅要數學上成立,還要心理上能堅持。
回測結果還要看穩定性。若收益主要來自少數幾筆極端行情,或參數稍微變化結果就大幅惡化,說明策略可能依賴偶然樣本。真實交易前,應檢查不同年份、不同波動環境、不同成本假設下結果是否仍能接受。
11.6 本章練習
選擇一個最簡單的模型,例如“上升趨勢中回踩20EMA後出現看漲吞沒入場”。手工回測最近100次樣本,記錄:
- 入場是否嚴格符合規則。
- 每筆最大虧損和最大盈利。
- 實際能否成交。
- 加入手續費滑點後的R倍數。
- 連續虧損最長幾次。
這比反覆觀看碎片化交易內容更接近真實進步。