Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python代码第一次工作,然后不显示任何输出,然后再次工作。交互式代理API_Python 3.x_Api_Pycharm_Interactive Brokers - Fatal编程技术网

Python 3.x Python代码第一次工作,然后不显示任何输出,然后再次工作。交互式代理API

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收到

我想学习使用交互式代理的API。我在他们那里有一个帐户,我打开TWS平台,然后执行从他们的Youtube频道复制的代码。第一次运行时效果很好,但之后如果再次执行,我会在控制台中看到:

“进程已完成,退出代码为0”

没有别的了

有时一分钟后它又能工作了,不知道到底发生了什么

-我试着在控制台中使用“terminate”并再次运行,但有时它能工作,有时不能

-我收到了一些来自Windows Defender的消息,但我更新了它,这不应该是问题的根源。编辑(我现在从windows defender收到相同的错误,我将再次更新)

-我试着关闭Pycharm并重新启动它,但它只在第一次工作,第二次是空的,但如果我等几分钟,它会再次工作,但并不总是如此。我知道有一些限制,比如每秒请求的最大数量,但在这个特殊情况下,我只是想了解合同细节,所以我想这不是问题所在

    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,现在一切看起来都很好。你是对的,在运行另一个之前,我必须先消除划痕,因为它仍然是连接的。至少我得到了输出,我可以学习,这是可怕的。谢谢你的帮助,我真的很感激。我不知道如何将此标记为“已解决”。顺致敬意,