第 26 篇
凯利公式,你用对了吗
凯利公式给出「长期下让资金增长最快的单次下注比例」。这篇是它的「用对手册」:先给赌博版公式与算例,再教怎么把股票策略近似成连续赌博(设止盈止损、找信号、固定胜率赔率),然后演示一般版凯利公式与蒙特卡洛验证(信号要够多才显威),最后用整整一半篇幅警告「别用错」——高杠杆会死在黑天鹅上、f 对应的本金是可承受损失而不是总资产,并剖析一个网上流传的错误用法(无视位置假设先碰高/低概率都是 0.5)。本篇是量化课堂第 26 篇(postId=1311,作者陈小米、宏观经济算命师,编辑宏观经济算命师,难度进阶上,深度 level-0)。素材见 raw/collections/jq-quant-classroom/26-26-凯利公式你用对了吗md.md。
这是什么
凯利(Kelly)把信息论与赌博联系起来,给出连续赌博里让资金「几何增长最快」的投注比例;后来他又靠它建了对冲基金。本文不是数学证明(跳过推导、给 wiki 链接),而是一份实操方法论:怎么把股票交易转成赌博模型、怎么用凯利公式定仓位、以及最关键的——哪些用法是错的、为什么错。
核心要点
赌博版凯利公式
- 公式:f = (p_win·b − p_loss)/b。
- 符号:p_win 胜率、p_loss = 1−p_win 败率、b 赔率(赢钱=扣除本金后收益÷本金)、f 单次下注占总资金比例。
- 例:赢的概率 60%、输 40%,赢拿 2 倍入场费(b=1),本金 100。f = (1×0.6 − 0.4)/1 = 0.2 → 每次押剩余本金的 20%,几何期望增长最快。
- 两点注意:
- 期望净收益为负的游戏不值得玩。若胜率 40%:f=(1×0.4−0.6)<0 → 负仓位。中策:不下注;上策:骗别人来跟你对赌。
- 只有 100% 稳赢才押全部本金,否则都是按比例;本金越少下注越少;没有交易费、下注可无限分割时,永远亏不完——「留得青山在」。
把股票转成赌博模型
- 难点:股票收益是分布不是固定值;西方常用随机游走描述股价。
- 方法(简单粗暴版):设止盈价 + 止损线,碰到就出局。若对数股价是随机游走、起点在上沿下沿正中,先碰哪个概率一样(忽略漂移)。
- 现实中事件会抬高分布:利好、财报超预期、降准降息、资金面涌入会造成短期多空失衡;伴随的现象(该跌不跌、成交量放大)叫信号。找到信号 = 事件让赢的期望变大。
- 由此股票投资 = 连续赌博:信号发出=入场点,止盈止损=出场点;赔率/损失率 = 止盈止损与入场价之差;单次入场出场 = 单次赌博,仓位由凯利定。
- 交易的本质 = 找有效信号的过程;找到后把胜率赔率固定下来,凯利公式才登场。
一般版凯利公式(股票用)
- 赌博是「输光押注」,股市是「赔掉一定比例」,所以用一般形式:f = p_win/c − p_loss/b。
- 符号:f 仓位比例;p_win 上涨概率;p_loss 下跌概率;b 赢钱率(资产 1→1+b);c 损失率(资产 1→1−c)。
- 例:某有效信号 3 年发生 1000 次;+20% 止盈、−20% 止损;先碰盈 570 次、先碰损 430 次 → p_win=0.57、p_loss=0.43、b=0.20、c=0.20。
- f = 0.57/0.20 − 0.43/0.20 = 0.70 → 每次买剩余资金的 70%。
蒙特卡洛验证:信号不能太稀疏
- 方法:按上述参数随机生成 T 次投机算一组净值序列;对每个 T 重复 1000 次取几何平均。
- T=100:凯利仓位(0.7)净值增长最快但优势不明显;0.6 还能一战。
- T=500:0.6 尚可与凯利一战,其余仓位明显拉开。
- T=1000:凯利完胜。
- 教训:信号太稀疏时随机因素占上风;交易次数足够多,净值增长才是「大概率事件(99.99% 大概)」。
用错的部分之一:加杠杆
- 例:止盈止损都 2%,涨破概率 0.7:f = 0.7/0.02 − 0.3/0.02 = 20 → 20 倍杠杆(2000%)。
- 凯利公式在告诉你「这个因子太好了」?图显示加到 25 倍反而更差——别贪。
- 原理:f 综合了赢钱期望与输赢差距(类似方差)。若 c=0,f=∞——现实中意味着「怎么都不会亏」的项目,理论上能借多少借多少。
- 但理论前提是借钱零摩擦、零费用、零利息;现实借钱有成本,一般人也借不到那么高杠杆。
- 即使凯利说高杠杆也不建议:见黑天鹅。
用错的部分之二:黑天鹅
- 所有概率赔率都来自历史数据,而现实中小概率事件的概率常被低估(长尾/厚尾)。
- 凯利说压大仓时要三思。例子:股灾前你找到「跌 5% 大概率反弹」的信号,凯利给 10 倍;你压 2 倍还配资到 5 倍。股灾来了:第一天击破止损但跌停卖不出去,第二天、第三天继续跌停卖不出去……爆仓。
- 记住:世界充满因果和蝴蝶效应,模型只是近似替代。
用错的部分之三:f 对应的本金是什么
- 常见误解:凯利的下注比例针对「总资产」。实际是你可承受损失的资产。
- 例:私募投 1000 万,0.8 清仓线 → 只能承受 200 万损失 → 凯利的本金是 200 万;f=0.7 时一次押 200×0.7=140 万。
- 若 1000 万亏到 910 万:本金变 110 万,一次押 77 万。若赚到 1150 万:本金 350 万,一次押 245 万。
- 白话:心理上只承受得起 20% 损失,就用这 20% 当本金带公式;拿 100% 当本金,结果会让你很烦躁。
剖析网上那个错误例子(用错 vs 用对的对照重点)
- 错误假设:某股一年内最高价 H=2、最低 L=1,且不论当前价在哪,先碰 H 与先碰 L 的概率都相等(0.5)。
- 例:当前价 1.3,b=0.54((2−1.3)/1.3)、c=0.23((1.3−1)/1.3),p=0.5:f = (0.5×0.54 − 0.5×0.23)/(0.54×0.23) ≈ 124.80%,超 100% 调成 100%。
- 用它回测中信证券(600030.SH):比一直持有更赚钱——看起来「一招吃遍天下」。
- 换嘉实沪深 300 ETF:翻车,并没有收益最大化。
- 问题出在哪:假设「任意股票、任意位置、先碰高/低概率都是 0.5」不合理,是强假设。一个标的恰好回测好、另一个就差,纯属运气。
- 作者猜想(待验证):先判断当前是否在震荡中枢里;中枢内假设碰到上下沿概率相等;突破上沿=新趋势→满仓追;跌破下沿=反向趋势→避开。
- 彩蛋(方法缺陷):长期既碰不到上沿也碰不到下沿怎么办?本文的转换法加强了对赔率的控制、舍弃了对时间的控制(不知道何时触发);固定时间、模糊赔率的转换法是后续设想。
机制 / 论证
- 为什么 f 让几何增长最快:凯利公式最大化的是长期几何平均收益(复利);押多了回撤吃本金,押少了浪费机会——f 是两者的最优平衡点(证明在 wiki 链接,本文跳过)。
- 为什么股票要转成赌博模型:凯利只处理「离散赌博 + 固定赔率」;股票是连续分布,必须先用止盈止损把赔率钉死、用信号把胜率钉死,才能套公式。
- 为什么信号稀疏时不灵:凯利是「长期重复」的最优解;样本太少时单次结果方差主导,公式的期望优势显现不出来。
- 为什么 f 会变成 20 倍:止盈止损区间小(2%)让单次波动小、胜率又高,公式认为「几乎只赚不亏」,于是建议加满杠杆——但这是用历史概率外推,漏了尾部与摩擦。
- 为什么本金用「可承受损失」:凯利假设输了按比例亏但不会被迫出局;真实资金有清仓线/心理底线,超过可承受损失的下注一旦回撤就出局,长期复利的前提被破坏。
- 错误例为什么错:0.5 假设把「位置的相对高低」当不存在——1.3 靠近 H=2(上方空间 0.7)比靠近 L=1(下方 0.3)时,先碰 L 的概率理应更低,假设把它忽略了,策略就只剩历史拟合。
可操作
- 凯利使用流程(本文口径):
- 找到有效信号;用历史统计确定 p_win、p_loss(含样本量意识)。
- 设止盈止损比例 → 得 b(赢钱率)、c(损失率)。
- 代入 f = p_win/c − p_loss/b 得仓位;每次按「当前可承受损失的资产」×f 下注。
- 交易次数太少时别指望凯利(信号稀疏 → 随机性主导);先用蒙特卡洛按 T 次重复模拟看净值分布。
- f 提示高杠杆时打折执行(摩擦 + 黑天鹅),尤其遇到流动性风险(跌停卖不出)。
- 聚宽实现提示:止盈止损触发可用 order_target 清仓(聚宽下单 API 与订单对象、止盈止损与持仓管理(聚宽写法));仓位 = 可用资金 × 可承受比例 × f(聚宽下单 API 与订单对象 资金分配);raw 无代码,实现细节 [需要验证]。
- 本文数字速查:赌博版例 f=0.2;一般版例 p=0.57/0.43、b=c=0.2 → f=70%;2% 区间例 f=2000%(20 倍);错误例 f=124.8%(封顶 100%)。
术语
- 凯利公式:连续赌博中让资金几何增长最快的下注比例公式(f)。
- 赔率 b:赢了赚的钱 ÷ 本金(赌博版);资产从 1 涨到 1+b 的涨幅(一般版)。
- 损失率 c:输了亏的比例(资产从 1 跌到 1−c)。
- 几何平均收益:复利视角的平均增长(凯利最大化它,而非算术平均)。
- 蒙特卡洛模拟:用随机抽样模拟大量路径、取统计结果。
- 信号:能预示股价概率分布偏移的事件或现象。
- 止盈/止损线:涨到 / 跌到某价位就离场的触发价,用来固定赔率。
- 黑天鹅 / 长尾:历史分布外、概率被低估的极端事件。
- 清仓线:私募等资金能承受的最大亏损线(如 0.8 = 亏到 80% 净值清盘)。
不确定 / 待验证
- 公式推导本文跳过(指 wiki:Kelly criterion),「最大化几何增长」的证明不在本库。
- 「跌破止损但跌停卖不出去」是 2015 年 A 股语境;跌停封单下无法成交是真实流动性风险,但具体时序是作者叙述。
- 「震荡中枢 + 突破上下沿」的改进只是作者猜想,未回测验证。
- 彩蛋里「固定时间、模糊赔率」的转换法是作者设想(看点赞转发再写),本库未收录。
- 错误例的 b=0.54/c=0.23 由「当前价 1.3、H=2、L=1」推出(0.54≈0.7/1.3、0.23≈0.3/1.3);原文直接给数字。
- 蒙特卡洛只说明「相对其他固定仓位,凯利长期最好」,没有给具体净值数字(图在附图);「99.99%」是作者修辞式表述。
- 历史胜率/赔率的估计窗口与稳健性本文未展开(信号统计方法见 指标效果的历史频率统计(赢平输频次与最佳区间))。
相关
- 凯利公式(最优下注比例) — 凯利公式共享概念页(本篇核心对象)
- ATR 与波动率仓位管理(海龟的 N 值) — 另一种仓位哲学:海龟用波动率把单笔风险钉在 1%
- 止盈止损与持仓管理(聚宽写法) — 止盈止损写法(凯利模型的出场实现)
- 指标效果的历史频率统计(赢平输频次与最佳区间) — 用历史频次定信号区间的方法(胜率从哪来)
- 风险汇聚与分散化 — 长尾/厚尾为何让「模型只是近似」(黑天鹅的数学背景)
- 聚宽量化课堂(低频量化策略 43 篇) — 量化课堂 43 篇总览
更新 2026-09-06