脚本不会实时打印到控制台[PYTHON]

2024-06-29 00:46:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在测试如何通过交互式代理的API和reqMktData接收实时数据。该算法是通过一个无限while循环运行的,它允许实时实时流数据,直到我停止脚本。 当我运行它时,它应该按照下面的代码将数据连续打印到控制台。但是,在我点击“停止当前命令”之前,什么都不会打印。然后我得到一个巨大的数据转储,其中包括自脚本执行以来收到的所有数据。在

我尝试了以下解决方案,在脚本的开头导入sys,并在每次打印后刷新输出。但是,这也不起作用:

import sys
sys.stdout.flush()

我使用的是Python2.7和spyder,而且对python还很陌生。在

希望有人能帮忙!非常感谢您的任何意见。在

我正在测试的脚本:

^{pr2}$

Tags: 数据代码import命令脚本算法api代理
1条回答
网友
1楼 · 发布于 2024-06-29 00:46:59

我对interactive brokers API一无所知,但我想您的start方法需要按照以下方式进行更改:

def start(self):

    try:
        self.connect_to_tws()
        self.register_callback_functions()
        while True:
            self.request_market_data(self.symbol_id, self.symbol)
            time.sleep(1)

    except Exception, e:
        print "Error:", e
        self.cancel_market_data(self.symbol)

    finally:
        print "disconnected"
        self.disconnect_from_tws()

目前你的无限循环只是反复睡眠。我认为您希望request_market_data位于while循环的内部。在

相关问题 更多 >