IBRK TWS API error()接受4个位置参数,但给出了5个



如果我运行一个基本的TWS示例,我收到错误消息。如果我注释掉error()回调,它会运行良好。我在几个例子上尝试了这个,得到了相同的结果。

Exception has occurred: TypeError

error() takes 4 positional arguments but 5 were given

File "/Users/jayurbain/Dropbox/twsapi/Algorithmic Trading using Interactive Broker's 
Python API /ib_basic_app.py", line 20, in <module> app.run()

请建议。

谢谢,周杰伦

下面是在wrapper.py中被覆盖的回调:

def error(self, reqId:TickerId, errorCode:int, errorString:str, advancedOrderRejectJson = ""):

完整代码如下:

from ibapi.client import EClient
from ibapi.wrapper import EWrapper

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

def error(self, reqId, errorCode, errorString):
print("Error {} {} {}".format(reqId,errorCode,errorString))

app = TradingApp()      
app.connect("127.0.0.1", 7497, clientId=1)
app.run()

从10.14开始的版本中有破坏性的API更改。由于错误回调还有另一个参数,因此需要将其包含在args中。

def error(self, reqId, errorCode, errorString, advancedOrderRejectJson):
print("Error {} {} {}".format(reqId,errorCode,errorString))

解决这个问题的方法是执行python setup install而不是使用pip来安装ibapi。谢谢你的回答。

相关内容

  • 没有找到相关文章

最新更新