2. 风险度量指标:波动率、VaR、CVaR、最大回撤、下行风险
做目标风险型组合,第一步就是搞清楚——你到底在管什么风险?
说实话,我刚入行那会儿,觉得风险就是“亏钱”。后来发现,没那么简单。不同的人、不同的策略,对“风险”的定义完全不一样。有人怕波动大,有人怕亏太多,有人怕连续阴跌。
所以这一节,我把五个最常用的风险度量指标掰开揉碎了讲。每个指标都有它的脾气,也有它的坑。
2.1 波动率:最基础的“心跳”指标
波动率,说白了就是资产价格上蹿下跳的幅度。你想想看,一个基金今天涨3%,明天跌2%,后天又涨1%——这种“心跳加速”的感觉,就是波动率在作祟。
我习惯用年化波动率来衡量。公式很简单:
年化波动率 = 日收益率标准差 × √252
为什么乘以√252?因为一年大概有252个交易日。这是行业惯例,别问为什么,记住就行。
关键点:波动率只衡量“离散程度”,不区分涨跌。也就是说,大涨和大跌都会被算作“高风险”。
我在项目中遇到过一件事:有个客户说“我要低波动产品”,结果我给他配了国债+货币基金,波动率确实低,但他嫌收益不够。后来我加了点可转债,波动率上去了,他却能接受。为什么?因为他真正怕的是“下跌波动”,而不是“上涨波动”。
嗯,这里要注意——波动率是个“双刃剑”。它公平,但也无情。
2.2 VaR:在险价值,告诉你最坏情况
VaR的全称是Value at Risk。翻译过来就是“在险价值”。它回答一个问题:在给定的置信水平下,我的组合最多会亏多少钱?
举个例子:95%置信水平下的日VaR是100万。意思是,有95%的概率,一天亏损不超过100万。那剩下的5%呢?VaR不告诉你。这就是它的局限。
# 计算VaR的简单方法(假设收益率服从正态分布)
import numpy as np
from scipy.stats import norm
mean = 0.0005 # 日收益率均值
std = 0.02 # 日收益率标准差
confidence = 0.95
VaR = mean - std * norm.ppf(confidence)
print(f"95% VaR: {VaR:.4f}")
我的经验:VaR适合做“日常风控线”。比如我设95% VaR为单日最大亏损上限,一旦触发,强制减仓。但别迷信它——黑天鹅事件往往就在那5%里。
我曾经吃过VaR的亏。2015年股灾前,我的组合VaR显示一切正常。结果连续几天熔断,VaR完全没预警。为什么?因为VaR假设收益率是正态分布,但真实市场有“肥尾”——极端事件比模型预测的更频繁。
2.3 CVaR:比VaR更狠的“尾部风险”
CVaR,也叫条件VaR或期望损失。它问的是:如果亏损超过了VaR的阈值,那平均会亏多少?
你想想看,VaR只告诉你“最坏情况的门槛”,但CVaR告诉你“跨过门槛后有多惨”。
| 指标 | 含义 | 适用场景 |
|---|---|---|
| VaR | 95%概率下最大亏损 | 日常风控、监管报告 |
| CVaR | 超过VaR后的平均亏损 | 极端风险防范、对冲策略 |
我个人习惯在目标风险组合里同时看VaR和CVaR。如果CVaR远大于VaR,说明尾部风险很大——这时候我会考虑加期权保护或者减仓高beta资产。
避坑指南:我曾经用历史模拟法算CVaR,结果样本里有一次极端暴跌,导致CVaR值高得离谱。后来我改用蒙特卡洛模拟+波动率聚类模型,才稳定下来。记住——CVaR对样本选择非常敏感。
2.4 最大回撤:投资者最直观的“痛感”
最大回撤,就是从最高点到最低点的跌幅。它不像波动率那样抽象,而是实实在在的“亏了多少”。
举个例子:你100万进场,涨到150万,然后跌到90万。最大回撤就是(150-90)/150=40%。注意,不是从100万算起,而是从最高点算起。
# 计算最大回撤
def max_drawdown(price_series):
peak = price_series[0]
max_dd = 0
for price in price_series:
if price > peak:
peak = price
dd = (peak - price) / peak
if dd > max_dd:
max_dd = dd
return max_dd
我记得有个客户,看了我的组合回测报告,其他指标都满意,唯独盯着最大回撤说:“这个18%我接受不了。”后来我给他调成了保守型组合,最大回撤控制在8%以内,他才安心。
说白了,最大回撤是投资者的“心理底线”。你模型再漂亮,回撤大了,客户就拿不住。
2.5 下行风险:只关心“坏波动”
下行风险,也叫Downside Deviation。它只计算收益率低于某个目标(通常是0或无风险利率)时的波动。
为什么要有这个指标?因为波动率把上涨和下跌一视同仁,但投资者其实只讨厌下跌。你想想看,谁会因为涨太多而睡不着觉?
# 计算下行风险
def downside_deviation(returns, target=0):
downside = [r - target for r in returns if r < target]
return np.sqrt(np.mean(np.square(downside)))
核心逻辑:下行风险 = 只算“亏钱”时的波动。它比波动率更贴近真实的风险感受。
我在做目标风险组合时,经常用下行风险替代波动率作为优化目标。尤其是给养老金、保险资金做配置时,他们最怕的就是“本金亏损”,而不是“波动大”。
2.6 一张图看懂五个指标的关系
下面这张SVG图,把五个指标的核心逻辑串起来了。你可以看到,从波动率到下行风险,其实是一个“从全面到聚焦”的过程。
2.7 怎么选?我的经验法则
五个指标各有千秋,但你不能全用。我一般这样选:
- 做指数增强或量化选股:看波动率和最大回撤。波动率控制换手率,最大回撤控制止损线。
- 做FOF或资产配置:看VaR和CVaR。因为底层资产多,尾部风险容易叠加。
- 做绝对收益或固收+:看下行风险。这类策略的核心就是“别亏钱”。
一个小技巧:我习惯把五个指标做成一个“风险仪表盘”。每天开盘前扫一眼,哪个指标亮红灯,就重点排查哪个方向。这样既全面,又高效。
好了,这一节的内容就到这里。五个指标,每个都有它的故事。你可以在自己的组合里试试,看看哪个指标最能反映你的真实风险感受。