ibkr-gateway-python
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.
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.
| name | ibkr-gateway-python |
|---|---|
| description | 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. |
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
Confirm safety mode and connectivity.
- Ensure IBKR Gateway or TWS is running on the configured host/port.
- Keep
TRADING_MODE=paperandORDERS_ENABLED=falseunless explicitly asked to enable live trading. - For offline testing, set
IBKR_MODE=simulationand useget_ibkr_clientfromibkr_core.simulation.
Create and connect a client.
- Use
IBKRClient(mode="paper")orget_ibkr_client()(respectsIBKR_MODE). - Call
client.connect()andclient.disconnect().
- Use
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_idwhen targeting a specific account; omit to use the first managed account.
- Market data:
Prefer preview-first order flow.
- Call
preview_orderbeforeplace_order. - If
ORDERS_ENABLED=false,place_orderreturnsSIMULATED.
- Call
References
references/python-usage.mdfor import lists and code examples.ibkr_core/models.pyanddocs/SCHEMAS.mdfor field names and order types.notebooks/02_market_data.ipynb,notebooks/03_account_status.ipynb, andnotebooks/04_orders.ipynbfor end-to-end workflows.