随期而动的期货/期权投资笔记

运气与凯利公式:运气不好时,仓位要打折

内容持续修订,过时部分会及时剔除

凯利公式只有一个目标:让长期平均增长最快。它不知道“回撤”是什么,也不知道你的账户只有一条路。同样的胜率,只是把亏损排在了前面,你就可能在看到“长期最优”之前先出局。

三句话记住这篇

1. 凯利公式只最大化几何平均增长率,目标函数里没有“回撤”这一项。

2. 胜率、赔率全不变,只换结果的顺序,终点一样,中途最深回撤能从 10% 变成 52%——而账户是死在路径上的。

3. 所以仓位打折不是因为公式算错了,是给它补一条它不管的约束:回撤容错。

一、凯利公式只做一件事:把增长速率开到最大

二元赌局里,凯利公式是 f* = (b × p − q) ÷ b;赔率 1:1 时简化为 f* = 2p − 1。它最大化的不是“这一把赚多少”,而是每一局的期望对数增长,也就是几何平均增长率:

每局的几何平均增长

g(f) = p × ln(1 + f) + (1 − p) × ln(1 − f)

p = 胜率,f = 下注比例。g 为正,长期复利向上;g 为负,交易越多账户越接近零。

使 g(f) 最大的 f 就是满凯利 f*。

看这个式子,会发现三个特点:只有一个输出——一个速率;只对“无穷多次”有意义;不含任何跟先后顺序有关的项。

所以严格说,凯利公式回答的不是“我该怎么下注”,而是:在无限次重复、每次都能完整参与、中途不会被踢出局的前提下,哪个比例让平均增长最大。

符合这个前提,f* 就是精确答案。问题是,你的账户不符合这个前提。所以它不是错的,它只是答的不是你问的问题。

二、它不关心回撤:14 笔交易的两种排列

设真实胜率 55%、赔率 1:1,满凯利 f* = 10%。现在拿 14 笔交易,7 赢 7 亏,只改顺序:

排列方式 中途最深回撤 14 笔后的净值
A:先连亏 7 笔,再连赢 7 笔 −52.2%(0.97 ≈ 0.478) 0.478 × 1.949 ≈ 0.932
B:亏一赢一,交替 7 轮 −10.0% 0.997 ≈ 0.932

两种排列的终点一模一样——因为乘法可交换,0.97 × 1.17 跟排列顺序无关。但中途最深的地方差了五倍:一个是腰斩,一个只是擦破皮。

凯利公式对这个差别完全没有意见。它只算终点,而这两条路径的终点都是 0.932,所以它认为两个都是“最优执行”。你对回撤的容忍度,它一个字都不知道。

这就是“运气”在数学上的准确定义:运气不是胜率,是顺序。你无法选择顺序,只能选择仓位——而仓位决定了同一段坏运气会把你打成什么样。

终点一样,出局的人不一样

如果账户有一条“回撤 40% 就停机”的规则,路径 A 在第 5 笔亏损之后就退出了,永远拿不到那个 0.932 的终点;路径 B 全程无事。

凯利公式算的是“活到最后的人能拿多少”,没算“有多少人活不到最后”。

三、满凯利的回撤到底有多大

换个问法:假设胜率 55% 是真的、赔率 1:1 是真的,没有参数误差,只跑 200 笔,不同仓位的回撤会是什么样?下面是 2 万次模拟的结果(最大回撤指任意时点相对前高的跌幅):

单笔风险 每笔几何增长 200 笔后净值(中位) 最大回撤(中位) 最大回撤(95 分位)
1% +0.10% 1.21 倍 10% 18%
2% +0.18% 1.43 倍 19% 33%
2.5% +0.22% 1.55 倍 23% 39%
5% +0.38% 2.12 倍 42% 66%
10%(满凯利) +0.50% 2.72 倍 70% 91%

读法有三条:

把这件事说成一句话:凯利公式用“多赚 75%”换“中位回撤从 23% 涨到 70%”。在公式眼里这笔交换是免费的,因为回撤不在它的目标函数里;在你眼里它不是免费的,因为你是那个要一路扛过去的人。

四、为什么公式可以无视回撤,你不行

凯利公式有四个隐含假设,全都藏在“长期”两个字里:

现实中这四条全破。最硬的一条是保证金:期货亏损到维持保证金以下会被强平,这是真正的吸收壁——一旦打到,后面的行情与你无关,即使它后来证明你是对的。

有吸收壁之后,“平均增长率最优”和“我能拿到这个平均”就是两件事。凯利公式给的是前者,你要的是后者。

这也是遍历性那篇的延续:集合平均不等于时间平均。这里再补一句更狠的——时间平均也不等于你的这条路径。你只有一条。

五、把“打折”写成一条约束

不加约束,公式没有任何理由往左走。所以做法不是“凭感觉打个折”,而是把它改成一道约束优化:

原问题:max g(f)

实战问题:max g(f),约束是 P(最大回撤 > 我的上限) ≤ 5%

加上这条约束,最优解必然落在满凯利左边——这才是“打折”的数学来源。

用同样的模拟反查,就能读出折扣(满凯利 f* = 10%,所以 1% 等于十分之一凯利):

你能接受的回撤上限 允许的仓位(95 分位不越界) 相当于几分之几凯利
20% 约 1% 十分之一
30% 约 1.75%–2% 五分之一
40% 约 2.5% 四分之一
60% 约 4.5% 二分之一弱

这张表比任何口诀都实在:想把回撤压在 30% 以内,仓位只能是满凯利的五分之一。能接受腰斩级别回撤的人,才谈得上四分之一到二分之一凯利。

所以“分数凯利”不是一个凭感觉挑的系数,而是回撤约束的解。容错大,折扣就小;容错为零,就不该用凯利公式,而该用固定小风险。本站的取向是把回撤放在收益前面,所以常见的落点是十分之一到五分之一,而不是教科书里的“半凯利”。

落地三步:

  1. 先把上限写下来。比如“账户从高点回撤 20% 就必须停机复盘”。这是账户层面的硬约束,不是感觉。
  2. 反推 f。用回测或模拟找出“95 分位最大回撤 ≤ 上限”的最大仓位,而不是用满凯利乘以一个随手挑的系数。
  3. 再用两层上限压一次。单笔风险上限(如 1%)和组合 heat(所有持仓同时打到止损的总亏损,如 6%),取三者最小。

六、连亏的时候,折扣要更大

胜率 55% 并不代表连亏是意外。200 笔交易里:

连亏出现的概率(胜率 55%,200 笔)

至少一次 5 连亏:约 88%

至少一次 7 连亏:约 33%

至少一次 9 连亏:约 8%

在满凯利 10% 的仓位下,7 连亏是 −52%,9 连亏是 −61%。也就是说,“正常范围内的坏运气”就能把你送到停机线附近,不需要任何黑天鹅。

所以需要预设降仓规则,而不是等回撤发生了再决定:

降仓是个特殊动作:在你分不清“运气差”还是“策略失效”的时候,它是唯一能同时防住两种可能的做法。运气差,降仓让你少亏;策略失效,降仓让你亏得慢一点、有时间证伪。两种情况下它都对。

七、三个常见误用

八、一张自检清单

检查项 不合格 合格
止损/停机线写了吗? 没有,凭感觉扛 有明确百分比,事前写好
仓位是反推出来的吗? 拿 f* 乘个好看的系数 由“95 分位回撤 ≤ 上限”反推
算过最大回撤吗? 只看了胜率和期望 有中位和极端两种情形
能扛住 9 连亏吗? 没算过 算过,回撤仍在容错内
连亏之后怎么做? 加倍回本 按预设规则降仓
会强行平仓吗? 保证金占用到接近满额 留足缓冲,死不了

九、三个常见问题

半凯利就安全了吗?

不一定。半凯利大约把回撤砍一半,能不能扛住要看你的上限。55% 胜率下,半凯利的中位最大回撤还有 42%,95 分位 66%。如果你的上限是 25%,半凯利依然越界。判断标准不是你用了几分之几,而是它跑出来的回撤在不在你的容错内。

运气不好时,该停手吗?

先分清两件事:亏损是否还在规则内。如果止损都按计划执行、回撤还在预设曲线附近,那是运气的正常波动,按规则降仓即可,不必停手。如果连续出现“不该做的单”——追单、放宽止损、超仓——那是执行失效,必须停。判断标准写在事前,不要留到亏钱之后现编。

小账户该用几分之一凯利?

从五分之一甚至更低开始。小账户的优势是灵活,不是杠杆;它的回撤容错反而更小,因为一次深亏就再没有翻身余地。等跑过 50 笔以上、参数稳定,再按回撤上限往上调一档。往上调的时候要重算回撤,不要只看收益变漂亮了。

三句话用法

1. 先写回撤上限,再问仓位该多大。

2. f* 是上界,实际仓位由“95 分位回撤 ≤ 上限”反推。

3. 连亏按规则降仓,任何情况下不加倍。

索普在赌场和市场上的做法,据其相关论述意译,也是这个顺序:先确认优势真实存在,再用远低于理论上界的方式下注,确保自己能长期留在牌桌上。他关心的从来不是“这一把赚最多”,而是“不破产”——因为只有不破产,那个几何平均才有机会兑现。

“凯利公式算的是活到最后的人能拿多少,没算有多少人活不到最后。回撤不在它的目标函数里,所以你要自己把它加进去。”

— 本站体系札记
下一步

继续读:从几何增长到仓位:R、风险比例与分数凯利,以及运气与反脆弱:坏运气来了,你还活着吗。

如果这篇让你少踩一次坑,转给那个按“满凯利”重仓的朋友。

← 返回首页