🧠 量策派 自研的统计量化交易系统 · 每笔进出有数字理由 · OKX / Hyperliquid 查看 Quant Pro →
risk management

凯利公式深度解析:从理论推导到仓位模拟实战

量策派 编辑部 发布 2026-05-27 · 9 分钟阅读 · 4201 字
凯利公式深度解析:从理论推导到仓位模拟实战

速览: 凯利公式最大化长期复利增长率,但直接套用可能过于激进(如建议仓位32.5%)。半凯利可大幅降低回撤,仅牺牲约25%的增长,更适合实战仓位管理。

引言:为什么多数交易者用错了仓位管理

在加密货币市场里,大多数亏损不是因为方向判断失误,而是因为仓位管理失控。一个胜率 60% 的策略,可以因为单笔仓位过重而在一轮回撤中爆仓;而一个胜率只有 45% 的策略,通过精确的仓位控制,也可能长期稳定滚存。

1956 年,贝尔实验室的物理学家约翰·凯利(John L. Kelly Jr.)在研究信息论时,推导出一个描述最优下注比例的公式。这个公式后来被职业玩家、量化基金经理和对冲基金反复引用:在信息优势可量化的前提下,它能给出数学意义上的最大长期增长率,同时把破产风险约束在可控范围。

七十年过去,到 2026 年,加密市场早已从早期的单一现货博弈演化为永续合约、期权、结构化产品与自动化机器人并存的复杂生态。杠杆更易获得,波动也被进一步放大——这让仓位管理的重要性不降反升。而凯利公式在实战中依然充满“陷阱”:直接套用原始公式往往会给出大得离谱的仓位建议,导致净值曲线的波动剧烈到让人无法持仓。

理解凯利公式,不是记住一个数学式,而是理解它背后的期望对数增长逻辑,学会根据自己的策略参数进行模拟和调参。本文将从公式推导开始,覆盖全凯利、分数凯利的适用场景,结合蒙特卡洛路径模拟,给出一套适合加密货币交易者的实战仓位管理框架。


凯利公式的数学本质:不是最大化单次,而是最大化对数

从期望收益到对数增长

直觉上,最优策略应该是“最大化期望收益”。但这个逻辑在连续复利场景下是致命错误。

考虑一个简单的例子:你有 10,000 USDT,策略胜率 50%,赢时翻倍(+100%),输时腰斩(-50%)。

  • 期望收益 = 0.5 × (+100%) + 0.5 × (-50%) = +25%
  • 看起来很美好,但如果你全仓(All-in)操作两次,一赢一输后的结果是:10,000 × 2 × 0.5 = 10,000,净零。
  • 连续操作 100 次后,期望值是 10,000 × 1.25^100(一个天文数字),但实际路径的中位数却趋近于 0。

这个悖论的根源在于:期望值不等于几何增长率。凯利公式最大化的目标是对数财富的期望值,即:

\max E[\ln(W_n)]

这等价于最大化长期复利增长率(CAGR),是在不确定性下最理性的目标函数。

标准凯利公式

对于胜率 p、盈亏比 b(赢 b 倍本金,输 1 倍本金)的策略:

f^* = \frac{p \cdot b - (1-p)}{b} = p - \frac{q}{b}

其中 q = 1 - p 为亏损概率,f* 为应投入的资金比例。

具体案例:某 BTC 趋势策略,回测胜率 55%,平均盈亏比 2:1(盈利平均 2R,亏损 1R)。

f^* = \frac{0.55 \times 2 - 0.45}{2} = \frac{1.10 - 0.45}{2} = \frac{0.65}{2} = 32.5\%

凯利公式建议投入账户 32.5% 的资金。这对大多数人来说仍然过于激进,这正是我们需要分数凯利的原因。

公式背后的边界条件

凯利公式成立有几个严格前提,在加密市场中这些条件经常被忽视:

  1. 赔率固定:公式假设每次盈亏比一致,但实盘中每笔交易的盈亏比千变万化。
  2. 独立同分布:各次交易相互独立,但市场存在趋势性和相关性。
  3. 无交易成本:手续费、滑点、资金费率会实实在在地降低盈亏比。
  4. 精确知道 p 和 b:回测参数不等于未来参数,存在参数不确定性。

只要有一条不满足,原始公式给出的仓位就会偏高。这也是后文强调“修正参数 + 分数凯利”的根本原因。


分数凯利:在增长与回撤之间找平衡

为什么要用 Half-Kelly

全凯利(Full Kelly)在数学上最优,但它的净值曲线波动极大。半凯利(Half Kelly,f = f* × 0.5)能把最大回撤大幅压缩,代价是把长期增长率降低约 25%(而不是 50%)。

这个不对称性非常重要:

  • 全凯利:最大回撤往往超过 50%,多数交易者会在中途放弃。
  • 半凯利:最大回撤通常收敛到更可承受的区间,同时保留大部分增长率。
  • 四分之一凯利:适合高度不确定的策略与保守型交易者。
凯利分数 相对增长率(理论近似) 典型最大回撤 适用场景
全凯利 (1.0f) 100% 50%+ 仅适合对回测极度有把握且心理素质极强者
半凯利 (0.5f) ~75% 20-35% 主流量化策略,平衡增长与回撤
四分之一凯利 (0.25f) ~44% 10-18% 参数不确定性大、高频交易、新策略上线初期
固定小比例(如 2%) 视策略而定 相对可控 手动交易、无法精确估计 p 和 b 时的保底方案

表中回撤区间为在“参数估计准确”的理想假设下的经验范围;实盘中参数越不确定,实际回撤越可能偏大。

参数估计误差的影响

假设真实胜率是 50%,盈亏比 1.5,真实凯利 f* = (0.5×1.5 - 0.5)/1.5 ≈ 16.7%。

但你因为回测样本不足,把胜率高估到 60%,凯利就变成 (0.6×1.5 - 0.4)/1.5 ≈ 33.3%,是真实值的两倍。

过度下注的凯利(Over-Kelly)会让净财富的几何增长率转为负数,即越下注越穷。这正是参数不确定时应始终使用分数凯利(通常 0.25f 到 0.5f)的核心理由——分数凯利本质上是在为“你其实没那么了解自己的策略”这件事买保险。


蒙特卡洛模拟:让数字告诉你风险在哪里

为什么要模拟而不只是计算

凯利公式给的是期望最优解,而蒙特卡洛模拟给的是路径分布。两者缺一不可:前者告诉你“应该下多少”,后者告诉你“在最坏的 10% 路径里,你的账户会变成什么样”。你只活一次,无法体验期望值,因此路径分布往往比期望值更值得关注。

标准模拟流程

flowchart TD
    A[输入策略参数\np=0.55, b=2.0, 初始资金=10000] --> B[选择凯利分数\n全凯利/半凯利/四分之一凯利]
    B --> C[计算本次仓位\nf × 当前净值]
    C --> D{生成随机数\n0-1 均匀分布}
    D -- 随机数 < p\n胜出 --> E[净值 × 1 + f×b]
    D -- 随机数 ≥ p\n亏损 --> F[净值 × 1 - f]
    E --> G{达到\n模拟次数?}
    F --> G
    G -- 否 --> C
    G -- 是 --> H[记录路径终值]
    H --> I{完成\n10000次模拟?}
    I -- 否 --> B
    I -- 是 --> J[输出分布图\n中位数/P10/P90/最大回撤分布]

只需几十行 Python(NumPy 向量化即可)就能跑完上万条路径。真正的价值不在代码,而在你会因此直观看到尾部风险,而不是被一个漂亮的中位数迷惑。

实战模拟案例:三种仓位策略对比

策略参数:胜率 55%,盈亏比 2:1,初始资金 10,000 USDT,模拟 200 笔交易,10,000 条路径。以下为一次典型模拟的量级示意(具体数值随随机种子波动,重点看相对关系):

指标 全凯利 (≈32.5%) 半凯利 (≈16.25%) 四分之一凯利 (≈8.1%)
路径终值中位数 数十万级 十万级 数万级
路径终值 P10(最差 10%) 可能跌破初始本金 高于初始本金 高于初始本金
路径终值 P90(最好 10%) 千万级 数十万级 十万级以内
平均最大回撤 约 65%+ 约 30% 上下 约 15% 上下
破产风险(净值 < 初始 50%) 约三成路径 个位数百分比 极低

这组数据揭示一个关键洞察:全凯利虽然中位数最高,但相当比例的路径会让你的资产缩水超过一半。对于任何有风控意识的交易者,这个尾部风险是不可接受的。

半凯利是大多数量化策略的合理起点:长期增长率依然可观,同时把最大回撤压到心理可承受范围。结论不是记住某个具体终值,而是理解:仓位每减半,尾部风险的下降幅度远大于增长率的损失。


加密货币市场的特殊适配:胜率与盈亏比如何估算

回测数据的修正方法

加密市场有几个特性,使得原始回测数据通常过于乐观:

1. 幸存者偏差:你回测的是当前还活着的交易对,已经退市的垃圾币不在样本里,历史胜率被系统性高估。

2. 滑点和流动性损耗:BTC/USDT 等主流对的大单滑点相对可控,但流动性差的山寨币滑点可能高出一个数量级,直接侵蚀盈亏比。

3. 资金费率成本:永续合约在单边行情中,持仓方向若与市场多数一致,长期支付的资金费率可能显著吃掉小胜率策略的优势;这一项在高杠杆、长持仓时尤其致命。

4. 样本外表现衰减:策略在样本内测得的夏普比率,样本外通常明显衰减,30%-50% 的折损并不罕见。

修正建议(数值为经验性保守缓冲,非精确公式):
- 将回测胜率适度下调若干个百分点,为参数不确定性留出余地。
- 将回测盈亏比乘以一个小于 1 的折扣因子(如 0.8),反映滑点和手续费的实际侵蚀。
- 用修正后的参数重新计算凯利值,并只取其中一部分(如 50%)执行。

修正后案例

原始回测:p = 58%,b = 2.2 → f* = (0.58×2.2 - 0.42)/2.2 ≈ 38%

修正后:p = 54%,b = 1.76 → f* = (0.54×1.76 - 0.46)/1.76 ≈ 28%

再取半凯利执行:f_实际 ≈ 14%

这个量级与不少专业量化团队的实际单策略仓位水平相当接近,并非巧合——保守的分数凯利本就是行业默认的“安全边际”。

多策略场景的凯利分配

当你同时运行多个不相关策略(如趋势跟随 + 均值回归),理论上可以使用多变量凯利公式。但在实践中,一个简单且有效的近似是:

各策略的凯利建议仓位加总,控制在总资金的一半以内。

这为意料之外的相关性(如黑天鹅事件导致所有策略同时亏损)留出缓冲。加密市场在极端行情下“所有资产一起下跌”的相关性会骤然升高,因此这条缓冲不是可选项,而是必需品。


凯利公式的动态执行:仓位如何随净值变化

固定比例 vs 动态比例

凯利公式天然是动态的:你的仓位是账户净值的固定比例,而非固定金额。这意味着:

  • 盈利时:仓位绝对金额自动增大(加仓),加速复利。
  • 亏损时:仓位绝对金额自动减小(减仓),避免深度亏损时的超额风险。

这个特性让凯利策略具有自动收敛的功能:越亏下注越少,天然远离破产边界,不需要手动干预。

重新平衡频率

理论上应该每笔交易后重新计算仓位,但在实践中:

  • 高频策略(日内):每次入场前读取一次当前净值,确定仓位比例即可。
  • 中低频策略(日线以上):每周或每次开仓时重新计算。
sequenceDiagram
    participant 账户净值 as 账户净值监控
    participant 策略信号 as 策略信号
    participant 仓位计算 as 凯利仓位计算
    participant 交易所 as 交易执行

    策略信号->>仓位计算: 触发开仓信号
    账户净值->>仓位计算: 当前净值 = 15,230 USDT
    仓位计算->>仓位计算: f = 16.25%(半凯利)\n仓位 = 15,230 × 16.25% ≈ 2,475 USDT
    仓位计算->>交易所: 提交订单:做多 BTC ≈2,475 USDT
    交易所->>账户净值: 平仓盈利 +495 USDT
    账户净值->>账户净值: 净值更新为 15,725 USDT
    策略信号->>仓位计算: 下次开仓信号
    仓位计算->>仓位计算: 新仓位 = 15,725 × 16.25% ≈ 2,555 USDT

网格机器人与凯利的结合

如果你在使用网格交易策略(例如派网 Pionex 的网格机器人),凯利公式可以用来决定分配给整个网格的资金比例,而非单个网格的仓位。

具体做法:
1. 回测网格策略的整体胜率和期望盈亏比。
2. 用凯利公式计算最优资金分配比例。
3. 将该比例的资金注入网格机器人,其余资金保留为现金缓冲。

主流平台的网格机器人都支持设定投入资金量,天然适配这种按比例分配的操作方式:你只需决定“投入总资金的多少”,无需手动计算每格金额,策略逻辑与凯利仓位管理即可无缝配合。需要注意的是,网格策略的“胜率/盈亏比”并不稳定,行情单边突破时会失效,因此这里的凯利比例更应保守。


常见误区

误区一:胜率越高,凯利仓位越大,所以我要过度优化回测

过度优化回测(曲线拟合)让胜率虚高,直接导致凯利建议仓位虚高。一旦样本外胜率回归真实水平,你使用的仓位已经超过真实最优值,处于“过度下注区”,净值几何增长率转为负数。正确做法是使用 Walk-Forward(滚动前推)分析,确保样本外胜率在合理范围,再计算凯利仓位。

误区二:凯利公式能保证不爆仓

凯利公式在理论上假设可以无限细分仓位(连续资金),且每次亏损不会超过 f 的比例。但实盘中,跳空缺口(Gapping)、交易所故障、极端行情下的强制平仓,都可能导致实际亏损远超预设。凯利公式给的是仓位上限,不是护身符,必须同时设置止损和最大仓位硬性上限。

误区三:连续亏损后应该加大仓位“捞回来”

这是典型的赌徒谬误。凯利公式给出的是相反方向的指令:连续亏损后账户净值下降,下一笔的绝对仓位应该更小(虽然比例不变)。加大仓位“捞回来”是在偏离凯利最优路径,进入指数型毁灭区间。

误区四:用凯利公式做高杠杆

凯利公式算出的 f 是占总账户资金的比例。如果 f = 20%,意味着你应该用 20% 的资金开仓,而不是用 100% 资金去开一个“名义规模 20%”的高杠杆仓位。高杠杆放大了每笔交易“亏损 1R”的绝对幅度,使实际亏损远超计划,让凯利建议的比例彻底失效。

误区五:只要 E[收益] > 0 就可以任意下注

期望正收益只意味着在无数次博弈后趋向盈利,但路径风险(Path Risk)会在你抵达“长期”之前先把你淘汰出局。凯利公式正是为解决这个问题而存在:它限制单次下注上限,确保账户净值的随机游走不会轻易触及破产边界。


总结

凯利公式不是一个简单的数学公式,而是一套关于在不确定性下最大化长期财富增长的完整思维框架。站在 2026 年、杠杆与自动化工具愈发普及的加密市场来看,掌握它需要三个层次:

第一层是理解数学本质——最大化对数增长而非线性期望,这决定了为什么全仓梭哈即使胜率高也会导致长期破产。

第二层是学会参数修正——回测数据不能直接喂给凯利公式,必须考虑滑点、资金费率、参数估计误差与样本外衰减,并采用保守的分数凯利(通常 0.25f 到 0.5f)。

第三层是结合蒙特卡洛模拟——理解在最差路径下你的账户会经历什么,这比中位数更重要,因为你只活一次,不能体验期望值。

将这套框架与自动化执行工具(如网格机器人、量化脚本)结合,可以有效去除情绪干扰,严格按照数学最优解来管理每一笔仓位。真正的交易优势,一部分来自策略边际,另一部分来自仓位管理——而凯利公式,正是后者的基石。

每周精选送到邮箱

周日一封邮件 · 本周深度文章 + 交易机会 + 策略更新