3、凯利公式实战应用:数学推导、半凯利模型、多品种分配与局限性

凯利公式,说白了就是一个帮你决定「下多少注」的数学工具。我最早接触它是在做期货CTA策略的时候,当时回测曲线漂亮得不行,结果实盘一跑,仓位没控制好,一个月就把半年的利润吐回去了。嗯,从那以后我才真正重视起仓位管理,凯利公式就成了我工具箱里的常客。

3.1 凯利公式的数学推导

先别急着背公式,我们理解一下它到底在算什么。凯利公式的核心思想是:在长期复利增长最大化的前提下,每次下注的最优比例是多少

假设你有一个交易策略,胜率是p,盈亏比是b(盈利金额/亏损金额)。那么凯利公式给出的最优仓位f*是:

f* = (p * b - (1-p)) / b

这个公式怎么来的?我简单推一下思路。假设你每次下注f比例的资金,赢了资金变成1+f*b,输了变成1-f。重复n次后,你的资金增长率G为:

G = (1+f*b)^(n*p) * (1-f)^(n*(1-p))

取对数,求导,令导数为0,就能得到上面的公式。你想想看,这其实就是在最大化对数收益率,也就是长期复利。

核心结论:凯利公式追求的是长期几何增长的最大化,而不是单次收益的最大化。这一点非常重要,很多新手就是栽在这里。

3.2 半凯利模型:为什么我建议你用半仓

理论上凯利公式算出来的是最优解,但实战中我几乎从来不用全凯利。为什么?因为凯利公式假设你知道精确的p和b,但现实中这两个参数都是估计值,误差很大。

举个例子,假设你算出来f*=25%,但实际胜率比估计值低了5%,那么你的实际最优仓位可能只有15%。如果你按25%下注,长期下来反而会降低收益,甚至亏损。

所以,我个人习惯用半凯利模型,也就是把凯利公式算出来的仓位砍一半:

f_half = f* / 2

我的经验:半凯利在降低波动率的同时,收益损失并不大。我曾经回测过一套趋势跟踪策略,全凯利的最大回撤是35%,半凯利降到了18%,而年化收益率只下降了不到15%。这个性价比,我觉得很划算。

另外,还有一种更保守的做法叫分数凯利,比如1/4凯利、1/8凯利。对于高波动品种,我建议从1/4凯利起步,慢慢调整。

3.3 多品种凯利分配:别把所有鸡蛋放一个篮子

单品种凯利好理解,但实战中我们通常同时交易多个品种。这时候问题就来了:每个品种的仓位怎么分配?

最简单的做法是:对每个品种独立计算凯利仓位,然后按比例缩放。但这样做忽略了品种之间的相关性。比如你同时做多纳斯达克和做多标普500,这两个高度相关,相当于变相加了杠杆。

更科学的做法是使用多品种凯利矩阵。思路是这样的:

  1. 计算每个品种的预期收益率和方差
  2. 计算品种之间的协方差矩阵
  3. 用矩阵求解最优权重向量

代码实现大概长这样:

import numpy as np

# 假设有3个品种,预期收益率向量
mu = np.array([0.15, 0.12, 0.10])
# 协方差矩阵
cov = np.array([
    [0.04, 0.01, 0.005],
    [0.01, 0.03, 0.008],
    [0.005, 0.008, 0.02]
])

# 求解最优权重(凯利多品种)
inv_cov = np.linalg.inv(cov)
weights = inv_cov @ mu
weights = weights / np.sum(weights)  # 归一化

print("最优权重:", weights)

注意:多品种凯利对输入参数非常敏感。我曾经在实盘中用过这个模型,结果因为协方差矩阵估计不准,导致权重分配严重偏离预期。后来我改用滚动窗口估计协方差,效果好了很多。

3.4 凯利公式的局限性:别把它当万能药

凯利公式很强大,但它不是万能的。我总结了几条主要的局限性:

局限性 说明 应对方法
参数敏感 p和b的微小误差会导致仓位大幅偏离 使用半凯利或分数凯利
忽略交易成本 频繁交易时,手续费会侵蚀利润 在盈亏比中扣除成本
假设独立同分布 实际行情有序列相关性,不是独立事件 结合趋势判断动态调整
无法处理黑天鹅 极端行情下,凯利仓位可能过大 设置最大仓位上限

举个例子,我记得2020年3月美股熔断的时候,很多趋势策略的胜率突然从60%掉到30%。如果你还按原来的凯利仓位操作,一天就能亏掉20%。所以,我现在的做法是:凯利公式只作为参考,最终仓位还要结合市场环境和心理承受能力来定

避坑指南:我曾经在回测中过度优化凯利参数,结果实盘一塌糊涂。后来我给自己定了个规矩:凯利仓位不超过总资金的15%,不管公式算出来是多少。这个上限帮我躲过了好几次大坑。

知识体系总览

下面这张图总结了本章的核心逻辑,从数学推导到实战应用,再到局限性,你可以对照着梳理自己的仓位管理体系。

凯利公式实战应用知识体系 凯利公式 数学推导 f* = (p*b - (1-p)) / b 最大化对数收益率 半凯利模型 f_half = f* / 2 降低波动,牺牲少量收益 多品种凯利 协方差矩阵 + 权重优化 考虑品种相关性 局限性 参数敏感 忽略交易成本 假设独立同分布 无法处理黑天鹅 实战建议:半凯利 + 最大仓位上限

好了,这一章的内容就到这里。凯利公式是个好工具,但别迷信它。记住,仓位管理的核心不是追求理论最优,而是在不确定的市场中活下去、活得久。


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