SuperAPI AI 工具集

ib-portfolio

数据与分析

查看项目

更新于 10-16 01:10

技能介绍

用途:从 Interactive Brokers(IB)获取当前投资组合持仓,适用于查询账户持仓、持股与盈亏等场景。

必要前提:本地需运行 TWS 或 IB Gateway 并启用 API。纸面交易端口 7497,实盘端口 7496。

端口配置:IB_PORT 环境变量用于在省略 --port 时提供默认端口(例如 Gateway 容器可用 IB_PORT=4001),优先级为 --port 参数 > IB_PORT > 内置默认值,可在 shell 或 .env 文件中设置。若配置端口连接失败,会自动重试另一端口;重试成功则记忆可用账户类型(实盘/纸面)并在后续 IB 技能调用中复用,直至用户明确要求另一账户;两个端口均失败时需提示用户确认 TWS 或 IB Gateway 已运行并启用 API。

使用方式:若未安装 uv 或找不到 pyproject.toml,将命令中的 uv run python 替换为 python。执行 uv run python scripts/portfolio.py [--port PORT]。参数包括 --port(IB 端口,默认 7497 纸面交易)与 --account(指定 IB 账户 ID,可选,默认第一个账户)。

输出:JSON 格式,含 connected(连接是否成功)与 positions(持仓数组,含 symbol、quantity、avg_cost、market_value、unrealized_pnl)。若未连接,需说明需运行 TWS/Gateway。所有时间戳与基于时间的计算须使用 America/New_York 时区,JSON 输出须包含 generated_at(纽约时间字符串)与 data_delay 字段。

依赖:ib-async。

限制:使用前必须具备可用的 TWS/Gateway 与 API 访问;其他收费、平台限制等细节暂未提供。