Estoy usando ibPy para conectarse a la TWS con bastante fresco de la máquina de ubuntu. He tenido éxito en el registro en el papel de cuenta de operaciones y la presentación de órdenes de compra y venta a través de programación a través de la ibPy de la interfaz.
Sin embargo, ahora estoy tratando de hacer algo más que simplemente enviar los pedidos. Es decir, estoy tratando de obtener la posición actualizada de la TWS. Estoy interesado en el éxito de ejecutar el siguiente código:
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()
Cuando se ejecuta sin embargo, obtengo el siguiente 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.>
Me han asegurado que, de hecho, ActiveX y el zócalo clientes están habilitados en la TWS preferencias, de modo que no es el problema. Me sorprende que yo sería capaz de enviar los pedidos con éxito, pero no obtener las actualizaciones de la cuenta de la TWS. ¿Alguien sabe por qué esto podría estar sucediendo?