我想用python连接到IB,这是我的代码:
from ib.ext.Contract import Contract
from ib.ext.Order import Order
from ib.opt import Connection, message
def error_handler(msg):
print "Server Error: %s" % msg
def reply_handler(msg):
print "Server Response: %s, %s" % (msg.typeName, msg)
if __name__ == "__main__":
tws_conn = Connection.create(port=7496, clientId=100)
tws_conn.connect()
tws_conn.register(error_handler, 'Error')
tws_conn.registerAll(reply_handler)
每当我使用此代码时,都会收到此错误,表明我无法连接到服务器:
Server Error: <error id=-1, errorCode=504, errorMsg=Not connected>
Server Response: error, <error id=-1, errorCode=504, errorMsg=Not connected>
为什么我无法连接到IB?
答案 0 :(得分:6)
三件事:
答案 1 :(得分:0)
嘿所以你需要做的是几件事。首先,您需要Python 3.5或更高版本。所以你的print语句应该使用()。其次,您需要指定一个设置为本地计算机的IP地址。第三,享受。我用过这个并得到了:
服务器版本:76
TWS连接时间:20170613 21:10:55 MST
from ib.ext.Contract import Contract
from ib.ext.Order import Order
from ib.opt import Connection, message
def error_handler(msg):
print("Server Error: %s" % msg)
def reply_handler(msg):
print("Server Response: %s, %s" % (msg.typeName, msg))
if __name__ == "__main__":
tws_conn = Connection.create("127.0.0.1", port=7496, clientId=100)
tws_conn.connect()
tws_conn.register(error_handler, 'Error')
tws_conn.registerAll(reply_handler)