凯利仓位管理模块
从策略历史信号估计胜率赔率的凯利仓位:半凯利折扣与硬性上限是纪律,与波动率目标构成仓位约束链,纯 numpy 实现。
策略目标
凯利公式回答仓位管理的根本问题"该下多大注":给定胜率与赔率,最大化长期复利增速的仓位是 [1]。它在交易社区的知名度极高、误用率也极高——全凯利的资金曲线是过山车,估计误差会让"最优"仓位变成爆仓仓位,实践共识是使用半凯利并叠加硬性上限,Thorp 把凯利从赌桌带进市场时也强调了这一点 [2]。本模块登记为仓位管理模块:从策略历史信号中估计胜率与盈亏比,计算凯利仓位并施加半凯利折扣、单标的与组合上限、波动率约束——与波动率目标、融资杠杆风控构成仓位维度的完整约束链。QMT 环境说明:胜率赔率统计与仓位计算只需 numpy,无外部依赖。
数据需求(信号历史)
| 数据 | 字段 | 频率 | 用途 |
|---|---|---|---|
| 信号 | 策略历史信号的盈亏序列 | 策略台账 | 胜率与赔率估计 |
| 参数 | 凯利折扣、样本门槛、上下限 | 配置 | 纪律约束 |
| 组合 | 当前组合波动率 | 行情衍生 | 波动率联动 |
估计窗口内的信号必须相互独立(同一逻辑的信号会被重复计数);最小样本数不足时使用保守默认仓位并标记。
凯利仓位与折扣
为胜率, 为盈亏比。实践仓位 = (半凯利,折扣参数化),再叠加硬性上限:单标的仓位 ≤ 组合的 %、组合总凯利暴露 ≤ %、与波动率目标模块的约束取交集。
执行规则
信号级凯利:每个策略条目独立估计胜率与赔率,不做账户级混算(不同策略的分布不可比)。估计窗口参数化并要求最小样本数;连续亏损触发的降档规则与回撤控制模块对齐。输出:各策略的建议仓位、凯利序列与估计置信区间。模块只输出仓位建议,下单决策留策略层。
风险与失效场景
- 估计误差敏感:凯利对胜率的高估极端敏感,历史上估 2 个百分点可能导致过量仓位与深回撤;
- 全凯利的灾难:全凯利的最大回撤在数学上就注定深重,半凯利是纪律不是胆怯;
- 分布非平稳:策略胜率随市场状态漂移,历史窗口的估计滞后于现实;
- 独立性假设:公式假设独立重复投注,市场信号的连续亏损是相关的;
- 心理执行:深回撤中的凯利仓位在心理上几乎不可执行,降档规则是必要的;
- 小样本陷阱:信号次数少的策略凯利估计毫无意义,样本门槛必须刚性。
验证状态
待验证。需要完成:全凯利、半凯利与四分之一凯利的复利与最大回撤对照;估计窗口与最小样本数敏感性;胜率估计误差的蒙特卡洛稳健性;与波动率目标联动的组合行为。本文不提供任何未实测的收益或回撤数字。
参考文献与延伸
[1] Kelly, J. L. (1956). A New Interpretation of Information Rate. Bell System Technical Journal, 35(4).(凯利公式的原始文献)
[2] Thorp, E. O. (2008). The Kelly Criterion in Blackjack, Sports Betting, and the Stock Market. Handbook of Asset and Liability Management (pp. 385-428). Elsevier.(凯利准则在市场的系统化与约束条件)
[3] Q-Code 量化策略工作台
策略逻辑结构
- 信号盈亏历史 — 策略台账的盈亏序列
- 胜率赔率估计 — 窗口估计与样本门槛
- 凯利计算 — f* 与半凯利折扣
- 硬性上限 — 单标的与组合暴露约束
- 波动率联动 — 与波动率目标取交集
- 仓位建议台账 — 建议仓位与置信区间
