Rblpapi R彭博资料下载
Rblpapi R Bloomberg data download
我正在尝试从 Bloomberg 下载一些 FX Forward points 数据来计算一些收益差异。为此,我需要降低定价日期和远期点定价(即期限)的结算日期之间的天数。我已经按照下面的方式尝试,但是这个 dows 不起作用并且 return NAs。虽然点显示:
require(Rblpapi)
blpConnect()
bdh("AUD1M Curncy",field=c("PX_MID","DAYS_TO_MTY"),start.date=as.Date("2017-05-01"))
date PX_MID DAYS_TO_MTY
1 2017-05-01 -4.505000000000000 NA
2 2017-05-02 -4.350000000000000 NA
3 2017-05-03 -4.150000000000000 NA
4 2017-05-04 -4.210000000000000 NA
5 2017-05-05 -4.257000000000000 NA
6 2017-05-08 -4.710000000000000 NA
7 2017-05-09 -4.930000000000000 NA
8 2017-05-10 -4.800000000000000 NA
9 2017-05-11 -4.505000000000000 NA
10 2017-05-12 -4.500000000000000 NA
11 2017-05-15 -4.855000000000000 NA
12 2017-05-16 -4.525000000000000 NA
13 2017-05-17 -4.403000000000000 NA
Bloomberg 等人告诉我,您不能使用 bdh 下载男高音,但是可以使用 excel bdp 公式下载男高音。因此,我编写了一个循环,如下所示:
mydates <- c("20170510,"20170511,"20170512,."20170515","20170516
for(i in 1:length(mydates)){print(as.numeric(bdp("AUD1M Curncy",c("PX_BID","DAYS_TO_MTY"),overrides=c("Reference Date"=mydates[i]))))}
ansd 这里是打印
[1] -4.49 32.00
[1] -4.49 31.00
[1] -4.49 31.00
[1] -4.49 33.00
[1] -4.49 32.00
我的问题是,当我重写参考日期时,PX_MID 值确实发生了变化,尽管这些日子确实如此(它们应该如此)。我的另一个问题是,这是有史以来最无用的代码行……我需要花费很长时间才能完成与 [mydate] 中一样多的查询。
有没有办法一次性下载上述查询and/or以更有效地编码?
感谢任何帮助。
亲切的问候
皮埃尔
我的猜测是 PX_BID
字段不支持 REFERENCE_DATE
覆盖
而字段 DAYS_TO_MTY
可以。如果您查看 FLDS
命令
Bloomberg 终端你可以看到 REFERENCE_DATE
一起出现
使用 DAYS_TO_MTY
但不使用 PX_BID
。正如德克在评论中指出的那样
尽管确认这一点的最佳方法是通过终端上的帮助。
关于您的性能问题,此类查询的方式
工作是发送多个请求并接收多个响应。如果你看
回复你可以看到这个
mydates <- c("20170510","20170511","20170512")
for(i in 1:length(mydates)){
print(as.numeric(bdp("AUD1M Curncy",c("PX_BID","DAYS_TO_MTY"),
overrides=c("REFERENCE_DATE"=mydates[i]),
verbose=TRUE)))
}
ReferenceDataResponse = {
securityData[] = {
securityData = {
security = "AUD1M Curncy"
eidData[] = {
}
fieldExceptions[] = {
}
sequenceNumber = 0
fieldData = {
PX_BID = -4.180000
DAYS_TO_MTY = 32
}
}
}
}
[1] -4.18 32.00
ReferenceDataResponse = {
securityData[] = {
securityData = {
security = "AUD1M Curncy"
eidData[] = {
}
fieldExceptions[] = {
}
sequenceNumber = 0
fieldData = {
PX_BID = -4.180000
DAYS_TO_MTY = 31
}
}
}
}
[1] -4.18 31.00
ReferenceDataResponse = {
securityData[] = {
securityData = {
security = "AUD1M Curncy"
eidData[] = {
}
fieldExceptions[] = {
}
sequenceNumber = 0
fieldData = {
PX_BID = -4.180000
DAYS_TO_MTY = 31
}
}
}
}
[1] -4.18 31.00
我相信彭博在这里所做的一切都是使用国内(例如澳大利亚)和
外国(例如美国)假期日历来构造 DAYS_TO_MTY
。
这些因假期和周末而波动。所以这样做的一种方法是
在内部复制该逻辑并且根本不使用彭博社。这还有一个好处,即不会限制您的数据限制,我记得这是这类查询的一个不幸的副作用。
我正在尝试从 Bloomberg 下载一些 FX Forward points 数据来计算一些收益差异。为此,我需要降低定价日期和远期点定价(即期限)的结算日期之间的天数。我已经按照下面的方式尝试,但是这个 dows 不起作用并且 return NAs。虽然点显示:
require(Rblpapi)
blpConnect()
bdh("AUD1M Curncy",field=c("PX_MID","DAYS_TO_MTY"),start.date=as.Date("2017-05-01"))
date PX_MID DAYS_TO_MTY
1 2017-05-01 -4.505000000000000 NA
2 2017-05-02 -4.350000000000000 NA
3 2017-05-03 -4.150000000000000 NA
4 2017-05-04 -4.210000000000000 NA
5 2017-05-05 -4.257000000000000 NA
6 2017-05-08 -4.710000000000000 NA
7 2017-05-09 -4.930000000000000 NA
8 2017-05-10 -4.800000000000000 NA
9 2017-05-11 -4.505000000000000 NA
10 2017-05-12 -4.500000000000000 NA
11 2017-05-15 -4.855000000000000 NA
12 2017-05-16 -4.525000000000000 NA
13 2017-05-17 -4.403000000000000 NA
Bloomberg 等人告诉我,您不能使用 bdh 下载男高音,但是可以使用 excel bdp 公式下载男高音。因此,我编写了一个循环,如下所示:
mydates <- c("20170510,"20170511,"20170512,."20170515","20170516
for(i in 1:length(mydates)){print(as.numeric(bdp("AUD1M Curncy",c("PX_BID","DAYS_TO_MTY"),overrides=c("Reference Date"=mydates[i]))))}
ansd 这里是打印
[1] -4.49 32.00
[1] -4.49 31.00
[1] -4.49 31.00
[1] -4.49 33.00
[1] -4.49 32.00
我的问题是,当我重写参考日期时,PX_MID 值确实发生了变化,尽管这些日子确实如此(它们应该如此)。我的另一个问题是,这是有史以来最无用的代码行……我需要花费很长时间才能完成与 [mydate] 中一样多的查询。
有没有办法一次性下载上述查询and/or以更有效地编码?
感谢任何帮助。
亲切的问候
皮埃尔
我的猜测是 PX_BID
字段不支持 REFERENCE_DATE
覆盖
而字段 DAYS_TO_MTY
可以。如果您查看 FLDS
命令
Bloomberg 终端你可以看到 REFERENCE_DATE
一起出现
使用 DAYS_TO_MTY
但不使用 PX_BID
。正如德克在评论中指出的那样
尽管确认这一点的最佳方法是通过终端上的帮助。
关于您的性能问题,此类查询的方式 工作是发送多个请求并接收多个响应。如果你看 回复你可以看到这个
mydates <- c("20170510","20170511","20170512")
for(i in 1:length(mydates)){
print(as.numeric(bdp("AUD1M Curncy",c("PX_BID","DAYS_TO_MTY"),
overrides=c("REFERENCE_DATE"=mydates[i]),
verbose=TRUE)))
}
ReferenceDataResponse = {
securityData[] = {
securityData = {
security = "AUD1M Curncy"
eidData[] = {
}
fieldExceptions[] = {
}
sequenceNumber = 0
fieldData = {
PX_BID = -4.180000
DAYS_TO_MTY = 32
}
}
}
}
[1] -4.18 32.00
ReferenceDataResponse = {
securityData[] = {
securityData = {
security = "AUD1M Curncy"
eidData[] = {
}
fieldExceptions[] = {
}
sequenceNumber = 0
fieldData = {
PX_BID = -4.180000
DAYS_TO_MTY = 31
}
}
}
}
[1] -4.18 31.00
ReferenceDataResponse = {
securityData[] = {
securityData = {
security = "AUD1M Curncy"
eidData[] = {
}
fieldExceptions[] = {
}
sequenceNumber = 0
fieldData = {
PX_BID = -4.180000
DAYS_TO_MTY = 31
}
}
}
}
[1] -4.18 31.00
我相信彭博在这里所做的一切都是使用国内(例如澳大利亚)和
外国(例如美国)假期日历来构造 DAYS_TO_MTY
。
这些因假期和周末而波动。所以这样做的一种方法是
在内部复制该逻辑并且根本不使用彭博社。这还有一个好处,即不会限制您的数据限制,我记得这是这类查询的一个不幸的副作用。