blpapi内部请求python

2024-06-28 20:15:13 发布

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

我正在使用pdblpPython包装器从彭博社查询历史每日数据。 根据包文档和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)

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


Tags: 数据eventapidatetimeifrequestsessionoptions
1条回答
网友
1楼 · 发布于 2024-06-28 20:15:13

可以使用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)

相关问题 更多 >