问题描述
我无法使用python连接到Interactive broker API,它在运行代码时始终显示错误502、504
我已经在全局配置中检查了所有正确的参数。 -选中启用活动和套接字客户端 -套接字端口和客户端ID,API应用程序和TWS之间是相同的。
自本周以来我无法连接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