跳到正文
凯利公式:那个「最优下注比例」,到底是拿什么算出来的
进阶论道2026-09-0116分钟阅读

凯利公式:那个「最优下注比例」,到底是拿什么算出来的

目录(10 节)
  1. 写在前面
  2. 一、它最大化的不是收益,是增长率
  3. 二、f 不是仓位比例——这一步几乎所有人都算错
  4. 三、曲线两侧不对称,而你不知道自己站在哪一侧
  5. 四、模拟:让十万个人用自己四十笔的战绩,去估凯利要的那两个数
  6. 五、期货把这道题加难在哪
  7. 六、凯利公式不回答什么
  8. 七、一张可以贴在显示器边上的表
  9. 三条能直接用的结论
  10. 下一篇预告

写在前面

一个朋友给我看他的记录:最近四十笔,赢了二十四笔,胜率六成;平均赚的是平均亏的一点五倍。他说他查了凯利公式,代进去算出来该押三成三。

他的算术没有错。我用同一个公式代了一遍,也是三成三。

有问题的不是那一步。有问题的是代进去的那两个数——"六成"和"一点五倍",都是从他那四十笔里数出来的。

而上一次讲幸存者偏差时,我用十万个不做任何判断的人跑过一遍:四十笔这个长度上,成绩没有分辨力。 一个纯靠运气的人和一个真有本事的人,在四十笔上分不开。

那么,一个建立在"胜率"和"盈亏比"上的公式,拿四十笔喂给它,会算出什么?

这是《米粒论道》的第五篇。前面四篇分别算了回本的距离、怎么停下来、一共该拿多少、一个成绩能说明什么。

讲仓位那一篇的第一节,我刻意留了一个坑没填:我只说"一定存在某个位置,越过它之后再加仓位,是同时降低期望收益和提高风险的",但没说它在哪儿,也没给公式。

这一篇就是来填那个坑的。填完你会发现,坑底下不是一个答案,是另一个问题。


一、它最大化的不是收益,是增长率

先说这个公式是从哪儿冒出来的。

1956 年,贝尔实验室一个研究信息传输的人写了一篇论文,讨论的其实是信道容量——一个带噪声的通道,每次传过去的信息里有多少是可信的。他顺手用赌局做了个类比:一个赌徒收到一些有噪声的内幕消息,他每次该押上身家的多大比例,才能让财富长期增长得最快。

这个人叫 John Kelly,这个比例后来就叫凯利公式。

⚠️ 请注意"长期增长得最快"这七个字,它是整个公式的地基。

为什么最大化收益是错的目标

假设有一个赌局:赢了翻倍,输了归零,你有六成把握赢。

要让"这一把的期望收益"最大,答案是全押。 期望值 0.6 × 2 = 1.2 倍本金,押得越多期望越高,没有别的答案。

但你不会只赌一把。 连着赌下去,只要输过一次,账户就是零,后面赢多少次都乘不回来。

这就是问题的形状:账户是连乘的,不是连加的。 回撤那一篇已经把这件事的后果算过一遍——亏损和回本用的不是同一个分母,一涨一跌等幅之后你不在原地。

一串连乘的东西,长期表现由每一步的对数之和决定,不由每一步的算术平均决定。凯利做的事就是:不去最大化"这一把能赚多少",而是最大化"每一把的对数收益的平均值"。这个量有个名字,叫几何增长率。

凯利回答的问题从来不是"怎么赚得最多",是"怎么让账户长期增长得最快"。这两个问题的答案,差得非常远。

公式本身

在"赢了赚 b 倍、输了亏掉押上去那一份"的赌局里,设赢的概率是 p、输的概率是 q(q = 1 − p),凯利给的答案只有一行:

f* = p − q / b

代几个数进去看看:

胜率 p赔率 bf*一句话读法
60%1.020%六成把握、赢亏一样多 → 押两成
55%1.010%胜率掉五个点 → 押的减一半
50%1.516.7%胜率只有一半,但赢得多输得少
50%1.00没有优势,一分钱都不该押
45%1.0−10%负优势 → 公式让你反着下

⛔ 最后两行是这个公式最容易被跳过、也最要命的一半。

凯利不创造优势,它只分配优势。 你没有正期望,它给出的答案是零或者负数。讲仓位那一篇的第七节里那句话在这儿同样成立:再好的仓位管理也买不来正期望。


二、f 不是仓位比例——这一步几乎所有人都算错

现在假设你已经有了一个 f,比如 20%。它到底是什么的 20%?

绝大多数人的默认答案是"仓位的 20%"或者"保证金占用 20%"。两个都不对。

回到公式的原始设定:"输了亏掉押上去那一份"。凯利的 f 是你押上去、输了会全没的那部分本金。

而期货的一笔交易,不会亏光。你有一个止损,价格走到那儿你就出来了。所以:

f 不是你的仓位有多大,f 是"这一笔如果亏,账户会少百分之几"。

这两句话之间隔着一次换算,而那个除数是你的单笔止损幅度:

名义敞口 = 账户权益 × f ÷ 单笔止损幅度

举个数:账户十万,f 算出来 20%,你的止损设在离入场 4% 的地方。

  • 你允许这一笔亏掉的钱 = 10 万 × 20% = 2 万
  • 亏 2 万需要多大的敞口?2 万 ÷ 4% = 50 万
  • 也就是五倍于账户权益的名义敞口
f 算出来止损幅度 2%4%8%
2%1.0 倍敞口0.5 倍0.25 倍
5%2.5 倍1.25 倍0.6 倍
10%5 倍2.5 倍1.25 倍
20%10 倍5 倍2.5 倍

(同一个 f,止损放宽一倍,手数就得砍一半——这正是止损那一篇第一节说的"结构远就降手数,不是放宽止损",两边说的是同一件事。名义敞口和账户权益的比值,就是保证金那一篇第四节的真实杠杆。)

换算完你会撞见一个熟人

把 f 读成"这一笔我允许亏掉账户的百分之几"之后,有件事会立刻跳出来:

这个坐标系里,早就已经有一个数了。

讲仓位那一篇引过的 Elder 那两条规则,第一条就是"任何一笔交易的风险不超过账户的 2%"。

那个 2%,和凯利的 f,是同一个坐标系里的两个数。 区别只在于一个是定死的,一个是算出来的。

于是问题变得非常具体:

一个是四十年前凭经验定死的 2%,一个是你今天用四十笔战绩算出来的 33%。差了十六倍。

该信哪一个?

这一篇剩下的部分,全部在回答这句话。


三、曲线两侧不对称,而你不知道自己站在哪一侧

先说这条曲线长什么样。

把"每一笔押 f"和"长期每笔的对数增长率 g"画在一起,它是一条倒扣的弧:从 0 出发往上爬,在 f* 那儿到顶,然后掉下来,掉到某个位置之后变成负的——再往右,你是在稳定地、可预期地把账户做小。

Ralph Vince 把顶点那个位置叫 optimal f,讲仓位那一篇的第四节已经引过他最要命的那句提醒(那个 f 是拿历史算出来的,未来那个不是这一个),这里不重复。

我想补的是两侧到底差多少,这一段是我自己算的:

① 押到一半,增长率只掉四分之一。

把 f 砍成 f*/2,增长率不是掉一半,是掉到原来的 75%。我在优势从极小到很大的一整片参数上算了一遍,这个比值稳定落在 0.747 到 0.774 之间;优势趋近于零时,它精确地趋向 3/4。

而下注规模只有一半,账户的波动也就只有一半。

半凯利:拿走四分之三的增长,只承担一半的颠簸。 这就是场内人人都说"凯利算出来的要打个折"的算术出处。

② "押到两倍凯利,增长率归零"——这句话我原本打算直接写进来,核完之后没敢。

这是一句流传很广的话,我落笔前按规矩回头验了一遍,结论是:它只在赔率接近 1:1 的时候近似成立,赔率一高就不成立了。

  • 赔率 1:1、胜率 55%:g(2f*) = −0.000138,确实约等于零,略微为负
  • 赔率 1.5:1 起,g(2f*) 是正的(比如胜率 46%、赔率 1.5,g(2f*) = +0.00019)

真正恒等于零的是连续近似式(把增长率写成 μf − σ²f²/2 那个抛物线)在 2f* 处的值。那是近似式的性质,不是凯利公式的性质。

⚠️ 我把这段留在正文里,是因为赔率 1:1 上下恰好是绝大多数人实际所在的区间,那句话在那儿够用;但它不是一条定律,别当定律用。

③ 真正该记住的是不对称的方向。

比最优值小一点,你少赚;大一点,你不是"多赚一点风险",是同时少赚且多险。左边的代价是线性的,右边的代价是复利的。

这正是讲仓位那一篇第一节那句"不知道它在哪儿的时候,往小的那一侧站"的算术出处。

④ 而误差本身,会被这个公式乘大。

这一条是本篇最硬的一块,而且它是纯代数,不需要任何数据:

f* = p − q/b 对 p 求导,等于 1 + 1/b。

翻译成人话:你的胜率估偏一个百分点,算出来的 f 就偏 1 + 1/b 个百分点。

赔率 b误差被乘几倍胜率估偏 5 个点 → f 偏
0.53.0015 个点
1.02.0010 个点
1.51.678.3 个点
2.01.507.5 个点
3.01.336.7 个点

赔率越低,这个公式对胜率估计误差越敏感。

⚠️ 而这里有一个绕不开的算术:在期望值固定的前提下,胜率越高、赔率就必然越低。 也就是说,「胜率高、每次赚得不多」这种做法,天生就落在这个公式最敏感的那一档上。

看一张更具体的:真值是胜率 50%、赔率 1.5,正确答案 f* = 16.7%——

你以为的胜率算出来的 f*是真值的
45%8.3%0.5 倍
48%13.3%0.8 倍
50%16.7%1.0 倍
52%20.0%1.2 倍
55%25.0%1.5 倍
60%33.3%2.0 倍

胜率的十个百分点,在输出端变成两倍。 而胜率十个百分点,在四十笔里就是四笔的差别。


四、模拟:让十万个人用自己四十笔的战绩,去估凯利要的那两个数

⚠️ 先说清楚这一节的性质:它是模拟,不是实测

这个号前面做过二十次实测,量的都是市场上真实发生过的事;另有一次是模拟,就是讲幸存者偏差那一篇。这一次和那一次一样,是模拟。

我手里没有任何真实交易者的账户数据,所以这一节没有回答"市场上的人是不是把仓位算大了",那个问题我答不了,也不该答。

这一节回答的是另一个问题:

把真实的价格摆在那儿,让一批人用自己那几十笔的战绩去估凯利要的两个输入,算出来的那个 f,离真正的最优值有多远。

它证明不了任何一个人的仓位是错的。 它能给出的是另一样东西:这个公式的输出,对输入的误差有多敏感。 而这一条与人无关,是估计量自身的性质。

怎么做的

数据整套复用讲仓位那一篇用过的那批:30 个品种、1102 份代表合约、51462 个品种日,2019 年 1 月到 2026 年 8 月。价格是真的,一天都没编。

在这上面造十万个人,每人随机挑品种、随机决定方向、随机持有 1 到 10 个交易日,每笔往返扣一笔小成本。然后:

  • 前 40 笔只用来估参数:数出自己的胜率 p̂、平均盈利除以平均亏损得到 b̂,代进 f* = p̂ − q̂/b̂
  • 后 60 笔只用来评效果:拿刚才那个 f̂ 真下注,看六十笔之后账户在哪儿

⛔ 两批交易互不重叠——同一批交易既估参数又评效果,那是前视偏差。

⚠️ 参数(杠杆上限、成本、笔数、出局线、真实优势有多大)全部是我设的,所以每一个都扫过一遍,下面只报换完参数还站得住的。

结果一:一个完全没有优势的人,会给自己算出多少

先让这批人没有任何优势——随机进、随机出。这种情况下正确答案很干脆:f* = 0,不该下注。

四十笔之后,他们自己算出来的 f̂:

分位P25P50P75P90P99
算出来的 f̂−18.5%−1.3%+13.4%+25.0%+42.4%

⚠️ 这里我开跑前猜错了。 我猜中位数会明显为正、落在 10%–20%,结果是 −1.3%,而且只有 47.9% 的人算出正数。

真正的结论不是"大家会系统性地把仓位算大",是这个:

真值是零,而十个人里有三个算出该押一成以上,一个算出该押两成半以上。

同一个公式、同一批价格、同样是四十笔,给出的答案从 −80% 到 +42% 都有。

这个公式在这儿没有犯错。它只是老老实实地把一个噪声,翻译成了一个看起来很专业的百分数。

结果二:那给一批真有本事的人呢

现在换一组:给他们每笔加一个真实的优势(沿用上一篇的设定,每笔名义收益上加 30 个基点,往返成本才 6 个基点)。

这批交易的正确答案,我不用公式算,直接在他们的真实盈亏分布上数值求解:f* = 4.34%。

四十笔之后,他们自己算出来的:

数
f̂ 的中位数10.23%(真值的 2.36 倍)
f̂ 的四分位区间[−5.7%, +23.9%]
这个区间有多宽是真值的 6.8 倍

⚠️ 按规矩,报"下重的人比下轻的多"之前,两端得一样远。所以两边都取"和真值差一倍":

  • 下重了(超过两倍真值):52.7%
  • 下轻了(不到一半真值):36.3%(其中三成三是算出负数、干脆不下)

一半以上的人,会给自己算出一个超过正确答案两倍的仓位。而这些人是真有本事的。

结果三:拿这个数真下注,会怎样

接下来的六十笔,五条路各走一遍。⚠️ 下面只看真的下了注的那 67.2% 人(算出负数的那批不下注,权益恒等于 1,混在一起会把中位数拉平):

下注方式期末权益中位回撤中位每笔增长率
全凯利(照自己估的 f 下)0.1987.4%−953bp
半凯利0.8669.4%−450bp
四分之一凯利1.0439.9%−98bp
上帝视角(用真值)1.1535.5%+21bp
固定 1% 风险(不估任何东西)1.0610.0%+10bp

三件事值得停一下:

① 要缩到四分之一凯利,中位数才第一次转正。 不是半凯利,是四分之一。

② 上帝视角那一行是干净的正数——公式没问题,问题从来在输入。

③ 最该看的是最后一行。 一个完全不需要估胜率、也不需要估赔率的固定 1% 风险,拿到了上帝视角大约一半的增长,只用了它不到三成的回撤,而且六十笔里一个人都没出局。

它不是"更好的凯利"。它是在你估不准的时候,那条不去估的路。

⚠️ 而它那个 1%,正是第二节里撞见的那个熟人:Elder 定死的 2%,和它是同一个坐标系里的数。这批模拟里,半凯利落在 1.0% 到 3.5% 之间(取决于假设的优势有多大),而四十年前凭经验定死的那个数是 2%。

⛔ 这不是"经典被验证了"。参数是我设的,换一组它就挪了。它只说明一件事:那个凭经验定下的量级,和算出来的量级,本来就在同一个数量级上——不同的是,一个不需要你先知道自己的胜率。

结果四:哪些数会动,哪些不会

⚠️ 这一节里最不稳的是出局率的绝对值——它强烈依赖我设的那个敞口上限(上限三倍时全凯利出局不到一成,上限十倍时过半)。所以正文一个出局率的绝对值都没写,只写排序:四档上限下,半凯利的出局率全部低于全凯利。

而下面这两条,怎么换都不动:

① 把估计用的交易从 20 笔加到 120 笔——

估计用了多少笔f̂ 的离散度(四分位宽 ÷ 真值)下重一倍以上的人
20 笔10.9 倍53.2%
40 笔7.4 倍52.9%
80 笔5.5 倍52.9%
120 笔4.4 倍53.5%

多做八十笔,你的估计确实稳了一半多。可"算出来的数比正确答案大一倍以上"的人,一个百分点都没少。

② 有没有真本事,几乎不改变照自己估的数下注会不会出局。 把每笔的真实优势从 0 一路加到 60 个基点,全凯利那一档的出局率从 55.7% 走到 55.0%——基本没动。变的是半凯利那一档:期末中位从 0.67 抬到 1.07。

真本事改变的是"打完折之后还剩不剩得下",不是"不打折会不会死"。


五、期货把这道题加难在哪

上面那些对任何一个连续下注的场合都成立。到了期货上,还要再加四条。

① 一笔交易的结果不是两种,是一片。

凯利的原始设定是"赢了赚 b、输了亏 1",两个结果。真实的一笔可能小赚、可能大赚、可能在止损前后滑出去一点、也可能开盘直接跳过你的止损价。

把一片分布压成"平均盈利 ÷ 平均亏损"这一个数,本身就丢掉了尾巴——而尾巴恰恰是决定你会不会出局的那部分。

② 破产线来得比公式假设的早得多。

凯利的数学里,你押 f 输了就是少 f,账户永远为正,永远还能下一注。期货不是:账户每天被结算一次,保证金不够会被追保,追不上会被强平。

公式假设你输到只剩一块钱也还在牌桌上。真实的规则是,你输到还剩三成的时候,别人就替你把牌收了。

回撤那一篇第三节说过同一件事的另一半:深回撤最先拿走的不是你的钱,是你继续持有的资格。

③ 凯利假设一次只有一注,你手上有好几笔。

同时开着的仓位,如果彼此相关,它们在风险上就是同一笔。讲仓位那一篇实测过:黑色系四份合约加起来只相当于 1.36 个独立赌注。

把单笔的 f 原样套到五个品种上,你实际押的远不止 5f。 多笔同时持仓下该怎么分配,是另一个题目,等讲风险平价那一篇再写。

④ 那两个输入还会随时间变。

胜率和盈亏比不是常数。品种的波动会变、你的方法会磨损、主力换月的接缝还会往你的历史记录里掺假动作。

你用过去四十笔估出来的那个数,描述的是过去四十笔。凯利要的是下一笔。

⚠️ 还有一条不算难度、但会改答案:成本。手续费和滑点直接从每笔的期望里扣,扣完之后 f* 会明显往下走;本篇模拟里成本只扣了一个很轻的量,所以报出来的"下重了的人"占比,是偏保守的。


六、凯利公式不回答什么

① 它不告诉你有没有优势。

这是最要紧的一条。公式接收 p 和 b,不审查它们。你给它一串纯运气的成绩,它会一本正经地算出一个百分数。

想知道自己那点成绩里有多少是运气,去看幸存者偏差那一篇——四十笔上分不开,这一篇只是把那句话的后果算了一遍。

② 它不告诉你多少笔才够。

上一篇说了四十笔不够、八十笔还是不够。这一篇能补的只有一条:在 20 到 120 笔这个区间里,加笔数改善的是离散度,不是可用性。 真正回答"多少够"要靠稳健性检验和蒙特卡洛,那是量化栏目的题目。

③ 它不管你同时开着几笔。

第五节③ 已经说了。要处理这件事,先看有效独立品种数,别拿单笔的 f 去乘品种数。

④ 它不保证你能按那个价格出来。

f 到手数的换算,除数是你的止损幅度。而止损那一篇第五节讲过:你的止损价是你算的,你的成交是别人给的。跳空一次,那个除数当场作废。

⑤ 它尤其不告诉你该做哪个品种、哪个方向。

这一篇从头到尾没有出现任何一个品种的方向、点位或建议,以后也不会有。


七、一张可以贴在显示器边上的表

你手上的东西公式怎么处理它你该怎么处理
四十笔算出来的胜率当成真值代进去当成一个范围,不是一个数
平均盈利 ÷ 平均亏损当成赔率 b它越接近 1,公式对胜率误差越敏感
算出来的 f就是答案是答案的上限,且这个上限本身估偏了
f 这个数本身押上去会全没的那份本金"这一笔亏,账户少百分之几",⛔ 不是仓位比例
从 f 到手数公式不管÷ 单笔止损幅度 = 名义敞口倍数
你不确定该信哪个数公式没有这一栏往小的那一侧站——两侧的代价不对称

三条能直接用的结论

① 先分清你缺的是哪一样。

凯利解的是"有了优势,该押多重"。如果你还不确定自己有没有优势,这个公式一分钱风险都挡不住——它不是用来找优势的,它是用来分配优势的。

② 把算出来的那个数,读成"这一笔我允许账户少多少",然后除以止损幅度。

这一步做完,多数人会发现自己算出来的数大得离谱。那不是你算错了,那是这个公式在正常工作。

③ 估不准的时候,用一个不需要估的数。

模拟里那条"固定 1% 风险"的路,拿到了上帝视角一半的增长、不到三成的回撤,而且不需要你先知道自己的胜率是多少。

半凯利不是保守版的凯利。它是把"我可能估错了"这件事也算进去之后的凯利。

而这句话还有一个更朴素的版本:如果你根本不知道自己的胜率,那么"该押多少"这个问题的正确答案,本来就不该由一个需要胜率才能算的公式来回答。


下一篇预告

下一篇写做市商——盘口里那个一直在挂双边价的人。上期所的做市商管理办法刚修订过,正好借这个由头,把讲套利者那一篇里"市场里的角色"这条线往下接一个。


⚠️ 风险提示 本文仅为期货知识分享与研究交流,不构成任何投资建议。文中第四节的数字全部来自在真实历史价格上做的随机模拟,⛔ 不是任何真实交易者的成绩,⛔ 也不构成对任何仓位比例的推荐;模拟结果不代表未来。期货交易具有高杠杆特性,可能导致本金全部损失甚至产生穿仓负债。文中涉及的规则、比例、时间等信息以各期货交易所官方最新公告为准。请通过正规期货公司开户,理性参与、独立决策、风险自担。

本文首发于微信公众号「米粒论期」 · 阅读原文

免责声明:本文仅供学习参考,不构成任何投资建议。期货交易存在风险,入市需谨慎。

本文涉及

文中提到的概念、品种和书目,都能在站内查到。

沪ICP备2026050790号-1