回測入門教學:用歷史數據驗證你的交易策略

你有一個交易策略的想法——也許是「RSI 跌破 30 就買進」,也許是「突破 60 日新高就追」。聽起來很合理,但真的有效嗎?這個策略在過去的市場環境中表現如何?長期下來是賺錢還是賠錢?回答這些問題的方法就是「回測」(Backtesting)。回測讓你在不冒真金白銀的風險下,用歷史數據來驗證策略的可行性。這篇文章將帶你從零開始了解回測的完整流程,並避開最常見的陷阱。

什麼是回測?

回測就是用歷史的市場數據,模擬如果你在過去執行某個交易策略,帳戶的績效會是如何。它包含了每一次的買進時間點、買進價格、賣出時間點、賣出價格,以及整個過程中帳戶淨值的變化曲線。

回測的本質是一種「假設檢驗」。你的假設是「這個策略能夠獲利」,而歷史數據就是你的實驗場。如果策略在過去十年的數據中持續表現良好,雖然不能保證未來一定有效,但至少證明了這個策略的邏輯在歷史上是站得住腳的。反過來說,如果一個策略連過去的數據都跑不出正報酬,那拿真錢去執行的風險就更大了。

為什麼要做回測?

回測帶來的好處不僅僅是「知道策略賺不賺錢」這麼簡單。第一,它幫助你量化風險。你會知道這個策略歷史上最大的連續虧損是多少、最長需要多久才能從低谷恢復。這些數字決定了你是否有足夠的心理承受能力和資金餘裕來執行這個策略。

第二,回測可以幫助你優化參數。例如 RSI 的超賣門檻設在 30 好還是 25 好?持有天數設定 5 天還是 10 天更佳?透過回測不同的參數組合,你可以找到在歷史數據中表現相對穩健的設定。但這裡有一個重要的陷阱——過度優化——後面會專門討論。

第三,回測建立信心。當你的策略經過嚴格的歷史驗證,在實際執行時面對短期虧損就不會那麼容易動搖。你知道虧損是策略的正常部分,而不是策略失效的證據。這種信心對於長期執行一套系統化策略至關重要。

回測的基本流程

一個完整的回測流程包含以下步驟:

第一步,明確定義策略規則。這是最重要也最容易被忽略的一步。你的進場條件、出場條件、停損設定、部位大小都必須是具體的、可量化的。「看起來要漲就買」不是一個可以回測的策略,「RSI(14) 從 30 以下回升到 30 以上時,以隔日開盤價買進」才是。每一個決策點都必須有明確的規則,不留任何主觀判斷的空間。

第二步,準備歷史數據。你需要測試期間內每天的開盤價、最高價、最低價、收盤價和成交量。數據的品質至關重要:必須經過除權息調整,否則股票配息除權後的價格缺口會被誤判為暴跌。台股的歷史數據可以從證交所和櫃買中心取得,但需要注意下市個股的存活者偏差問題。

第三步,設定回測參數。包括初始資金、交易成本(手續費 0.1425% 買賣各一次、賣出交易稅 0.3%)、滑價假設(實際成交價與訊號價格的差異)、以及最大持股檔數。交易成本的假設必須符合實際情況,忽略交易成本的回測結果往往嚴重高估獲利。

第四步,執行模擬。讓程式逐日掃描歷史數據,按照策略規則做出買賣決策,記錄每一筆交易的細節和帳戶淨值的變化。

第五步,分析結果。檢視關鍵的績效指標,判斷策略是否值得實際執行。

重要的評估指標

勝率(Win Rate)

勝率是獲利交易次數佔總交易次數的比例。很多人直覺認為勝率越高越好,但事實上,勝率只有在搭配「賠率」一起看時才有意義。一個勝率 40% 但平均獲利是平均虧損三倍的策略,長期績效可能遠優於一個勝率 70% 但每次只賺一點、偶爾大賠的策略。台股的技術面策略勝率通常落在 40% 到 60% 之間,不要期望找到勝率 80% 以上的策略,那幾乎不存在。

年化報酬率

將總報酬率換算成每年的平均複利報酬。這個數字讓你可以跨不同時間長度的回測進行比較。一般來說,扣除交易成本後年化報酬率能穩定達到 10% 以上的策略,就已經具有實用價值。年化報酬率要搭配最大回撤一起評估,單看報酬率而忽略風險是不完整的。

最大回撤(Maximum Drawdown)

最大回撤是帳戶淨值從最高點到最低點的最大跌幅。例如帳戶從 150 萬的高點跌到 100 萬,最大回撤就是 33%。這個指標反映的是「最壞的情況下你會虧多少」,是判斷策略風險最重要的數字。一般建議最大回撤不超過 20% 到 25%。超過 30% 的最大回撤,即使最終能恢復,中間的心理壓力也會讓大多數人提前放棄。

夏普比率(Sharpe Ratio)

夏普比率衡量的是每承受一單位風險(以報酬率的標準差衡量)所獲得的超額報酬。公式為:(策略報酬率 - 無風險利率) / 報酬率標準差。夏普比率大於 1 代表策略的風險調整後報酬良好,大於 2 則屬於優秀。這個指標的價值在於讓你比較兩個報酬率相近但波動度不同的策略,波動越小、夏普比率越高的策略,實際執行起來更舒服。

過度擬合的陷阱與避免方法

過度擬合(Overfitting)是回測中最危險的陷阱。它指的是策略的規則和參數被過度調整到「完美貼合」過去的數據,結果只是在記憶歷史而不是捕捉規律。一個過度擬合的策略在回測中表現完美,但在未來的實際交易中會慘不忍睹。

過度擬合的徵兆包括:策略規則非常複雜,包含五個以上的條件;特定參數只要稍微調整,績效就會大幅下降;回測結果好到不真實,例如年化報酬率超過 50% 且幾乎沒有虧損月。

避免過度擬合的方法:第一,保持策略簡單。條件越少越好,兩到三個條件的策略通常比十個條件的策略更穩健。第二,確保交易次數足夠多。如果回測期間只產生 20 筆交易,統計意義非常薄弱;至少需要 100 筆以上的交易才能做出有意義的結論。第三,檢查參數敏感度:好的策略應該在參數微調時績效變化不大,如果 RSI 門檻從 30 改成 28 績效就崩潰,這個策略大概率是過度擬合。

樣本內與樣本外驗證

避免過度擬合最有效的方法是「樣本外驗證」(Out-of-Sample Testing)。做法是將歷史數據分成兩段:前段(例如 2015 到 2022 年)作為「樣本內」數據,用來開發和調整策略;後段(例如 2023 到 2025 年)作為「樣本外」數據,只在策略完全定型後才用來驗證。

如果策略在樣本內和樣本外的表現差異不大,代表策略捕捉到的是市場的真實規律,而不只是歷史噪音。如果樣本外的表現遠遜於樣本內,那幾乎可以確定策略存在過度擬合的問題。

更進階的方法是「滾動式回測」(Walk-Forward Analysis),每次只用過去的數據訓練策略,然後在接下來的一段時間做「模擬實戰」,再將這段時間加入訓練集,重新調整策略。這種方法更接近實際交易的場景,因為你永遠只能用過去的資訊做決策。

在 DailyPicks 回測實驗室進行回測

DailyPicks 提供了內建的回測實驗室,讓你可以在不寫程式的情況下測試各種技術面策略。操作流程很直覺:首先選擇你要測試的策略類型(例如 RSI 超賣反彈、均線突破、IBS 極低值反彈等),然後設定關鍵參數(進場門檻、出場條件、持有天數),系統會自動在台股的歷史數據上執行回測,並呈現完整的績效報告。

報告中會顯示前面提到的所有關鍵指標:勝率、年化報酬率、最大回撤、夏普比率,以及每一筆交易的明細。你可以快速比較不同參數設定的結果,找到最穩健的組合。建議先從單一指標的簡單策略開始測試,確認基本邏輯有效後,再嘗試加入額外的條件來改善績效。記住:回測是工具,不是水晶球。它幫助你排除明確不可行的策略,但無法保證任何策略在未來一定有效。保持謙遜和紀律,才是長期獲利的根本。