2015-12-19 23 views
8

Sto cercando di connettere Python all'API di Interactive Brokers. Una ricerca su google rivela la disponibilità di ibPy (vedi https://pypi.python.org/pypi/ib) tuttavia sembra che questa libreria non sia mantenuta né supporta Python 3. Ho trovato anche https://github.com/colin1alexander/IbPython3 tuttavia il progetto è stato rimosso.Connessione all'API di Interactive Brokers tramite Python

Sono consapevole del fatto che Quantopian utilizza Interactive Brokers come agente di esecuzione ma ha un front-end Python per strategie algoritmiche. Sono interessato a sapere come ottengono questo? Più in generale, tuttavia, qualcuno ha delle risorse/approfondimenti consigliati su come connettere python ai broker interattivi? Grazie in anticipo

+0

Ho usato ibPy con python 3.4. – brian

+0

Per una soluzione di trading automatizzata? Qualche problema con l'implementazione o la stabilità? –

+0

L'ho usato solo per rispondere alle domande qui. Tutto ha funzionato finora. Io uso java per il mio trading automatizzato. – brian

risposta

8

Update

IB ha ora (febbraio 2017) uno SDK Python ufficiale (aka API). Supporta Python 3 solo (utilizzare IbPy se Python 2 è un must)

supporta le versioni API 9,72 e successive.


Il progetto ibpy trovato una nuova casa in https://github.com/blampe/IbPy (ea quanto pare un nuovo proprietario con esso)

Come si può vedere nel README versione API supportata è 9.70. La versione corrente dell'IB IB è 9.72, ma l'esistente ibpy funziona come un incantesimo con le versioni correnti di TWS (952 stabile, 954 più recente a gennaio 2015) e l'API 9.72 corrispondente.

Se si utilizza Python 3 Io metterei la maggior parte del enfasi nelle byte vs unicode argomento, perché le stringhe passate nel API (secondo la mia esperienza) deve essere byte (di solito faccio Python 2 con dal futuro .. .unicode_literals)

Gli esempi forniti con la distribuzione ibpy funzionano fuori dalla scatola.

Edit:

ho aggiunto un paio di campioni che lavorano in altre risposte:

Usano Queue per renderlo un lavoro completo esempio (lo stesso concetto può essere applicato per fornire dati storici o in tempo reale) che recapita quanto richiesto (o l'errore corrispondente)

4

Interactive Brokers ha ospitato un webinar il 10 novembre 2016 su Implement Algo Trading codificato in Python utilizzando Interactive API Broker. Il presentatore ha fornito una buona spiegazione sull'applicabilità di IBridgePy, che è un software open source utilizzato per connettersi all'API C++ di Interactive Brokers per l'esecuzione di codici Python nei mercati live.

Il webinar è stato registrato in modo da poterlo ascoltare in qualsiasi momento. Il link del webinar è qui: https://www.interactivebrokers.com/en/index.php?f=2227 Nella pagina, IB classifica i loro webinar in diversi argomenti: TWS, Trading, API, ecc. Dopo aver fatto clic sulla scheda "API", vedrai tutti i webinar su API. IBridgePy funziona come un quantologo indipendente ed è molto più semplice di IBpy. IBridgePy può essere trovato qui www.IBridgePy.com

+0

Sei il dottor Hui Liu, l'autore di IBridgePy? – ChaimG

4

Interactive Broker ora ha un'API Python ufficiale (beta 9.73) download. Richiede Python 3.1+.

Vedere docs.

+0

Utilizzare [ibapi-grease] (https://github.com/quantrocket-llc/ibapi-grease) per eseguire il patch delle scimmie su questa API rimuovendo i registri di blocco e debug eccessivamente cauti (e probabilmente implementati male) e ottenendo un enorme incremento delle prestazioni. Es: la connessione socket a TWS va da 1+ secondi a pochi millisecondi! Vedi anche [questa discussione] (https://github.com/InteractiveBrokers/tws-api/issues/464#issuecomment-317210580) su GitHub. – ChaimG