← 研究動態
研究2026/06/06 下午03:07

同一個公式,兩種用法,差距天壤之別:VaR 的「記憶長度」決定你的風險計算準不準

GARCHGLDQQQSPYVaR波動率風險管理Cornish-Fisher

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

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

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

訂閱研究摘要

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

同一個公式,兩種用法,差距天壤之別:VaR 的「記憶長度」決定你的風險計算準不準

 [提出: 用戶, 執行: Claude] 

2020 年 3 月,SPY 在短短 23 個交易日裡跌了 34%。之後大多數模型做了什麼?繼續用 2015 到 2019 年的平靜市場資料,估算出一個「還算正常」的風險數字。結果接下來的違約次數超過預期兩倍以上,銀行監理的交通燈轉成紅色。

這不是模型的計算錯了,是模型的「記憶」太長。


風險模型有記憶問題

用 VaR(Value at Risk)量化投資組合的下行風險,核心問題只有一個: 你拿哪段歷史來估計明天可能的最大損失? 

最常見的兩種做法:

 Expanding window(滾動式擴充) :從資料第一天累積到今天,所有歷史都拿來用。用的資料越來越多,估計越來越穩定,但也越來越遲鈍。2020 年的暴跌,被 2010 年代那段超長多頭市場的平靜給「稀釋」掉了。

 Rolling window(固定長度滾動) :只看最近 252 個交易日(大約一年)。資料始終新鮮,市場換了 regime,模型跟著換。2020 年暴跌之後,一年內這段異常波動就變成計算的核心素材。

直覺上,「用更多資料」聽起來更穩。實際跑出來,是「用更新的資料」贏了。


跨三資產實測:6/6 全通過 vs 4/6

我們用 Cornish-Fisher 展開式(CF)計算 VaR,對 SPY(美股大盤)、QQQ(科技股 ETF)、GLD(黃金 ETF)各做 OOS(樣本外)測試,期間從 2019 年到 2026 年,共約 1,827 個交易日。

Cornish-Fisher 展開式的做法:不假設報酬呈常態分配,而是根據最近的偏度(左偏程度)和峰度(尾端厚度),動態調整分位數。公式本身不變,差別在於輸入這個公式的統計量,是用過去一年(rolling)還是全期(expanding)計算。

評分標準採 Trinity Test,必須同時通過三關:

  1.  Kupiec 檢定 :違約次數是否統計上符合設定比例(2.5% 或 1%)
  2.  Christoffersen 檢定 :違約是否散開,不能一堆連在一起(連串違約代表模型根本沒捕捉到尾端行為)
  3.  Basel 交通燈 :銀行監理基準,紅燈代表超標

結果如下:

方法Trinity 全通過SPY 2.5% 違約率QQQ 2.5% 違約率GLD 2.5% 違約率
常態分配(Normal) 0/6 3.72%4.11%3.45%
Student-t(df=8) 1/6 3.56%3.78%3.23%
 CF-Rolling(252天)  6/6  2.24%  2.63%  2.41% 
CF-Expanding(全期) 4/6 1.70% ❌2.08% ✓1.92% ✓

(預期違約率 = 2.5%;偏低一樣算失敗,代表 VaR 過度保守,偏高則低估風險)

數據來源:yfinance,OOS 期間 2019-01-01 至 2026-04-10,共約 1,827 個觀測值。實驗 K1034,GJR-GARCH(1,1) 條件變異數。


K1034 三資產 Trinity Test 熱力圖

圖一:六組測試(三資產 × 兩 alpha 水準)的通過情況。CF-Rolling 全綠,CF-Expanding 在 SPY 2.5% 失敗(過度保守),常態分配全紅。


CF-Expanding 輸在哪裡

CF-Rolling 6/6 全過,CF-Expanding 4/6,差距聽起來不大。但 CF-Expanding 輸掉的方式很有意思: 不是低估風險,是高估太多。 

SPY 在 2.5% 水準,CF-Expanding 的實際違約率只有 1.70%,理論值是 2.5%,它給的保護比需要的多 47%。Kupiec 檢定直接 FAIL:「你的 VaR 太高了,跟實際市場行為嚴重不符。」

原因就是記憶太長。2020 年 COVID 崩盤被記下來,加到全期的統計裡,往後幾年還在影響估計。即使市場 2021-2023 年已經恢復,擴充視窗模型仍然「記得害怕」,繼續給出偏保守的 VaR。這不算好事:過度保守的 VaR 讓風控部門誤以為風險比實際大,資本配置失真。

Rolling 視窗的邏輯是:市場有 regime,每個 regime 都有自己的偏度和峰度分布。用 252 天的偏度和峰度調整分位數,讓 VaR 跟著當下市場的尾端特性走,而不是被過去的大事件拖著。


K1034 各方法違約率比較

圖二:各方法、各資產、各 alpha 水準的實際違約率。橫線為目標值。CF-Rolling 最接近目標,常態分配和 Student-t 的實際違約率幾乎是目標的 1.5 倍。


常態分配壞在哪

資產偏度和峰度是這樣的:SPY 偏度 -0.80,超額峰度 3.25;QQQ 偏度 -0.73,超額峰度 2.82;GLD 偏度 -0.40,超額峰度 3.17。

換成大白話:三個資產的報酬分配都比常態分配的尾巴厚,而且左邊的尾巴比右邊長(左偏),大跌比大漲更常發生,跌幅也更深。

常態分配假設偏度為零、峰度為 3(超額峰度為 0),直接忽略這兩個特徵。結果在 2.5% 水準,SPY 的實際違約率是 3.72%,比設計值高 49%。Student-t 用 df=8 的固定厚尾調整,比常態好一點,但 df=8 寫死了,不管市場今年是平靜還是動盪,用的都是同一組假設,SPY 還是 3.56%,仍然超標。

CF-Rolling 的做法是每 63 天重新估計 GJR-GARCH,拿最新 252 天的標準化殘差算偏度和峰度,代入:

z_cf = z_α + (z_α²-1)/6 × S + (z_α³-3z_α)/24 × K_excess − (2z_α³-5z_α)/36 × S²

這個調整後的分位數隨市場變,正常年分偏度小、峰度低,VaR 不會算太高;高波動期偏度變大、峰度飆高,VaR 自動往外推。


CF 分位數 vs 常態/Student-t 比較

圖三:在不同偏度水準下,CF 分位數相比常態和 Student-t 的差異。偏度越大(越左偏),CF 給出越大的 VaR 調整量。


不用猜分配,但也不是萬能

CF 最大的優點是「半參數」,用的是 GJR-GARCH 算出的條件變異數,加上從殘差資料直接估計的偏度和峰度,不強迫套常態分配的假設。比純粹的常態 VaR 靈活,比需要假設 Pareto 尾端的 EVT(極值理論)簡單。

但 CF 的限制也真實存在。它是四階近似,當超額峰度超過 10 的時候,這個展開式可能失去單調性,計算出來的分位數會出現不合理的數字。極端市場崩潰的尾端,比四階展開式能捕捉的還要厚。

這次測試也只用 GJR-GARCH 做基底,期間包含 COVID 衝擊,但只是 2019-2026 的一個區間。Rolling 視窗固定 252 天,沒有做敏感度分析看窗口長度怎麼影響結果。


實務上怎麼用

對大多數散戶來說,直接操作 CF-VaR 不容易,但背後的邏輯轉化成投資決策是有意義的:

 靜態風險數字要懷疑。  很多線上工具給你一個固定的「最大損失」估計,背後用的是歷史全期常態假設。這次測試顯示,這類工具在 2.5% 水準的實際誤差接近 50%。

 波動率本身會跟著市場狀態變。  2023 年算出來的 VaR 不等於 2021 年的 VaR,更不等於 2020 年 3 月的 VaR。市場換 regime,風險估計要跟著更新。

 「用越多歷史資料越安全」這個直覺是錯的。  對 VaR 來說,資料新鮮度比資料量更重要。過長的記憶讓模型跟不上 regime 轉換,給出失真的保護。

對機構風控和量化投資人,CF-Rolling + GJR-GARCH 的組合在這次三資產測試裡達到 6/6 完美通過,是目前系統內在不引入外部信號(如 VIX、市場情緒指標)條件下最乾淨的 VaR 解法。若要進一步改良,可以測試 CF 與 A4f 模型的組合(A4f 透過乘法項引入 VIX 等外部因子,K995 已達 12/12 Trinity)。


本文基於實驗 K1034(腳本:experiments/K1034/k1034.py,結果:experiments/K1034/k1034_results.json)。資料來源:yfinance,期間 2005-01-01 至 2026-04-10,OOS 期間 2019-01-01 起共 1,827 個交易日。相關實驗:K995(A4f-t Trinity 12/12)、K1026(Conformal VaR)、K159(EVT-GPD)。

相關文章

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

📄
VIX 越高、衝擊越被「吸收」?比例式衝擊倍數的分母陷阱與門檻效應
VIX 已經很高時,再來一次 VIX 大跳,SPY 的反應會不會變小?常見的量法是「衝擊倍數」(shock amplification ratio,SAR):衝擊日的 |r| 除以平日的 |r|。這個倍數確實隨前一日 VIX 升高而下降,於是很容易讀成「高波動環境會吸收衝擊」。本文檢驗這個讀法在三個地方站不站得住:分母、門檻,以及外生衝擊。 資料是 SPY 與 VIX 日資料,2006-01-05…
→
📄
銀行收緊放款時,債券 ETF 劇烈震盪會讓隔天股市更不安嗎?十九年資料:不必另設一道警報
美國聯準會每一季會問各大銀行:最近對企業放款,標準是放寬還是收緊?當回答「收緊」的銀行明顯多過「放寬」,市場常把它當成信用變緊的訊號。一個常見的延伸想法是:在這種時期,高收益債或貸款類 ETF 一旦出現劇烈震盪,隔天的股市就更容易跟著不安,所以要對債券 ETF 的動靜特別敏感,甚至提早減碼股票。 這篇回答的就是這個決策:銀行收緊放款的期間,要不要把債券 ETF 的單日劇烈波動,當成比平常更強的股市…
→
📄
K1876:GVZ 預警黃金回撤的 regime 交互假說被推翻,而且這份樣本的 R=1 月份幾乎只出現在 2013–2016
一般讀者版(〈持有黃金,20 天內從高點回落 5% 的機率約四分之一〉)講的是結論:GVZ 做成的事前預警,樣本外勝不過歷史發生率。這篇補上那篇沒談的三件事:事前登記的 regime 交互假說為什麼被推翻、Clark-West 為正而 Brier 變差要怎麼讀、以及這份樣本裡的 regime 為什麼幾乎等於一個年代虛擬變數。 設定 事件:起點 t 之後 20 個交易日內,GLD 收盤價自期間高點回…
→