Skill IBKR
Descripción general
Este skill se integra con Interactive Brokers Trader Workstation (TWS) e IB Gateway a través de ib_insync, exponiendo flujos de trabajo operativos de IBKR mediante:
- Una CLI unificada de Python:
scripts/ibkr_cli.py - Un envoltorio CLI en bash:
scripts/ibkr.sh - Un alias de compatibilidad:
scripts/openclaw.sh - Puntos de entrada de script compatibles con versiones anteriores:
scripts/get_account_info.pyscripts/get_historical_data.pyscripts/place_order.py
Requisitos previos
- Cuenta de Interactive Brokers con permisos de API.
- TWS o IB Gateway ejecutándose con la API habilitada.
- Se recomienda Python 3.9+.
ib_insyncinstalado:
pip install ib_insync
Configuración de conexión
Todas las CLI permiten anular la conexión mediante indicadores o variables de entorno.
Variables de entorno:
IBKR_HOST(por defecto127.0.0.1)IBKR_PORT(por defecto7497)IBKR_CLIENT_ID(por defecto1)IBKR_ACCOUNT(opcional)
Ejemplos:
IBKR_PORT=4002 IBKR_CLIENT_ID=14 ./scripts/ibkr.sh account-summary
python3 scripts/ibkr_cli.py positions --host 127.0.0.1 --port 7496 --account DU123456
CLI Bash
./scripts/ibkr.sh <comando> [args]
Comandos compatibles:
account(resumen de cuenta + posiciones)account-summarypositionsportfoliopnlquotehistoricalplace-ordercancel-orderopen-ordersexecutionscontract-detailsscanner
./scripts/openclaw.sh es un alias de la misma superficie CLI.
CLI Python
python3 scripts/ibkr_cli.py <comando> [args]
Servicios de cuenta
python3 scripts/ibkr_cli.py account-summary --json
python3 scripts/ibkr_cli.py positions --account DU123456
python3 scripts/ibkr_cli.py portfolio --json
python3 scripts/ibkr_cli.py pnl --account DU123456 --wait 2
Servicios de datos de mercado
python3 scripts/ibkr_cli.py quote --symbol AAPL --sec-type STK --market-data-type 3
python3 scripts/ibkr_cli.py historical --symbol EURUSD --sec-type CASH --duration "30 D" --bar-size "1 hour"
Notas:
- Las solicitudes históricas admiten valores completos en formato IB mediante indicadores, incluidos tokens con espacios como
"30 D". - Para
CASH, el valor predeterminado dewhatToShowesMIDPOINTa menos que se anule explícitamente.
Descubrimiento de contratos
python3 scripts/ibkr_cli.py contract-details --symbol ES --sec-type FUT --expiry 202606
Negociación y ciclo de vida de órdenes
python3 scripts/ibkr_cli.py place-order --symbol AAPL --sec-type STK --action BUY --quantity 10 --order-type MKT
python3 scripts/ibkr_cli.py place-order --symbol AAPL --sec-type STK --action SELL --quantity 10 --order-type LMT --limit-price 250 --tif GTC
python3 scripts/ibkr_cli.py open-orders
python3 scripts/ibkr_cli.py cancel-order --order-id 12345
python3 scripts/ibkr_cli.py executions --json
Tipos de órdenes compatibles en la CLI:
MKTLMTSTPSTP LMT
place-order espera actualizaciones de estado y muestra los errores de la API recopilados durante la colocación.
Servicio de exploración (scanner)
python3 scripts/ibkr_cli.py scanner --instrument STK --location-code STK.US.MAJOR --scan-code TOP_PERC_GAIN --rows 25
Scripts de compatibilidad
Los scripts heredados siguen siendo compatibles y ahora delegan en la CLI unificada:
get_account_info.pyget_historical_data.py(el modo posicional heredado sigue funcionando)place_order.py(el modo posicional heredado sigue funcionando)
Gestión de errores
La CLI devuelve códigos de salida distintos de cero para:
- Fallos de importación/dependencias
- Fallos de conexión
- Fallos de calificación de contrato
- Argumentos no válidos
- Falta de una orden abierta para cancelar
Referencias
Consulte references/api_reference.md para obtener enlaces a la documentación de IBKR e ib_insync.