mcpField
B
bet-sizing

bet-sizing

github.com/joellewis其他218724 次安装15 周前更新
代码仓库

关于 bet-sizing

bet-sizing 是面向投资者和投资组合管理者的金融规划技能,介绍 Kelly 仓位计算,以及风险预算、持仓限制、信念加权和波动率缩放,并附有可运行的 Python 参考脚本。

主要功能

  1. 01离散与连续 Kelly 仓位计算
  2. 02分数 Kelly 调整
  3. 03VaR 与跟踪误差预算
  4. 04持仓限制与信念加权
  5. 05按波动率缩放仓位
  6. 06Python 演示与验证

适用场景

  1. 01根据赔率和胜率估算下注规模
  2. 02依据收益与波动率估算调整配置
  3. 03设定持仓风险与集中度限制
  4. 04运行或验证附带的仓位示例

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/joellewis/finance_skills --skill bet-sizing

安装后在 Claude Code 中输入/bet-sizing确认已加载。

附带文件scripts/bet_sizing.py

详细介绍

下注规模

核心概念

凯利准则(离散型)

对于赔率为 b、获胜概率为 p、失败概率为 q = 1-p 的二元下注:

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

其中,f* 是应下注的财富比例。凯利准则通过最大化重复下注时财富的对数期望(几何增长率)来确定下注规模。

特性:

  • f* = 0 表示优势 = 0(没有优势时不下注)
  • f* < 0 表示优势为负(该公式建议你押另一边)
  • 只有当 bp > q(期望值为正)时,f > 0

注意:参考脚本中的 discrete_kelly 会将负的凯利比例限制为 0(不下注),而不是返回负值——它不会建议押另一边。

凯利准则(连续型/投资)

对于收益呈正态分布、预期超额收益为 mu-r_f、方差为 sigma^2 的投资:

f* = (mu - r_f) / sigma^2

这给出了应配置的总财富比例。例如,某资产的预期超额收益为 8%、波动率为 20%:f* = 0.08 / 0.04 = 2.0(即财富的 200%——意味着使用杠杆)。

分数凯利

满额凯利在理论上最优,但在实践中进取性过强,原因如下:

  • 它假定对概率和收益有完全准确的认知
  • 它会导致较大的回撤(满额凯利的预期回撤很显著)
  • 参数估计误差可能使最优策略变成灾难性策略

实用做法:使用凯利比例的一部分,常见做法包括:

  • 半凯利(f/2):* 在显著降低方差和回撤风险的同时,实现 75% 的增长率
  • 三分之一凯利(f/3):* 更为保守;适用于参数不确定性较高的情况
  • 四分之一凯利(f/4):* 适用于估计结果高度不确定的情况

关键在于:增长率曲线在峰值附近较为平坦。从满额凯利降至半凯利,只会损失 25% 的增长率,却能大幅降低风险。

风险预算

在不同头寸之间分配风险(而非资金)。总风险预算是可接受的最高投资组合风险(例如,VaR 为 10% 或跟踪误差为 5%)。

基于 VaR 的预算:

  • 总 VaR 预算:例如,95% 置信度下为 $1M
  • 在不同头寸之间分配:头寸 VaR_i <= 分配的 VaR_i
  • 头寸 VaR = w_i * sigma_i * z_alpha * 投资组合价值

跟踪误差预算(适用于主动型管理人):

  • 总主动风险预算:例如,跟踪误差为 4%
  • 在不同押注之间分配:每项主动押注都会占用一部分跟踪误差
  • 调整主动头寸规模,使风险贡献之和等于总风险预算
头寸规模上限

为单个头寸设定硬性上限,以防止集中风险:

基于流动性的限制:

  • 头寸 < 平均每日成交量(ADV)的 X%——常见限制:ADV 的 10-25%
  • 确保能在合理时间内退出(例如,5-10 个交易日)

基于风险的限制:

  • 头寸的风险贡献 < 投资组合波动率的 X%(例如,单个头寸最多占投资组合风险的 10%)
  • 单个头寸 < 投资组合价值的 X%(常见标准:多元化投资组合为 5%,集中投资组合为 10%)

监管/授权限制:

  • 共同基金:单一股票的持仓不得超过 5%(多元化基金)或 25%(非多元化基金)
  • 指数跟踪:权重相对基准的偏离不得超过规定幅度
信心加权

根据投资论点的力度调整头寸规模:

  • 高信心(最大头寸): 优势显著、研究深入,且有多个因素相互印证
  • 中等信心: 投资论点扎实,但存在一些不确定性或信息有限
  • 低信心(最小头寸): 处于早期阶段的想法、优势有限,或纯粹出于多元化目的

框架:按优势强度(1-5)和确定性(1-5)为每个头寸打分。头寸规模与两者的乘积成正比:优势 * 确定性。

最优持仓数量

在分散化与信念强度之间权衡:

  • 集中持仓(10-20 个): 信念强,研究深入。每个持仓占投资组合的 5-10%。适用于管理者确实具备专业能力和优势的情况。
  • 分散持仓(50-100 个): 对单个持仓的信念较弱,但风险分散更广。每个持仓占 1-3%。适用于系统化或基于因子的策略。
  • 高度分散(100 个以上): 类似指数。风险来自因子倾斜,而非单个持仓。
波动率缩放

根据波动率反向调整持仓规模,以保持每个持仓的风险一致:

调整后规模 = 目标风险 / 当前波动率

波动率翻倍时,持仓规模减半,从而保持美元风险不变。这是管理期货和风险目标策略的核心原则。

反马丁格尔(类似凯利)仓位规模

盈利后增加持仓规模(财富增长,因此凯利比例应用于更大的基数),亏损后则减少。这与马丁格尔策略(亏损后加倍下注)相反,后者可能导致破产。

凯利策略会自然实现反马丁格尔式的仓位规模:按当前财富的固定比例下注,因此绝对下注金额会随财富增长而增加,随亏损而减少。

关键公式

公式表达式使用场景
凯利公式(离散)f* = (b*p - q) / b二元下注的仓位规模
凯利公式(连续)f* = (mu - r_f) / sigma^2投资仓位规模
半凯利f = f* / 2实用的保守仓位规模
凯利增长率g* = (mu - r_f)^2 / (2*sigma^2)最大几何增长率
比例 f 下的增长率g(f) = f*(mu - r_f) - f^2*sigma^2/2任意比例下的增长率
波动率缩放后的规模w = target_risk / sigma_i保持每个持仓的风险恒定
持仓 VaRVaR_i = w_i * sigma_i * z_alpha * V持仓层面的风险

示例计算

示例 1:离散下注的凯利准则

已知:

  • 获胜概率:p = 55%
  • 失败概率:q = 45%
  • 偶数赔率:b = 1(每下注 1 美元,获胜时赢得 1 美元)

计算: 最优下注规模

解答:

f* = (b*p - q) / b = (1 * 0.55 - 0.45) / 1 = 0.10 / 1 = 10%

解释:每次下注使用当前财富的 10%。这能最大化长期几何增长率。

实用调整(半凯利):f = 10% / 2 = 5% — 以大幅降低回撤风险为代价,实现最大增长率的 75%。

全凯利下的预期回撤:在某个时点损失 50% 财富的概率相当高。半凯利能大幅降低这种尾部风险。

示例 2:投资的连续凯利公式

已知:

  • 预期超额收益(mu - r_f):8%
  • 波动率(sigma):20%

计算: 凯利最优配置

解答:

f* = (mu - r_f) / sigma^2 = 0.08 / (0.20)^2 = 0.08 / 0.04 = 2.00(200%)

这意味着配置比例为 200%(2 倍杠杆),非常激进。

实用调整:

  • 半凯利:100%(无杠杆,满仓投资)
  • 三分之一凯利:67% 配置
  • 四分之一凯利:50% 配置

考虑到 8% 的预期收益和 20% 的波动率都是存在较大不确定性的估算值,采用半凯利(100%)或更低的比例较为审慎。增长率曲线如下:

  • 全凯利:g* = 0.08^2 / (2 * 0.04) = 每年 8%
  • 半凯利:g(1.0) = 1.0 * 0.08 - 1.0^2 * 0.04/2 = 每年 6%(最大值的 75%)
  • 四分之一凯利:g(0.5) = 0.5 * 0.08 - 0.5^2 * 0.04/2 = 每年 3.5%(最大值的 44%)

常见陷阱

  • 完整凯利策略在实际应用中过于激进——概率和收益估算中的误差可能导致过度下注并造成破产;务必使用部分凯利策略
  • 凯利策略假设概率和收益已知——现实中,这些数据都是估算得出的,且存在显著误差,因此完整凯利策略很危险
  • 凯利策略最大化的是对数财富(几何增长率),这可能与投资者的实际效用函数或风险承受能力不符
  • 忽略流动性限制:凯利最优仓位可能超过市场能够承受且不会产生冲击的规模
  • 仓位之间的相关性:单资产凯利公式未考虑投资组合效应;风险相关的仓位需要整体缩小规模
  • 参数估算中的幸存者偏差:历史胜率可能高估未来的优势
  • 未根据市场状态变化进行调整:优势和波动率会随时间变化

交叉引用

  • historical-risk(财富管理插件):已实现波动率是凯利仓位规模计算的重要输入
  • forward-risk(财富管理插件):预期收益预测是凯利准则的输入
  • diversification(财富管理插件):集中投资(大额下注)与分散投资(多笔小额下注)之间的权衡
  • asset-allocation(财富管理插件):下注规模在资产配置框架内进行
  • rebalancing(财富管理插件):仓位会偏离目标规模,因此需要再平衡
  • quantitative-valuation(财富管理插件):基于估值的优势估算会影响信念权重

运行脚本

uv run scripts/bet_sizing.py            # run the demo (uses PEP 723 inline deps)
uv run scripts/bet_sizing.py --verify   # check demo outputs against the worked examples (exit 1 on mismatch)
python3 scripts/bet_sizing.py            # alternative (requires: pip install numpy)

演示程序会输出上文涉及的计算结果;其中的数值与此技能中的计算示例一致。运行 --help 可查看类和函数列表。如需以编程方式使用,请导入模块而不是运行它——演示程序仅会在运行 python bet_sizing.py 时执行。

评论

支持 Markdown