幾乎每個做策略的人都會經歷這一幕:回測跑出來曲線漂亮得不行,一上實盤就開始縮水。這不是玄學,也不是運氣差,而是回測與實盤之間本來就有幾個固定的缺口在漏。
最主要的四個:過擬合、前瞻偏差、被忽略的交易成本、以及歷史圖表裡看不出來的成交差異。每一個都能在動用真錢之前查清楚。
回測與實盤差,主要因為四個缺口:過擬合(策略擬合了測試那一段時間的雜訊)、前瞻偏差(測試用到了當時還不可用的資訊)、交易成本(乾淨測試沒算手續費與滑價)、執行差異(歷史圖表看不出真實的成交與時機)。每一項都可以在實盤前檢查,查清楚了差距就被理解了,而不是實盤裡才被嚇一跳。
缺口一:過擬合
一套策略被反覆調校到某一段特定歷史區間上,最終可能擬合的是這段區間的雜訊,而不是一個可重複的模式。回測在被調過的資料上當然好看,換個時段就原形畢露。
這是「好回測讓人失望」最常見的原因:結果描述的是測試期本身,不是市場。
缺口二:前瞻偏差
測試可能悄悄用到被測試那一刻還不可用的資訊:後來修訂的財務數字、後來才變化的成分,甚至未來才有的價格。
這讓策略好像擁有了實盤交易者從沒有的先見之明,結果被墊高了你卻沒察覺。
| 原因 | 它做了什麼 | 怎麼檢查 |
|---|---|---|
| 過擬合 | 擬合了測試的雜訊 | 在沒調校過的時段上重測 |
| 前瞻偏差 | 用了未來的資訊 | 核對每個輸入當時的可用時間 |
| 交易成本 | 沒算手續費與滑價 | 給測試加上現實成本 |
| 執行差異 | 假設完美成交 | 為真實成交與時機留出空間 |
缺口三:交易成本
一份「乾淨」的回測可以完全不考慮手續費、價差與滑價,於是每筆交易看起來都比實盤便宜。
暴露最狠的是高頻換手的策略:每筆只差一點點成本,攢成幾百上千筆,就是一個大數字。
| 項目 | 乾淨回測(不含成本) | 加上真實成本後 |
|---|---|---|
| 勝率 | 55%(55 / 100 筆) | 55%(不受成本影響) |
| 平均獲利 | 300 元 / 筆 | 300 元 / 筆 |
| 平均虧損 | 200 元 / 筆 | 200 元 / 筆 |
| 每筆手續費 + 滑價 | 0 元 | 80 元 |
| 期望值(每筆) | +75 元 | -5 元 |
同一套 100 筆的交易紀錄,唯一變化的只是有沒有算上真實成本,期望值就從正轉負。
乾淨回測裡,這套策略每筆平均能賺 75 元,勝率 55% 看著也不差。但只要把每筆 80 元的手續費和滑價算進去,淨期望值就從正轉負——這正是「缺口三」在數字上的樣子。
缺口四:執行差異
歷史圖表顯示的是價格,不是真實成交的體驗:跳空、薄盤口、下單時機,這些在乾淨測試裡全都看不見。
一個假設每個訊號都完美成交的策略,自然會高估實盤真正能拿到手的成績。
回測與實盤有差距,是因為幾個具體、可檢查的原因。紀律就是用現實成本、用沒調校過的時段來測,並把回測當成證據,而不是承諾。
怎麼把這幾個缺口堵上
在策略從沒被調校過的時段上跑回測,把真實的交易成本加進去,再核對每個輸入在測試那天是不是真的可用。
差距不會消失,但一個測法正確的策略,會讓你知道差距大概在哪、為什麼在,而不是等上了實盤才被現實教育。
常見問題
實盤比回測差,是正常的嗎?
如果成本、執行與測試偏差都沒算進去,那很正常。差距本身正常,但大小取決於具體原因。
哪個原因影響最大?
看策略。高換手策略被成本吃掉最多;被調校過的策略栽在過擬合;基本面策略容易被前瞻偏差坑。
這差距能完全消除嗎?
不能,但用現實成本、樣本外測試與嚴格的資料可用性檢查,能把它壓到很小。


