2017-06-30 3 views
1

Kann mir jemand helfen, mit IBPY einige grundlegende Dinge zu tun? Mit IBPY möchte ich nur den aktuellen Gebotspreis für eine Ware wie den Preis einer einzelnen Aktie bei Google - oder den aktuellen Eur/Dollar-Kurs - erfragen können.So erhalten Sie den aktuellen Gebotspreis für einen Vertrag

fand ich das Beispiel am unteren Rand der Seite hier:

Fundamental Data Using IbPy

nützlich - aber die Ausgabe ist etwas verwirrend. Wie drucke ich nur den aktuellen Preis eines einzelnen Vertrags aus?

(Nur einige Bio info - ja, ich bin neu in IBPY und Python - aber ich habe über 20 Jahre Erfahrung mit C)

Viele Art Dank im Voraus!

+0

das gleiche wie dieses Beispiel tun, aber einen Rückruf für tickPrice registrieren und einen Handler implementieren. Danach sollten Sie nur 'reqMktData' für einen Vertrag verwenden und Sie sollten' isShanshot' auf "true" setzen, wenn Sie nur ein Angebot haben möchten. Probieren Sie es aus und machen Sie etwas Code, hinterlassen Sie mir einen Kommentar, wenn Sie fertig sind, und ich werde es mir ansehen. – brian

Antwort

0

Am Beispiel den Sie genannt, mit leicht verändert:

import signal 

from ib.opt import ibConnection, message 
from ib.ext.Contract import Contract 


def price_handler(msg): 
    if msg.field == 1: 
     print("bid price = %s" % msg.price) 
    elif msg.field == 2: 
     print("ask price = %s" % msg.price) 


def main(): 
    tws = ibConnection(port=7497) 
    tws.register(price_handler, message.tickPrice) 
    tws.connect() 

    tick_id = 1 
    c = Contract() 
    c.m_symbol = 'AAPL' 
    c.m_secType = 'STK' 
    c.m_exchange = "SMART" 
    c.m_currency = "USD" 
    tws.reqMktData(tick_id, c, '', False) 

    signal.pause() 


if __name__ == '__main__': 
    main() 

Ausgang:

bid price = 149.55 
ask price = 149.56 
bid price = 149.59 
ask price = 149.61 
... 
Verwandte Themen