ibkr-gateway-python

MrRolie's avatarfrom MrRolie

Use when working in mm-ibkr-gateway to access market data, account summary, positions, PnL, or orders directly in Python via ibkr_core. Covers connecting with IBKRClient, using market/account/order helpers, and safety rules for preview, place, cancel, and status.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 2, 2026

When & Why to Use This Skill

This Claude skill facilitates seamless interaction with the Interactive Brokers (IBKR) Gateway via Python. It streamlines the process of fetching real-time market data, monitoring account performance, and managing trade orders through the ibkr_core library, while enforcing critical safety protocols like paper trading modes and order previews to prevent unintended financial exposure.

Use Cases

  • Market Data Analysis: Programmatically retrieving real-time quotes and historical bar data for technical analysis and backtesting.
  • Portfolio Management: Automating the tracking of account summaries, PnL, and open positions to maintain a live dashboard of financial health.
  • Safe Trade Execution: Implementing a 'preview-first' workflow for placing, modifying, or canceling orders with built-in safeguards for paper and live environments.
  • Algorithmic Trading Development: Utilizing the simulation mode and Python notebooks to develop and debug automated trading strategies using standard IBKR workflows.
nameibkr-gateway-python
descriptionUse when working in mm-ibkr-gateway to access market data, account summary, positions, PnL, or orders directly in Python via ibkr_core. Covers connecting with IBKRClient, using market/account/order helpers, and safety rules for preview, place, cancel, and status.

IBKR Gateway Python

Overview

Use ibkr_core modules in Python scripts or notebooks to fetch market data, read account data, and manage orders with safety rails.

Workflow

  1. Confirm safety mode and connectivity.

    • Ensure IBKR Gateway or TWS is running on the configured host/port.
    • Keep TRADING_MODE=paper and ORDERS_ENABLED=false unless explicitly asked to enable live trading.
    • For offline testing, set IBKR_MODE=simulation and use get_ibkr_client from ibkr_core.simulation.
  2. Create and connect a client.

    • Use IBKRClient(mode="paper") or get_ibkr_client() (respects IBKR_MODE).
    • Call client.connect() and client.disconnect().
  3. Use market data, account, and order helpers.

    • Market data: get_quote, get_quotes, get_historical_bars, get_streaming_quote, get_quote_with_mode
    • Account: get_account_summary, get_positions, get_pnl, get_account_status, list_managed_accounts
    • Orders: preview_order, place_order, get_order_status, cancel_order, get_open_orders, cancel_order_set
    • Pass account_id when targeting a specific account; omit to use the first managed account.
  4. Prefer preview-first order flow.

    • Call preview_order before place_order.
    • If ORDERS_ENABLED=false, place_order returns SIMULATED.

References

  • references/python-usage.md for import lists and code examples.
  • ibkr_core/models.py and docs/SCHEMAS.md for field names and order types.
  • notebooks/02_market_data.ipynb, notebooks/03_account_status.ipynb, and notebooks/04_orders.ipynb for end-to-end workflows.