銀行規定要算 10 天的風險值,但業界偷懶用的公式,其實跟嚴格算法一樣準
讀者互動
已追蹤瀏覽 0 次,登入會員可按讚與收藏。
銀行規定要算 10 天的風險值,但業界偷懶用的公式,其實跟嚴格算法一樣準
Basel III 把銀行的最低資本緩衝綁在 10 天風險值(VaR)上。監管邏輯是:給你 10 個交易日平倉,最壞能虧多少。
業界的普遍做法是拿 1 天 VaR 直接乘以 √10(約 3.16),稱為 sqrt(h) scaling。這個方法假設每天報酬獨立且同分配,算到這裡就收工了。
它夠準嗎?
我們用 SPY 和 QQQ 從 2019 年到 2026 年共 7 年的外樣本資料,跑了一次嚴格的對照實驗。
三關同時過才算合規
光說「沒超過幾次」不算數。Basel III 的標準是三關同時通過,缺一不可:
- Kupiec 覆蓋率檢定 :實際虧損超過 VaR 的頻率,是否與設定水準(1% 或 2.5%)相符?
- Christoffersen CC 檢定 :那些超過的日子,有沒有集中在特定時段(例如危機期間一起爆)?
- Basel 顏色分區 :根據 250 天違規次數,落在綠色(0-4 次)還是紅色(>10 次)?
三關全過稱為「Trinity PASS」。
我們的實驗(K1039)跑了 6 種模型和方法的組合,每個組合跑 2 個資產 × 2 個顯著水準 = 4 次檢定,再橫跨三個持有期(h=1、5、10 天),合計超過 60 個測試格。
數字怎麼說
以下是各組合的 Trinity 通過率(4 次檢定中幾次全過):
| 模型 + 方法 | h=1 天 | h=5 天 | h=10 天 |
|---|---|---|---|
| GJR + 正態分位數 | 0/4(0%) | 3/4(75%) | 4/4(100%) |
| GJR + CF-Rolling | 4/4(100%) | 4/4(100%) | 3/4(75%) |
| A4f + 正態分位數 | 1/4(25%) | 4/4(100%) | 4/4(100%) |
| A4f + CF-Rolling | 4/4(100%) | 4/4(100%) | 3/4(75%) |
幾個細節值得單獨說:
單天期的正態分位數很危險。 GJR + 正態在 h=1 時 4 次全滅。SPY 和 QQQ 的尾部比正態分佈厚得多,1% VaR 算出來就是低估。而 A4f + CF-Rolling 在 h=1 拿到 100%,是唯一能在短期通過嚴格三關的配置。
隨持有期拉長,正態法反而變穩。 GJR + 正態在 h=10 達到 100%,原因是中央極限定理在 10 日累積報酬上開始發揮作用,尾部肥厚的問題被稀釋了。但這個「自動修復」只在較長持有期成立,短期依然失效。
h=10 的 75% 是小樣本問題,不是模型崩掉。 7 年外樣本,每 10 個交易日取一個非重疊區塊,只有 182 個觀測值。若設定 1% 的 VaR,期望的超限次數是 182 × 1% = 1.82 次。QQQ 的 CF-Rolling 在這個條件下給出 0 次違規,太保守了,導致 CC 和 ES 兩個子檢定因為無法計算(分母為零)而標記為 SKIP,Trinity 判定 FAIL。這不是模型預測錯了,是樣本太小讓統計檢定無法正常運作。
sqrt(h) 和精確公式,差在哪?
GARCH 族模型有一套多期條件方差的遞迴公式,能算出精確的 h 日預測方差。sqrt(h) 只是假設「每天方差一樣且獨立」的簡化版,在波動率有時序結構(高波動日後通常還是高波動)的情況下,兩者理應有差距。
實驗結果:Trinity 通過率沒差。
| 比較組 | h=5 | h=10 |
|---|---|---|
| GJR 精確公式 vs sqrt(h) | 100% vs 100% | 75% vs 75% |
| A4f 精確公式 vs sqrt(h) | 100% vs 100% | 75% vs 75% |
在 Trinity 通過率層面,兩方法的判定完全一致——8 個格子(2 資產 × 4 條件)全部得到相同的 PASS/FAIL 結果。
但需要說明檢定邊界:Trinity 是 binary 判定(綠/紅 + Kupiec/CC),這份對照沒做 Diebold-Mariano 等統計等價檢定,也沒比個別 VaR 損失函數的數值差。事實上每天的違規次數兩方法不完全相同(例如 SPY GJR sqrt(h) h=5 alpha=2.5% 有 9 次違規、精確公式 8 次;A4f h=10 alpha=2.5% 有 3 次 vs 2 次),只是這些差異不夠大到把監管色帶從綠變紅。
對實務操作者,可以說的是: 在這個樣本與這套監管門檻下,多花力氣推導 h 步方差公式不會改變合規結果 。但這不代表兩方法在所有市場條件、所有持有期、所有損失函數下都等價,換到更極端尾部或更長持有期,差距可能浮現。CF-Rolling 分位數調整對 1 日 VaR 已是必要條件,sqrt(h) 是否「夠用」要看具體用途。
分位數調整才是真正的關鍵
整場實驗裡,「用不用 CF-Rolling」比「用哪個 GARCH 模型」或「算法是否精確」重要得多。
CF-Rolling(Cornish-Fisher 滾動調整)的做法是:每 252 個交易日滾動計算報酬的偏態(skewness)和峰態(kurtosis),再把正態分位數修正成符合實際尾部形狀的值。
效果看這裡就清楚了:GJR + 正態在 h=1 是 0%,換成 CF-Rolling 立刻變 100%。同樣的 GARCH 模型,分位數調整方式不同,結果天差地別。
A4f 模型(把 VIX 水準乘以 GARCH 波動率的乘積型結構)在 h=5 上多了一格優勢:A4f + 正態拿到 100%,而 GJR + 正態只有 75%。代表 A4f 的波動率預測在中期精確度更高,不需要靠 CF 補分位數也能過關。
對投資人的意思
如果你在管理組合風險,每隔一段時間要對照最壞情況,這個實驗的實際建議是:
-
用正態分位數算 1 天 VaR,然後直接 ×√10 報 10 天,這個流程在幾個關鍵組合上 h=1 就會失敗。真要合規,需要 CF 調整。
-
CF-Rolling 不是複雜的東西:每天更新 252 日滾動偏態和峰態,調整一個分位數。計算量很小,但效果是全勝正態的關鍵。
-
sqrt(10) scaling 本身不是問題所在。對 SPY 和 QQQ 這樣的資產,它和精確多期公式給出一樣的監管結果。複雜公式不會給你帶來額外的合規通過率。
本文基於實驗 K1039(腳本:experiments/k1039/k1039.py,結果:experiments/k1039/k1039_results.json)。數據來源:yfinance,期間:2005-2026,OOS:2019-01-01 至 2026-04-10,樣本:SPY 1827 個 OOS 觀測值,QQQ 同期。[提出: 賴奕豪, 執行: Claude]
詳情
- topic_cluster
- spy
- cluster_waiver
- K1039_article_general — task-assigned hourly-11 dispatch; unique angle: multi-horizon VaR + sqrt(h) scaling comparison not covered by prior SPY articles
- review_history
- {"date":"2026-06-06","verdict":"CONDITIONAL_PASS","reviewer":"feature-dev:code-reviewer (subagent fallback)","revision":"Finding 2 sqrt(h) overclaim 加 caveat (DM test 未做、binary Trinity 邊界、每日 violation count 不同)"}
- experiment_refs
- K1039
- topic_cluster_30d
- {"cap":10,"count":45,"ratio":0.1607,"exempt":false}
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊