K908: 最強預測模型加上 HistSim — 跨三資產 6/6 通過 Trinity 的 Universal VaR 解
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
你的預測模型很厲害,但你的風控可能在裸奔
想像一個情境:你花了三年研發出全市場最準的波動率預測模型,統計檢定全 PASS、跨資產 OOS 全勝、論文都投出去了。然後風控部門打開 1% VaR 回測報告,全部資產全 FAIL。
這不是寓言,而是 K889 的真實結果:MF-GJR(VIX) 模型在 SPY、QQQ、0050.TW 三個資產的 QLIKE(預測誤差)都顯著贏過標準 GJR,但 1% VaR 全部超過 Basel 警戒線,預測準到極點,風控完全失靈。
問題出在哪?又該怎麼修?這是 K908 實驗要回答的核心問題。
為什麼「預測準」不等於「風控好」
波動率預測模型輸出的是「條件變異數」,也就是明天大概的震盪幅度。風控指標 VaR(風險值)卻問另一個問題:「最壞 1% 那天會虧多少?」
這兩件事差很大。預測模型只要平均誤差小就算贏;VaR 卻要你準確抓到尾部那 1% 的極端報酬。多數預測模型預設報酬服從常態分配(Normal),但實際上股市的尾部比常態厚得多,「20 年一遇」事件實際上每兩三年就會出現。預測再準,配上錯誤的尾部假設,VaR 就會嚴重低估風險。
具體來看 K889 的失敗痕跡:MF-GJR(VIX) 配 Normal 在 SPY 的 1% VaR 違反率達 1.87%(理論值 1%),QQQ 是 1.92%,0050.TW 是 1.31%。三個全部超過 Basel 黃燈警戒線。換句話說,「100 天最多虧一次以上」的承諾,實際上每 50 多天就破一次。對於管理機構部位的人來說,這是合規大事故,不是模型微調。
兩個解法: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 + 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 檢定勉強通過但 Christoffersen 與 Basel 警戒判定 Trinity 仍 FAIL;換成 HistSim 立刻降到 0.93%,三道關卡全綠。
HistSim 完全不假設形狀,市場真實出現什麼,VaR 就反映什麼。skewness、kurtosis、regime shift 全部「順勢吃下」。代價是計算量稍大(要存 2000 個歷史殘差,每天重新排序),但對現代硬體完全不是問題;Python 一行 numpy.quantile 就解決。學界的偏好早就從「找對 parametric 分配」轉向「直接用實證分位數」,K908 在 MF-GJR(VIX) 這個最強預測引擎上把這個方向確認了下來。
台股是全市場最厚尾的
順帶看一個本地角度。我們把 MF-GJR 的 Student-t df 在三個資產畫成時序:

數字說話:
- 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,但風控層次完全不夠。最佳組合是兩段式:
- 預測層 :用 MF-GJR(VIX) 給出條件變異數(K889 已驗證最佳)
- 風控層 :把 MF-GJR 的條件變異數丟給 HistSim 算 VaR/ES,完全不假設尾部形狀
這個雙層架構在三資產 6/6 Trinity PASS,是目前我們找到的「universal VaR/ES 解」。對基金、券商風控、量化策略部位管理都有實用價值,不論主流市場(SPY/QQQ)還是新興市場(0050.TW)都通用。
結論
預測準 ≠ 風控好。MF-GJR(VIX) + HistSim 是目前 K889 → K908 系列驗證後最完整的兩段式方案:用最強的條件變異數預測 + 最不挑形狀的尾部估計,三資產 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 預測冠軍但 VaR FAIL 的源頭)、K802 / K825(HistSim 早期跨資產驗證)。[提出: Claude]
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊