回測常見的 3 個陷阱:偷看未來、忽略成本、只挑好看的期間
本文為交易研究與教育內容,不提供投資建議,也不推薦任何個別標的。
你可能看過這種回測圖:一條幾乎筆直往上的曲線,年化報酬高得驚人。但如果真的照著做,結果往往差很多。
原因通常不是市場變了,而是回測本身就有問題。以下是最常見的三個陷阱。
陷阱一:偷看未來(未來函數)
意思:回測時用了「當時還不知道」的資訊。
最常見的例子:規則寫「收盤價突破均線就買進」,回測卻用當天收盤價成交。問題是,你要等到收盤才知道有沒有突破,這時候已經買不到那個價格了。
其他例子:
- 用「整季」的財報數字,但財報其實是季後一個多月才公布。
- 用今天的成分股名單去測十年前(見陷阱三的倖存者偏差)。
怎麼避免:訊號出現後,以下一個交易日的開盤價成交,比較接近真實情況。
陷阱二:忽略交易成本
意思:回測沒有扣掉手續費、交易稅和滑價。
以台股為例,每次買賣都有手續費,賣出還有證券交易稅。單次看起來不多,但交易越頻繁,成本吃掉的報酬越多。一個一年交易上百次的策略,回測不算成本可能看起來很賺,算了之後可能變成虧損。
滑價是另一個容易被忽略的成本:你想用 100 元買,實際成交可能是 100.5 元,尤其在流動性差的標的上更明顯。
怎麼避免:回測一定要計入手續費、交易稅與滑價;可以再做一次「成本加倍」的測試,看看策略是否還站得住。
陷阱三:只挑好看的期間、過度最佳化
挑期間:同一個策略,在 2020–2021 年的大多頭可能很漂亮,放到 2022 年就完全不同。只展示好看的那一段,是最常見的誤導。
過度最佳化:一直調參數,直到回測結果最好為止。例如把均線從 60 日改成 57 日、停損從 5% 改成 4.3%。這樣找到的「最佳參數」,很可能只是剛好配合過去的雜訊,換一段資料就失效。
倖存者偏差:只用「現在還存在」的股票回測,忽略了中間下市、被併購的公司,結果會偏樂觀。
怎麼避免:
- 用長時間、涵蓋不同市場狀況的資料。
- 參數變動測試:參數稍微改一點,結果不應該差太多。
- 樣本外驗證:用一段資料找規則,再用另一段「沒看過」的資料驗證。
- 蒙地卡羅測試:把交易順序隨機打亂上千次,看看結果的分布範圍(詳見〈蒙地卡羅測試是什麼〉)。
一張表整理
| 陷阱 | 症狀 | 避免方法 |
|---|---|---|
| 偷看未來 | 回測好到不真實 | 隔日開盤價成交 |
| 忽略成本 | 高頻策略回測很賺 | 計入手續費、稅、滑價;成本加倍測試 |
| 挑期間/過度最佳化 | 換期間、改參數就失效 | 長期資料、參數變動、樣本外、蒙地卡羅 |
TickPeak 怎麼處理這些問題
TickPeak 的回測以隔日開盤價成交,並計入手續費、交易稅與滑價;歷史資料經過除權息還原與異常報價檢查。每次回測都附 8 項穩健性檢查,也可以做深度檢查:參數變動、成本加倍、樣本外驗證與 1,000 次蒙地卡羅。
即使如此,過去表現仍不代表未來。回測過關之後,建議再用模擬帳戶在即時行情中前進測試。
好的回測不是讓結果看起來最漂亮,而是讓你盡早發現策略的弱點。
研究與教育用途,不提供投資建議;回測與模擬為模擬績效,不代表未來實際報酬。