mcpField
I
ib-report-delta-adjusted-notional-exposure

ib-report-delta-adjusted-notional-exposure

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

关于 ib-report-delta-adjusted-notional-exposure

用于计算 Interactive Brokers 各账户 Delta 调整名义敞口的报告技能。它从本地 TWS 或 IB Gateway 获取持仓数据,并生成按账户和标的拆分的 Markdown 报告。

主要功能

  1. 01连接 TWS 或 IB Gateway
  2. 02计算 Delta 调整名义敞口
  3. 03汇总多头、空头和净敞口
  4. 04按账户和标的拆分敞口
  5. 05保存 Markdown 报告

适用场景

  1. 01查看 IB 各账户的敞口
  2. 02比较多头与空头持仓
  3. 03检查各标的的敞口

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/staskh/trading_skills --skill ib-report-delta-adjusted-notional-exposure

安装后在 Claude Code 中输入/ib-report-delta-adjusted-notional-exposure确认已加载。

附带文件scripts/delta_exposure.pytemplates/markdown-template.md

详细介绍

IB Delta 调整后名义敞口报告

计算并报告所有 Interactive Brokers 账户的 Delta 调整后名义敞口。

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 run python scripts/delta_exposure.py [--port PORT]

脚本会将包含所有持仓 Delta 和汇总数据的 JSON 输出到 stdout。

第 2 步:生成报告

阅读 templates/markdown-template.md 中的格式说明。根据 JSON 数据生成 Markdown 报告并保存到 sandbox/。

文件名:delta_exposure_report_{YYYYMMDD}_{HHMMSS}.md

第 3 步:报告结果

向用户展示汇总表(总多头、总空头、净值)和主要敞口。附上保存的报告路径。

参数

  • --port - IB 端口(模拟交易的默认端口为 7497)

JSON 输出

返回 Delta 调整后名义敞口,包含:

  • connected - 布尔值
  • accounts - 账户 ID 列表
  • position_count - 持仓总数
  • positions - 持仓数组,包含标的、Delta、delta_notional、现货价格
  • summary - 多头、空头和净 Delta 名义敞口总额
    • by_account - 按账户划分的多头/空头明细
    • by_underlying - 按标的划分的多头/空头/净值明细

方法

  • 股票期权:使用 Black-Scholes,根据实值程度估算 IV 来计算 Delta
  • 期货:Delta = 1.0(完整名义敞口)
  • 期货期权:使用较低的 IV 假设(20%)计算 Delta
  • 股票:Delta = 1.0

Delta 调整后名义敞口 = delta x 现货价格 x 数量 x 乘数

示例

# Paper trading (default)
uv run python scripts/delta_exposure.py

# Live trading
uv run python scripts/delta_exposure.py --port 7496

时区

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

评论

支持 Markdown