mcpField
T
trader-rebalance

trader-rebalance

github.com/jakeschincariol其他85149 次安装2 周前更新
代码仓库

关于 trader-rebalance

trader-rebalance 是一款 Python 技能,用于比较持仓与目标权重,并在偏离超过设定区间时提出交易方案。它只生成方案,不会下单;后续风险检查和用户确认由相关工作流负责。

主要功能

  1. 01计算投资组合偏离
  2. 02应用目标权重与持仓上限
  3. 03设定再平衡阈值区间
  4. 04先卖后买生成交易方案
  5. 05遵守现金缓冲与订单限额

适用场景

  1. 01检查偏离目标的持仓
  2. 02评估追加现金的影响
  3. 03生成待风险审核的方案
  4. 04标出未跟踪持仓但不卖出

安装

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

$npx skills add https://github.com/jakeschincariol/trader-skill --skill trader-rebalance

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

附带文件rebalance.py

详细介绍

trader-rebalance

Rebalancer 让投资组合始终贴合计划。价格会波动,新增资金会到账,新的 13F 会改变权重;此技能会找出偏离过大的股票,并提出让它们回归目标的交易方案。它只会写入方案:trader-risk 会检查方案,而 trader-broker 会针对每笔方案询问用户是否同意。

下文中的 ${CLAUDE_SKILL_DIR} 是此技能所在的文件夹(即 SKILL.md 所在目录)。

python3 "${CLAUDE_SKILL_DIR}/rebalance.py"                    # the drift table, no files written
python3 "${CLAUDE_SKILL_DIR}/rebalance.py" --band 5 --write   # proposals -> trader/orders.json
python3 "${CLAUDE_SKILL_DIR}/rebalance.py" --sell-untracked   # also sell holdings not in the targets
python3 "${CLAUDE_SKILL_DIR}/rebalance.py" --json

读取和写入的内容

文件内容
trader/portfolio.json现金和持仓(股数);格式与 trader-tax 的 portfolio.example.json 相同
trader/prices.json每个持仓和每个目标的价格(由 trader-alerts 写入)
trader/targets.json目标权重(由 trader-copycat 写入)
trader/config.json现金缓冲、上限、订单最小和最大金额、rebalance_band_pct
trader/orders.json使用 --write 写入的方案,先卖出

决策方式

  • 账户价值 = 现金 + 按价格计算的所有持仓价值。
  • 目标:在股票配置部分(账户价值减去现金缓冲)内对权重重新归一化,且任何股票在账户中的占比都不得超过 max_position_pct。超出部分会像 trader-budget 一样分配给其他股票,因此达到上限的股票不会每个月都被买到超过上限。
  • 偏离 = 当前账户占比减去目标占比。
  • 偏离区间:只有偏离超过区间的股票才会触发交易(默认 5 个百分点)。交易会将股票持仓完全调回目标。区间越小,交易越多;区间越大,交易越少。
  • 先卖出,再买入。买入只会使用超出现金缓冲的现金;如果资金不足,所有买入金额都会按相同比例缩减。
  • 低于 min_order_usd 的交易会跳过。超过 max_order_usd 的交易会缩减至上限,并附注提示待订单成交后重新运行。
  • 未跟踪的持仓(不在目标中)会保持不变并列出,除非用户使用 --sell-untracked 要求卖出。

步骤

  1. 刷新价格:运行 trader-alerts alerts.py quote --holdings --write。
  2. 运行 rebalance.py,并用通俗语言展示偏离表:哪些股票超配或低配、偏离多少个百分点,以及将进行哪些交易。
  3. 卖出前,运行 trader-tax(lots.py sell TICKER SHARES),并说明卖出将产生多少收益。卖出盈利持仓可能需要缴税。
  4. 如果用户想进行这些交易:运行 rebalance.py --write,然后运行 /trader-risk,再运行 /trader-broker,每笔订单都需单独确认。

示例:Reel 中的投资组合

2026-10-13 买入的复制投资组合(AAPL $1,250,已达上限;AXP $1,119、GOOGL $823、KO $708、BAC $600、现金 $500),按当日收盘价估值后正好符合目标:所有偏离都小于 0.1 个百分点,因此 rebalance.py 会提示“没有股票超出偏离区间”并以状态码 1 退出。如果用户再增加 $2,000 现金,账户价值将达到 $7,000,上限变为 $1,750。此时 AAPL 低于目标 7.1 个百分点,AXP 低于目标 6.4 个百分点,二者都超出 5 个百分点的区间,因此建议买入 $499 的 AAPL 和 $446 的 AXP。GOOGL、KO 和 BAC 也低于目标,但仍在区间内,因此暂不调整。如果改为增加 $5,000,五只股票都会超出区间:建议买入这五只股票,并保留 $1,000 现金缓冲。

它绝不会做什么

它绝不会下单,不会为了追逐小幅差异而在偏离区间内交易,不会在未经请求的情况下卖出目标之外的持仓,也不会声称再平衡能够提高收益。

安全

  • 本项目用于教育和提供工具,不构成金融建议。再平衡依据的是用户自己的目标,而非预测。
  • 默认使用模拟交易("paper": true)。是否进行实盘交易由用户自行决定,并在自己的配置中设置。
  • 除 trader-broker 外,本工具包中的所有内容都不会下单;只有同时满足以下三项时才会下单:trader-risk 已在当天审核通过该笔确切订单;用户在聊天中针对这笔订单明确输入了「是」;并且由于订单工具设置为「需要批准」(Customize > Connectors > tool permissions),用户已在 Claude 自己的卡片上单击一次「允许」。切勿将订单工具设为「始终允许」。
  • 除非配置允许且用户确认,否则不进行期权、保证金交易、卖空或杠杆交易。
  • 券商密钥应保存在环境变量或 Claude Desktop 配置中,绝不能放在聊天中。

评论

支持 Markdown