Python 投资组合风险管理入门
Dakota Wixom
Quantitative Analyst | QuantCourse.com
尾部风险指极端投资结果的风险,尤其是分布负尾。
回撤是相对历史累计高点的百分比损失。
$$ \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
在险价值(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
条件在险价值(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 投资组合风险管理入门