Python 投資組合風險管理入門
Dakota Wixom
Quantitative Analyst | QuantCourse.com
尾端風險(Tail risk) 指的是投資報酬分配中極端結果的風險,特別是分配左尾的重大虧損。
回落幅度(Drawdown) 是指從歷史累積報酬的高點起算的百分比跌幅。
$$ \text{Drawdown} = \frac{r_t}{RM} - 1$$

假設 cum_rets 是隨時間變化的累積報酬 np.array。
running_max = np.maximum.accumulate(cum_rets)
running_max[running_max < 1] = 1
drawdown = (cum_rets) / running_max - 1
drawdown
Date Return
2007-01-03 -0.042636
2007-01-04 -0.081589
2007-01-05 -0.073062
在險價值(Value at Risk, VaR) 指在給定信心水準下,虧損不會(更精確地說,歷史上不曾)超過某一門檻。
VaR 常用分位數有 95、99、99.9。
範例:VaR(95) = -2.3%

以歷史值來看,在單日內有 95% 的把握「虧損不會超過」-2.3%。
var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
var_95
-0.023
條件在險價值(Conditional Value at Risk, CVaR) 是在最差的 1 - x% 情境中,預期虧損的估計值。
CVaR 常用分位數有 95、99、99.9。
範例:CVaR(95) = -2.5%

在最差的 5% 情況下,歷史上「平均虧損超過」-2.5%。
假設你有 StockReturns,它是一個股票報酬的時間序列。
計算歷史 CVaR(95):
var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
cvar_95 = StockReturns[StockReturns <= var_95].mean()
cvar_95
-0.025
Python 投資組合風險管理入門