2017-07-24 74 views
1

pdblp允許通過日常的歷史彭博請求:的Python API彭博盤中pdblp要求

con = pdblp.BCon(debug=False) 
con = start() 
df = con.bdh(['SPY Equity'], 'PX_LAST', '20150103', '20150619') 

如何盤中價格/成交量/持倉量等要求進行?

期望的行爲類似於下面的15分鐘間隔的價格。

df = con.bdh(['SPY Equity'], 'PX_Last', ... , periodSelection = 'MINUTE', period=15) 

回答

0

你看過日內請求的python例子嗎?您需要在請求中指定時間。

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) 

我不太確定你想要做什麼,如果你想歷史日內然後用上面並添加您的要求爲日內時序參數。然後解析輸出。但是,如果您希望根據實時饋送執行某項功能,則我所做的方式是在python腳本上設置一個cron作業,每隔X分鐘抓取一次速率/安全性並將其保存到數據庫中。不知道你是否想要做一個實時功能,或只是拉歷史。

IntradayTickRequests目前不支持在pdblp,但如果你不想使用主API,pdblp內試試這個,它應該工作:

df3 = con.bdib('SPY Equity', '2015-06-19T09:30:00', '2015-06-19T15:30:00', eventType='TRADE', interval=15) 
df3.head() 

讓我知道如果我誤解你的問題。

+0

嘿,這一定是與原始的bbg api啊,可能值得嘗試,我一直在使用pdblp庫https://github.com/matthewgilbert/pdblp。 – rbonallo

+1

啊,試試這個:df3 = con.bdib('SPY Equity','2015-06-19T09:30:00','2015-06-19T15:30:00', eventType ='TRADE',interval = 15) – Benloper

+1

正如Benloper在上面解釋的那樣,'bdib'可以用於IntradayBarRequests。 「pdblp」目前不支持IntradayTickRequests。您可以在這裏閱讀彭博社開發者指南中的差異https://data.bloomberglp.com/professional/sites/10/2017/03/BLPAPI-Core-Developer-Guide.pdf – mgilbert