I am using ibPy to connect to TWS on a fairly fresh ubuntu machine. I have been successful in logging into the paper trading account and submitting buy and sell orders programatically via the ibPy interface.
However, I am now trying to do more than simply submit orders. Namely, I am trying to obtain position updated from TWS. I am interested in successfully running the following code:
from time import sleep from ib.opt import ibConnection, message def error_handler(msg): print(msg) def acct_update(msg): print(msg) con = ibConnection(clientId=100) con.register(acct_update, message.updateAccountValue, message.updateAccountTime, message.updatePortfolio) con.register(error_handler, "Error") con.connect() con.reqAccountUpdates(True, 'DU000000') sleep(1) con.disconnect()
When executed however I obtain the following error:
<error id=-1, errorCode=502, errorMsg=Couldn't connect to TWS. Confirm that "Enable ActiveX and Socket Clients" is enabled on the TWS "Configure->API" menu.>
I have ensured that indeed ActiveX and socket clients are enabled in the TWS preferences, so that is not the issue. It surprises me that I would be able to submit orders successfully but not obtain account updates from TWS. Does anyone know why this could be happening?