IB Native python API

Discussion in 'Automated Trading' started by globalarbtrader, Mar 7, 2017.

  1. Has anyone managed to get this working? The documentation isn't great unfortunately but its a similar idiom to the swigibpy wrapper I've been using up to now (which is just a wrapper for the C++ code)

    When I run the following (basic time telling example, equivalent of this):

    gist.github.com/robcarver17/fffc03143fcdb8039ffff6cbd78e13cc

    (Sorry I haven't put the actual link in because the forum software keeps resolving it to a media tag)

    It all seems to work... and then it doesn't.

    Code:
    serverVersion:101 connectionTime:b'20170307 16:59:57 Greenwich Mean Time'
    app.speaking_clock()
    Getting the time...
    Exceeded maximum wait for wrapper to respond
    0
    

    (logs from IB Gateway):

    Code:
    
    MQ 16:59:58:298 JTS-EServerSocket-127: [2147483647:101:101:1:0:0:0:DET] Started reading message:
    MQ 16:59:58:298 JTS-EServerSocket-127: Start API message, ClientID=10
    MQ 16:59:58:298 JTS-EServerSocket-127: [2147483647:101:101:1:0:0:0:DET] Finished reading message:
    MQ 16:59:58:298 JTS-EServerSocket-127: [2147483647:101:101:1:0:0:0:DET] cf::[version=2]
    MQ 16:59:58:298 JTS-EServerSocket-127: [2147483647:101:101:1:0:0:0:DET] [2;10;null]
    MQ 16:59:58:298 JTS-EServerSocket-127: [2147483647:101:101:1:0:0:0:DET] Start validating message:
    MQ 16:59:58:298 JTS-EServerSocket-127: [2147483647:101:101:1:0:0:0:DET] Finished validating message:
    MQ 16:59:58:298 JTS-EServerSocket-127: [2147483647:101:101:1:0:0:0:DET] Started processing message:
    MQ 16:59:58:298 JTS-EServerSocket-127: [10:101:101:1:0:15:1:INFO] Sending list of managed accounts.
    MQ 16:59:58:299 JTS-EServerSocket-127: [10:101:101:1:0:15:1:DET] [15;1;DU15118]
    MQ 16:59:58:299 JTS-EServerSocket-127: [10:101:101:1:0:15:1:INFO] Sent the list of managed accounts.
    MQ 16:59:58:299 JTS-EServerSocket-127: [10:101:101:1:0:9:1:INFO] Sending next valid order id.
    MQ 16:59:58:299 JTS-EServerSocket-127: [10:101:101:1:0:9:1:DET] [9;1;1]
    MQ 16:59:58:299 JTS-EServerSocket-127: [10:101:101:1:0:9:1:INFO] Next valid order id sent.
    MQ 16:59:58:299 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Finished processing message:
    MQ 16:59:59:300 JTS-EServerSocket-127: [10:101:101:1:0:0:0:INFO] Handling incoming StartApi message.
    MQ 16:59:59:300 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Started reading message:
    MQ 16:59:59:300 JTS-EServerSocket-127: Start API message, ClientID=10
    MQ 16:59:59:300 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Finished reading message:
    MQ 16:59:59:301 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] cf::[version=2]
    MQ 16:59:59:301 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] [2;10;null]
    MQ 16:59:59:301 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Start validating message:
    MQ 16:59:59:301 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Finished validating message:
    MQ 16:59:59:301 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Started processing message:
    MQ 16:59:59:301 JTS-EServerSocket-127: [10:101:101:1:0:15:1:INFO] Sending list of managed accounts.
    MQ 16:59:59:301 JTS-EServerSocket-127: [10:101:101:1:0:15:1:DET] [15;1;DU15118]
    MQ 16:59:59:302 JTS-EServerSocket-127: [10:101:101:1:0:15:1:INFO] Sent the list of managed accounts.
    MQ 16:59:59:302 JTS-EServerSocket-127: [10:101:101:1:0:9:1:INFO] Sending next valid order id.
    MQ 16:59:59:302 JTS-EServerSocket-127: [10:101:101:1:0:9:1:DET] [9;1;1]
    MQ 16:59:59:302 JTS-EServerSocket-127: [10:101:101:1:0:9:1:INFO] Next valid order id sent.
    MQ 16:59:59:302 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Finished processing message:
    MQ 17:00:03:307 JTS-EServerSocket-127: [10:101:101:1:0:0:0:INFO] Handling incoming ReqCurrentTime message.
    MQ 17:00:03:307 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Started reading message:
    MQ 17:00:03:307 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Finished reading message:
    MQ 17:00:03:307 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] me::[version=1]
    MQ 17:00:03:308 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Start validating message:
    MQ 17:00:03:308 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Finished validating message:
    MQ 17:00:03:308 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Started processing message:
    MQ 17:00:03:308 JTS-EServerSocket-127: [10:101:101:1:0:0:0:DET] Finished processing message:
    
    
    all looks fine ... but the wrapper currentTime never seems to get called.

    GAT
     
  2. truetype

    truetype

    Zzzz1 likes this.
  3. Twitter beat you guys to it:

    gist.github.com/miguelvm/d40ea5a9735533f582cd80a63c51b5cf

    I hadn't thought of looking there; some useful content though, thanks

    GAT