模型風險:當回測騙了你
在量化投資與系統化交易的世界裡,有一個幾乎每個人都踩過的深坑:在歷史數據上表現驚豔的策略,一旦投入真實資金,立刻原形畢露。回測夏普值2.5、年化報酬率40%、最大回撤不超過10%——然後在實盤的第一個月就虧損15%。
這不是市場突然變了(雖然它確實不斷在變),也不一定是你的邏輯有根本錯誤。更多時候,是「模型風險(Model Risk)」在作祟——你的模型從建構的第一天起,就帶著你意識不到的偏誤,用一個「量身定做的謊言」誘惑你走向崩潰。
模型風險的定義是:因數學模型的設計不當、假設錯誤、資料偏誤或使用不當,導致投資決策偏差,進而造成財務損失的風險。它不只影響量化基金或高頻交易者,也影響每一個使用技術指標篩選股票、研究財務比率選股、或用任何系統化方法操作的投資人。
台灣股市中,隨著程式交易工具普及、各類券商提供的選股回測平台興起,越來越多散戶開始接觸「策略回測」。如何不被自己的回測結果騙到傾家蕩產,是每一個台灣散戶投資人都必須正視的課題。
一、回測的七大常見陷阱
陷阱一:資料探勘偏誤(Data Snooping Bias)
這是所有回測陷阱中最根本、也最難察覺的一個。當你嘗試了100種不同的參數組合(如均線週期、RSI閾值、KD交叉條件),最終找到那個「最漂亮」的組合,並聲稱「發現了一個有效策略」——你實際上只是在數據中找到了一個「偶然表現最好」的參數設定。
用數學解釋這個問題:
假設你測試100種策略,每種策略在歷史數據上「隨機表現優異」的機率是5%(p值閾值設為0.05)。理論上,即使所有策略都完全沒有預測能力,你平均也會「發現」5種「統計顯著」的策略——但它們只是數據噪音,而非真實規律。
在台灣股市的應用情境中,許多投資人使用「策略大師」或各類回測工具,大量嘗試技術指標組合,最終找到在2015年到2023年台股多頭市場中表現極佳的策略。但這個策略可能完全是「多頭市場的倖存者」,而非真正有效的選股邏輯。
識別方式: 若你的策略是在大量嘗試後「篩選出來的最佳組合」,而非「事先基於邏輯提出假設後驗證」,你幾乎可以確定已掉入資料探勘偏誤的陷阱。
陷阱二:過度配適(Overfitting)
過度配適是資料探勘偏誤的進化版。你的模型有太多參數,把歷史數據中的每一個「噪音」都當成「訊號」學進去了,以至於它能完美解釋過去,卻完全無法預測未來。
一個過度配適的選股策略可能長這樣:
「選擇同時滿足以下條件的個股:5日均線上穿20日均線、RSI介於55到62之間、成交量為20日均量的1.3至1.8倍、股價在布林通道中軌上方0.5個標準差以內、且前三個交易日的漲幅在1.2%至2.5%之間……」
這種策略的條件如此精確,在歷史數據中符合條件的次數可能只有10次,每一次都恰好上漲。但這個策略的實際預測能力接近零——它只是「記住」了歷史,而非「理解」了規律。
過度配適的判別指標:
| 指標 | 過度配適的警告訊號 |
|---|---|
| 樣本外表現下降幅度 | 樣本外報酬低於樣本內報酬50%以上 |
| 策略交易次數 | 整個回測期間交易次數少於30次 |
| 參數數量 | 策略參數數量超過5-6個 |
| 夏普值差距 | 樣本內夏普值2.0+,樣本外夏普值低於0.5 |
| 最大回撤 | 樣本外最大回撤遠超樣本內 |
陷阱三:未來資料外洩(Look-Ahead Bias)
在回測程式中,不小心使用了「在當時實際交易時尚無法獲得的未來資訊」。這聽起來像是低級錯誤,但在實際回測程式設計中極為常見。
台股常見的未來資料外洩案例:
- 財報使用時間錯誤:2024年Q1財報實際公告日為2024年5月15日,但回測程式在2024年4月1日就用了這份財報的數據選股
- 除權息後的股價調整問題:使用「還原除權息後」的歷史股價做回測,但當時的交易系統只能看到「除權息前」的原始股價,策略訊號因此不一致
- 即時資訊 vs. 次日公告:部分財務比率(如本益比)使用的是即時股價除以最新EPS,但EPS數字在財報公告前並不存在
- 個股異動公告:董事會決議增減資、重大合約簽訂,訊息在盤中發布,但回測以收盤價模擬「當天就能買到」,忽略了資訊實際揭露的時間點
未來資料外洩製造的回測結果往往驚人地漂亮,因為它本質上是「上帝視角的選股」——知道哪些股票之後表現最好,再假裝你是事先選的。一旦回到不知道未來的真實交易環境,策略即刻崩潰。
陷阱四:存活者偏誤(Survivorship Bias)
台股中,有一個不容忽視的事實:目前掛牌的上市公司,都是「存活到今天」的公司。那些在過去下市、被併購、或發生財務危機的公司,早已不在你的回測資料庫中。
若你用「目前上市的股票」做歷史回測,你的回測起始樣本就已經排除了那些在歷史期間發生地雷的股票(因為它們已經不存在了)。這會系統性地高估策略的歷史報酬,因為你避開了所有最壞的案例——但你在歷史上選股時,這些股票仍然存在於市場中,你的策略可能也會選到它們。
台股存活者偏誤的規模估計:
台灣每年約有5至15家上市公司遭到下市(廢止上市)或進入重整,長期下來,這些公司若被排除在回測樣本外,可能導致每年策略報酬被高估1-3個百分點以上。對於看似年化報酬率15%的策略而言,這個高估幅度相當可觀。
陷阱五:交易成本低估
回測中常見的現象:假設每筆交易手續費0.1425%(單邊),滑價(Slippage)為零,且每筆訂單都能以「收盤價」成交。現實卻是:
- 手續費折扣:大券商的網路下單折扣可低至0.025-0.05%,但超高頻策略仍不可忽視
- 滑價成本:對於日成交量百萬元以下的小型股,你的一筆10萬元訂單就可能造成1-2%的衝擊成本
- 收盤價迷思:若策略訊號在盤中產生,收盤前才能執行,但盤中價格與收盤價可能有相當大的差距
- 流動性限制:若策略選出的股票成交量極小,你根本無法以回測假設的數量買進,或賣出時會大幅壓低股價
一個在回測中年化報酬率20%的策略,扣除真實的交易成本後,可能僅剩12-15%。若策略的交易頻率極高(如日內交易),交易成本甚至可以完全吃掉所有報酬。
陷阱六:市場機制改變(Regime Change)
金融市場的運作規律會隨時間而改變,這種改變稱為「市場機制轉換(Regime Change)」。一個在某段市場機制下表現絕佳的策略,在機制轉換後可能徹底失效。
台股的典型機制轉換:
- 2020年後散戶化程度提升:新冠疫情後,台股開戶數暴增,散戶交易量佔比上升,市場「追高殺低」的特性更為明顯,部分反向策略因此受損
- 外資主導 vs. 內資主導的週期:不同時期,外資對台股的影響力此消彼長,導致跟隨外資買超訊號的策略效果時好時壞
- 低利率 vs. 升息週期:2022年聯準會大幅升息前,高股息策略在低利率環境下大行其道;升息後,與債券競爭的高股息股相對遜色
- 漲跌幅限制調整:台股漲跌幅在2015年由7%調升為10%,改變了日內價格波動的分布特性,許多基於7%時代數據建構的策略在10%時代失效
陷阱七:最佳化詛咒(Optimization Curse)
為了讓回測結果看起來更好,投資人常常不斷調整參數,直到找到「最佳組合」。但這個「最佳化」過程本身,就是最大的危險。
當你針對同一段歷史數據反覆調整參數以求最佳,你最終找到的不是「最有效的策略」,而是「最適合這段特定歷史的參數」。一旦換到下一段市場,那個精心調整的參數組合很可能是最差的。
參數最佳化的危險程度(示意):
| 測試的參數組合數量 | 期望找到的「假陽性」優秀策略數 | 實際無效但看起來有效的比例 |
|---|---|---|
| 10種 | 0.5種 | 5% |
| 50種 | 2.5種 | 5% |
| 100種 | 5種 | 5% |
| 500種 | 25種 | 5% |
測試越多種參數,找到的「看起來有效」但實際無效的策略就越多。在大型最佳化搜索後,即使策略在歷史數據上表現再漂亮,可信度也大打折扣。
二、如何建立更誠實的回測框架
核心原則:假設優先,回測驗證
最健康的策略研究流程應該是:
- 先提出基於邏輯的假設:「我認為當台股融資維持率下降到某一閾值,代表融資戶面臨壓力,後續股市下跌機率上升」
- 設定明確的驗證標準:「我用2010年至2020年的數據測試,若策略年化報酬率超過大盤10%且夏普值超過0.8,視為假設獲得初步支持」
- 執行回測(而非調整到達標為止):用預先定義的參數執行,不因結果不佳而反覆調整
- 樣本外驗證:將2021年至今的數據作為「樣本外測試集」,驗證策略是否仍然有效
訓練集、驗證集、測試集的分割
借鑒機器學習的標準做法,策略回測應將歷史數據分為三段:
- 訓練集(Training Set):用於建構策略、確定初始參數(約佔歷史數據的60%)
- 驗證集(Validation Set):用於參數微調與選擇最終版本(約佔20%)
- 測試集(Test Set):全程鎖定,在策略最終確定後才能開啟,用於最終評估(約佔20%)
關鍵規則:測試集在策略確定前絕對不能被「偷看」。 一旦你在策略開發過程中根據測試集的結果調整策略,測試集就失去了「模擬未知未來」的作用,整個驗證流程便形同虛設。
Walk-Forward分析
Walk-Forward分析是比靜態樣本分割更嚴格的驗證方法,特別適合需要定期重新最佳化的策略:
- 使用前N個月的數據訓練並最佳化策略
- 用接下來M個月的數據測試(不調整參數)
- 滾動往前,重複步驟1和2
- 累計所有「樣本外」期間的績效,作為策略真實表現的估計
以台股為例,可以設定12個月訓練期、3個月測試期,從2015年開始滾動至2024年,累積30+個獨立的3個月樣本外測試,綜合評估策略的穩定性。
壓力測試:讓模型面對它最討厭的市場
單純的隨機樣本外測試仍然不夠,好的策略驗證框架還需要刻意測試模型在「最壞情境」中的表現:
- 2008年金融海嘯:台股指數從9859點跌至3955點,跌幅近60%,許多看多策略在這一年完全失效
- 2020年3月新冠崩盤:台股在一個月內重挫近30%,然後快速回彈,V型反轉的速度讓多數模型來不及反應
- 2022年升息縮表週期:科技股大跌、價值股相對抗跌,高本益比成長股策略遭受重創
- 盤整市場(Sideways Market):台股在某些時期長達一年以上呈區間整理,趨勢跟隨策略在此環境下頻繁觸發假訊號
若你的策略在以上任何一個情境中出現「無法承受的損失」,就必須在部署前重新設計風險控制機制。
三、台股模型風險的特殊挑戰
樣本期偏誤:台股多頭大環境的誤導
台股加權指數從2012年的7000點附近,在2024年突破24000點,十餘年間上漲逾240%。在這個大環境下,幾乎任何「持股不賣」或「定期定額」的策略都會顯示優異的回測績效——這不是策略本身有多高明,而是大多頭市場的紅利。
若你的策略回測區間主要覆蓋2012年至2024年,需要特別警惕「多頭偏誤(Bull Market Bias)」:策略的超額報酬可能主要來自「長期持股」而非策略本身的選股能力。解決方法是加入更長的歷史數據(如1990年代至2000年代台股的大幅修正期),以及跨市場驗證(如在其他成熟市場測試相同邏輯)。
流動性限制在台股的特殊重要性
台股的市值分布極為不均:台積電一家公司的市值長期佔整個台股的25%-30%,前十大市值公司合計佔比超過50%。這意味著:
- 針對大市值股票(台積電、聯發科、鴻海)的策略,流動性充裕,交易成本假設較易達成
- 針對中小型股的策略,實際可投入的資金規模嚴重受限於流動性
一個在小型股上回測結果亮眼的策略,一旦你嘗試投入超過100萬元,就會因為衝擊成本(Impact Cost)使實際績效遠低於回測。在建立模型時,必須明確定義策略在「特定資金規模下」的可行性,而非假設可以無限制地以回測價格成交。
ETF套利策略的特殊模型風險
近年台灣掀起ETF投資熱潮,0050、00878、00929等大型ETF吸引數十萬甚至百萬投資人。隨之而來的是各種「ETF套利」或「ETF輪動策略」。這類策略同樣面臨模型風險:
- ETF溢折價的歷史分布:過去的溢折價模式可能因為新的市場參與者(大量散戶買ETF)而改變
- 除息效應的模型化:高股息ETF的回測若沒有正確處理除息調整,報酬計算可能嚴重失真
- 成分股調整的衝擊:ETF定期調整成分股時,大量的「被動買賣」對相關個股股價造成影響,這種「ETF衝擊效應」在歷史數據中越來越難以被忽略
四、從模型風險中學習:進化的態度
接受「所有模型都是錯的」
統計學大師喬治·博克斯(George Box)有一句名言:「所有模型都是錯的,但有些模型是有用的(All models are wrong, but some are useful)。」
承認模型的局限性,是避免模型風險的第一步。任何模型都只是對現實的簡化近似,都有它無法描述的面向。問題不在於尋找「完美的模型」,而在於:
- 了解你的模型在哪些情況下有效、哪些情況下會失效
- 監控模型在真實運作中是否開始偏離預期行為
- 在模型明顯失效時,有能力及時叫停,而非固執地相信「模型肯定沒錯,是市場有問題」
建立真實交易日誌,持續校驗模型
最好的模型驗證,是透過真實(即使規模很小)的交易記錄,持續追蹤策略的「預測」與「實際結果」之間的偏差:
- 每次模型發出訊號,記錄預測的理由與預期報酬
- 每次交易結束後,比較實際報酬與預測
- 定期(每季)統計模型的預測準確率與方向性,判斷策略是否仍然有效
若策略在真實交易中的表現連續6個月低於回測期望值的50%,就需要認真重新審視模型假設是否已經失效。
小資金試單:從小規模驗證到擴大部署
在大規模投入資金前,用小金額(如總資產的5%-10%)進行「真實市場驗證」:
- 以小資金實際按策略訊號操作,追蹤真實的執行成本與滑價
- 觀察至少20-30次完整的交易週期,收集足夠的樣本量
- 若績效穩定(考慮小樣本的統計不確定性後仍與預期相符),再逐步放大規模
急於「全額投入剛完成回測的策略」是許多量化交易新手虧損的主要原因。市場不會因為你回測做得漂亮而給你好臉色——只有在真實交易的持續驗證中,策略的真實價值才能顯現。
結語
模型風險是投資領域中最隱蔽的危險之一。它不像市場崩盤那樣觸目驚心,也不像企業財報地雷那樣有跡可循,它藏在你精心設計的回測系統裡,穿著「歷史驗證」的外衣,讓你深信自己發現了市場的聖杯。
在台灣,隨著量化工具的普及與ETF投資熱潮的興起,越來越多投資人開始接觸系統化投資策略。這是好事,但若缺乏對模型風險的正確認識,技術工具反而成了一種新型態的「自我欺騙手段」。
真正成熟的模型使用者,不是找到回測結果最漂亮的那一個,而是最清楚地知道自己的模型「在什麼情況下會失效」的那一個。他們用嚴格的方法論防止自我欺騙,用小資金驗證策略的真實性,用持續的記錄追蹤模型的演化,並在模型失效的訊號出現時,有勇氣承認「回測騙了我,該停下來了」。
回測是工具,不是神諭。掌握它的局限,你才能讓它真正為你所用。