Skill IBKR
Visão Geral
Este skill integra-se ao Trader Workstation (TWS) e ao IB Gateway da Interactive Brokers através do ib_insync, expondo fluxos de trabalho operacionais da IBKR por meio de:
- Uma CLI Python unificada:
scripts/ibkr_cli.py - Um wrapper CLI bash:
scripts/ibkr.sh - Alias de compatibilidade:
scripts/openclaw.sh - Pontos de entrada de script com compatibilidade retroativa:
scripts/get_account_info.pyscripts/get_historical_data.pyscripts/place_order.py
Pré-requisitos
- Conta na Interactive Brokers com permissões de API.
- TWS ou IB Gateway em execução com API habilitada.
- Python 3.9+ recomendado.
ib_insyncinstalado:
pip install ib_insync
Configuração de Conexão
Todas as CLIs suportam substituições de conexão usando flags ou variáveis de ambiente.
Variáveis de ambiente:
IBKR_HOST(padrão127.0.0.1)IBKR_PORT(padrão7497)IBKR_CLIENT_ID(padrão1)IBKR_ACCOUNT(opcional)
Exemplos:
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 suportados:
account(resumo da conta + posições)account-summarypositionsportfoliopnlquotehistoricalplace-ordercancel-orderopen-ordersexecutionscontract-detailsscanner
./scripts/openclaw.sh é um alias para a mesma superfície CLI.
CLI Python
python3 scripts/ibkr_cli.py <comando> [args]
Serviços de Conta
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
Serviços de Dados 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:
- Requisições históricas suportam valores no formato IB completo via flags, incluindo tokens com espaços como
"30 D". - Para
CASH, owhatToShowpadrão éMIDPOINT, a menos que seja explicitamente substituído.
Descoberta de Contratos
python3 scripts/ibkr_cli.py contract-details --symbol ES --sec-type FUT --expiry 202606
Negociação e Ciclo de Vida de Ordens
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 ordem suportados na CLI:
MKTLMTSTPSTP LMT
place-order aguarda atualizações de status e exibe erros de API coletados durante a colocação.
Serviço de Scanner
python3 scripts/ibkr_cli.py scanner --instrument STK --location-code STK.US.MAJOR --scan-code TOP_PERC_GAIN --rows 25
Scripts de Compatibilidade
Scripts legados permanecem suportados e agora delegam à CLI unificada:
get_account_info.pyget_historical_data.py(modo posicional legado ainda funciona)place_order.py(modo posicional legado ainda funciona)
Tratamento de Erros
A CLI retorna códigos de saída não zero para:
- Falhas de importação/dependência
- Falhas de conexão
- Falhas de qualificação de contrato
- Argumentos inválidos
- Ordem aberta ausente para cancelamento
Referências
Consulte references/api_reference.md para links de documentação da IBKR e ib_insync.