无法使用python显示错误502、504连接到Interactive Broker API

问题描述

我无法使用python连接到Interactive broker API,它在运行代码时始终显示错误502、504

我已经在全局配置中检查了所有正确的参数。 -选中启用活动和套接字客户端 -套接字端口和客户端ID,API应用程序和TWS之间是相同的。

自本周以来我无法连接API,但在此之前,我可以连接API。

当我运行我的API时,它始终显示如下错误

错误:-1 502无法连接到TWS。确认“启用ActiveX和套接字EClient” 已启用,并且连接端口与主机上的“套接字端口”相同 TWS的“编辑->全局配置...-> API->设置”菜单。实时交易港口: 交易平台:7496; IB网关:4001。用于新安装的模拟交易端口 版本954.1或更高版本:TWS:7497; IB网关:4002 错误:-1 504未连接

我曾尝试过使用笔记本电脑运行,但情况相同,并且更改了我的服务互联网。

这是我的代码

from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
from ibapi.ticktype import TickTypeEnum


class TestApp(EWrapper,EClient):
   def __init__(self):
   EClient.__init__(self,self)

 def error(self,reqId,errorCode,errorString):
   print("Error: "," ",errorString)

 def contractDetails(self,contractDetails):
   print("contractDetails: ",contractDetails)

def main():
  app = TestApp()
  app.connect(host="192.168.1.107",port=7498,clientId=0)

  contract = Contract()
  contract.symbol = "TNA"
  contract.secType = "STK"
  contract.exchange = "SMART"
  contract.currency = "USD"
  contract.primaryExchange = "ARCA"

  app.reqContractDetails(1,contract)

  app.run()
  app.disconnect()
if __name__ == "__main__":
   main()

我该如何解决

解决方法

问题是您在全局配置中的 MASTER ID。如果将其设置为 None 或 0,则会出现错误 504:未连接。尝试不同的主 ID,例如 999。然后将其设置为您的代码。 Global Configuration IBKR