mcpField
T
trader-budget

trader-budget

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

关于 trader-budget

trader-budget 是将投资组合权重换算为买入金额的预算管理技能,供制定交易提案的用户使用。它按预算、现金缓冲和持仓上限计算金额,并只写入订单提案,不调用经纪商。

主要功能

  1. 01按目标权重计算买入金额
  2. 02应用现金缓冲与单只持仓上限
  3. 03支持整股计算和价格输入
  4. 04输出订单提案及闲置资金

适用场景

  1. 01将复制的投资组合权重转换为订单金额
  2. 02按设定预算和限制分配资金
  3. 03使用实时价格计算整股买入数量

安装

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

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

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

config.example.json
size.py
targets.example.json

详细介绍

trader-budget

预算管理器会在用户一次性设定的规则范围内,将“复制这个投资组合”转化为“每种资产恰好买这么多”。它只写入提案。trader-risk 会检查这些提案,trader-broker 会逐一询问用户是否同意。

下方的 ${CLAUDE_SKILL_DIR} 指此技能所在的文件夹(即 SKILL.md 所在位置)。

python3 "${CLAUDE_SKILL_DIR}/size.py"                       # trader/targets.json + trader/config.json
python3 "${CLAUDE_SKILL_DIR}/size.py" --budget 5000 --write # write trader/orders.json
python3 "${CLAUDE_SKILL_DIR}/size.py" --whole-shares --prices trader/prices.json
python3 "${CLAUDE_SKILL_DIR}/size.py" --weights AAPL=22.04,AXP=17.14,GOOGL=12.62 --json

读取和写入的内容

文件用途
trader/config.json规则(从此文件夹中的 config.example.json 开始)
trader/targets.json要复制的权重,由 trader-copycat 写入(此处的 targets.example.json)
trader/prices.json仅用于整股或股数计算(由 trader-alerts 写入)
trader/orders.json使用 --write 写入的拟议买单

步骤 1:一次性设定规则

如果 trader/config.json 不存在,请将 config.example.json 复制到 trader/config.json,并用通俗的语言询问用户每个值:

  • budget:这次要投入多少钱。只能使用他们能承受损失的钱。
  • cash_buffer_pct:保留为现金的比例(默认值为 10)。
  • max_position_pct:任一只股票最多可占预算的比例(默认值为 25)。
  • max_order_usd 和 min_order_usd:单笔订单的最高和最低金额(分别为 2000 和 5)。
  • fractional:如果券商支持购买零碎股,则设为 true(Alpaca 支持);如果只能购买整股,则设为 false。
  • blocked:他们绝不想持有的股票代码。
  • 在他们确认模拟账户上运行正常之前,保持 paper 为 true。

步骤 2:计算金额

python3 "${CLAUDE_SKILL_DIR}/size.py" --write

计算顺序如下:先扣除现金缓冲;对剩余股票的权重重新归一化至 100;任何超过上限的股票都固定在上限,其超出部分按其他股票的权重分配给它们,然后重复此过程,直到没有股票超限;低于最低订单金额的份额会被剔除,其权重重新分配;金额四舍五入到整数美元,舍入产生的 1 美元差额分配给未触及上限的最大股票,以免意外留有闲置资金。确实无法投入的资金(所有股票均达到上限,或整股价格无法整除)会显示为“闲置余额”。

步骤 3:向用户展示

展示表格,列出股票代码、权重、金额、达到上限的股票、现金缓冲以及闲置余额。说明权重的来源及其时效(13F 文件提交时最多可能已有 45 天)。然后交由 /trader-risk 处理。

示例:卷轴

Berkshire Hathaway 的 2026 年第二季度 13F(于 2026-08-14 提交),前五大持仓为:Apple 22.04%、 American Express 17.14%、Alphabet 12.62%、Coca-Cola 10.86%、Bank of America 9.20%。仅按这五项重新归一化:30.67 / 23.85 / 17.56 / 15.11 / 12.80。 预算为 $5,000,现金缓冲为 10%,上限为 25%:

股票金额
AAPL$1,250上限为 25%
AXP$1,119
GOOGL$823
KO$708
BAC$600
现金缓冲$500
闲置余额$0

它写入的第一笔订单为 {"symbol": "AAPL", "side": "buy", "notional": "1250", "type": "market", "time_in_force": "day"}。 权重至少保留两位小数:如果权重只舍入到一位小数(30.7 / 23.9 / ...),可能导致某个份额相差 1 美元。

规则

  • 仅生成提案。此技能绝不会调用券商工具。
  • 绝不为用户未明确表示要用于此目的的钱计算投资金额。请询问预算。
  • 每个数字都来自配置、目标或价格。绝不猜测。
  • 不做预测:绝不声称持仓未来会值多少钱或能赚多少钱。
  • 整股计算必须使用 trader/prices.json 中的真实价格;绝不编造价格。

它绝不会做的事

它绝不会下单、批准或安排订单,绝不会擅自提高限额,也绝不会为期权、保证金或做空仓位计算投资金额。

安全

  • 用于教育和提供工具,不构成财务建议。本文档中的内容不会预测价格,也不承诺收益。
  • 默认使用模拟交易("paper": true)。是否开始实盘交易由用户自行决定,并由用户自行在配置中设置。
  • 除 trader-broker 外,本套件中的工具都不会下单;且只有同时满足以下三项时才会下单:trader-risk 当天已通过该笔订单的风险检查;用户在聊天中针对该笔订单明确输入了“是”;用户在 Claude 自带的卡片上点击了一次“允许”,因为订单工具已设置为“需要审批”(Customize > Connectors > tool permissions)。切勿将订单工具设为“始终允许”。
  • 除非配置允许且用户确认,否则不得使用期权、保证金、卖空或杠杆。
  • 经纪商密钥应保存在环境变量或 Claude Desktop 配置中,绝不可放在聊天中。

评论

支持 Markdown