我正在使用ibPy在相当新鲜的ubuntu机器上连接到TWS。我已成功登录纸质交易账户,并通过ibPy界面以编程方式提交买卖订单。
但是,我现在正在尝试做的不仅仅是提交订单。也就是说,我正试图从TWS获得更新的位置。我有兴趣成功运行以下代码:
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()
执行时但是我得到以下错误:
<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.>
我确保在TWS首选项中确实启用了ActiveX和套接字客户端,因此这不是问题。让我感到惊讶的是,我能够成功提交订单,但却无法从TWS获取帐户更新。有谁知道为什么会发生这种情况?