IBKR Trader Toolkit

Interactive Brokers options & stock trading assistant. Provides real-time portfolio Greeks, option chain analysis, McMillan/Overby strategy recommendations, P&L statistics, Wheel strategy tracking, earnings warnings, risk simulation, and a complete toolkit for options traders. Use this skill whenever the user asks about specific options trades, position risk, buy/sell recommendations, IV environment, P&L, wheel strategy, earnings impact on options, or any IBKR account data — even if they don't explicitly mention "IBKR". For stock price queries, always use market_quote.py instead of web search.

Audits

Warn

Install

openclaw skills install ibkr-trader-toolkit

IBKR Trader Toolkit

Real-time data, options analysis, and portfolio risk for Interactive Brokers — all via JSON-emitting CLI scripts.

Core rule: Scripts produce data. You (the model) produce the analysis.


When to trigger this skill

User asks about...Example phrasing
Stock / ETF prices"What's SPY at?" "Current AAPL price"
Option chains, Greeks, IV"Show me AAPL puts for next month"
Strategy ideas"Should I sell a put on MU?"
Position risk"Am I too long delta?"
P&L, win rate, history"How are my wheel trades doing?"
Earnings risk"Does ARM report before my call expires?"
Alerts / monitoring"Warn me if SPY IV > 80%ile"

Fire even if the user doesn't mention IBKR — if they're asking about their positions or P&L, this skill is the source of truth.

Critical: For stock prices, always use market_quote.py. Never web-search a stock price — the web is minutes-to-hours stale.


Workflows

"Should I sell a put on $SYM?"

Run these in order, then synthesize:

StepCommandWhy
1portfolio_positions.pyKnow existing exposure first
2earnings_calendar.py SYM --days 60Avoid earnings inside DTE
3options_analyzer.py SYM --outlook bullish --risk-profile conservative --iv-contextGet IV environment + candidate strikes
4options_chain.py SYM --dte-min 25 --dte-max 45Live mid prices for chosen strikes

Your recommendation must include: strike • delta • premium • breakeven • annualized yield • earnings/IV warnings.


"What's my portfolio looking like?"

StepCommand
1portfolio_positions.py → positions + Greeks
2options_daily.py → expiry warnings + IV summary
3pnl_analytics.py --days 7 → recent realized P&L

"I'm thinking of adding trade X — is it safe?"

risk_simulator.py --add "SYM STRIKE EXPIRY R ACTION QTY"

Flag any of:

  • Vega magnitude doubles → much more IV-exposed
  • Net delta flips sign → directional bet now opposite
  • One symbol > 30% of capital → concentration risk

"How's my wheel doing?"

wheel_tracker.py --summary

Returns per-symbol: stage (short_put / assigned / covered_call / called_away), cumulative premium, days in cycle, annualized return.


Script reference

ScriptWhen to use
market_quote.py SYM [SYM2 ...]Any stock/ETF price question
portfolio_positions.pyWhat do I own? Portfolio Greeks
options_chain.py SYMStrikes survey + IV by expiry
options_analyzer.py SYM --outlook X --risk-profile Y --iv-contextStrategy ideas given outlook
options_daily.pyMorning/EOD options report (start here)
pnl_analytics.py [--days N]Realized P&L, win rate, best/worst
risk_simulator.py --add "..."Pre-trade Greeks impact
earnings_calendar.py SYM ...Earnings within N days
technical_indicators.py SYMRSI / MA / BB / ATR
wheel_tracker.py --summaryWheel cycle status
alerts_monitor.pyThreshold rules (cron-friendly)

All scripts:

  • Output JSON to stdout (or to --output FILE)
  • Read IBKR config from env vars (IBKR_HOST, IBKR_PORT, IBKR_CLIENT_ID_BASE, IBKR_MARKET_DATA_TYPE)
  • Are read-only — they can never place orders

Pre-trade checklist (every options recommendation)

Before suggesting any options trade, verify all three:

  1. IV environment — from options_analyzer.py --iv-context. Don't sell premium in low-IV; don't buy premium in high-IV.
  2. Earnings inside DTE — from earnings_calendar.py. IV crush after earnings flips the math.
  3. Existing position Greeks — from portfolio_positions.py. If already +5000 delta, adding more is wrong direction-of-thesis or not.

State each check explicitly:

"IV environment: low (ratio 0.7); earnings: none in next 45 days; current net delta: +1,200."

This lets the user audit the reasoning.


Operating constraints

ConstraintWhat it means
JSON in, judgement outThe script's recommendations list is candidate data, not a final answer. Re-rank against the user's situation.
Real-time by defaultIBKR_MARKET_DATA_TYPE=1. If quotes look frozen, check market hours + subscriptions.
One clientId per scriptIf you see clientId already in use, wait a few seconds or bump IBKR_CLIENT_ID_BASE.
Cache chains across callsoptions_chain.py --output /tmp/chain.json then options_analyzer.py --chain-file /tmp/chain.json saves IBKR roundtrips.

Deeper references

Read on demand when the user's question warrants it: