首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Bloomberg API pdblp日内请求

Python Bloomberg API pdblp日内请求
EN

Stack Overflow用户
提问于 2017-07-24 22:44:32
回答 2查看 8.6K关注 0票数 6

pdblp通过以下方式允许每日历史Bloomberg请求:

代码语言:javascript
复制
con = pdblp.BCon(debug=False)
con = start()
df = con.bdh(['SPY Equity'], 'PX_LAST', '20150103', '20150619')

如何发出盘中价格/成交量/未平仓权益等请求?

期望的行为类似于下面,15分钟间隔的价格。

代码语言:javascript
复制
df = con.bdh(['SPY Equity'], 'PX_Last', ... , periodSelection = 'MINUTE', period=15)
EN

回答 2

Stack Overflow用户

发布于 2018-11-28 01:18:16

开始时间和结束时间必须为UTC时区。因此,应该进行一些转换-并且还需要考虑到夏令时。

相反,使用xbbg要容易得多:

代码语言:javascript
复制
In [1]: from xbbg import blp

In [2]: blp.bdib(ticker='SPY US Equity', dt='2018-11-20').tail()
Out[2]:
ticker                    SPY US Equity
field                              open   high    low  close   volume num_trds
2018-11-20 15:57:00-05:00        264.42 264.49 264.35 264.41   590775     2590
2018-11-20 15:58:00-05:00        264.42 264.42 264.26 264.27  1005241     3688
2018-11-20 15:59:00-05:00        264.26 264.48 264.12 264.15  4227150     7886
2018-11-20 16:09:00-05:00        264.12 264.12 264.12 264.12        0        1
2018-11-20 16:15:00-05:00        264.12 264.12 264.12 264.12        0        1

这里需要完整的股票报价器来查找交换的时区。

票数 2
EN

Stack Overflow用户

发布于 2017-07-24 23:09:25

您看过intraday request python示例吗?您需要在请求中指定时间。

代码语言:javascript
复制
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)

我不是很确定你想要做什么,如果你想要一天内的历史记录,那就使用上面的方法,并在你的请求中添加一天内计时的参数。然后解析输出。但是,如果您希望基于实时提要执行某些功能,我的方法是在每X分钟获取一次汇率/安全性的python脚本上设置一个cron作业,并将其保存到数据库中。不确定你是想做一个实时功能,还是只想拉出历史记录。

IntradayTickRequests目前在pdblp中不受支持,但是如果你不想在pdblp中使用主api,可以尝试这样做,它应该可以工作:

代码语言:javascript
复制
df3 = con.bdib('SPY Equity', '2015-06-19T09:30:00', '2015-06-19T15:30:00', eventType='TRADE', interval=15)
df3.head()

如果我读错了你的问题,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45283556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档