用途:通过本地运行的 Trader Workstation(TWS)或 IB Gateway 连接盈透证券,在命令行中管理账户与交易。IBKR 没有基于密钥的公开 API,凭证保存在 TWS 中,不经过该工具。
主要能力:status 检查套接字并列出受管账户;account 查看账户;positions 查看持仓;orders 查看订单(可加 --executions);quote 获取报价;history 获取历史数据;place 下单(市价或限价);cancel 撤单。支持股票、ETF、外汇、期货,非美股/非股票品种可传 --exchange、--currency、--sec-type。
使用方式:先在 interactivebrokers.com 下载并登录 TWS 或 IB Gateway,在 API 设置中勾选 Enable ActiveX and Socket Clients,交易时不要勾选 Read-Only API,并记下端口。默认端口:7497=TWS 模拟、7496=TWS 实盘、4002=IB Gateway 模拟、4001=IB Gateway 实盘。配置 .env 中的 IBKR_HOST(默认 127.0.0.1)、IBKR_PORT、IBKR_CLIENT_ID(默认 1)、IBKR_ACCOUNT(可选)。首次运行 pip install ib_async。默认 profile 为 paper(端口 7497),实盘需 --profile live --confirm-live。示例:python skills/ibkr/scripts/ibkr_cli.py status;python skills/ibkr/scripts/ibkr_cli.py place --symbol AAPL --side buy --qty 10 --type limit --limit-price 180 --tif day。
适用场景:本地电脑上运行 TWS/Gateway 并执行脚本;或让容器可访问的宿主机运行 IB Gateway,把容器 IP 加入 TWS 的 Trusted IPs,并设置 IBKR_HOST/IBKR_PORT。
限制:默认无法从 Starchild 容器直接使用,因为容器的 127.0.0.1 指向容器自身。行情与历史数据需要账户具备相应市场数据订阅,否则返回空。撤单需要数字订单 ID,且只能撤销当前会话/账户中仍开放的订单。不要将 API 套接字暴露到公网。模拟账户以 DU 开头,实盘以 U 开头。