关于 position-sizer
面向需要计算股票多头交易股数的用户,此技能通过固定比例、ATR 或 Kelly 准则估算仓位,并应用账户及行业集中度限制。它提供股数、头寸价值和风险明细,并生成 JSON 与 Markdown 报告。
主要功能
- 01支持固定比例、ATR 和 Kelly 方法
- 02按账户风险与止损计算股数
- 03应用头寸及行业上限
- 04比较多种参数情景
- 05生成 JSON 和 Markdown 报告
适用场景
- 01根据入场价和止损价计算买入股数
- 02比较不同风险比例或 ATR 倍数
- 03检查持仓是否超出集中度限制
- 04依据历史胜率和盈亏数据估算配置
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wind-alice/ alicemarket --skill position-sizer安装后在 Claude Code 中输入/position-sizer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/sizing_methodologies.mdscripts/position_sizer.pyscripts/tests/conftest.pytest_position_sizer.py详细介绍
仓位计算器
概述
根据风险管理原则,计算买入多头股票交易的最佳股数。支持三种计算方法:
- 固定比例法:每笔交易承担固定比例的账户权益作为风险(默认值:1%)
- ATR 法:使用平均真实波幅设置经波动率调整的止损距离
- 凯利准则:根据历史盈亏统计数据,计算数学意义上的最佳风险分配
所有方法都会应用投资组合限制(最大仓位比例、最大行业比例),并输出最终建议股数及完整的风险明细。
适用场景
- 用户询问“我应该买多少股?”
- 用户想为特定交易方案计算仓位大小
- 用户提及每笔交易风险、止损仓位计算或投资组合配置
- 用户询问凯利准则或基于 ATR 的仓位计算
- 用户想确认某个仓位是否符合投资组合集中度限制
前置条件
- 无需 API 密钥
- Python 3.9+,仅使用标准库
工作流
步骤 1:收集交易参数
向用户收集:
- 必填:账户规模(总权益)
- 模式 A(固定比例法):入场价、止损价、风险比例(默认 1%)
- 模式 B(ATR 法):入场价、ATR 值、ATR 倍数(默认 2.0x)、风险比例
- 模式 C(凯利准则):胜率、平均盈利、平均亏损;可选入场价和止损价,用于计算股数
- 可选限制:账户最大仓位比例、最大行业比例、当前行业敞口
如果用户提供了股票代码,但没有提供具体价格,请使用可用工具查询当前价格,并根据技术分析建议入场价和止损价。
步骤 2:运行仓位计算脚本
运行仓位计算:
# Fixed Fractional (most common)
python3 skills/position-sizer/scripts/position_sizer.py \
--account-size 100000 \
--entry 155 \
--stop 148.50 \
--risk-pct 1.0 \
--output-dir reports/
# ATR-Based
python3 skills/position-sizer/scripts/position_sizer.py \
--account-size 100000 \
--entry 155 \
--atr 3.20 \
--atr-multiplier 2.0 \
--risk-pct 1.0 \
--output-dir reports/
# Kelly Criterion (budget mode - no entry)
python3 skills/position-sizer/scripts/position_sizer.py \
--account-size 100000 \
--win-rate 0.55 \
--avg-win 2.5 \
--avg-loss 1.0 \
--output-dir reports/
# Kelly Criterion (shares mode - with entry/stop)
python3 skills/position-sizer/scripts/position_sizer.py \
--account-size 100000 \
--entry 155 \
--stop 148.50 \
--win-rate 0.55 \
--avg-win 2.5 \
--avg-loss 1.0 \
--output-dir reports/
步骤 3:加载方法论参考资料
阅读 references/sizing_methodologies.md,以说明所选方法的背景、风险指南和投资组合限制最佳实践。
步骤 4:计算多种情景
如果用户未指定单一方法,则运行多种情景进行比较:
- 固定比例法:风险比例为 0.5%、1.0% 和 1.5%
- ATR 法:倍数为 1.5x、2.0x 和 3.0x
- 提供对比表,展示每种情景的股数、仓位价值和美元风险
步骤 5:应用投资组合限制并确定最终仓位
如果用户提供了投资组合背景信息,则添加相应限制:
python3 skills/position-sizer/scripts/position_sizer.py \
--account-size 100000 \
--entry 155 \
--stop 148.50 \
--risk-pct 1.0 \
--max-position-pct 10 \
--max-sector-pct 30 \
--current-sector-exposure 22 \
--output-dir reports/
说明哪项限制具有约束作用,以及它为何会限制仓位。
步骤 6:生成仓位报告
提供最终建议,包括:
- 使用的方法及理由
- 准确股数和仓位价值
- 美元风险及其占账户的比例
- 止损价
- 任何具有约束作用的限制
- 风险管理提醒(投资组合风险敞口、严格执行止损)
输出格式
JSON 报告
{
"schema_version": "1.0",
"mode": "shares",
"parameters": {
"entry_price": 155.0,
"account_size": 100000,
"stop_price": 148.50,
"risk_pct": 1.0
},
"calculations": {
"fixed_fractional": {
"method": "fixed_fractional",
"shares": 153,
"risk_per_share": 6.50,
"dollar_risk": 1000.0,
"stop_price": 148.50
},
"atr_based": null,
"kelly": null
},
"constraints_applied": [],
"final_recommended_shares": 153,
"final_position_value": 23715.0,
"final_risk_dollars": 994.50,
"final_risk_pct": 0.99,
"binding_constraint": null
}
Markdown 报告
与 JSON 报告同时自动生成。内容包括:
- 参数摘要
- 当前使用方法的计算详情
- 限制分析(如有)
- 最终建议,包括股数、价值和风险
报告保存在 reports/ 目录中,文件名为 position_sizer_YYYY-MM-DD_HHMMSS.json 和 .md。
资源
references/sizing_methodologies.md:固定比例法、ATR 法和凯利准则的综合指南,包含示例、对比表和风险管理原则scripts/position_sizer.py:主要计算脚本(CLI 接口)
核心原则
- 生存优先:仓位管理重在承受连败,而非最大化盈利
- 1% 规则:每笔交易默认承担 1% 的风险;除非有特殊理由,否则绝不超过 2%
- 向下取整:股数始终向下取整为整数(绝不向上取整)
- 从严执行:存在多项限制时,以最严格的一项确定最终仓位
- 半 Kelly:实践中绝不使用完整 Kelly;半 Kelly 只需承担远低得多的风险,就能实现 75% 的增长
- 组合风险敞口:总未平仓风险不应超过账户权益的 6-8%
- 亏损的不对称性:亏损 50% 需要盈利 100% 才能回本;仓位应据此调整
评论
支持 Markdown