web-dev-qa-db-fra.com

Connexion à l'API Interactive Brokers via Python

Je cherche à connecter Python à l'API Interactive Brokers. Une recherche sur Google révèle la disponibilité d’ibPy (voir https://pypi.python.org/pypi/ib ), mais il semble que cette bibliothèque n’est ni maintenue ni compatible avec Python 3. J’ai également trouvé https: //github.com/colin1alexander/IbPython3 Cependant, le projet a depuis été arrêté.

Je suis conscient que Quantopian utilise Interactive Brokers en tant qu'agent d'exécution, mais dispose d'un front-end python pour les stratégies algorithmiques. Je suis intéressé à savoir comment ils y parviennent? Plus généralement, est-ce que quelqu'un a des ressources/idées recommandées sur la manière de connecter Python à des courtiers interactifs? Merci d'avance

8
user1478046

Update

IB a maintenant (février 2017) un SDK Python officiel (également appelé API). Il ne supporte que Python 3 (utilisez IbPy si Python 2 est indispensable)

Prend en charge les versions 9.72 et ultérieures de l'API.


Le projet ibpy a trouvé une nouvelle maison sous https://github.com/blampe/IbPy (et apparemment avec un nouveau propriétaire).

Comme vous pouvez le voir dans le README, la version de l'API prise en charge est 9.70. La version actuelle de l'API IB est 9.72, mais la ibpy existante fonctionne comme un charme avec les versions actuelles de TWS (952 stable, la dernière en date de janvier 2015) et l'API 9.72 correspondante.

Si j'utilisais Python 3, je mettrais surtout l'accent sur octets vs unicode topic car les chaînes passées dans l'API (selon mon expérience) doivent être des octets (je fais habituellement Python 2 avec l'avenir. .unicode_literals)

Les exemples fournis avec la distribution ibpy fonctionnent immédiatement.

Modifier:

J'ai ajouté quelques exemples de travail dans d'autres réponses:

Ils utilisent Queue pour en faire un exemple de travail complet (le même concept peut être appliqué pour fournir des données historiques ou en temps réel) qui fournit ce qui est demandé (ou l'erreur correspondante)

10
mementum

Interactive Brokers a maintenant une API officielle Python (beta 9.73) télécharger . Il nécessite Python 3.1+.

Voir la docs .

5
chris

Interactive Brokers a organisé le 10 novembre 2016 un webinaire sur la mise en œuvre d'Algo Trading codé en Python à l'aide de l'API Interactive Brokers. Le présentateur a bien expliqué l'applicabilité d'IBridgePy, un logiciel à source ouverte utilisé pour se connecter à l'API C++ d'Interactive Brokers en vue de l'exécution de codes python sur des marchés réels.

Le webinaire a été enregistré afin que vous puissiez l'écouter quand vous le souhaitez. Le lien du webinaire se trouve ici: https://www.interactivebrokers.com/fr/index.php?f=2227 Dans la page, IB classe ses webinaires en plusieurs rubriques: TWS, Trading, API, etc. Après avoir cliqué sur l'onglet "API", vous verrez tous les webinaires sur les API. IBridgePy fonctionne comme un quantopien autonome et il est beaucoup plus facile que IBpy. IBridgePy peut être trouvé ici www.IBridgePy.com

3
hui

En dehors du webinaire officiel de l'IB. Il y a un atelier en ligne et Github comme suit.

Udemy: https://www.udemy.com/python-algo-trading-with-interactive-brokers/

Github: https://github.com/anthonyng2/ib

Le contenu est relativement holistique et explique comment utiliser python 3.x:

  1. Extraire les informations de compte et de portefeuille
  2. Passer des commandes
  3. Demander des données de marché
  4. Obtenir des données historiques
  5. Informations sur la profondeur d'accès au marché
  6. Télécharger les barres en temps réel
  7. Extraire les informations sur les exécutions, y compris le rapport de commission
0
Aqueous Carlos