回測窗口設多久?我們把 252、504、1000、2000 天在五個時期跑了一遍
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
回測窗口設多久?我們把 252、504、1000、2000 天在五個時期跑了一遍
做波動率預測的人遲早會遇到這個問題:估計模型時,要用多少歷史資料?
一年(252 個交易日)?兩年?四年?還是直接拉八年資料讓模型看最多?
直覺上「資料越多越好」,但實際上不一定。短窗口跟隨近期市場結構,長窗口把舊資料當成負擔。沒有明顯對錯,所以我們直接跑了一個比較實驗:用 GJR-GARCH(1,1) 模型預測 SPY 的日報酬波動率,同時跑 W=252、504、1000、2000 四種窗口,跨五個 OOS 期間比較誰比較準。
怎麼比
五個 OOS 期間:2012–13、2014–15、2016–17、2020–21、2023–24,每段約兩年,總共涵蓋 2,508 個交易日。其中 2020–21 是 COVID 崩盤到反彈的高波動期(平均 VIX 24.5,最高單日 VIX 82.7),其他四段屬於相對平靜的市場(平均 VIX 13–16)。
評估指標用 QLIKE 損失函數,這是波動率預測領域的標準計量工具,對「低估真實波動率」的懲罰更重,比均方誤差更適合風險管理情境(Hansen & Lunde 2005;Patton 2011)。
每隔 21 個交易日(大約一個月)重新估計模型,共 5 期 × 4 窗口 = 20 組預測序列。
結果:沒有一個窗口能通吃
先看直接結果:
| OOS 期間 | 平均 VIX | 市場狀態 | W=252 排名 | W=504 排名 | W=1000 排名 | W=2000 排名 | 本期冠軍 |
|---|---|---|---|---|---|---|---|
| 2012-13 | 16.0 | 平靜 | 2 | 1 | 3 | 4 | W=504 |
| 2014-15 | 15.4 | 平靜 | 1 | 2 | 3 | 4 | W=252 |
| 2016-17 | 13.5 | 極平靜 | 2 | 4 | 1 | 3 | W=1000 |
| 2020-21 | 24.5 | 波動 | 3 | 2 | 1 | 4 | W=1000 |
| 2023-24 | 16.2 | 平靜 | 1 | 3 | 2 | 4 | W=252 |
| 平均排名 | — | — | 1.8 | 2.4 | 2.0 | 3.8 | — |
W=2000 從來沒奪冠,五期全部墊底。W=252 和 W=1000 各贏了兩期,W=504 贏了一期。
從平均排名看,W=252 最好(1.8),W=1000 次之(2.0),W=504 第三(2.4),W=2000 明顯落後(3.8)。

為什麼 W=2000 持續偏差
W=2000 表現差不是巧合。用八年歷史估計模型,參數會被 2008 金融海嘯之前的資料拉著走,導致「波動率的持久性(persistence)」被高估。模型以為市場一波動就會持續很久,但 2012 年後的美股結構已經不同。
文獻根據是 Hillebrand (2005):短窗口拆分可以緩解長樣本帶來的持久性偏誤。我們的結果與此一致。W=2000 的平均波動率持久性估計(avg_persistence)在多個期間高達 0.992,比 W=252 的 0.95–0.97 範圍顯著偏高,反映舊資料持續影響了長窗口的參數。
統計顯著性:邊緣、不強
光看排名不算完。我們對「W=504 是否顯著優於 W=2000」做了 Diebold-Mariano 檢定(跨 2,508 個交易日的 pooled 版本):
- DM 統計量 = −1.73,p 值 = 0.083,邊緣顯著(僅 10% 水準)
五個分期中,W=504 vs W=2000 有兩期達到個別顯著(2012–13 單期 p=0.077*,2014–15 p=0.046**),但 2016–17 時 W=2000 反而略贏(那期 W=1000 最佳)。
Bonferroni 校正之後(一次比了 11 組),沒有任何一組達到 0.45% 的調整後顯著水準。
結論要講清楚:W=2000 確實最差,但「較短窗口比較好」的結論在統計上屬於 邊緣顯著,不是強顯著 。
另一個值得注意的對照是 W=1000 vs W=2000 的 pooled DM,p=0.009,是所有比較中最顯著的一組。W=2000 被 W=1000 打得最清楚。
哪個窗口最穩?
把每個窗口在五期的排名算 range(最好到最差的落差):
- W=252:排名跨度 1–3,range = 2
- W=504:排名跨度 1–4,range = 3
- W=1000:排名跨度 1–3,range = 2
- W=2000:排名跨度 3–4,range = 1(穩定在差的那邊)
W=252 和 W=1000 的排名波動比 W=504 小,表現更穩定。不過即便是 W=252,也有 2016–17 排名第二、2020–21 排名第三的時候。市場狀態一變,短窗口未必最好。
值得注意的是:2020–21 高波動期,最好的是 W=1000,不是最短的 W=252。這稍微反駁「波動劇烈時要用短窗口跟得上市場」的直覺。2020 年的波動太極端,近期一年的資料反而讓模型過擬合了單一危機情境。
實務 implication
這個結果對實際做波動率預測的人有幾點參考:
第一,W=2000 可以排除。 五期全敗、平均排名 3.8,跟排名第二的 W=1000(平均 2.0)差了將近兩個名次。從 Hillebrand (2005) 的持久性偏誤角度,這個結果也有理論支持。
第二,W=252 vs W=1000 要看市場狀態。 平靜期傾向 W=252 稍好;高波動期 W=1000 表現更穩。如果你不想每季手動調窗口,W=1000 作為折衷選擇是合理的。
第三,不能因為 mean rank 最低就宣告 W=252 勝出。 pooled DM 對 W=252 vs W=504 的 p 值是 0.74(完全不顯著),W=252 vs W=1000 也是 0.94。三個較短窗口之間其實沒有統計上的顯著差異,只有和 W=2000 比的時候差距才比較明顯。
限制
本實驗只用 SPY 一個資產,結論是否能推廣到台灣 0050、或 VIX 期貨等其他資產,還需要獨立驗證。
每 21 天重估一次(月頻率),和週頻率、日頻率重估的結果可能不同。
五個 OOS 期間互相不重疊,但市場 regime 的選取(平靜 vs 波動)難以完全避免事後觀察偏誤。我們把 2020–21 標為「elevated」是根據事先設定的 VIX > 20 門檻,不是事後挑的。
總結
回測窗口沒有萬用答案。W=2000(八年)在五個時期全部敬陪末座,原因指向持久性參數被舊資料拉偏。W=252 整體平均排名最好(1.8),但和 W=504、W=1000 之間的差距在統計上並不顯著。
對於不想每季調整的實務使用者,W=1000(四年)在平靜期和高波動期都維持在前兩名,是目前看起來最穩定的折衷選擇。但這個結論本身也只是在 SPY 一個市場上驗證過的 tentative 觀察,不是放諸四海的定論。
資料來源:yfinance,SPY,2012–2024;實驗編號 K593-v2;評估指標 QLIKE(Hansen & Lunde 2005)。
詳情
- 資料來源
- yfinance
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊