我正在使用python API下载大量证券的日内数据(5分钟柱) 但是这个过程非常缓慢,我想我并没有在并发请求方面做出最大努力。
不幸的是,我发现API
非常不友好(我主要使用blpapi
包装来绕过消息传递,但我很想在需要时直接使用bloomberg api是)。
如果有人想要如何调整我的请求以减少耗时,我会很高兴
答案 0 :(得分:1)
如果不了解自己的情况,很难诊断性能问题
构建您的请求,但我想大部分时间都花在等待上
布隆伯格的回应。你可能想看一下
CorrelationID
字段。这允许您在之前发送多个请求
解析响应然后有办法识别哪个响应
消息对应于哪些请求。
请查看Developer's Guide的第58页,以便您了解一下。
在python中,代码看起来像
cid = blpapi.CorrelationId(my_unique_identifier)
session.sendRequest(request, correlationId=cid)
答案 1 :(得分:0)
与彭博社(而不是实际下载)建立连接最多需要花费时间。您可以保存连接对象并重复使用。
此软件包xbbg
使整个过程变得非常简单:
from xbbg import blp
# Connection instance will be shared at the backend
blp.create_connection()
tickers = [.....]
dt = '...'
for t in tickers:
# Every download in the loop shares the same connection
blp.bdib(t, dt)