回測的過度擬合:為什麼漂亮的回測仍可能失敗|Traseq 部落格研究方法回測的過度擬合:為什麼漂亮的回測仍可能失敗
曲線擬合如何讓回測在樣本內看起來很棒,卻在實盤失敗;該留意哪些警訊;以及版本可追溯性如何讓過度最佳化現形。
一份回測可以呈現乾淨的資產曲線、高勝率與強勁報酬,卻幾乎無法告訴您任何有用的事。原因就是過度擬合。當您把策略調整到貼合某一段歷史中的隨機雜訊時,結果在那批資料上看起來很出色,卻會在條件一變的瞬間崩潰。分辨「好策略」與「運氣好的策略」,是最重要的一項研究技能,也正是回測存在的理由。
Traseq 是研究工作區,不是實盤交易或交易所執行平台。它不會下單、不會連結交易所帳戶,也不保證績效。本文的目的與保證恰恰相反:就是要幫您學會懷疑那些好得不真實的結果。
過度擬合(曲線擬合,或 over-optimization)指的是策略描述的是特定的過去資料本身,而不是市場底層的行為。任何價格序列都包含兩種東西:訊號(您也許能利用的、可重複的結構)與雜訊(不會重複的隨機波動)。您調整的旋鈕越多、越是為了最大化單一回測而調整,規則最後就越是在解釋雜訊。
陷阱在於,過度擬合會 。加一個濾網、把門檻挪一點、排除某個壞月份——這些操作幾乎一定會讓樣本內的數字上升。正因如此,漂亮的回測並不能證明策略好。它可能只是證明您夠努力把歷史擬合進去了而已。
把一個構想轉成可測試的版本。
從無程式的加密貨幣現貨策略開始,鎖定版本、執行回測,並讓結果保持可追溯以供比較。
改善您的回測數字
穩健的策略則正好相反:它放棄一部分樣本內的完美,換取在從未見過的資料上仍能站得住的行為。
過度擬合很少能靠盯著報酬看出來。您得看結果是 如何 產生的、以及它有多脆弱,才看得出來。請留意這些徵兆:
| 徵兆 | 為什麼指向過度擬合 |
|---|
| 參數太多 | 每一個回看期、門檻、停損、濾網,都是一個用來擬合雜訊的自由度。一條有八個被調過的數字的規則,幾乎能擬合任何東西。 |
| 平滑得可疑的資產曲線 | 真正的策略會有連敗。在一個雜訊很多的市場裡,幾乎沒有回撤的曲線,通常代表規則被塑造成在閃避特定的過去損失。 |
| 一改日期或手續費就崩潰的結果 | 如果把起始日挪幾週、或加入現實的手續費與滑點,就讓贏家變輸家,那這個優勢本來就不穩健。 |
| 交易筆數極少 | 寥寥幾筆交易無法分辨實力與運氣。建立在 9 筆交易上的「漂亮」結果,大半是雜訊。 |
| 為追一個數字而反覆微調的歷史 | 如果您把規則改了幾十次,只留下能拉高回測報酬的版本,那您最佳化的是工作區,不是市場。 |
為什麼小樣本招來過度擬合
少量的交易筆數是最常見、也最被低估的陷阱。Traseq 學習中心的互動示範,把三個教科書級的模板,跑在 2024-11-03 到 2024-12-31 的真實 BTC/USDT 1h K 棒上。RSI Mean Reversion 模板在這段期間以 +1.74% 作收——但達成它只用了區區 9 筆 交易。
9 筆不足以信任。把其中一兩筆對調、或把期間挪一週,報酬就可能輕易翻成負值。樣本這麼少時,您甚至可以靠調整 RSI 門檻,直到它在這特定期間剛好抓到贏的交易、避開輸的交易,來「改善」結果——而您對這條規則究竟有沒有用,卻什麼也學不到。回測產生的交易越少,單一結果就越被偶然主宰,也越容易擬合到雜訊。
看看未經修飾、未經調整的結果長什麼樣,會很有幫助。在同樣這段震盪的兩個月裡,三個示範模板都照原樣執行,完全沒有最佳化:
| 模板 | 報酬 | 勝率 | 交易筆數 | 獲利因子 |
|---|
| SMA(200) Trend Filter | -6.89% | 22.7% | 22 | 0.36 |
| RSI Mean Reversion | +1.74% | 44.4% | 9 | 1.12 |
| Donchian Breakout | -10.27% | 34.5% | 29 | 0.66 |
這段期間是一波漲勢之後由橫盤轉跌的震盪,結果也如實反映:兩個趨勢/突破模板淨虧損,均值回歸也只是勉強打平。這不是示範失敗,而是誠實的樣貌。危險之處在於,您可以靠不斷加濾網,直到曲線往上,把上面任何一個「修好」。那種被編輯過的結果看起來很棒,卻毫無意義。所謂紀律,就是讓規則保持簡單、接受誠實的數字,並把回測當成一個問題,而不是一份判決。
- 減少參數。 從能表達您構想的最小規則開始。只有在您能說明 為什麼 某個旋鈕應該有用時才加上它,而不是因為它拉高了回測。
- 做樣本外測試。 在某一段歷史上調整,然後在一段您完全沒碰過的歷史上測試。如果優勢還活著,它就更可能是真的。完整方法請見 樣本內與樣本外測試。
- 做穩健性檢查。 跨時間框架(
1h、4h、1d)、跨不同日期範圍與市場局面重跑。穩健的策略會緩慢退化,過度擬合的策略則會瓦解。
- 檢查參數敏感度。 把每個門檻上下挪一點。如果一個小變動就毀掉結果,那這個策略只是站在某個特定資料集的刀鋒上維持平衡。
- 加入現實的手續費與滑點。 成本是最便宜的現實檢驗。許多「優勢」不過是還沒付的交易成本。
- 要求足夠的交易筆數。 對任何建立在小樣本上的結論抱持懷疑。跨越更多條件的更多交易,讓運氣更容易被排除。
過度擬合藏在版本之間的縫隙裡——那些您為了追一個數字而加上、然後又忘掉的小修改。Traseq 正是為了補上這道縫隙而打造。
- 版本可追溯性。 每一次回測都綁定一個已定版的策略版本,因此您能精確看到在 v1、v2、v3 之間轉動了哪些旋鈕。如果報酬是在您加了三個濾網、又排除一個月之後才上升的,版本歷史會把它顯示出來。流程請閱讀 研究可追溯性與策略版本管理。
- 比較組。 與其相信一張好看的截圖,不如把多個版本並排,一起比較報酬、回撤、條件與期間。只在某一個日期範圍或某一個時間框架才贏的結果,會立刻露餡。請見 如何比較回測結果。
- 可重現的執行。 因為已定版的版本鎖定了精確的規則與執行設定,您可以把同一套邏輯在新的日期範圍上重測,確認優勢是真的還是被擬合出來的。
能看見整條修改鏈,正是把「我有一份漂亮的回測」轉變成「我能分辨這個策略是真的好,還是只是運氣好」的關鍵。
什麼是回測的過度擬合?
過度擬合是指策略被調整成貼合某一段歷史資料的隨機雜訊,而不是可重複的市場行為。它讓回測在樣本內看起來很出色,卻會讓策略在新資料上失敗,因為規則是圍繞著不會重複的細節塑造出來的。
曲線擬合和過度擬合有什麼不同?
兩者描述的是同一個問題。「曲線擬合」強調把規則塑造成貼合某一條特定價格路徑,「過度最佳化(over-optimization)」則強調為了最大化單一回測而調整過多參數。兩者都會產出貼合過去、而非貼合市場的策略。
我怎麼知道自己的策略是不是過度擬合?
看徵兆,而不是看搶眼的報酬:被調過的參數太多、平滑得可疑的資產曲線、極少的交易筆數,以及一旦更動日期範圍或加入現實手續費就崩潰的結果。如果小變動就把它弄壞,那它很可能已經過度擬合。
為什麼少量交易筆數會造成過度擬合?
當交易只有寥寥幾筆時,運氣主宰結果,所以單一數字並不可靠。一個用 9 筆交易跑出正報酬的策略,只要對調個兩筆就可能輕易翻成負值。交易少時,也很容易把門檻調到剛好在那一段期間抓住贏的交易。
Traseq 如何協助偵測過度擬合?
Traseq 把每一次回測都綁定到一個已定版的策略版本,因此每次執行背後的精確參數都會被記錄;比較組則讓您跨報酬、風險、條件與期間把多個版本並排。如此一來,「結果之所以改善,只是因為您加了旋鈕或挑選了某個日期範圍」這件事就會被攤開來看。
無需寫程式的回測:加密貨幣策略完整指南