← 研究動態
研究2026/08/21 上午07:00

把風險平價的風險換成尾部損失:一個被誤讀成「更差」的 null

資產配置null_result樣本外檢驗風險平價CVaR研究文章

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

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

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

訂閱研究摘要

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

這篇要處理的,是一個容易被寫錯的結論

風險平價把風險定義成波動率。這個選擇很少被辯護,通常只是因為共變異數矩陣好估。

一個自然的替代是:既然投資人真正怕的是最糟那一段,就把風險貢獻改用 CVaR(最差 5% 情境下的條件期望損失)來定義。K1347 就是在檢驗這件事,標的是 SPY、TLT、GLD、PDBC 四個 ETF,樣本外從 2019-01-02 到 2025-12-30,共 1759 個交易日。

實驗的 verdict 是 FAIL。但 FAIL 是相對於預先設定的通過門檻說的,不等於「CVaR-RP 比較差」。這兩句話在統計上是不同的主張,而本文的重點就是把它們分開,這也是本文與同一個 K 的一般讀者版之間的差別:那一版講的是「實測只贏了一次」的結果面,這一版要處理的是那個結果能不能支撐「比較差」這個推論。

 與既有文章的關係 :mile_8d9858f4(Student-t DCC 比 Gaussian DCC 高級嗎?)處理的是同一個資產配置家族裡的另一個問題,相關結構的分配假設要不要換成厚尾。本文換的不是相關結構,是風險預算的計價單位本身,而且多了一個那篇沒有處理的對照組:等權重。

三個配置與它們的護欄

配置風險定義估計窗
EW(等權重)無無
Sigma-RP共變異數,等風險貢獻60 日
CVaR-RP5% 尾部條件損失,等貢獻250 日

共同設定:月底最後一個營業日再平衡(樣本外共 85 次)、單邊成本 5 bps、最小權重 0.02、alpha=0.05、seed=42。防前視的做法寫在結果檔的 lookahead_guard:權重在 t 用 <= t 的資料形成,套用從 t+1 開始,日序列上以 weights.shift(1) 實作。CVaR 最佳化在 85 次再平衡中成功率為 1.0,所以下面的結果不是最佳化失敗造成的。

全期樣本外結果

配置年化報酬年化波動SharpeSortino最大回撤Calmar
EW11.44%10.20%1.1221.482-18.10%0.632
Sigma-RP9.44%9.77%0.9661.300-20.35%0.464
CVaR-RP9.62%10.14%0.9491.247-19.80%0.486

先看主角。CVaR-RP 對 Sigma-RP 的 Sharpe 差是 -0.017。Diebold-Mariano 檢定(n=1759,HAC 落後 4 期)的 t 統計量是 0.258、p=0.796。1000 次區塊拔靴(區塊長度 20)給的 Sharpe 差 95% 信賴區間是 [-0.152, 0.115],回撤差的區間是 [-0.045, 0.011]。兩個區間都跨零。

所以資料說的是: 看不出差別 。點估計略偏負,但它離零的距離遠小於抽樣誤差。把 -0.017 讀成「尾部風控會傷害績效」,是把一個 null 講成了負面結論。

那為什麼 verdict 是 FAIL?

這個實驗問的是「有沒有變好」,不是「有沒有差」。門檻要求 CVaR-RP 改善下檔保護,而它沒有提供任何改善的證據。 沒有證據支持改善 ,就足以否決「改用 CVaR 有價值」這個提案。再多宣稱它有害,資料撐不住。

真正該注意的那一欄

表格裡最刺眼的數字不在 CVaR 那一列,是 EW 那一列。等權重的 Sharpe 是 1.122,比兩個風險平價變體都高(對 Sigma-RP 高 0.156),最大回撤 -18.10% 也是三者中最淺的,Calmar 0.632 幾乎是 Sigma-RP 的一點四倍。

換句話說:這兩套風險平價在這個四資產、含成本的設定下,都沒有打敗那個不需要估任何東西的基準。爭論風險該用波動率還是尾部損失來衡量,在這裡是一個次要問題,主要問題是估計本身帶進來的成本有沒有換到東西。

還有一個細節值得記:CVaR-RP 的年化波動是 10.14%,比 Sigma-RP 的 9.77% 高,也幾乎等於 EW 的 10.20%。一個以尾部風險為目標的配置,連整體波動都沒有壓下來。

淨值曲線與回撤(SPY/TLT/GLD/PDBC,扣除單邊 5bps 換手成本)

圖上兩條風險平價的線幾乎黏在一起,藍色的等權重從 2020 年年中開始就走在上面,之後沒有再被追回。下半部的回撤圖也是同一個故事:橘線與綠線的差距,小到用肉眼分不出誰在保護誰,這正是 DM 檢定 p=0.796 的視覺版本。

三個壓力期

壓力期最大回撤比較

壓力期天數Sigma-RP 回撤CVaR-RP 回撤差(CVaR - Sigma)有改善
2020 COVID52-15.42%-17.43%-2.01pp否
2022 通膨209-20.35%-19.80%+0.56pp是
2025 關稅21-7.31%-8.17%-0.85pp否

三個可評估的壓力期裡只有一個出現改善,而且改善幅度(0.56pp)小於另外兩次惡化的幅度。設定裡原本還有 2018Q4 賣壓,但樣本外起點在 2019 年,該窗口 n=0,不可評估,這也是為什麼分母是三而不是四。

這裡要克制。三個樣本點不足以支撐任何關於「CVaR-RP 在危機中比較脆弱」的結論;它只是沒有展示出它被提出時所承諾的那個好處。2020 年那次惡化最值得後續追,因為它剛好是尾部估計最該發揮作用的場景,而 250 日的估計窗在 2020 年 2 月看到的還是 2019 年的平靜市場。

這個 null 的邊界

  •  只在這個資產集合上成立 。四個 ETF、其中三個是分散度已經很高的大類資產,等權重本身就已經接近一個合理的風險分散。在成分之間風險差異更懸殊的池子裡,結論可能不同。
  •  只在這個估計窗下成立 。CVaR 用 250 日歷史模擬,這是一個對制度轉換反應很慢的估計式。慢反應可能就是它在 2020 年落後的原因,而那是可以另外檢驗的假說,不是本實驗的結論。
  •  成本設在單邊 5 bps 。這對流動性好的 ETF 是合理的,但兩個風險平價變體的換手都高於等權重,成本假設放寬會讓 EW 的領先擴大而不是縮小。

帶走的一句話

這個實驗真正的產出是兩個否決。第一,把風險改用尾部損失計價,沒有換到更好的下檔保護。第二,在這個資產集合上,先去問「要不要做風險平價」,比去問「風險平價要怎麼定義風險」更重要。


 資料與復現 :experiments/k1347/(k1347.py、k1347_results.json、prices.csv)。樣本外 2019-01-02 至 2025-12-30,n=1759,seed=42。所有數字取自 k1347_results.json 的具名欄位。

相關文章

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

📄
K1884:拿 VIX1D 對照 SPY 同一天的已實現變異,年化分母、報價時點與盤中窗口各自能把答案改掉多少
一般讀者版〈一日恐慌指數開盤報的當日變異,平均是 SPY 盤中實際的 1.56 倍:這個數字該怎麼讀〉給的是水準與讀法。這篇處理做這個比較時要先決定的三件事:VIX1D 要除以哪一個年化分母、要拿哪一個時點的報價、已實現變異要涵蓋盤中哪一段。 K1884 的結果顯示,這三個選擇造成的偏移,與要量的效果同一個量級;選錯任何一個,程式不會報錯,只會回答另一個問題。 先釐清估計量。K1884 量的是同一…
→
📄
K1378:VIX 長期成分讓 SPY 波動預測勝過 GJR-GARCH,這個優勢在疫情窗外更穩定
做風險控管或選擇權定價的人,常要在兩種日頻波動模型之間取捨:只用報酬本身的 GJR-GARCH,或在 GARCH 之外加一個由 VIX 驅動的長期成分。後者多了一個外部變數要維護,值不值得,要看它的預測優勢從哪裡來。如果優勢只來自 2020 年那種市場崩跌的少數日子,平常用它就只是多背一個依賴;如果優勢出現在一般日子,它才是日常可用的改進。 K1378 用 SPY 的樣本外一步預測回答這個問題:A…
→
📄
K1862:HAR-RV 一個月波動預測的誤差,平均偏誤不隨波動水位變號,隨水位變寬的是誤差分布
用 HAR-RV 預測未來一個月波動的人,常會想加一層修正:波動很高時把預測往下調,波動很低時往上調,理由是 HAR 的均值回歸可能修正過頭。這層修正值不值得加,取決於 HAR 的誤差是否真的隨預測當下的波動水位系統性變號。 一般讀者版〈HAR 波動預測的誤差往哪邊偏:六成交易日高估,平均誤差卻幾乎是零〉處理的是整體偏誤。這篇處理條件結構:依預測當下的波動水位把樣本外日子分成五組,誤差的平均、中位…
→