关于 ib-portfolio-action-report
ib-portfolio-action-report 是一项分析 Interactive Brokers 账户持仓的技能,涵盖财报日期、技术指标和风险等级,并将发现及优先行动整理成 Markdown 报告。
主要功能
- 01分析多个账户的持仓
- 02标注红黄绿风险等级
- 03纳入财报日期与技术指标
- 04按价差组合持仓
- 05生成 Markdown 行动报告
适用场景
- 01查看多个账户的投资组合风险
- 02找出临近到期的持仓
- 03检查即将发布财报时的风险敞口
- 04确定高风险持仓的处理优先级
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ staskh/ trading_skills --skill ib-portfolio-action-report安装后在 Claude Code 中输入/ib-portfolio-action-report确认已加载。
附带文件scripts/report.pytemplates/markdown-template.md
详细介绍
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 访问。
说明
步骤 1:收集数据
注意: 如果未安装
uv或未找到pyproject.toml,请在以下所有命令中将uv run python替换为python。
uv run python scripts/report.py [--port PORT] [--account ACCOUNT]
脚本会将 JSON 输出到 stdout,其中包含已分析的投资组合数据,包括风险级别、财报日期、技术指标和价差分组。
步骤 2:整理报告
阅读 templates/markdown-template.md 中的格式说明。根据 JSON 数据生成 Markdown 报告并保存到 sandbox/。
文件名:ib_portfolio_action_report_{ACCOUNT}_{YYYY-MM-DD}_{HHmm}.md
步骤 3:报告结果
向用户说明关键发现:需要关注的红色/黄色项目、优先级最高的行动,以及已保存的报告路径。
参数
--port- IB 端口(默认值:模拟交易使用 7497)--account- 要分析的特定账户 ID(可选,默认分析所有账户)
JSON 输出
脚本会返回结构化 JSON,其中包含:
generated_at- 纽约时间戳(例如"2026-04-29 19:35 ET")data_delay- 数据新鲜度("real-time")accounts- 账户 ID 列表summary- 红色/黄色/绿色项目数量spreads- 按价差分组的所有持仓,包括风险级别、紧急程度和建议technicals- 每个标的的技术指标(RSI、趋势、SMAs、MACD、ADX)earnings- 每个标的的财报日期prices- 每个标的的当前价格earnings_calendar- 即将公布的财报及账户/持仓信息account_summary- 每个账户的持仓和风险数量
报告章节
- 关键摘要:按风险级别统计持仓数量(🔴/🟡/🟢)
- 需要立即采取行动:2 天内到期的持仓
- 紧急 — 1 周内到期:需要关注的短期持仓
- 重要财报提醒:本周公布财报的持仓
- 下周财报:即将公布财报的风险敞口
- 2 周内到期:中期到期持仓
- 较长期持仓:核心持仓及价差分析
- 优先级最高的行动:按紧急程度编号列出行动事项
- 持仓规模摘要:账户级明细
- 财报日历:未来 30 天的财报日期
- 技术分析摘要:每个标的的 RSI、趋势、SMAs、MACD、ADX
用法示例
# All accounts (paper, default)
uv run python scripts/report.py
# Live account
uv run python scripts/report.py --port 7496
# Specific account
uv run python scripts/report.py --account U790497
依赖项
ib-asyncpandas-tayfinance
时区
所有时间戳和基于时间的计算都必须使用 America/New_York 时区。所有 JSON 输出都必须包含 generated_at(纽约时间字符串)和 data_delay 字段。