← 研究動態
研究2026/04/29 上午04:00

K908:MF-GJR 的預測優勢只在 SPY 顯著,配上 HistSim 則三資產 6/6 通過 Trinity

0050.TWVaR風險管理Student-tHistSimMF-GJRTrinity

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

收藏、追蹤與明日提醒只保存必要識別資料,可在會員中心檢視或刪除。

研究資訊不構成個人投資建議;提醒僅代表研究更新,不代表交易訊號。

訂閱研究摘要

研究摘要與新文章,不轉售、不寄廣告,隨時可退訂。

你的預測模型很厲害,但你的風控可能在裸奔

想像一個情境:你花了三年研發出一個波動率預測模型,統計檢定 PASS、論文都投出去了。然後風控部門打開 1% VaR 回測報告,結果 FAIL。

這不是寓言。以 MF-GJR(VIX) 為例,它的 QLIKE 只在 SPY 顯著贏過標準 GJR(t=-3.243);QQQ 是 t=-2.652,未過 Harvey 門檻;0050.TW 是 t=+0.193,而且 0050.TW 的 MF-GJR QLIKE 比 GJR 還差 0.294%。三個資產裡只有一個顯著勝出。

所以下面談的「預測準、風控卻出事」,預測準的那一半只在 SPY 站得住。

問題出在哪?又該怎麼修?這是 K908 實驗要回答的核心問題。

為什麼「預測準」不等於「風控好」

波動率預測模型輸出的是「條件變異數」,也就是明天大概的震盪幅度。風控指標 VaR(風險值)卻問另一個問題:「最壞 1% 那天會虧多少?」

這兩件事差很大。預測模型只要平均誤差小就算贏;VaR 卻要你準確抓到尾部那 1% 的極端報酬。多數預測模型預設報酬服從常態分配(Normal),但實際上股市的尾部比常態厚得多,「20 年一遇」事件實際上每兩三年就會出現。預測再準,配上錯誤的尾部假設,VaR 就會嚴重低估風險。

具體來看 MF-GJR(VIX) 配 Normal 的 1% VaR 違反率:SPY 1.87%、QQQ 1.92%、0050.TW 1.31%(理論值 1%)。SPY 與 QQQ 落在 Basel YELLOW 且 Trinity FAIL,0050.TW 是 GREEN、Trinity PASS(Kupiec p=0.2111)。對 SPY 與 QQQ 來說,「100 天最多虧一次以上」的承諾實際上每 50 多天就破一次,這是合規大事故,不是模型微調;0050.TW 在常態假設下反而沒有出現這個缺口。

兩個解法:Student-t vs HistSim

K908 比較了兩個修風控的策略:

 方法一:Student-t 分配(參數化方案)  換一個有「自由度(df)」參數的分配。df 越小尾部越厚;df 越大越接近常態。我們每 63 交易日重估一次 df,並用 sqrt((df-2)/df) 修正尺度,確保條件變異數對得上。

 方法二:HistSim(歷史模擬,非參數方案)  完全放棄分配假設,直接拿過去 2000 天標準化殘差的歷史分佈當尾部。市場過去出現過什麼極端值,就照著那個經驗 quantile 估 VaR。

跨三資產實測:HistSim 全勝

我們在 SPY、QQQ、0050.TW 三個市場跑了 OOS 2019-01 到 2026-03(每資產約 1754-1821 天)的完整回測,用 Trinity 三道關卡同時檢驗:Kupiec(總違反次數合理)+ Christoffersen(違反沒有群聚)+ Basel 三色燈號。三關全綠才算 PASS。

結果如下圖:

MF-GJR + 分配選擇 × Trinity VaR 跨資產通過情況

關鍵讀法:

  •  MF-GJR + HistSim:3 資產 × 1% 與 5% 共 6 種情境全部 PASS ——這是 K908 最重要的發現,HistSim 是真正的 universal solution
  •  MF-GJR + Student-t:SPY 和 0050.TW 全 PASS,但 QQQ 在 1% 與 5% 都 FAIL ——QQQ 的尾部結構不適合用單一 df 描述
  • 違反率(每格第二行百分比)也說明問題:HistSim 的 1% 實際違反率為 SPY 0.99%、QQQ 0.93%、0050.TW 1.14%,三個都緊貼 1% 理論值

為什麼 HistSim 完勝?

關鍵在「對稱性」。Student-t 是參數化分配,本質上左右尾對稱;但 QQQ 在 OOS 期間經歷 2022 科技股崩盤、2020 疫情急跌、2024 AI 多頭等多重結構斷點,左尾比右尾厚很多,單一 df 抓不到這種偏斜。具體數字:QQQ 在 MF-GJR + Student-t 下 1% VaR 違反率仍達 1.65%。三道關卡裡,Kupiec p=0.0111(未過)、Christoffersen p=1.0(通過)、Basel YELLOW,擋下它的是 Kupiec 與 Basel。換成 HistSim 立刻降到 0.93%,三道關卡全綠。

HistSim 完全不假設形狀,市場真實出現什麼,VaR 就反映什麼。skewness、kurtosis、regime shift 全部「順勢吃下」。代價是計算量稍大(要存 2000 個歷史殘差,每天重新排序),但對現代硬體完全不是問題;Python 一行 numpy.quantile 就解決。學界的偏好早就從「找對 parametric 分配」轉向「直接用實證分位數」,K908 在 MF-GJR(VIX) 這個預測引擎上把這個方向確認了下來。

台股是全市場最厚尾的

順帶看一個本地角度。我們把 MF-GJR 的 Student-t df 在三個資產畫成時序:

MF-GJR Student-t 自由度跨市場時序

數字說話:

  •  SPY :MF-GJR df 介於 7.53 到 9.09(平均約 7.95),尾部相對最薄
  •  QQQ :6.36 到 10.89(平均約 7.83),波動較大但平均接近 SPY
  •  0050.TW :5.04 到 6.56(平均約 5.84),全期最厚尾,最低點 5.04 已經逼近「df=5 厚尾警戒線」

換成白話:台股的「20 年一遇」事件比 SPY 頻繁很多。這也解釋為什麼台灣讀者常感覺「明明做了停損,為什麼還是被一根長黑打穿」,尾部就是比美股厚,標準常態 VaR 在這裡尤其危險。對台股做風控,要嘛換 HistSim,要嘛把 Student-t df 設定上限調更低。

從 OOS 期間動態看,0050.TW 的 df 在 2020 第一季疫情、2022 半導體大跌、與 2024 第三季的修正都明顯壓縮,最厚尾出現在 2024 年第三季的 5.04。同期 SPY 的 df 從未跌破 7.5,QQQ 雖然在 2020 跌到 6.36,但很快回升到 9 以上。這個跨市場差異對於資產配置與避險比例的決定有直接影響,台股部位需要的安全邊際,比同名目曝險的美股部位高出 30% 以上才合理。

把預測和風控當成兩件事

K908 真正的方法論教訓是: 預測模型和分配假設要分開優化 。

過去研究習慣把波動率預測和分配假設綁在一起估計,例如「GARCH + Normal MLE」一次估完。這在預測層次也許 OK,但風控層次完全不夠。最佳組合是兩段式:

  1.  預測層 :用 MF-GJR(VIX) 給出條件變異數(QLIKE 顯著優於 GJR 的只有 SPY)
  2.  風控層 :把 MF-GJR 的條件變異數丟給 HistSim 算 VaR/ES,完全不假設尾部形狀

這個雙層架構在三資產 6/6 Trinity PASS,是目前我們找到的「universal VaR/ES 解」。對基金、券商風控、量化策略部位管理都有實用價值,不論主流市場(SPY/QQQ)還是新興市場(0050.TW)都通用。

結論

預測準 ≠ 風控好。MF-GJR(VIX) + HistSim 是 K908 驗證過的兩段式方案:條件變異數預測(在 SPY 上顯著優於 GJR)+ 最不挑形狀的尾部估計,三資產 1% 和 5% VaR Trinity 全 PASS。

下次有人跟你說「我的模型 QLIKE 比 baseline 好 30%」,記得追問一句:「那你的 1% VaR 通過 Basel 了嗎?」


本文基於實驗 K908(腳本:experiments/k908/k908_mfgjr_student_t_var_es.py,結果:experiments/k908/k908_mfgjr_student_t_var_es_results.json)。資料來源:yfinance(SPY / QQQ / 0050.TW / ^VIX),期間 2005-01 至 2026-04,OOS 2019-01-02 至 2026-03-31(SPY/QQQ n=1821;0050.TW n=1754)。延伸閱讀:K889(MF-GJR 預測實驗)、K802 / K825(HistSim 早期跨資產驗證)。[提出: Claude]

相關文章

先讀正式關聯,若無則使用標籤與主題相似度補齊

📄
K1378:VIX 長期成分讓 SPY 波動預測勝過 GJR-GARCH,這個優勢在疫情窗外更穩定
做風險控管或選擇權定價的人,常要在兩種日頻波動模型之間取捨:只用報酬本身的 GJR-GARCH,或在 GARCH 之外加一個由 VIX 驅動的長期成分。後者多了一個外部變數要維護,值不值得,要看它的預測優勢從哪裡來。如果優勢只來自 2020 年那種市場崩跌的少數日子,平常用它就只是多背一個依賴;如果優勢出現在一般日子,它才是日常可用的改進。 K1378 用 SPY 的樣本外一步預測回答這個問題:A…
→
📄
K1884:拿 VIX1D 對照 SPY 同一天的已實現變異,年化分母、報價時點與盤中窗口各自能把答案改掉多少
一般讀者版〈一日恐慌指數開盤報的當日變異,平均是 SPY 盤中實際的 1.56 倍:這個數字該怎麼讀〉給的是水準與讀法。這篇處理做這個比較時要先決定的三件事:VIX1D 要除以哪一個年化分母、要拿哪一個時點的報價、已實現變異要涵蓋盤中哪一段。 K1884 的結果顯示,這三個選擇造成的偏移,與要量的效果同一個量級;選錯任何一個,程式不會報錯,只會回答另一個問題。 先釐清估計量。K1884 量的是同一…
→
📄
K1874:SPY/GLD 波動縮放規則的黃金腿,Sharpe 改善來自脫離 VIX,GVZ 沒有增量
一般讀者版〈股市恐慌時,黃金要不要跟著一起減碼?〉給的是配置結論:黃金腿不要跟著 VIX 一起縮放。這篇處理同一個實驗的方法問題:以 VIX 縮放 SPY/GLD 兩條腿的規則,把黃金腿換成自己的恐慌指數 GVZ 之後 Sharpe 上升,這個改善有多少來自 GVZ 的資訊,有多少只是黃金腿不再被 VIX 牽動? 這個區分決定了下一步要做什麼。若改善來自 GVZ,值得投入的是更好的黃金波動預測;若…
→