交易回測:怎麼驗證你的策略
學會在拿真錢冒險之前,用歷史數據驗證你的交易策略。期貨手動回測與自動回測的逐步指南。

你有一個交易的想法。你覺得它有效。你在圖上看過幾個例子,覺得很有搞頭。問題是:你會憑這種直覺押 $5,000 下去嗎?
答案應該是斬釘截鐵的不會。在你冒險投下任何一塊錢之前,你需要用歷史數據驗證你的策略。回測做的就是這件事:讓你在過去模擬幾百筆交易,看看你的想法到底有沒有真正的統計優勢,還是只是錯覺。
什麼是回測?
回測是把一套交易策略套用在市場的歷史數據上,評估它在過去表現如何的過程。它就像策略的時光機:你退回到幾週、幾個月或幾年前,照著即時交易的方式執行你的計畫。
如果你的策略是「價格回測到前一日的 POC、出現看漲的 pin bar 就買進」,回測可以讓你翻過去 6 個月的每一場交易時段,找出每一次符合條件的地方,並記錄結果。模擬完 100 筆以上的交易之後,你就有具體數據判斷這套策略是賺錢還是賠錢。
回測不預測未來。 它做的是給你統計上的信心。如果一套策略在 200 筆歷史交易中穩定有效,那就有紮實的理由相信它會繼續有效——前提是市場條件沒有劇烈改變。
為什麼回測不能省?
驗證你的優勢(edge)。 沒有回測,你不知道自己是真的有優勢,還是看到的那 5 筆獲利交易純屬運氣。穩定獲利的交易者和賠錢的交易者,差別往往就在於策略的優勢有沒有被驗證過,還是全憑直覺。
建立信心。 當你用真錢連續虧三筆,放棄策略的誘惑非常大。但如果你知道回測裡出現過類似的回撤、後面也都恢復了,你就守得住紀律。對數據的信心會壓過情緒上的懷疑。
找出弱點。 回測會揭露你策略的盲點。也許它在趨勢行情裡表現極好,在盤整裡卻全部吐回去。也許它勝率很高,但風報比低到一筆虧損就抹掉五筆獲利。沒有數據,你永遠不會知道。
手動回測:回放法
手動回測是用你交易平台的回放(replay)功能,在歷史數據上一根 K 棒一根 K 棒往前走,像即時交易一樣做決策。
一步一步怎麼做:
- 設定好你的平台。 在 NinjaTrader 上啟用 Market Replay。在 TradingView 上用 Bar Replay 功能。退回到你想測試的區間起點。
- 把規則白紙黑字寫下來。 開始之前,明確寫出你什麼時候進場、停損放哪裡、獲利在哪裡了結,以及必須滿足哪些條件。不能有模糊空間。
- 一根一根往前走。 不要偷看後面發生什麼事。只根據當下看得到的資訊做決定。
- 記錄每一筆交易。 用一份試算表記下:日期、商品、方向(多/空)、進場價、停損、目標、結果(以跳動點和美元計的盈虧),再加一句對這個進場型態品質的註記。
- 對自己誠實。 如果你不確定即時交易時會不會做這筆,就標成「存疑」,另外分開分析。
手動回測的優點:
- 練出你讀圖的眼力
- 逼你在模擬的不確定性下做決策
- 不需要寫程式
- 抓得住每套策略在實務上都存在的主觀成分
缺點:
- 慢(一個月的數據可能要花好幾個小時)
- 容易有無意識的偏誤(你的大腦希望這套策略有效)
- 很長的區間很難重複跑
自動回測:讓機器去做
自動回測需要把你的策略規則寫成程式,讓軟體在歷史數據上自動執行。它更快也更客觀,但需要技術能力。
期貨的主要工具:
| 平台 | 語言 | 適合 |
|---|---|---|
| NinjaTrader Strategy Analyzer | NinjaScript(C#) | 期貨的機械式策略 |
| TradingView Pine Script | Pine Script | 快速原型、用指標的策略 |
| Sierra Chart | ACSIL(C++) | 複雜策略、高頻 |
| Python(backtrader/zipline) | Python | 深入的統計分析、投資組合 |
自動回測的工作流程:
- 把進場、停損和目標的規則寫成程式
- 選好商品與歷史區間
- 執行回測
- 分析結果報告
- 需要時調整參數(小心不要掉進曲線擬合)
自動回測可以在幾秒內跑完上千筆交易,給你大得多的統計樣本。不過它有個重要限制:抓不太住主觀成分。如果你的策略仰賴「讀懂盤面脈絡」或「感覺動能」,就很難寫成程式。
你必須量的關鍵指標
只知道策略「賺」或「賠」是不夠的。你需要具體的指標來評估它的品質。
| 指標 | 量的是什麼 | 理想數值 |
|---|---|---|
| 勝率(Win Rate) | 獲利交易的百分比 | 風報比 1:1 要 >50%,2:1 要 >40% |
| 平均風報比(Average R:R) | 平均的獲利/虧損比 | 理想 >1.5:1,最低 >1:1 |
| 獲利因子(Profit Factor) | 毛獲利 ÷ 毛虧損 | >1.5 不錯,>2.0 很好 |
| 最大回撤(Max Drawdown) | 從高點算起最大的資金跌幅 | 看你的承受度;<20% 算保守 |
| 期望值(Expectancy) | 每筆交易的平均獲利 | 為正(任何正數都行) |
| 夏普比率(Sharpe Ratio) | 用波動度調整後的報酬 | >1.0 可接受,>2.0 很好 |
期望值的公式:
Expectancy = (Win Rate x Avg Win) - (Loss Rate x Avg Loss)
如果你的期望值為正,代表你的策略有統計優勢。數字越高越好。每筆 $50 的期望值,意思是平均而言,你每開一筆交易可以期待賺 $50(已經把虧損算進去了)。
獲利因子大概是最直覺的指標。如果它是 2.0,代表你每虧一塊錢就賺兩塊。獲利因子低於 1.0,就代表這套策略是賠錢的。
樣本數:你需要多少筆交易?
這是最常見的錯誤之一:測了 20 筆交易,看到 14 筆賺錢,就宣告策略有效。樣本這麼小,你面對的可能只是運氣。
通則:至少 100 筆交易。 到 100 筆,才開始有統計意義。到 200-300 筆,樣本才算穩固。少於 50 筆,你的結論基本上沒有用。
另外,要確保你的樣本涵蓋不同的市場條件:強勢多頭趨勢、空頭趨勢、橫盤整理、高波動期和低波動期。一套只在多頭趨勢裡有效的策略,不是一套完整的策略。
實務建議:當沖至少測 6 個月的數據,波段交易測 2-3 年。如果你做指數期貨(NQ、ES),要涵蓋有重大事件的區間(FOMC、非農就業數據、財報)。
你必須避開的嚴重錯誤
曲線擬合(過度最佳化)
這是第一號錯誤。你一次又一次調整策略參數,直到它在歷史數據上跑出完美的結果。問題是,你是為過去最佳化,不是為未來。
曲線擬合的徵兆:
- 你的策略有 10 個以上可調參數
- 某個參數改動 1 個跳動點,結果就整個崩掉
- 結果「好到不像真的」(獲利因子 5 以上)
- 在某一段期間完美,在另一段慘不忍睹
怎麼避開:用樣本外(out-of-sample)方法。把數據切成兩半,用前半段(樣本內)開發策略,再用後半段(樣本外)驗證。如果兩邊結果接近,就沒有曲線擬合。
忽略滑價與手續費
做回測時,很容易假設成交完美。但現實中你會遇到滑價(下單到成交之間價格會動)和每一筆交易的手續費。做剝頭皮時,這些摩擦成本可以把一套賺錢的策略變成賠錢的。
期貨的實務原則:每筆交易加上 1 個跳動點的滑價,以及你的平台/券商的實際手續費。如果加上這些成本後策略還是賺錢,那它就夠穩固。
倖存者偏誤
你只在「你知道行得通」的商品或期間測試策略,無意識地避開難做的時期。解法很簡單:把可用的整段期間全部測過,不留例外。
前推測試:通往實盤的那座橋
回測告訴你策略在過去有效。前推測試(也叫紙上交易或模擬交易)則向你確認它在當下、在即時行情裡、沒有偏誤的情況下也有效。
流程很簡單:
- 你的回測已經跑出正面結果
- 你用即時行情操作策略,但不用真錢(模擬或紙上交易)
- 你用跟回測完全一樣的方式記錄每一筆交易
- 做完 30-50 筆之後,把前推測試的指標和回測的指標拿來比對
如果指標接近(在合理的誤差範圍內),你的策略就通過驗證了。如果前推測試的結果明顯更差,可能是有曲線擬合、決策上的情緒偏誤,或市場條件不一樣了。
Prop Firm:有切身利害的前推測試
這就是 Prop Firm 在整個流程裡完美卡進來的位置。當你的策略通過回測、也通過模擬的前推測試之後,Prop Firm 的評估就是下一層驗證。
評估會逼你在真實規則下交易(最大回撤、獲利目標、最少交易天數),還帶著賠掉評估費用的壓力。這是在用大筆真金白銀之前,最終極的前推測試。
這個階段最適合的帳戶,是那些規則有彈性、品質價格比又好的。如果你的策略已經被回測驗證過,一個規則合理的評估不應該構成障礙。
如果這是你第一次接觸 Prop Firm,去看我們的從這裡開始指南;或者用比較工具找出最搭配你驗證過的策略的那個帳戶。你也可以看看目前的折扣,把第一次評估的成本壓下來。
一套完整的驗證流程
講清楚一點,這是每個認真的交易者都該走的完整流程:
- 想法 → 提出一個交易假設
- 手動回測 → 用回放功能測試(100 筆以上)
- 指標分析 → 勝率、風報比、獲利因子、最大回撤
- 自動回測(選用) → 如果你會寫程式,把樣本放大
- 模擬前推測試 → 即時行情、不用真錢,做 30-50 筆
- Prop Firm 評估 → 第一次有切身利害的測試
- 資金帳戶 → 用受管理的資金實際交易
跳過步驟會讓你付錢買教訓。沒有捷徑。
常見問題
在實盤之前,我應該花多久做回測?
當沖策略至少要 2-4 週的密集回測。你需要至少 100 筆模擬交易,而且指標為正。如果你急著上場,就會在真實帳戶上用本來可以避免的虧損付出代價。
手動回測和自動回測,哪個比較好?
兩者各有各的位置。手動比較適合帶主觀成分的策略(價格行為、盤面脈絡的解讀)。自動比較適合規則精確、純機械式的策略。理想做法是先手動、把策略摸透,再自動、用更大的樣本驗證。
我的回測要不要把 Prop Firm 的手續費算進去?
要,一定要。把平台費、行情數據費和滑價都算進去。如果你的策略只有在沒有摩擦成本時才賺錢,那它就不是一套可行的策略。期貨的手續費通常是每口來回 $3-5。
如果我的回測結果平平,該怎麼辦?
獲利因子落在 1.0 到 1.3 之間,代表優勢很邊際,很可能撐不過真實環境。分析策略在哪裡虧錢:在盤整?在高波動?替那些條件加一個過濾器,或修改你的進出場規則。如果調整之後還是平平,就丟掉它、換另一個想法。
我可以用 TradingView 做期貨回測嗎?
可以,TradingView 有期貨的歷史數據,Bar Replay 功能也能做手動回測。自動的部分,Pine Script 拿來做原型還不錯。不過如果要用逐筆(tick-by-tick)數據做專業回測,NinjaTrader 或 Sierra Chart 比較強,因為它們處理的數據更細緻。
