第二章:最大回撤——量化交易者的“生死线”
聊因子投资,绕不开一个词——最大回撤。
我见过太多人,策略夏普比率做得漂亮,年化收益也亮眼,结果一次回撤就爆仓了。说白了,回撤控制不好,前面赚再多都是白搭。
一、最大回撤的定义与计算
最大回撤,英文叫 Maximum Drawdown,简称 MDD。它衡量的是:从净值最高点,跌到后续最低点,这个跌幅有多大。
公式很简单:
最大回撤 = (峰值 - 谷值) / 峰值 × 100%
举个例子:
你的策略净值从 1.0 涨到 1.5,然后跌到 1.2,接着又涨到 1.8。那么最大回撤就是 (1.5 - 1.2) / 1.5 = 20%。
注意,这里只看历史最高点到最低点的跌幅。中间的小波动不算。
核心要点:最大回撤只看“最坏情况”,不看平均表现。
计算上,我习惯用 Python 的 numpy 库来算。代码很简单:
import numpy as np
def max_drawdown(equity_curve):
peak = np.maximum.accumulate(equity_curve)
drawdown = (equity_curve - peak) / peak
return np.min(drawdown)
嗯,这里要注意:np.maximum.accumulate 会记录每个时间点的历史最高净值。然后算当前净值相对于这个峰值的跌幅。最后取最小值,就是最大回撤。
我曾经在项目中遇到过一个问题:用日频数据算回撤,结果忽略了盘中波动。后来改用分钟级数据,才发现真实回撤比日频数据大得多。所以,数据频率很重要。
二、最大回撤的心理影响与资金管理意义
最大回撤不只是数字。它背后是真实的人性考验。
你想想看,当你的账户从 100 万跌到 70 万,你还能淡定地执行策略吗?我见过太多人,回撤 10% 时还能扛,回撤 20% 时开始怀疑人生,回撤 30% 时直接清仓跑路。
为什么会这样?
因为亏损带来的痛苦,是盈利带来快乐的两倍。行为金融学里这叫“损失厌恶”。
我的经验:回撤超过 20%,大部分人会开始手动干预策略。而手动干预,往往是亏损的根源。
从资金管理角度看,最大回撤决定了你的杠杆上限。
举个例子:
如果你的策略最大回撤是 30%,而你用了 3 倍杠杆,那实际回撤就是 90%。市场稍微波动一下,你就爆仓了。
我建议:杠杆倍数 × 最大回撤 ≤ 20%。这样即使遇到极端情况,你还有机会翻身。
| 策略最大回撤 | 建议最大杠杆 | 实际最大回撤 |
|---|---|---|
| 10% | 2 倍 | 20% |
| 20% | 1 倍 | 20% |
| 30% | 0.5 倍 | 15% |
你看,回撤越大,能用的杠杆就越低。这是铁律。
三、最大回撤与夏普比率的关系
夏普比率衡量的是“每单位风险获得的超额收益”。而最大回撤,是风险的一种极端度量。
两者之间没有严格的数学关系,但实践中,它们往往呈负相关。
为什么?
因为高夏普比率的策略,通常波动小、回撤也小。而低夏普比率的策略,往往伴随着大起大落。
但注意,这不是绝对的。我见过一些策略,夏普比率 2.0,但最大回撤 40%。为什么?因为它在大部分时间平稳上涨,但偶尔会暴跌一次。这种策略,夏普比率好看,但实际风险很大。
避坑指南:不要只看夏普比率。我曾经被一个夏普 2.5 的策略骗过,结果实盘三个月就回撤了 35%。后来一查,原来是策略在样本外失效了。
我个人习惯:同时看夏普比率和最大回撤。如果夏普比率高但回撤也大,我会怀疑这个夏普比率是不是“幸存者偏差”导致的。
另外,还有一个指标叫 Calmar 比率,就是年化收益除以最大回撤。这个指标比夏普比率更直观,因为它直接告诉你“每承担 1% 的回撤,能换来多少收益”。
举个例子:
策略 A:年化收益 20%,最大回撤 10%,Calmar 比率 = 2.0
策略 B:年化收益 30%,最大回撤 30%,Calmar 比率 = 1.0
你会选哪个?
我选 A。因为策略 B 的回撤太大,我可能扛不到它赚钱的那一天。
四、知识体系图
下面这张图,概括了本章的核心逻辑:
这张图把最大回撤拆成了四个维度:定义、心理影响、资金管理、以及与夏普比率的关系。每个维度都指向同一个结论——控制回撤,就是控制风险。
本章小结:
- 最大回撤是净值从峰值到谷值的最大跌幅
- 回撤超过 20% 会触发大部分人的恐慌心理
- 杠杆倍数 × 最大回撤 ≤ 20% 是安全线
- 夏普比率高不代表回撤小,要结合 Calmar 比率一起看
好了,这一章就到这里。记住,回撤不是敌人,忽视回撤才是。