核心功能
IBKR Skill 是一套面向 Interactive Brokers (盈透证券) 的完整 API 操作工具集,基于 ib_insync 异步框架封装,提供 Python 原生 CLI (ibkr_cli.py) 与 Bash 封装脚本 (ibkr.sh/openclaw.sh) 双端入口,覆盖量化交易日常所需的全部运维场景。
核心能力矩阵
| 模块 | 功能详情 |
|------|---------|
| **账户服务** | 账户总览、持仓明细、投资组合、实时盈亏查询,支持多账户指定 (`--account`) |
| **行情数据** | 实时报价订阅 (`quote`)、历史 K 线拉取(支持 IB 原生时间格式如 `"30 D"`、`"1 hour"`)、市场数据类型切换 (1-4 类数据) |
| **合约发现** | 通过 symbol + secType + expiry 等参数查询合约详情,自动处理合约资格验证 |
| **交易执行** | 支持 MKT/LMT/STP/STP LMT 四类订单,提供订单下达、状态跟踪、撤单、成交回报全生命周期管理 |
| **扫描器** | 接入 IB Scanner API,支持 TOP_PERC_GAIN 等预设扫描码,可指定市场范围与返回条数 |
显著优点
1. 双端兼容:Python 原生脚本适合程序化调用,Bash 封装便于终端快速操作与管道集成
2. 配置灵活:支持环境变量 (IBKR_HOST/PORT/CLIENT_ID) 与命令行参数双重覆盖,易于多实例/多账户切换
3. 错误透明:连接失败、合约无效、API 异常均返回非零退出码,便于 CI/CD 或自动化流程捕获
4. 向后兼容:保留 get_account_info.py 等旧脚本入口,无缝迁移存量工作流
潜在局限与风险
- 运行依赖:必须预先启动 TWS 或 IB Gateway 并开启 API 端口, Skill 本身不包含券商软件
- 实盘风险:
place-order直接对接真实账户,误操作或参数错误将导致真实资金成交;建议先用模拟账户 (paper trading) 验证 - 并发限制:ib_insync 单客户端连接受 IB API 速率限制,高频场景需自行管理 client ID 分配
- 网络时延:本地
127.0.0.1以外部署时需确保低延迟链路,否则行情与成交状态推送可能滞后
适合人群
- 需要脚本化管理 IB 账户的量化交易者与个人投资者
- 构建自动化交易系统(如定时获取持仓、条件触发下单)的开发者
- 希望通过 CLI 快速调试合约规格、扫描市场机会的技术用户
安全建议
- 生产环境务必使用 paper trading 账户验证逻辑后再切换实盘
- 建议通过防火墙限制 API 端口访问范围,避免暴露于公网
- 敏感配置(账户 ID、client ID)建议通过环境变量注入,避免硬编码