mcpField
I
ib-portfolio-action-report

ib-portfolio-action-report

github.com/staskh其他39477 次安装1 天前更新
代码仓库

关于 ib-portfolio-action-report

ib-portfolio-action-report 是一项分析 Interactive Brokers 账户持仓的技能,涵盖财报日期、技术指标和风险等级,并将发现及优先行动整理成 Markdown 报告。

主要功能

  1. 01分析多个账户的持仓
  2. 02标注红黄绿风险等级
  3. 03纳入财报日期与技术指标
  4. 04按价差组合持仓
  5. 05生成 Markdown 行动报告

适用场景

  1. 01查看多个账户的投资组合风险
  2. 02找出临近到期的持仓
  3. 03检查即将发布财报时的风险敞口
  4. 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 - 每个账户的持仓和风险数量

报告章节

  1. 关键摘要:按风险级别统计持仓数量(🔴/🟡/🟢)
  2. 需要立即采取行动:2 天内到期的持仓
  3. 紧急 — 1 周内到期:需要关注的短期持仓
  4. 重要财报提醒:本周公布财报的持仓
  5. 下周财报:即将公布财报的风险敞口
  6. 2 周内到期:中期到期持仓
  7. 较长期持仓:核心持仓及价差分析
  8. 优先级最高的行动:按紧急程度编号列出行动事项
  9. 持仓规模摘要:账户级明细
  10. 财报日历:未来 30 天的财报日期
  11. 技术分析摘要:每个标的的 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-async
  • pandas-ta
  • yfinance

时区

所有时间戳和基于时间的计算都必须使用 America/New_York 时区。所有 JSON 输出都必须包含 generated_at(纽约时间字符串)和 data_delay 字段。

评论

支持 Markdown