0

我正在使用pdblpPython 包装器从 Bloomberg 查询历史每日数据。根据包文档和Python Bloomberg API pdblp 日内请求中的帖子, 无法使用 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)

我不熟悉底层 API,很难理解函数调用中作为参数提供的session和对象。options有人可以提供一个关于如何使用此功能检索日内数据的简单示例吗?(我指的不是OHLC数据,可以使用中的bdib()函数查询pdblp

4

1 回答 1

0

您可以使用 blpapi 包创建会话对象。

s_options = blpapi.SessionOptions()
s_options.setServerHost('localhost')
s_options.setServerPort(8194)
s_options.setAutoRestartOnDisconnection(True)

session = blpapi.Session(s_options)

您还可以将一个函数传递给您的会话,该函数会为会话返回的每个事件调用。然后会话对象如下所示:

session = blpapi.Session(s_options, process_event)

响应函数需要两个参数,事件和会话:

def process_event(self, event, session):
    for msg in event:
        print(msg)
于 2021-07-14T14:47:23.457 回答