我有一个关于Interactive的Python的问题。
多个资产和股票合约能否传递到reqMktData()函数并获得最后的价格?(我可以在reqMktData中设置快照= TRUE以获得最后的价格。您可以假设我订阅了适当的数据服务。)
从长远的角度来看,这就是我要做的:
1)打电话给reqMktData,得到多重资产的最后价格。
2)将数据输入我的预测引擎,并做一些事情
3)进入第1步。
当我联系Interactive时,他们说:“一次只能将一份合同传递给reqMktData(),因此在请求实时数据时没有批量请求功能。”
显然,解决这个问题的一种方法是做一个循环,但这太慢了。另一种方法是通过多线程,但这是大量的工作,而且我负担不起额外的费用,一台新电脑。我对这两种都不感兴趣。
有什么建议吗?
发布于 2018-05-18 14:15:23
您只能在每个reqMktData调用中指定一个约定。别无选择,只能使用某种类型的循环。速度不应该是一个问题,因为您可以多达50个请求每秒,甚至可能更多的快照。
速度问题可能是您需要太多的数据(> 50/s),或者您使用的是一个旧版本的in,请签入connection.py for lock.acquire,我已经全部删除了它们。另外,如果没有交易超过10秒,IB将在发送快照之前等待交易。使用活动符号进行测试。
但是,您应该做的是通过将快照设置为false并跟踪流中的最后价格来请求实时流数据。您可以使用默认的最小值最多流100个代码。通过使用唯一的滴答ids将它们分开。
https://stackoverflow.com/questions/50374498
复制相似问题