SuperAPI AI 工具集

ib-trailing-stop

通用与其它

查看项目

更新于 10-16 02:31

技能介绍

用途:为投资组合中的股票和裸 LEAPS 下 IB 原生 TRAIL 移动止损单,由 IB 在价格上涨时自动上移触发价、价格回落时锁定止损。PMCC 持仓刻意排除,此类应使用 ib-stop-loss(对 PMCC 多头腿单独挂移动止损会在触发时破坏对冲)。默认 dry-run,请求中不含 --execute 则不下单。

连接要求:本地须运行 TWS 或 IB Gateway 并启用 API。模拟盘端口 7497,实盘端口 7496;环境变量 IB_PORT 提供默认端口(如 Gateway 容器用 IB_PORT=4001),优先级为 --port 参数 > IB_PORT > 内置默认。端口失败会自动在另一端口重试,成功则记住所用账户类型(实盘/模拟)供本会话及后续会话复用,直到用户明确要求另一账户;两个端口都失败则提示用户确认 TWS 或 IB Gateway 已运行并开启 API。

使用方式: 默认 dry-run:uv run python .claude/skills/ib-trailing-stop/scripts/trailing_stop.py --symbols JOBY --trail-pct 20 执行(取消孤儿 TS_ 单并下新 TS_ TRAIL 单):uv run python .claude/skills/ib-trailing-stop/scripts/trailing_stop.py --symbols JOBY --trail-pct 20 --execute 强制替换既有 TS_ 单:uv run python .claude/skills/ib-trailing-stop/scripts/trailing_stop.py --execute --forced

参数:--port 默认 7497;--account 默认 all;--symbols 默认 all;--trail-pct 默认 20(参考价的百分比);--trail-amt 为美元金额,与 --trail-pct 互斥;--price-mode 取 mid 或 last(仅 LEAPS);--execute 默认关闭,取消孤儿单并下 TS_ TRAIL 单;--forced 需配合 --execute,取消并替换既有 TS_ 单。

关键行为:参考价 = max(当前价, 平均成本),高于成本时锁定利润,且起始止损从不低于入场价;强制模式用当前价作参考,可能把初始止损设在入场价之下,适合回撤后重新挂单。既有 TS_ 单默认保留,因为 IB 自下单起一直在上移追踪高点,替换会重置该高点,故需用 --forced 有意重置。仅适用于股票与裸 LEAPS,PMCC 被排除。

订单标识:裸 LEAPS 为 TS_{SYM}{STRIKE}{EXPIRY}{RIGHT}(right 为 C 或 P,避免同标的同到期看涨/看跌冲突);股票为 TS{SYM}_STK。

输出结构:JSON 含 generated_at、data_delay、dry_run、forced、trail_pct、trail_amt、accounts、symbols_filter、all_trail_orders(module/manual)、orphan_orders、positions 等字段;每仓含 action(place_new、preserve_existing、overwrite)与 existing_trail。报告分三部分:既有 TRAIL 单、持仓、订单结果(仅执行模式)。

架构:分析逻辑在 src/trading_skills/broker/trailing_stop.py,含 calc_trail_reference、calc_initial_trail_stop_price、identify_trailable_positions、build_trail_analysis、detect_orphan_trail_orders、summarize_all_trail_orders 及 IBKR 数据层的 get_trailing_stop_data、_cancel_orphan_orders、_place_simple_trail_order、_execute_position_trail。

限制:需本地 TWS/IB Gateway 与 API;不处理 PMCC;替换已下单会重置追踪高点;价格为实时或延迟取决于 data_delay。其余收费与平台细节资料未提供。