凯利公式在套利中的应用:如何计算最优仓位?实战中的修正方法

说到仓位管理,很多做套利的朋友第一反应就是「轻仓、分散」。这话没错,但太笼统了。你想想看,轻仓到底轻到什么程度?分散又该分多少份?

我个人习惯用凯利公式来算这笔账。它不是一个完美的工具,但至少给了我们一个数学上的锚点。今天我就把我在跨期套利中怎么用凯利公式、又怎么修正它的经验,摊开来跟你聊聊。

一、凯利公式的基本形态

先看最经典的版本。对于赌博或者单次下注的场景,凯利公式长这样:

f* = (bp - q) / b

其中:

  • f* 是最优仓位比例(占你总资金的比例)
  • b 是赔率(盈利时能赚多少倍)
  • p 是胜率
  • q 是败率,也就是 1-p

举个例子。假设你发现一个跨期套利机会,历史统计下来胜率是 65%,每次盈利平均能赚 2 个点,亏损平均亏 1 个点。那么赔率 b = 2/1 = 2。代入公式:

f* = (2 * 0.65 - 0.35) / 2 = (1.3 - 0.35) / 2 = 0.475

算出来是 47.5%。也就是说,按凯利公式,你应该拿总资金的 47.5% 去押这一笔。

⚠️ 注意: 这个数字在实战中几乎不可用。47.5% 的仓位,一旦连续错两三次,你的账户回撤会非常恐怖。我见过有人按这个比例做,结果三次止损后账户缩水了 70%。嗯,这就是为什么我们需要修正。

二、套利场景的特殊性

跨期套利和赌博有个本质区别:赌博的每次下注是独立的,但套利的每次交易之间是有相关性的。你想想看,同一个品种的不同合约,价差走势会受到同样的基本面影响。今天做多近月空远月,明天可能还是同样的逻辑。

这就带来了一个问题:凯利公式假设每次下注是独立事件,但套利不是。所以直接套用公式,算出来的仓位会偏大。

我在项目中遇到过这样的情况:用凯利公式算出来仓位是 30%,结果连续三笔都盈利,第四笔一把亏回去,把前面赚的全吐了。原因就是那三笔盈利其实是在同一个趋势行情里,相关性很高,根本不是独立事件。

三、实战中的修正方法

那怎么办?我总结了三个修正方向,你可以根据自己的情况组合使用。

1. 分数凯利(Fractional Kelly)

这是最常用的方法。把算出来的 f* 乘以一个系数,比如 0.25 或 0.5。我个人习惯用 0.25,也就是四分之一凯利。

f_实际 = f* * 0.25

刚才那个例子,f* 是 47.5%,乘以 0.25 后得到 11.875%。这个数字就合理多了。你想想看,11% 的仓位,即使连续错几次,也不至于伤筋动骨。

💡 我的经验: 如果你刚开始做套利,建议从十分之一凯利起步。等你对品种的波动特性熟悉了,再慢慢提高到四分之一或三分之一。我曾经用十分之一凯利做了半年,虽然赚得慢,但账户曲线非常平滑。

2. 基于最大回撤的约束

凯利公式只考虑了长期增长率最大化,但它不管你的心理承受能力。所以我会加一个硬约束:单笔最大亏损不超过总资金的 2%。

具体做法是:

  1. 用凯利公式算出 f*
  2. 用 f* 乘以单笔止损幅度,得到预期亏损比例
  3. 如果这个亏损比例超过 2%,就降低仓位,直到亏损比例等于 2%

举个例子。假设你的止损是 1 个点,总资金 100 万。凯利算出来仓位是 20 手,每手亏损 1 个点就是 1 万,总亏损 20 万,占比 20%。这显然太高了。那就把仓位降到 2 手,亏损 2 万,占比 2%。

核心原则: 凯利公式告诉你「应该赚多少」,最大回撤约束告诉你「最多亏多少」。两者取小值。

3. 动态调整:根据账户净值变化

凯利公式的另一个问题是它假设参数是固定的。但实战中,胜率和赔率会随着市场环境变化。所以我建议每两周或每个月重新计算一次参数。

具体做法:

  • 用最近 60 个交易日的价差数据,重新统计胜率和赔率
  • 如果胜率下降,仓位自动降低
  • 如果波动率变大,止损幅度调宽,仓位相应减少

我曾经在 2022 年 6 月遇到过一次,螺纹钢的跨期价差突然变得非常不稳定,胜率从 70% 掉到了 55%。我及时把仓位从 15% 降到了 8%,躲过了一波连续止损。如果还按原来的参数做,那一个月可能要亏掉 10%。

四、一个完整的计算流程

说了这么多,我把它整理成一个流程图,方便你对照着用。

凯利公式在套利中的仓位计算流程 1. 统计历史胜率 p 2. 计算赔率 b = 盈利/亏损 3. 代入凯利公式 f* = (bp - q)/b 4. 应用分数凯利(×0.25) 5. 检查最大回撤约束 6. 确定最终仓位 关键参数说明 p:胜率,历史统计 b:赔率,盈利/亏损 q:败率,1-p 分数凯利:建议 0.25 最大回撤:单笔 ≤ 2% 动态调整:每两周重算 相关性:注意非独立事件

五、一个完整的计算示例

假设你做豆粕的跨期套利,近月和远月的价差历史数据如下:

参数 数值 说明
胜率 p 0.68 过去 100 次交易中盈利 68 次
平均盈利 15 点 每手盈利 150 元
平均亏损 10 点 每手亏损 100 元
赔率 b 1.5 15 / 10
总资金 50 万 账户总权益

第一步,算凯利:

f* = (1.5 * 0.68 - 0.32) / 1.5 = (1.02 - 0.32) / 1.5 = 0.4667

第二步,分数凯利(取 0.25):

f_实际 = 0.4667 * 0.25 = 0.1167 ≈ 11.67%

第三步,检查最大回撤。假设每手止损 10 点,即 100 元。11.67% 的仓位对应资金 58,350 元。按每手保证金 5000 元算,可以开 11 手。11 手止损一次亏 1100 元,占总资金 50 万的 0.22%,远低于 2% 的约束。所以这个仓位是安全的。

💡 一个小技巧: 我习惯在计算完后,再问自己一个问题:「如果连续亏 5 次,我还能不能保持冷静?」如果答案是否定的,那就再降一半仓位。心理承受能力也是资金管理的一部分,别忽视它。

六、避坑指南

最后,分享几个我踩过的坑:

  • 不要用全量历史数据算胜率。 我曾经用过去三年的数据算,结果市场结构变了,胜率直接从 70% 掉到 40%。建议只用最近 3-6 个月的数据。
  • 注意滑点和手续费。 凯利公式里的盈利和亏损,一定要扣掉交易成本。不然算出来的仓位会偏大。我见过有人没算滑点,结果实际盈利比预期少了 20%。
  • 不要频繁调整仓位。 凯利公式给出的是一个「最优」比例,但市场短期波动会让这个比例看起来不合理。我建议至少持仓 3 天以上再考虑调整,别被日内波动牵着走。

好了,关于凯利公式在套利中的应用,今天就聊到这里。记住,凯利公式是一个工具,不是圣杯。它帮你算出一个数学上的最优解,但最终用多少仓位,还得结合你的资金规模、心理承受能力和市场环境来定。嗯,这就是实战和理论的区别。


专注资料整理