关于 ib-collar
ib-collar 是用于生成战术领口策略报告的命令行技能,帮助在财报或其他高风险事件前保护 PMCC 持仓。它通过本地 TWS 或 IB Gateway 获取持仓和情景数据,并保存 Markdown 报告。
主要功能
- 01分析投资组合中的 PMCC 持仓
- 02检查财报时间和持仓结构
- 03比较保护性看跌期权期限及情景
- 04评估保护成本与潜在结果
- 05生成并保存 Markdown 报告
适用场景
- 01评估财报前的看跌期权保护
- 02价格变动后检查 PMCC 结构
- 03比较市场跳空下的领口策略结果
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ staskh/ trading_skills --skill ib-collar安装后在 Claude Code 中输入/ib-collar确认已加载。
附带文件scripts/collar.pytemplates/markdown-template.md
详细介绍
IB 战术领口策略
生成战术领口策略报告,帮助 PMCC 持仓应对财报或高风险事件。
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/collar.py SYMBOL [--port PORT] [--account ACCOUNT]
脚本会将包含所有持仓和情景数据的 JSON 输出到 stdout。
步骤 2:整理报告
阅读 templates/markdown-template.md 中的格式说明。根据 JSON 数据生成 Markdown 报告,并保存到 sandbox/。
步骤 3:报告结果
向用户展示关键发现:建议的看跌期权保护、成本/收益,以及报告的保存路径。
参数
SYMBOL— 要分析的股票代码(必须在投资组合中)--port— IB 端口(默认值:模拟交易为 7497)--account— 指定账户 ID(可选;搜索所有账户)
JSON 输出
脚本会返回包含以下关键字段的 JSON:
symbol、current_price— 基本信息long_strike、long_expiry、long_qty、long_cost— LEAPS 持仓short_positions— 卖出看涨期权列表is_proper_pmcc、short_above_long— PMCC 健康状态标记earnings_date、days_to_earnings— 财报时间信息put_analysis— 看跌期权情景列表,包含成本及跳空上涨/持平/下跌时的盈亏unprotected_loss_10、unprotected_loss_15、unprotected_gain_10— 未使用领口策略时 LEAPS 的风险volatility— 历史波动率数据
报告章节
- 持仓摘要:当前 PMCC 结构(买入看涨期权、卖出看涨期权)
- PMCC 健康检查:结构是否合理(卖出期权行权价 > 买入期权行权价)或已失效?
- 财报风险:下一次财报日期及距事件的天数
- 看跌期权期限分析:比较短期、中期和长期看跌期权
- 领口策略情景:不同看跌期权期限下,跳空上涨、持平、跳空下跌时的结果
- 成本/收益分析:保险成本与保护价值
- 实施时间表:包含日期的分步检查清单
- 建议:最优看跌期权行权价和到期日
核心概念
合理的 PMCC 结构:
- 买入深度实值 LEAPS 看涨期权
- 卖出虚值看涨期权,行权价高于买入期权行权价
- 领口策略无需额外保证金
失效的 PMCC 结构:
- 买入看涨期权目前已为虚值(暴跌之后)
- 卖出行权价低于买入期权行权价的看涨期权需要保证金
- 领口策略仍然有效,但会涉及保证金影响
战术领口策略:
- 仅在高风险事件(如财报)前买入保护性看跌期权
- 事件结束后卖出看跌期权
- 在创造收入与防范暴跌之间取得平衡
看跌期权期限的取舍:
- 短期:成本较低、Gamma 较高,但跳空上涨时没有残值
- 中期(2–4 周):成本、Gamma 和残值之间的平衡最佳
- 长期:跳空上涨时保值,但成本较高且 Gamma 较低
使用示例
# Analyze NVDA position (defaults to paper port 7497)
uv run python scripts/collar.py NVDA
# Analyze specific account
uv run python scripts/collar.py AMZN --account U790497
# Use paper trading port instead
uv run python scripts/collar.py NVDA --port 7497
时区
所有时间戳和基于时间的计算都必须使用 America/New_York 时区。所有 JSON 输出都必须包含 generated_at(纽约时间字符串)和 data_delay 字段。
评论
支持 Markdown