什麼是回測?
回測(Backtesting)是用歷史市場數據模擬交易策略的執行過程,觀察策略在過去的表現如何。它就像是交易策略的「時光機」,讓你在投入真金白銀之前,先看看策略的歷史績效。
雖然過去的表現不保證未來的結果,但一個在歷史上完全無效的策略,未來有效的機率也很低。
回測的基本流程
步驟一:定義策略規則
將交易策略的所有規則明確寫下來:
- 進場條件:什麼情況下買進?
- 出場條件:什麼情況下賣出?
- 部位大小:每次買多少?
- 停損停利:虧多少出場?賺多少出場?
規則必須客觀、可量化,不能有模糊的主觀判斷。
步驟二:準備數據
- 收集足夠長的歷史數據(至少涵蓋一個完整的多空循環)
- 確認數據品質:是否有缺值、異常值、除權息調整
- 台股數據需注意股票分割、減資等公司行為的影響
步驟三:執行模擬
按照策略規則,逐日(或逐根 K 棒)模擬交易過程。記錄每一筆交易的進場價、出場價、持有天數、盈虧金額。
步驟四:分析績效
計算各項績效指標,評估策略的好壞。
關鍵績效指標
年化報酬率
將策略的總報酬換算成年化數字,方便與大盤或其他策略比較。
最大回撤(Max Drawdown)
策略從最高點到最低點的最大虧損幅度。這反映了你在使用這個策略時,最壞的情況會虧多少。
勝率
獲利交易佔總交易次數的比例。勝率 50% 不代表策略不好,只要賺的時候賺得多,虧的時候虧得少,整體仍可獲利。
盈虧比
平均獲利金額除以平均虧損金額。盈虧比 2 代表平均每賺 2 元只虧 1 元。
夏普比率(Sharpe Ratio)
報酬與風險的比值。夏普比率越高,代表承擔每一單位風險所獲得的報酬越多。一般而言,夏普比率大於 1 是不錯的策略。
交易次數
交易次數太少(例如十年只交易 20 次)則統計意義不足,結論不可靠。
回測的常見陷阱
前視偏差(Look-Ahead Bias)
使用了回測當時不可能知道的資訊。例如,用季報數據做判斷,但在回測中使用了季報公布日之前的數據。
存活者偏差(Survivorship Bias)
只用目前仍在上市的股票做回測,忽略了期間已經下市的公司。這會高估策略績效,因為下市的通常是表現差的公司。
過度擬合(Overfitting)
不斷調整策略參數直到歷史績效完美,但這些參數只是「記住」了過去的走勢,對未來沒有預測能力。
判斷方式:如果參數稍微改變就讓績效大幅下降,很可能是過度擬合。
忽略交易成本
每筆交易都有手續費和稅金。高頻策略如果忽略交易成本,回測績效和實際表現可能天差地遠。
提高回測可靠性的方法
樣本外測試
將數據分為兩段:前 70% 用來開發策略(樣本內),後 30% 用來驗證策略(樣本外)。只有在樣本外也表現良好的策略,才值得信賴。
走步優化(Walk-Forward)
不斷向前滾動優化窗口,模擬實際交易中「用過去經驗預測未來」的過程。
多市場驗證
如果一個策略在台股、美股、日股都有效,它的邏輯可能是通用的,而非只是巧合。
實戰建議
回測是每位認真的交易者都應該掌握的技能。但請記住,回測的目的不是找到一個「完美」的策略,而是排除那些「明顯不可行」的策略。保持合理的期望,注意各種偏差和陷阱,用樣本外測試驗證結果。一個在回測中表現穩健(而非驚豔)的策略,通常比一個回測績效驚人的策略更值得實際操作。