staskh/ib-collar
Generate tactical collar strategy reports for protecting PMCC positions through earnings or high-risk events. Requires TWS or IB Gateway running locally.
npx skills add https://github.com/staskh/trading_skills --skill ib-collar
Generate a tactical collar strategy report for protecting PMCC positions through earnings or high-risk events.
TWS or IB Gateway must be running locally with API enabled:
IB_PORT env var — default port when --port is omitted (e.g. IB_PORT=4001 for a Gateway container). Precedence: --port flag > IB_PORT > built-in default. Set it in the shell or a .env file.Port fallback: If the configured port fails, automatically retry on the other port.
If the retry succeeds, save to memory which account type worked (live/paper) and reuse it for all IB skill calls in this and future sessions — until the user explicitly asks for the other account.
If both ports fail, ask the user to verify that TWS or IB Gateway is running with API access enabled.
uv run python scripts/collar.py SYMBOL [--port PORT] [--account ACCOUNT]
The script returns JSON to stdout with all position and scenario data.
Read templates/markdown-template.md for formatting instructions. Generate a markdown report from the JSON data and save to sandbox/.
Present key findings to the user: recommended put protection, cost/benefit, and the saved report path.
SYMBOL - Stock symbol to analyze (must be in portfolio)--port - IB port (default: 7497 for paper trading)--account - Specific account ID (optional, searches all accounts)The script returns JSON with these key fields:
symbol, current_price - Basic infolong_strike, long_expiry, long_qty, long_cost - LEAPS positionshort_positions - List of short callsis_proper_pmcc, short_above_long - PMCC health flagsearnings_date, days_to_earnings - Earnings timingput_analysis - List of put scenarios with costs and P&L under gap up/flat/downunprotected_loss_10, unprotected_loss_15, unprotected_gain_10 - LEAPS risk without collarvolatility - Historical volatility dataProper PMCC Structure:
Broken PMCC Structure:
Tactical Collar:
Put Duration Trade-offs:
# 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
All timestamps and time-based calculations must use the America/New_York timezone. All JSON output must include generated_at (NY time string) and data_delay fields.
Take staskh/ib-collar from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.