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有三种常用方法:

  1. 参数法:假设收益率服从正态分布,VaR = μ - z·σ。其中z是置信水平对应的分位数(95%对应1.645,99%对应2.326)。
  2. 历史模拟法:直接用历史收益率的分位数。比如取过去1000天的收益率,排序后取第50个最差的(95%置信水平)。
  3. 蒙特卡洛模拟法:假设收益率服从某种分布,随机生成大量路径,然后取分位数。
# 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 知识体系总览

下面这张图总结了五个风险指标的核心逻辑和关系:

风险指标知识体系 风险指标 波动率 (Volatility) 最大回撤 (MDD) 下行风险 (Downside) VaR (在险价值) CVaR (条件在险价值) 衡量整体波动 上涨下跌都算风险 年化 = 日波动×√252 从峰值到谷底 衡量最大亏损幅度 心理承受力关键指标 只关心下跌波动 索提诺比率分母 更符合实际风险感知 给定置信水平 最大可能亏损 不关心尾部极端值 超过VaR后的平均亏损 考虑尾部风险 比VaR更保守全面 五个指标的关系 波动率 → 下行风险(只取下跌部分) VaR → CVaR(考虑尾部极端值) 最大回撤:独立维度,衡量历史最差情景

3.7 实战中的选择建议

这么多指标,到底用哪个?我的建议是:

  • 日常监控:波动率 + 最大回撤。这两个最直观,也最容易理解。
  • 策略对比:下行风险 + 索提诺比率。比夏普比率更真实。
  • 风控合规:VaR + CVaR。尤其是CVaR,监管机构越来越看重这个。
  • 极端行情测试:最大回撤 + CVaR。这两个能告诉你最坏情况有多坏。

一个小技巧:我习惯在策略回测报告中同时展示日波动率和年化波动率,以及滚动12个月的最大回撤。这样既能看整体,又能看不同时间段的表现。曾经有个策略整体最大回撤只有15%,但滚动12个月的最大回撤达到了35%——这说明它的风险是集中爆发的,这种策略要格外小心。

好了,风险指标这块就聊到这儿。记住一句话:没有完美的指标,只有合适的组合。下次你看到一份策略报告,别只看收益率,把这五个指标都扫一遍,你就能对策略的风险有个全面的认识。


公众号:蓝海资料掘金营,微信deep3321