关于 ib-portfolio
通过已启用 API 的本地 TWS 或 IB Gateway 获取 Interactive Brokers 当前持仓的技能。它以 JSON 返回连接状态和持仓详情,并支持设置账户与端口。
主要功能
- 01获取 Interactive Brokers 持仓
- 02连接本地 TWS 或 IB Gateway
- 03选择账户和连接端口
- 04失败时尝试备用端口
- 05返回持仓市值和未实现盈亏
适用场景
- 01查看当前经纪账户持仓
- 02检查持仓市值和未实现盈亏
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ staskh/ trading_skills --skill ib-portfolio安装后在 Claude Code 中输入/ib-portfolio确认已加载。
附带文件scripts/portfolio.py
详细介绍
IB 投资组合
从 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 需要正在运行。
依赖项
ib-async
时区
所有时间戳和基于时间的计算都必须使用 America/New_York 时区。所有 JSON 输出都必须包含 generated_at(纽约时间字符串)和 data_delay 字段。
评论
支持 Markdown