Skip to content
Back to skills

AlexLiu0130 Ibkr Options Assistant

ASecurity

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'...

  • 19 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 2, 2026
ai-agentsbashapi

Works with

  • terminal
  • cli
  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add Serennity007/awesome-stock-quant-skills --skill AlexLiu0130__ibkr-options-assistant --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of AlexLiu0130 Ibkr Options Assistant?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for AlexLiu0130  Ibkr Options Assistant
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/serennity007-alexliu0130-ibkr-options-assistant/badge)](https://www.skillsdirectory.com/skills/serennity007-alexliu0130-ibkr-options-assistant)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ibkr-options-assistant
description: 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.
---

# 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

### "What's my account state right now?" / "Status update"

For a one-glance snapshot (positions, Greeks, ITM, this-week expiries, wheel
stages):

```bash
status_dashboard.py --output telegram   # in chat-style channels
status_dashboard.py --output json       # parse and recompose freely
status_dashboard.py                     # rich ANSI for terminals
```

Add `--full` to also include IV environment per held symbol and recent P&L
(slower — extra IBKR calls). Use `--output json` when you (the agent) want
to organize the reply yourself instead of inheriting the script's layout.

### "Should I sell a put on $SYM?"

Run these in order, then synthesize:

| Step | Command | Why |
|------|---------|-----|
| 1 | `portfolio_positions.py` | Know existing exposure first |
| 2 | `earnings_calendar.py SYM --days 60` | Avoid earnings inside DTE |
| 3 | `options_analyzer.py SYM --outlook bullish --risk-profile conservative --iv-context` | Get IV environment + candidate strikes |
| 4 | `options_chain.py SYM --dte-min 25 --dte-max 45` | Live mid prices for chosen strikes |

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

---

### "What's my portfolio looking like?"

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

---

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

```bash
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?"

```bash
wheel_tracker.py summary
```

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

---

### "Should I roll position X?"

| Step | Command | Why |
|------|---------|-----|
| 1 | `portfolio_positions.py` | Confirm the leg's current strike, expiry, P&L, delta |
| 2 | `options_chain.py SYM --dte-min 25 --dte-max 60` | Survey roll candidates further out |
| 3 | Consult [`references/wheel_strategy.md`](references/wheel_strategy.md) | "Roll vs accept assignment" decision tree |

**Your recommendation must include:** new strike • new DTE • net credit (new premium − close cost) • effective basis change vs current leg • roll count so far (cap at 2).

---

## Script reference

| Script | When to use |
|--------|-------------|
| `status_dashboard.py [--full] [--output ansi/telegram/json]` | "What's the state of my account right now?" — one-glance snapshot for terminal, Telegram, or agent consumption |
| `market_quote.py SYM [SYM2 ...]` | Any stock/ETF price question |
| `portfolio_positions.py` | What do I own? Portfolio Greeks |
| `options_chain.py SYM` | Strikes survey + IV by expiry |
| `options_analyzer.py SYM --outlook X --risk-profile Y --iv-context` | Strategy ideas given outlook |
| `options_daily.py` | Morning/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 SYM` | RSI / MA / BB / ATR |
| `wheel_tracker.py summary` | Wheel cycle status & yield |
| `alerts_monitor.py` | Threshold rules (cron-friendly) |
| `cost_basis.py SYM [...]` | Premium-adjusted effective cost basis (wheel) |
| `concentration.py` | HHI, sector mix, top-N portfolio concentration |
| `flex_import.py [--flex-dir ...]` | Parse IBKR Flex CSV/XML history into JSON |
| `trade.py <stock\|option\|combo\|...>` | **Place orders** (opt-in, dual-gate). See `references/trading.md` |

All read-only 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`)
- Cannot place orders — only `trade.py` can, and only when both `IBKR_TRADING_ENABLED=1` and `--confirm-trade` are present

---

## 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

| Constraint | What it means |
|------------|---------------|
| **JSON in, judgement out** | The script's `recommendations` list is candidate data, not a final answer. Re-rank against the user's situation. |
| **Smart data type** | `IBKR_MARKET_DATA_TYPE=3` by default — IBKR auto-upgrades to realtime when user is subscribed, falls back to delayed otherwise. If quotes look stale, check market hours + subscriptions. |
| **One clientId per script** | If you see `clientId already in use`, wait a few seconds or bump `IBKR_CLIENT_ID_BASE`. |
| **Cache chains across calls** | `options_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:

- [`references/strategies.md`](references/strategies.md) — full McMillan/Overby strategy library + selection matrix
- [`references/greeks_primer.md`](references/greeks_primer.md) — practical Delta/Gamma/Vega/Theta interpretation
- [`references/wheel_strategy.md`](references/wheel_strategy.md) — strike/DTE selection, roll-vs-assign decision tree
- [`references/options_book_summary.md`](references/options_book_summary.md) — McMillan/Overby/Natenberg/Sinclair operational rules
- [`references/troubleshooting.md`](references/troubleshooting.md) — connection errors, subscription issues

Files in this skill

  • .env.example696 B
  • .gitignore312 B
  • CHANGELOG.md14.4 KB
  • LICENSE1 KB
  • README.md28.9 KB
  • README.zh-CN.md25 KB
  • SKILL.md7.7 KB
  • SOURCE.md306 B
  • references/greeks_primer.md6.8 KB
  • references/options_book_summary.md33.5 KB
  • references/strategies.md12.1 KB
  • references/trading.md13.4 KB
  • references/troubleshooting.md9.5 KB
  • references/wheel_strategy.md10.6 KB
  • requirements.txt104 B
  • scripts/alerts_monitor.py10.3 KB
  • scripts/concentration.py8.7 KB
  • scripts/contracts.py12.8 KB
  • scripts/cost_basis.py12.6 KB
  • scripts/earnings_calendar.py7.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…