Skill IBKR
Présentation
Ce skill s'intègre avec Interactive Brokers Trader Workstation (TWS) et IB Gateway via ib_insync, exposant des workflows opérationnels IBKR grâce à :
- Une CLI Python unifiée :
scripts/ibkr_cli.py - Un wrapper CLI bash :
scripts/ibkr.sh - Un alias de compatibilité :
scripts/openclaw.sh - Des points d'entrée de scripts rétrocompatibles :
scripts/get_account_info.pyscripts/get_historical_data.pyscripts/place_order.py
Prérequis
- Compte Interactive Brokers avec permissions API.
- TWS ou IB Gateway en cours d'exécution avec l'API activée.
- Python 3.9+ recommandé.
ib_insyncinstallé :
pip install ib_insync
Configuration de la connexion
Toutes les CLI prennent en charge les surcharges de connexion à l'aide de drapeaux ou de variables d'environnement.
Variables d'environnement :
IBKR_HOST(par défaut127.0.0.1)IBKR_PORT(par défaut7497)IBKR_CLIENT_ID(par défaut1)IBKR_ACCOUNT(optionnel)
Exemples :
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 <commande> [args]
Commandes prises en charge :
account(résumé du compte + positions)account-summarypositionsportfoliopnlquotehistoricalplace-ordercancel-orderopen-ordersexecutionscontract-detailsscanner
./scripts/openclaw.sh est un alias pour la même interface CLI.
CLI Python
python3 scripts/ibkr_cli.py <commande> [args]
Services de compte
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
Services de données de marché
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"
Remarques :
- Les requêtes historiques prennent en charge les valeurs au format IB complet via les drapeaux, y compris les jetons avec espaces comme
"30 D". - Pour
CASH, lewhatToShowpar défaut estMIDPOINTsauf si explicitement surchargé.
Découverte de contrats
python3 scripts/ibkr_cli.py contract-details --symbol ES --sec-type FUT --expiry 202606
Trading et cycle de vie des ordres
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
Types d'ordres pris en charge dans la CLI :
MKTLMTSTPSTP LMT
place-order attend les mises à jour de statut et expose les erreurs d'API collectées lors du placement.
Service de scanner
python3 scripts/ibkr_cli.py scanner --instrument STK --location-code STK.US.MAJOR --scan-code TOP_PERC_GAIN --rows 25
Scripts de compatibilité
Les scripts hérités restent pris en charge et délèguent désormais à la CLI unifiée :
get_account_info.pyget_historical_data.py(le mode positionnel hérité fonctionne toujours)place_order.py(le mode positionnel hérité fonctionne toujours)
Gestion des erreurs
La CLI renvoie des codes de sortie non nuls pour :
- Échecs d'importation/dépendances
- Échecs de connexion
- Échecs de qualification de contrat
- Arguments invalides
- Ordre ouvert manquant pour l'annulation
Références
Voir references/api_reference.md pour les liens vers la documentation IBKR et ib_insync.