用途
trader-risk 是交易技能套件中的风险管理器,充当交易提案与券商之间的关卡。由 trader-budget、trader-rebalance 或 trader-tax 生成的每一笔订单都必须经过它检查。一旦判定为 BLOCK,该订单即被最终拒绝:不会进入用户确认环节,也不会发送给券商。
主要能力
- 读取 trader/orders.json(拟议订单)、trader/config.json(限额)、trader/portfolio.json(现金与持仓;缺失时按预算创建新账户)、trader/prices.json(用于按股数下单和估值持仓)、trader/state/broker.json(当日已下单记录,用于查重和每日限额)。
- 按文件顺序逐笔检查订单,视同每笔通过的订单已成交,因此能发现单笔合规但整批违规的情况。
- 检查项包括:格式(缺少代码、买卖方向无效、qty 与 notional 同时或都不存在、notional 订单非 market+day、限价单无限价)、资产(allow_options 为 false 时的期权代码;非美国股票或 ETF 的加密资产等)、黑名单(blocked 列表中的代码)、订单大小(低于 min_order_usd 或高于 max_order_usd)、持仓比例(成交后超过账户 max_position_pct)、现金(买入后低于现金缓冲或需要保证金且 allow_margin 为 false)、卖空(卖出超过持有量且 allow_short 为 false)、重复(同一批次中同一代码同一方向出现两次,或当日已下单)、每日限额(当日已下单数超过 max_orders_per_day)。
- 警告不阻止订单,但会向用户说明:LIVE 账户、数字以数字而非字符串形式发送、高级(括号)订单。
- 将判定结果写入 trader/state/risk.json,并附带每笔订单的指纹。
使用方式
运行:
python3 "${CLAUDE_SKILL_DIR}/check.py" # trader/ files; writes trader/state/risk.json python3 "${CLAUDE_SKILL_DIR}/check.py" --json python3 "${CLAUDE_SKILL_DIR}/check.py" --no-write # look without recording
退出码 0 表示所有订单通过,1 表示至少一笔被阻止。若任何订单为股数或持仓需要估值,先确保 trader/prices.json 是最新的(可通过 trader-alerts: alerts.py quote --holdings --write)。
向用户逐笔说明结果;对 BLOCK 给出原因和修正建议(更小金额、不同股票或用户可决定修改的规则)。不要自行更改限额。订单有任何变化都需重新运行检查;trader-broker 通过指纹匹配订单与判定,编辑后的订单在重新通过前不可用,昨日的判定今日无效。
适用场景
适用于使用 trader-budget、trader-rebalance 或 trader-tax 生成订单后、发送给券商前的合规检查。默认使用模拟账户("paper": true);转为实盘由用户在自己的配置中决定。
限制
- 不放置订单、不编辑订单使其通过、不放宽限额,也不将 PASS 视为用户同意;PASS 仅表示订单允许展示给用户。
- 仅 trader-broker 在同时满足以下条件时才会下单:trader-risk 今日通过了该确切订单、用户在聊天中对该单明确输入 yes、用户因订单工具设为 "Needs approval"(Customize > Connectors > tool permissions)而在 Claude 卡片上点击 Allow 一次。切勿将订单工具设为 "Always allow"。
- 除非配置允许且用户确认,不涉及期权、保证金、卖空或杠杆。
- 券商密钥存放在环境变量或 Claude Desktop 配置中,切勿放在聊天中。
- 教育与工具性质,不构成财务建议;PASS 是规则检查,不是推荐。