Python 3.x Python代码第一次工作,然后不显示任何输出,然后再次工作。交互式代理API
我想学习使用交互式代理的API。我在他们那里有一个帐户,我打开TWS平台,然后执行从他们的Youtube频道复制的代码。第一次运行时效果很好,但之后如果再次执行,我会在控制台中看到: “进程已完成,退出代码为0” 没有别的了 有时一分钟后它又能工作了,不知道到底发生了什么 -我试着在控制台中使用“terminate”并再次运行,但有时它能工作,有时不能 -我收到了一些来自Windows Defender的消息,但我更新了它,这不应该是问题的根源。编辑(我现在从windows defender收到相同的错误,我将再次更新) -我试着关闭Pycharm并重新启动它,但它只在第一次工作,第二次是空的,但如果我等几分钟,它会再次工作,但并不总是如此。我知道有一些限制,比如每秒请求的最大数量,但在这个特殊情况下,我只是想了解合同细节,所以我想这不是问题所在Python 3.x Python代码第一次工作,然后不显示任何输出,然后再次工作。交互式代理API,python-3.x,api,pycharm,interactive-brokers,Python 3.x,Api,Pycharm,Interactive Brokers,我想学习使用交互式代理的API。我在他们那里有一个帐户,我打开TWS平台,然后执行从他们的Youtube频道复制的代码。第一次运行时效果很好,但之后如果再次执行,我会在控制台中看到: “进程已完成,退出代码为0” 没有别的了 有时一分钟后它又能工作了,不知道到底发生了什么 -我试着在控制台中使用“terminate”并再次运行,但有时它能工作,有时不能 -我收到了一些来自Windows Defender的消息,但我更新了它,这不应该是问题的根源。编辑(我现在从windows defender收到
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
class TestApp (EWrapper, EClient):
def __init__(self):
EClient.__init__(self, self)
def error(self, reqId, errorCode, errorString):
print ("Error: ", reqId, " ", errorCode, " ", errorString)
def contractDetails(self, reqId, contractDetails):
print ("contract details", reqId, " ", contractDetails)
def main ():
app = TestApp ()
app.connect("127.0.0.1", 7497, 0)
contract = Contract()
contract.symbol = "EUR"
contract.secType = "CASH"
contract.exchange = "IDEALPRO"
contract.currency = "USD"
app.reqContractDetails(1, contract)
app.run()
app.disconnect()
if __name__ == "__main__":
main()
编辑:
让我补充一点,这段代码始终工作正常,只需检查连接即可:
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
class IBapi(EWrapper, EClient):
def __init__(self):
EClient.__init__(self, self)
app = IBapi()
app.connect('127.0.0.1', 7497, 123)
app.run()
编辑2:
这真是令人沮丧,现在什么都不起作用,控制台输出什么都没有,它是空的。即使排除文件夹,我仍然会收到windows defender消息
编辑3:
我重新安装了Pycharm 2019,现在我有了2020,我得到了输出。我的代码的部分问题是没有调用函数“disconnect()”来停止运行循环。小心那些家伙。Brian的帖子非常有用。这不是示例代码,app.disconnect()永远不会被调用。app.run()启动一个无限循环。检查此代码,非常感谢您的回答。我检查并正确复制了代码,换句话说,他们的教程不使用断开连接功能。我试图在运行之后添加这一行(不确定它是否应该放在哪里),但我遇到了同样的问题,即空输出。你可以在这里查看视频:我将阅读你的链接。示例是错误的代码。它指望杀死python程序来断开套接字与TWS的连接。我建议您在TWS中打开数据窗口(单击数据)并查看您的连接。注意api客户机断开连接,然后可以重新连接。更好的方法是在链接中显示的代码中。它还显示了如何获取可用的合同信息。这里是另一个链接,我认为是你的问题的复制品。我重新安装了Pycharm,现在一切看起来都很好。你是对的,在运行另一个之前,我必须先消除划痕,因为它仍然是连接的。至少我得到了输出,我可以学习,这是可怕的。谢谢你的帮助,我真的很感激。我不知道如何将此标记为“已解决”。顺致敬意,