VibeTradingVibeTrading
返回博客
Also available inEnglish
Strategies2026年7月23日11 min read

AI Kelly 公式仓位管理:下注正确金额

本文学习如何用 Kelly 准则与 AI 增强的胜率、赔率估计来优化仓位大小,避免账户爆仓。内容覆盖完整 Kelly、分数 Kelly、多仓位同时持仓处理,以及用蒙特卡洛模拟评估不同仓位方案对长期财富增长的影响,帮助交易者在优势与风险之间找到平衡。

VT

VibeTrading Editorial Team

发布于 2026年7月23日

#ai trading#kelly criterion#position sizing#risk management#python
Risk Disclaimer: This content is for educational purposes only. Trading involves significant risk of loss. Past performance does not guarantee future results. Always do your own research before using any trading tool or strategy.

仓位管理往往比入场时机更重要。好的策略配糟糕仓位会爆仓,平庸策略配优秀仓位能存活并复利。Kelly 准则是仓位管理最著名的框架之一。

Kelly 公式

对简单二元下注:

f* = (p * b - q) / b

其中:

  • f* = 应下注资本比例
  • p = 胜率
  • q = 败率 = 1 - p
  • b = 平均盈利 / 平均亏损

示例:胜率 60%,赔率 2:1:

p = 0.60
b = 2.0
f = (p * b - (1 - p)) / b
print(f)  # 0.40

完整 Kelly 建议下注 40%。这几乎总是太激进。

分数 Kelly

多数交易者用分数 Kelly 降低波动:

  • 半 Kelly:上例中 20%
  • 四分之一 Kelly:10%
  • 很多系统化交易者用更低

分数 Kelly 牺牲部分理论增长换取更平滑的资金曲线。

用 AI 估计输入

Kelly 难点在于估计 pb。历史均值常过时。AI 可动态估计:

  • 从当前市场特征预测胜率
  • 从波动率和近期价格行为估计预期赔率
  • 根据机制变化调整

例如,模型可能预测当前条件下某突破 setup 胜率 55%、赔率 1.8:1。

实用实现

def kelly_size(capital, win_prob, payoff_ratio, fraction=0.25):
    kelly = (win_prob * payoff_ratio - (1 - win_prob)) / payoff_ratio
    kelly = max(0, kelly)  # 不下负注
    return capital * kelly * fraction
 
position = kelly_size(100000, 0.55, 1.8, fraction=0.25)

这给出基于当前交易估计优势的保守仓位。

多仓位同时持仓的 Kelly

当多个仓位同时持有时,Kelly 公式需要扩展。简单地把每笔交易的 Kelly 结果相加会高估总风险,因为:

  • 不同标的之间可能存在相关性
  • 同一板块的多头仓位会放大行业风险
  • 多策略同时运行可能暴露于相同的市场因子

实务中更安全的做法是:

  1. 计算组合层面的总风险预算。
  2. 把单个仓位的 Kelly 结果按相关性打折。
  3. 设置组合最大回撤和单日最大亏损的硬限制。

例如,如果两个策略的相关系数为 0.6,实际组合风险远高于各自风险之和,仓位应相应降低。

用蒙特卡洛模拟评估

在把 Kelly 应用到实盘前,可以用蒙特卡洛模拟测试不同分数 Kelly 下的资金曲线:

import numpy as np
 
def simulate_kelly(capital, win_prob, payoff, fraction, trades=1000, runs=1000):
    final = []
    for _ in range(runs):
        equity = capital
        for _ in range(trades):
            kelly = max(0, (win_prob * payoff - (1 - win_prob)) / payoff)
            stake = equity * kelly * fraction
            if np.random.random() < win_prob:
                equity += stake * payoff
            else:
                equity -= stake
        final.append(equity)
    return np.percentile(final, [5, 50, 95])
 
# 胜率 55%,赔率 1.8:1,四分之一 Kelly,1000 次交易
print(simulate_kelly(100000, 0.55, 1.8, 0.25))

模拟能揭示:即使在正期望策略下,不同分数 Kelly 仍可能经历严重回撤。

实战案例

假设账户 10 万美元,某 AI 模型对当前 breakout setup 的预测:

  • 胜率 p = 0.52
  • 赔率 b = 2.0
  • 使用半 Kelly
p, b, fraction = 0.52, 2.0, 0.5
kelly = (p * b - (1 - p)) / b  # 0.07
position = 100000 * kelly * fraction  # 3500

该头寸约为账户的 3.5%。如果模型对胜率的估计存在 5% 的误差,仓位应进一步降低,因为 Kelly 对输入误差非常敏感。

Kelly vs 固定比例

固定比例风险如每笔 1% 更简单且通常更安全。Kelly 在以下情况最有用:

  • 有大量相似交易
  • 不同 setup 的优势差异显著
  • 能准确估计概率

如果概率估计错误,Kelly 仓位会放大亏损。

常见错误

  • 使用完整 Kelly
  • 忽略同时交易的相关性
  • 从回测高估胜率
  • 将 Kelly 应用于收益分布偏斜的策略

总结

Kelly 准则是思考仓位大小的有力工具,但不是魔法公式。使用分数 Kelly、样本外验证你的优势估计、绝不让单笔交易威胁账户。


相关阅读: AI 风险平价组合 | AI 动态 ATR 止损 | AI 交易风险管理框架

AI 相关性对冲:在市场同涨同跌时保护组合
Strategiesai tradingcorrelation2026年7月24日

AI 相关性对冲:在市场同涨同跌时保护组合

本文讲解如何用 AI 实时监控资产相关性,并在市场承压、相关性飙升导致分散化失效时建立动态对冲。内容涵盖滚动相关性计算、常见对冲工具选择、动态对冲规模调整与对冲成本权衡,帮助投资者保护投资组合本金、降低尾部风险,是组合风险管理的重要补充与实操指南。

阅读文章
AI 动态 ATR 止损:为每笔交易设置更聪明的止损
Strategiesai tradingstop loss2026年7月24日

AI 动态 ATR 止损:为每笔交易设置更聪明的止损

本文学习如何用 Average True Range 设置随市场波动自适应调整的动态止损,避免固定金额止损在震荡市中过紧、在趋势市中过松的问题。结合 Python 计算、倍数选择、移动止损方法与常见错误分析,帮助交易者有效保护资本并减少无效触发。

阅读文章
AI 突破策略设置:检测并交易价格突破
Strategiesai tradingbreakout2026年7月21日

AI 突破策略设置:检测并交易价格突破

本文带你学习如何用 AI 增强突破交易策略,从识别关键支撑阻力位、区分高概率突破与假突破入手,讲解突破模型特征工程、入场出场规则与动态风控方法,让交易机器人更稳健地捕捉趋势启动机会,同时避免追高与频繁止损的常见陷阱,适合想系统优化突破系统的交易者。

阅读文章