回測不是用來證明策略會賺錢的。它是用來淘汰不會賺錢的策略的。搞反這件事,你會浪費大量時間在錯誤的方向上。
你可能正在用錯誤的方式回測
大多數人拿到一個策略 idea 後的流程是這樣的:
- 寫好程式
- 跑回測
- 看到賺錢 → 開心 → 上實盤
- 看到虧錢 → 調參數 → 再跑一次 → 重複直到「賺錢」
第三步的問題是:回測賺錢只是最低門檻,不是終點。 第四步的問題更大:你不是在「優化」策略,你是在製造過擬合。
前兩篇文章我們聊了為什麼 YouTube 策略會失敗、RSI 策略為什麼跑不贏大盤。這篇來談一個更根本的問題:拿到策略 idea 之後,到底該用什麼流程來驗證它?
正確的回測流程:六個步驟
Step 1:先問「這個邏輯合理嗎?」
在寫任何一行程式碼之前,先問自己:
- 這個策略為什麼會賺錢?背後的市場邏輯是什麼?
- 這個邏輯在未來還會存在嗎?
- 有沒有其他人也在用同樣的邏輯?如果很多人用,優勢是否已經被套利掉了?
如果你無法用一兩句話解釋策略為什麼會賺錢,那它大概率只是數據巧合。
一個好策略的起點是「假設」,不是「觀察」。先有理論,再用數據驗證——不是先看數據,再編一個理論來解釋它。
Step 2:分割數據 — 樣本內 vs 樣本外
這是大多數人跳過的關鍵步驟。
把你的歷史數據分成至少兩段:
- 樣本內(In-Sample):用來開發和調整策略的數據,通常佔 60-70%
- 樣本外(Out-of-Sample):策略「從沒見過」的數據,用來驗證,佔 30-40%
重點:樣本外數據在驗證之前絕對不能碰。不能偷看、不能「只看一下趨勢」、不能「先確認方向再正式測試」。一旦你看了,它就不再是樣本外了。
這就像考試——模擬考的分數只能參考,真正的實力要看正式考的成績。
Step 3:在樣本內數據上開發策略
現在你可以在樣本內數據上盡情測試了。調參數、改規則、優化進出場——都可以。
但要注意幾件事:
- 記錄你測試了多少組合。如果你測了 100 組參數只挑最好的那個,你的結果有 99% 的機率是巧合。
- 參數越少越好。每多一個參數,過擬合的風險就指數級上升。
- 避免過度複雜的規則。如果你的策略需要五個指標同時滿足才進場,它大概率不會在未來複製。
Step 4:在樣本外數據上驗證
拿你在 Step 3 確定的策略(包含所有參數),直接跑在樣本外數據上。
不能再改任何東西。
結果會是以下三種之一:
- 績效和樣本內差不多 → 好消息,策略可能有真實的邊際。進入 Step 5。
- 績效明顯下降但還是正的 → 可能有微弱的邊際,但需要更多驗證。
- 績效變成虧損或大幅下降 → 策略大概率是過擬合的。回到 Step 1,換一個 idea。
大多數策略會落在第三種。這很正常。
Step 5:加上真實成本再測一次
通過樣本外驗證的策略,還要加上真實的交易成本:
- 滑價(Slippage):根據你交易的市場,通常是每筆 0.01%-0.1%
- 手續費(Commission):根據你的券商
- 資金限制:你不可能用無限資金,要測試固定資金下的績效
很多在「無成本」世界裡賺錢的策略,加上成本後就變虧損了。尤其是高頻交易的策略——交易次數越多,成本的殺傷力越大。
Step 6:壓力測試
最後,對通過以上所有測試的策略做壓力測試:
- 換一個市場測試:策略在 SPY 上賺錢,在其他指數上呢?如果只在一個特定市場有效,可能是巧合。
- 改變參數看敏感度:把 RSI 從 14 改成 12 或 16,績效會不會崩盤?如果微調就崩,策略不穩定。
- 測試不同的時間段:牛市、熊市、盤整市場的表現分別如何?
一個真正強健的策略,不會因為換個市場或微調參數就失效。
大多數人為什麼不這樣做?
因為這個流程會殺死 90% 的策略 idea。
你可能花了一個月開發一個策略,在樣本內表現漂亮得不像話。然後跑樣本外驗證——直接歸零。
這種感覺很痛苦。所以很多人選擇跳過驗證,直接上實盤,然後用真金白銀去「驗證」。
但用真錢驗證的代價,比用數據驗證貴太多了。
一個真實的對比
用上一篇的 RSI 策略作為例子:

同一個策略,兩種流程,結論完全不同。差別不在策略本身,而在你怎麼測試它。
你可以帶走的三件事
- 先有假設,再寫程式。無法解釋為什麼賺錢的策略,大概率只是巧合。
- 永遠保留樣本外數據。這是你唯一能判斷策略是否「真的有效」而非「剛好有效」的工具。
- 接受大部分策略會失敗。正確的回測流程不是幫你找到聖杯,而是幫你快速淘汰不值得花時間的想法。
下一篇,我們來聊聊為什麼有些策略回測漂亮、樣本外也通過了,但一上實盤就開始虧?回測和真實交易之間,到底還有哪些你沒想到的差距。


















