Skip to content
Automation
Skill

/ib-pmcc-advisor

Analyze PMCC (Poor Man's Covered Call / diagonal spread) positions from IB portfolio. For each diagonal spread, reports short leg risk (delta, IV, assignment probability), daily P&L projections, top-3 roll candidates, and a side-by-side comparison table. Requires TWS or IB

From plugin
trading-skills
39929 skills

Claude Code

$ npx -y skills add staskh/trading_skills --skill ib-pmcc-advisor --agent claude-code

SKILL.md

ib-pmcc-advisor.SKILL.md
name: ib-pmcc-advisor
description: Analyze PMCC (Poor Man's Covered Call / diagonal spread) positions from IB portfolio. For each diagonal spread, reports short leg risk (delta, IV, assignment probability), daily P&L projections, top-3 roll candidates, and a side-by-side comparison table. Requires TWS or IB Gateway running locally.
dependencies: ["trading-skills"]

IB PMCC Advisor

Analyzes all PMCC (diagonal call spread) positions in the IB portfolio and provides actionable advice on the short leg: assignment risk, P&L projections per day, and ranked roll recommendations.

IB Connection

TWS or IB Gateway must be running locally with API enabled:

  • **Paper trading** — port 7497
  • **Live trading** — port 7496
  • **`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.

Instructions

Step 1: Run the script

uv run python .claude/skills/ib-pmcc-advisor/scripts/pmcc_advisor.py [--port PORT] [--account ACCOUNT] [--min-roll-dte N] [--price-mode mid|last]

The script returns JSON to stdout. Parse it and use it for the response below.

Step 2: Default response — brief inline summary

Unless the user explicitly asks for a report or JSON output, respond with a **concise inline summary only**. No files saved.

Format:

  • One line per spread: `SYMBOL — short $STRIKE exp DATE (δ=X, assign=Y%) — [HOLD / ROLL to $STRIKE]`
  • Lead with any red flags (assignment > 40%, DTE < 7, earnings within short window).
  • For flagged spreads, add one extra line with the top roll candidate and net credit.
  • Clean positions: the one-line summary is enough.

Step 3: Generate files only when explicitly requested

**MD report** — triggered by: "save a report", "generate a report", "write a report", "markdown", "PDF".

Read `.claude/skills/ib-pmcc-advisor/templates/markdown-template.md` for full formatting instructions. Save to `sandbox/pmcc_advisor_{ACCOUNT}_{YYYY-MM-DD}_{HHmm}.md`. Use first account ID; derive timestamp from `generated_at`.

The report must include all sections per spread: 1. **Red flags summary** — assignment > 40%, DTE < 7, no rolls, earnings warnings 2. **Company description** — one sentence from your own knowledge (always) 3. **Technical profile** — RSI, MACD, EMA crossover, ADX, SMA distance, 3mo return, bullish score (only if technical data is present in conversation context; omit otherwise) 4. **Spread structure table** — both legs: strike, expiry, DTE, cost, current price, IV 5. **Short leg risk** — delta (BS + IB), assignment probability with risk label 6. **Daily P&L projections** — all rows: date, days to expiry, best exit spot, max P&L (mark peak row) 7. **Roll candidates table** — strike, expiry, DTE, delta, assign%, IV, net credit, $/day, P&L if assigned, bid/ask 8. **Comparison table** — current vs roll_1/2/3 side by side 9. **Recommendation** — hold/roll/close with reasoning

**JSON output** — triggered by: "save JSON", "export JSON", "save the data", "output file".

Save raw script output to `sandbox/pmcc_advisor_{ACCOUNT}_{YYYY-MM-DD}_{HHmm}.json`.

Arguments

| Flag | Default | Description | |------|---------|-------------| | `--port` | 7497 | IB Gateway/TWS port | | `--account` | all | Specific account ID | | `--min-roll-dte` | 7 | Minimum DTE for roll candidates | | `--price-mode` | mid | Option price: `mid` (bid+ask)/2 or `last` | | `--symbols` | all | Analyze only these symbols (e.g. `--symbols NVDA WMT`) |

JSON Output Structure

{
  "generated_at": "2026-04-30 10:25 ET",
  "data_delay": "real-time",
  "accounts": ["Uxxxxxxxx"],
  "price_mode": "mid",
  "min_roll_dte": 7,
  "symbols_filter": ["NVDA", "WMT"],
  "spreads": [
    {
      "symbol": "NVDA",
      "account": "Uxxxxxxxx",
      "qty": 10,
      "underlying_price": 201.46,
      "leaps_expiry": "20260918",
      "earnings": {
        "date": "2026-05-20",
        "timing": "AMC",
        "warning_short": false,
        "warning_roll_indices": [1, 2, 3]
      },
      "long": {
        "strike": 180.0, "expiry": "20260918", "dte": 141,
        "avg_cost": 35.51, "current_price": 36.20,
        "iv_pct": 42.1, "ib_delta": 0.7821, "ib_iv_pct": 41.8
      },
      "short": {
        "strike": 210.0, "expiry": "20260618", "dte": 49,
        "premium_received": 6.88, "current_price": 5.10,
        "iv_pct": 38.5, "delta": 0.3421, "assignment_prob_pct": 28.4,
        "ib_delta": 0.3415, "ib_iv_pct": 38.2
      },
      "daily_pnl": [
        {"date": "2026-04-30", "days_to_short_expiry": 49.0, "optimal_spot": 215.20, "pnl": 1234.56},
        {"date": "2026-05-01", "days_to_short_expiry": 48.0, "optimal_spot": 214.80, "pnl": 1289.10}
      ],
      "roll_candidates": [
        {
          "strike": 215.0, "expiry": "20260717", "dte": 78,
          "price": 5.80, "delta": 0.2910, "assignment_prob": 22.5,
          "iv_pct": 37.2, "net_credit": 0.70, "profit_per_day": 0.0744,
          "pnl_if_assigned": 3580.0, "bid": 5.60, "ask": 6.00
        }
      ],
      "comparison": {
        "current":  {"strike": 210, "expiry": "20260618", "dte": 49, "delta": 0.3421, "assignment_prob": 28.4, "profit_per_day": 0.1404, "pnl_if_assigned": 1880.0},
        "roll_1":   {"strike": 215, "expiry": "20260717", "dte": 78, "delta": 0.2910, "assignment_prob": 22.5, "profit_per_day": 0.0744, "pnl_if_assigned": 3580.0}
      }
    }
  ]
}

Key Fields

  • `symbols_filter` — list of uppercase symbols when `--symbols` was used; `null` means full portfolio
  • `data_delay`
Read more
@staskh
Ships withtrading-skills

Most retail traders juggle 5+ tabs — broker, charting platform, screener, news feed, spreadsheet — just to decide whether to enter a trade. This project collapses all of that into a single conversational interface powered by Claude.

Stars on GitHub

Momentum

stars in total
399
Star history of staskh/trading_skills on GitHub, a chart by star-history.com

Other skills on trading-skills.

calendar

calendar

Report scheduled US economic events (CPI, NFP, FOMC, GDP, PCE, ISM, jobless claims...) with times in ET, impact,…

earnings-calendar

earnings-calendar

Get upcoming earnings dates with timing (before/after market) and EPS estimates. Use when user asks about earnings dates,…

fundamentals

fundamentals

Get fundamental financial data including financials, earnings, and key metrics. Use when user asks about financials, earnings,…

greeks

greeks

Calculate option Greeks (delta, gamma, theta, vega) and implied volatility for specific options. Use when user asks about Greeks,…

ib-account

ib-account

Get account summary from Interactive Brokers including cash balance, buying power, and account value. Use when user asks about…

ib-collar

ib-collar

Generate tactical collar strategy reports for protecting PMCC positions through earnings or high-risk events. Requires TWS or IB…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n12d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about ib-pmcc-advisor.

Which coding agents can use ib-pmcc-advisor?
ib-pmcc-advisor installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.