3、风险指标详解:波动率、最大回撤、下行风险、VaR与CVaR
各位同学,咱们今天聊点实在的——风险指标。
做量化策略,光看收益率那是耍流氓。你赚了50%,但回撤了40%,这策略你敢实盘吗?反正我是不敢。我个人习惯,拿到一个策略报告,第一眼看的不是年化收益,而是最大回撤和波动率。为什么?因为这两个指标直接告诉你:这策略会不会让你晚上睡不着觉。
好,咱们一个一个来拆解。
3.1 波动率:风险的“标准差”视角
波动率,说白了就是收益率的波动程度。数学上就是收益率序列的标准差。你想想看,一个策略每天赚0.1%,另一个策略今天赚5%、明天亏4%,虽然平均收益差不多,但后者让你心脏受不了。
公式很简单:
σ = sqrt( (1/(n-1)) * Σ(R_i - R̄)² )
其中 R_i 是每日收益率,R̄ 是平均收益率,n 是样本数。
年化波动率 = 日波动率 × sqrt(252)。252是A股一年大概的交易天数。
重要提醒:波动率衡量的是“上下波动”,不是“下跌”。它把上涨和下跌都视为风险。这其实不太合理——上涨有什么好怕的?所以后面我们会聊下行风险。
我在项目中遇到过一件事:有个策略夏普比率高达3.0,但波动率只有5%。我当时觉得太完美了,结果实盘后发现,它根本捕捉不到大的趋势行情。波动率太低,有时候意味着策略太保守,赚不到大钱。嗯,这里要注意,波动率不是越低越好,要看你的风险偏好。
3.2 最大回撤:你最惨的时候有多惨
最大回撤(Max Drawdown, MDD),是衡量策略从峰值跌到谷底的最大幅度。公式:
MDD = max( (Peak - Trough) / Peak )
举个例子:你的账户净值从100万涨到200万,然后跌到120万,再涨到300万。那么最大回撤就是 (200-120)/200 = 40%。
这个指标为什么重要?因为它直接关系到你的心理承受能力和资金管理。我曾经见过一个策略,年化收益80%,但最大回撤60%。你想想看,100万亏到40万,你还能坚持吗?大部分人在回撤30%的时候就割肉了。
我的经验:对于CTA策略,我一般要求最大回撤不超过20%。对于股票多头策略,可以放宽到30%。但超过40%的策略,除非你有钢铁般的意志,否则别碰。
还有一个概念叫“回撤修复期”——从回撤低点回到前高需要多少天。这个指标也很实用。如果一个策略回撤20%后需要两年才能修复,那它的实际价值就要打折扣。
3.3 下行风险:只关心下跌的波动
刚才说了,波动率把上涨和下跌都算作风险。但咱们做投资的,上涨是好事啊。所以就有了下行风险(Downside Risk)。
它只计算收益率低于某个目标值(通常是0,或者无风险利率)的部分:
Downside Risk = sqrt( (1/n) * Σ min(R_i - R_target, 0)² )
说白了,就是只算亏钱时候的波动。这个指标更符合咱们的直觉——我只在乎亏了多少,不在乎赚了多少。
基于下行风险,还有一个更常用的指标叫索提诺比率(Sortino Ratio),它和夏普比率的区别就在于分母用的是下行风险而不是波动率。我个人更偏好索提诺比率,因为它更真实地反映了策略的“坏风险”。
注意:下行风险的计算需要设定一个目标收益率。如果你设成0,那它只考虑亏损的波动。如果你设成无风险利率,那它考虑的是跑输无风险收益的波动。不同设定会导致结果差异很大,使用时一定要明确说明。
3.4 VaR:在险价值
VaR(Value at Risk)翻译过来叫“在险价值”。它回答的问题是:在给定的置信水平下,未来一段时间内,最大可能亏损是多少?
比如,95%置信水平下的日VaR为2%,意思是:有95%的把握,明天亏损不会超过2%。或者说,只有5%的可能性,明天亏损会超过2%。
计算VaR有三种常用方法:
- 参数法:假设收益率服从正态分布,VaR = μ - z·σ。其中z是置信水平对应的分位数(95%对应1.645,99%对应2.326)。
- 历史模拟法:直接用历史收益率的分位数。比如取过去1000天的收益率,排序后取第50个最差的(95%置信水平)。
- 蒙特卡洛模拟法:假设收益率服从某种分布,随机生成大量路径,然后取分位数。
# Python示例:历史模拟法计算VaR
import numpy as np
returns = np.array([0.01, -0.02, 0.03, -0.015, 0.005, -0.03, 0.02, -0.01])
confidence_level = 0.95
var = np.percentile(returns, (1 - confidence_level) * 100)
print(f"95% VaR: {var:.4f}") # 输出:-0.0250
VaR的优点是直观,缺点也很明显——它只告诉我们“最大亏损不超过多少”,但没告诉我们“如果超过了,会亏多少”。这就引出了下一个指标。
3.5 CVaR:条件在险价值
CVaR(Conditional VaR),也叫期望损失(Expected Shortfall)。它计算的是:当亏损超过VaR阈值时,平均亏损是多少。
还是刚才的例子:95% VaR是-2.5%,那么CVaR就是所有小于-2.5%的收益率的平均值。假设有5%的极端情况,平均亏损是-4%,那CVaR就是-4%。
公式:
CVaR = E[ R | R ≤ VaR ]
CVaR比VaR更保守,也更全面。它考虑了尾部风险。我记得在2015年股灾的时候,很多策略的VaR看起来还好,但CVaR惨不忍睹。因为VaR只看到了95%的情况,而CVaR看到了那最惨的5%有多惨。
核心区别:VaR问的是“最坏情况有多坏”,CVaR问的是“如果最坏情况发生了,到底有多坏”。后者显然更有实际意义。
3.6 知识体系总览
下面这张图总结了五个风险指标的核心逻辑和关系:
3.7 实战中的选择建议
这么多指标,到底用哪个?我的建议是:
- 日常监控:波动率 + 最大回撤。这两个最直观,也最容易理解。
- 策略对比:下行风险 + 索提诺比率。比夏普比率更真实。
- 风控合规:VaR + CVaR。尤其是CVaR,监管机构越来越看重这个。
- 极端行情测试:最大回撤 + CVaR。这两个能告诉你最坏情况有多坏。
一个小技巧:我习惯在策略回测报告中同时展示日波动率和年化波动率,以及滚动12个月的最大回撤。这样既能看整体,又能看不同时间段的表现。曾经有个策略整体最大回撤只有15%,但滚动12个月的最大回撤达到了35%——这说明它的风险是集中爆发的,这种策略要格外小心。
好了,风险指标这块就聊到这儿。记住一句话:没有完美的指标,只有合适的组合。下次你看到一份策略报告,别只看收益率,把这五个指标都扫一遍,你就能对策略的风险有个全面的认识。
公众号:蓝海资料掘金营,微信deep3321