我正在使用pdblp Python包装器来查询来自Bloomberg的每日历史数据。根据软件包文档和Python Bloomberg API pdblp intraday request中的post,不可能使用pdblp软件包查询日内数据。
上面链接中的一个答案建议通过下面的链接直接使用blpapi API:
def sendIntradayTickRequest(session, options):
refDataService = session.getService("//blp/refdata")
request = refDataService.createRequest("IntradayTickRequest")
# only one security/eventType per request
request.set("security", options.security)
# Add fields to request
eventTypes = request.getElement("eventTypes")
for event in options.events:
eventTypes.appendValue(event)
# All times are in GMT
if not options.startDateTime or not options.endDateTime:
tradedOn = getPreviousTradingDate()
if tradedOn:
startTime = datetime.datetime.combine(tradedOn,
datetime.time(15, 30))
request.set("startDateTime", startTime)
endTime = datetime.datetime.combine(tradedOn,
datetime.time(15, 35))
request.set("endDateTime", endTime)
else:
if options.startDateTime and options.endDateTime:
request.set("startDateTime", options.startDateTime)
request.set("endDateTime", options.endDateTime)
if options.conditionCodes:
request.set("includeConditionCodes", True)
print "Sending Request:", request
session.sendRequest(request)我不熟悉底层的应用程序接口,很难理解在函数调用中作为参数提供的session和options对象。有没有人可以提供一个简单的例子,说明如何使用此函数来检索日内数据?(我不是指OHLC数据,可以使用pdblp中的bdib()函数进行查询)
发布于 2021-07-14 22:47:23
您可以使用blpapi包创建一个会话对象。
s_options = blpapi.SessionOptions()
s_options.setServerHost('localhost')
s_options.setServerPort(8194)
s_options.setAutoRestartOnDisconnection(True)
session = blpapi.Session(s_options)您还可以将一个函数传递给您的会话,会话返回的每个事件都会调用该函数。然后,session对象如下所示:
session = blpapi.Session(s_options, process_event)response函数需要两个参数,事件和会话:
def process_event(self, event, session):
for msg in event:
print(msg)https://stackoverflow.com/questions/67283024
复制相似问题