R语言使用Rblpapi调用Bloomberg API设置1分钟周期不生效的解决方法
问题核心成因
当前代码存在接口选型错误与参数格式偏差,无法触发1分钟频率数据返回:
bdh()为Rblpapi的日频历史数据专用接口,设计上不支持分钟级粒度的数据调取,即使叠加PERIOD类override参数也不会生效- 代码中给
as.Date()传入带时分秒的字符串时,时分秒部分会被直接截断,仅保留日级精度,无法实现指定日内时间范围的效果 - PERIOD参数属于日线接口的专用配置规则,对分钟级数据调取场景完全不生效
正确实现方案
拉取1分钟频率日内行情,需要切换为Rblpapi专门用于拉取周期K线的getBar()接口,该接口本身内置频率控制参数,不需要额外添加override配置,可直接实现分钟级数据拉取。
修正后的可运行参考代码:
suppressMessages(library("Rblpapi")) conn = blpConnect() sec<-c("eurusd curncy", "eur2y curncy", "eur12m curncy") # 调取1分钟频率日内数据 a = getBar( security = sec, eventType = "TRADE", barInterval = 1, # 直接指定单根bar的时间间隔为1分钟 startDateTime = "2019-01-01T07:00:00", endDateTime = "2019-01-31T07:00:00", includeNonPlottable = FALSE ) a = as.data.frame(a)
补充注意事项
- 彭博服务端对分钟级历史数据的回溯范围有明确权限要求,普通终端权限仅能获取近6个月的1分钟粒度数据,调取2019年的历史分钟数据需要提前确认账户开通了长周期历史分钟数据的权限,否则会返回权限类报错。
getBar()返回的每根1分钟bar的lastValue字段,语义等价于原代码中请求的PX_LAST字段,对应该时间窗口内的最新成交价格,可直接替换原字段的分析使用场景。- 若使用
getBar()后仍出现数据返回间隔不符合预期的情况,可手动添加barFormat参数显式指定barFormat = "1min",覆盖接口的默认频率判断逻辑。
内容的提问来源于stack exchange,提问作者worldCurrencies
相关产品推荐
相关产品推荐

