无法使用python连接到盈透证券



我想用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?

三件事:

    确保TWS java应用程序正在运行并且您已经登录。
  1. 在TWS中,转到全局配置> API,并确保勾选"启用活动和套接字客户端"。
  2. 在全局配置> API中,确保添加"127.0.0.1"作为可信IP地址(这假设您的py代码运行在运行TWS java应用程序的同一台机器上)。

嘿,你需要做的是几件事。首先,您需要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)

相关内容

  • 没有找到相关文章

最新更新