第四章 资金管理模型:凯利公式及其变种、固定比例与固定分数模型、基于波动率的仓位调整(ATR模型)
资金管理,说白了就是「怎么下注」。
我见过太多交易员,策略回测漂亮得不行,实盘一上就爆仓。为什么?不是策略不好,是仓位没管住。你想想看,一个胜率60%的系统,如果你每次都满仓干,连续3次亏损就没了40%本金。后面就算行情来了,你也只能干瞪眼。
这一章,我们聊聊几个实战中真正能用的资金管理模型。我会把我在商品期货上踩过的坑、总结的经验,都摊开来讲。
核心观点:资金管理的目标不是赚最多,而是活得最久。只要你不死,复利会帮你搞定一切。
4.1 凯利公式:理论上的最优解
凯利公式最早是贝尔实验室研究信号传输的,后来被赌徒们发扬光大,再后来被量化交易员拿来管仓位。它的核心思想很简单:在已知胜率和赔率的情况下,找到一个让资金增长最快的下注比例。
标准凯利公式长这样:
f* = (bp - q) / b
其中:
f* = 最优下注比例(占当前资金的比例)
b = 赔率(盈亏比,即平均盈利/平均亏损)
p = 胜率
q = 1 - p(败率)
举个例子。假设你的策略胜率60%,盈亏比1.5:1。那么:
f* = (1.5 * 0.6 - 0.4) / 1.5 = (0.9 - 0.4) / 1.5 = 0.5 / 1.5 ≈ 0.333
也就是说,每次应该用33%的资金去下注。
我的经验:标准凯利在实盘中太激进了。我早期做螺纹钢期货时,严格按照凯利算出来的比例下单,结果遇到连续止损,回撤直接干到40%。后来我学乖了——永远用半凯利,也就是把算出来的比例砍一半。
4.2 凯利公式的变种:分数凯利
分数凯利,说白了就是给标准凯利加个「安全系数」。公式变成:
f_实际 = f* * 安全系数
安全系数通常取 0.25 ~ 0.5
我个人习惯用0.25。为什么?因为商品期货的胜率和赔率不是固定的,它会随着市场状态变化。你回测出来的60%胜率,实盘可能只有55%。用半凯利甚至四分之一凯利,虽然赚得慢一点,但睡得踏实。
还有一种变种叫「最优增长模型」,它考虑了交易成本。公式稍微复杂一点:
f = (p * ln(1 + b) + q * ln(1 - 1/b)) / b
嗯,这个在实战中用得不多。我一般直接用半凯利,简单粗暴,效果也不差。
注意:凯利公式假设你的胜率和赔率是稳定的。但期货市场不是赌场,参数会漂移。我建议每季度重新估算一次策略的胜率和赔率,动态调整仓位。
4.3 固定比例模型:简单但有效
固定比例模型,就是每次开仓用固定比例的资金。比如你总资金100万,每次用2%也就是2万去开仓。
这个模型的好处是——永远不会爆仓。因为每次只动用一小部分资金,就算连续亏损,本金缩水的速度也是递减的。
固定比例模型的核心参数就一个:风险比例。怎么定?
| 风险偏好 | 建议比例 | 适用场景 |
|---|---|---|
| 保守型 | 0.5% - 1% | 新手、大资金、低胜率策略 |
| 稳健型 | 1% - 2% | 大多数趋势跟踪策略 |
| 激进型 | 2% - 3% | 高胜率、高赔率策略 |
我在做股指期货时,用的就是1.5%的固定比例。为什么?因为股指波动大,比例高了心脏受不了。你想想看,一手IF合约波动一个点就是300块,仓位重了,心态容易崩。
4.4 固定分数模型:每笔交易固定风险
固定分数模型和固定比例有点像,但更精细。它不是固定「资金比例」,而是固定「每笔亏损金额」。
举个例子。你规定每笔交易最多亏2000块。那么开仓手数怎么算?
开仓手数 = 固定亏损金额 / (止损点数 * 每点价值)
假设你做螺纹钢,每点价值10元,止损设20个点:
开仓手数 = 2000 / (20 * 10) = 10手
这个模型的好处是——风险可控,且与账户规模无关。你账户100万和50万,每笔亏损都是2000块,只是开仓手数不同。
实战建议:固定分数模型最适合「多品种、多策略」的组合。因为每个品种的波动率不同,用固定分数可以统一风险敞口。我自己的CTA策略组合,就是统一用「每笔亏损0.5%本金」来算手数。
4.5 基于波动率的仓位调整:ATR模型
ATR(Average True Range,平均真实波幅)是威尔德发明的,用来衡量市场波动率。用它来调仓位,逻辑很直观:波动大的时候少做,波动小的时候多做。
ATR的计算方法:
TR = max(High - Low, |High - PrevClose|, |Low - PrevClose|)
ATR = SMA(TR, N) // N通常取14或20
用ATR来定仓位,公式如下:
开仓手数 = (账户资金 * 风险比例) / (ATR * 每点价值 * 止损倍数)
举个例子。账户资金100万,风险比例2%,ATR=50点,每点价值10元,止损倍数设为2倍ATR:
开仓手数 = (1000000 * 0.02) / (50 * 10 * 2) = 20000 / 1000 = 20手
如果ATR涨到100点,手数就变成10手。波动翻倍,仓位减半。这就是ATR模型的精髓——自动适应市场环境。
我的习惯:ATR参数我一般用20日。为什么不是14?因为商品期货有季节性波动,20日能更好地平滑掉短期噪音。另外,我建议用EMA代替SMA,对近期波动更敏感。
4.6 三种模型的对比与选择
说了这么多,到底用哪个?我直接给结论:
| 模型 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
| 凯利公式 | 理论最优增长 | 参数敏感,易过度交易 | 高胜率、高赔率策略 |
| 固定比例 | 简单、永不爆仓 | 未考虑波动率 | 新手、趋势跟踪 |
| ATR模型 | 自适应波动率 | 计算稍复杂 | 多品种、CTA策略 |
我个人现在的做法是:ATR模型 + 半凯利思想。先用ATR算出基础仓位,再根据策略的胜率和赔率做微调。比如ATR算出来该做20手,但最近策略胜率从60%掉到50%,我就减到15手。
避坑指南:我曾经犯过一个错误——在多个品种上同时用ATR模型,结果遇到市场波动率飙升,所有品种的仓位同时减半,导致整体风险暴露不足。后来我加了「品种间相关性调整」,相关系数高的品种,总仓位要设上限。
4.7 实战中的几个细节
最后聊几个实操中容易忽略的点:
- 手续费和滑点:仓位越重,滑点影响越大。我一般会在算出来的手数上再减1-2手,给滑点留余量。
- 资金曲线的平滑:如果连续盈利,不要急着加仓。我习惯等资金创新高后,再按新资金量重新计算仓位。
- 心理账户:别把「浮盈」当本金。浮盈加仓是爆仓的常见原因。我见过有人浮盈50%后加仓,一波回调全吐回去。
嗯,资金管理这块,说复杂也复杂,说简单也简单。核心就一句话:别让任何一笔交易,伤到你的筋骨。
公众号:蓝海资料掘金营,微信deep3321