Kelly + ruin probability:回撤阈值与杠杆上限的数学推导
R4 + R5 硬性要求——回撤与杠杆必须从 ruin 推,不是拍数字
交易实操·支柱③「决策引擎」第 3 讲 / 共 34 讲
**预计时间:**22 分钟读 + 8 分钟做习题。
前言
0007 EV + Bayesian 更新 给 EV 公式和机会排序。本课给 Kelly + ruin probability 数学推导——这是 R4(风险阈值)和 R5(杠杆上限)的硬性要求。
1. Kelly 公式(二元胜负 + 连续形式)
1.1 二元胜负
1.2 连续形式
1.3 几何增长
g 是每笔期望对数增长率。最大化 g 的仓位就是 Kelly。
worked example:f=0.17、b=1.5、p=0.6 → g = 0.6 × ln(1 + 0.17 × 1.5) + 0.4 × ln(1 − 0.17) ≈ +6.1%/笔。
2. ruin probability 推导(数学)
2.1 简化形式(独立同分布二元赌博)
其中 T 是交易次数(不是日历时间)。
2.2 worked example
p=0.55、q=0.45、f=0.2、b=1.2、T=100 → P(ruin) ≈ exp(−2 × 0.55 × 0.45 × 0.2 × 100 × 1.2) = exp(−11.88) ≈ 6.9 × 10^{-6}。
2.3 half-Kelly vs full Kelly
half-Kelly ruin_prob ≈ 全 Kelly 的 1/100(指数项减半 → e^−x → e^−(x/2) → 平方关系)。这是为什么 half-Kelly 是行业共识稳健值。
3. R4 硬性要求:回撤阈值从 ruin 数学推导(不是拍数字)
3.1 错误(ad-hoc):拍数字「回撤 20% 降半仓」「回撤 30% 空仓 30 天」
R1 三问检查:
- ① 影响变量:无数学定义
- ② 推导依据:无
- ③ trade-off:无量化
禁止使用。
3.2 正确(数学推导):从期望最大回撤 + ruin_prob 阈值推导
Step 1 — 期望最大回撤的数学估计:
半 Kelly + 5 年 + p=0.6 + b=1.5 下,期望最大回撤 ≈ f*(safe) × σ × √T × z(其中 z 是 95% CI 因子 ≈ 1.65)。
简化推导:
- 单笔风险 = f × ATR ≈ f × σ × √(1/252)
- 5 年累计波动 ≈ σ × √(5 × 252) × z
- 在 worst case 下,账户会经历 σ × √T × z 倍标准差的回撤
worked example(500 万、f=0.15、σ=20%、T=5 年):
- 单笔 σ 贡献 = 0.15 × 0.20 × √(1/252) ≈ 0.0019(占账户 0.19%)
- 5 年累计 = 0.20 × √(5 × 252) ≈ 7.1
- 期望最大回撤 ≈ 0.15 × 7.1 ≈ 1.07(账户 107%)
注意 107% 远超 100%,意味着 5 年后破产概率显著。half-Kelly + 5 年需要降低 f 或缩短 T。
Step 2 — 阈值数学公式:
设账户回撤阈值 = D*,则触发动作:D* > D*_expectation → 模型假设破坏(H3 或 H4)→ 降到 1/3-Kelly + 重检 p。
禁止「回撤 > 20% 一律降半仓」——必须按 ruin 数学推导。
4. R5 硬性要求:杠杆上限从 ruin 约束推导(不是拍数字)
4.1 错误(ad-hoc):拍数字「f* > 0.3 加 1.5 倍」「f* > 0.5 加 2 倍」
R1 三问检查:
- ① 影响变量:杠杆 L 没有任何数学推导
- ② 推导依据:无
- ③ trade-off:无量化
禁止使用。
4.2 正确(数学推导):max_L such that P(ruin) < 1%
Step 1 — 杠杆暴露 = f(safe) × 名义杠杆 L*
Step 2 — ruin_prob 公式代入:
取对数:
解出 max_L:
worked example(p=0.6、q=0.4、f=0.15、b=1.5、T=100 次交易):
意味着不加杠杆(L=1.0 就已经接近 1% ruin_prob 上限)。如果想加杠杆,需要:
- 缩短 T(更短时间窗口)
- 提高 b(更紧的止损 → 更大盈亏比)
- 提高 p(更可信的信号)
4.3 杠杆使用条件(条件式)
| IF | THEN |
|---|---|
| f*(safe) ≤ 0 | 不加杠杆 |
| 0 < f*(safe) ≤ 0.15 | 不加杠杆(半 Kelly 已含安全边际) |
| 0.15 < f*(safe) ≤ 0.25 | 可考虑加 1.0 – 1.5 倍(数学验证 L × f < 1.0% ruin) |
| f*(safe) > 0.25 | 不可持续(Kelly 假设 H1/H2/H3 被破坏) |
5. 4 个实战修正
5.1 H1 对数效用修正(safety_factor)
| 个人效用 | safety_factor | 推导 |
|---|---|---|
| 比 log 更厌恶(多数散户) | 0.3(1/3-Kelly) | ruin_prob 比 half-Kelly 低 2 个数量级 |
| 与 log 一致 | 0.5(half-Kelly) | 行业共识稳健值 |
| 比 log 更激进(罕见) | 0.7 | 自我确认必要性高 |
5.2 H2 有限时间修正
| 时间窗口 | safety_factor | 推导 |
|---|---|---|
| < 1 年 | 0.2 | 样本少 + ruin 方差大 |
| 1 – 3 年 | 0.3 | 置信区间仍宽 |
| 3 – 10 年 | 0.5 | Kelly 渐近收敛 |
| 10 年以上 | 0.5 – 0.7 | 接近理论值 |
5.3 H3 概率不准修正
- 每笔 Bayesian 更新(per 0007)
- 敏感性分析:p ± 10%,若 f* 变化 > 50% → 此机会不入场
- 用悲观 p(先验 − 1σ)算 f*
5.4 H4 成本修正
f*(safe) = f × (1 − round_trip_fee − slippage − tax)
策略期望收益 < 4% → Kelly 退化 → 不入场。
6. p ≤ 0.5 且 b ≈ 1 时 f* ≤ 0
数学结果:
→ 不加杠杆(EV 也接近 0)。
实操产出物
完成本课后,你应该产出:
- Kelly + ruin 计算表:输入 p/b/T/cost/safety_factor → 输出 f*(safe)、ruin_prob
- 回撤阈值表:不同时间窗口 + 不同 f*(safe) 下的期望最大回撤(数学计算)
- 杠杆上限表:不同 f*(safe) + ruin_prob 约束下的 max_L
- 个人 safety_factor 矩阵:行=时间窗口,列=效用函数偏好,填入具体数值
练习题
半 Kelly vs 全 Kelly 的 ruin_prob 比是?
「回撤 20% 降半仓」为什么是错的?
「f* > 0.3 加 1.5 倍杠杆」为什么是错的?
p=0.55、q=0.45、f=0.2、b=1.2、T=100 的 ruin_prob 是?
p=0.5、b=1.0 的 Kelly f* 是?
100x 收益的 0DTE 期权 + 500 万本金,最终年化期望是?
交叉引用
- 0006 综合框架内核——f*(safe) 公式 + H1-H6
- 0007 EV + Bayesian 更新——p 估计 + EV/风险排序
- 0016 风险全景——5 类风险 + 压力测试
- 0017 杠杆工具手册——4 类杠杆对照
- 0026 杠杆时机纪律——杠杆时机数学
本课用户原话出处
“Kelly 不是公式,是风险约束工具。”
“回撤阈值必须从 ruin 数学推导,不是拍 20%/30%。”
“杠杆上限必须从 ruin 推导,不是拍 1.5/2 倍。“
合规声明
本课仅作为教育用途,不构成投资建议。Kelly 与 ruin probability 的数学推导见 Thorp (1997)、MacLean–Ziemba 系列论文。数字为框架示例,非收益承诺。投资有风险,决策请独立判断。