我试图在Bloomberg软件包Rbbg的帮助下,在特定日期前提取S& P 500指数的指数成员:
这是一个小例子,它将为我提供今天的SP500成分:
配置
index <- "SPX Index"
Sys.setenv(TZ="GMT")
require(Rbbg)
require(tcltk)
library(rJava)
date <- as.POSIXct("1990-01-01")
与bloomberg电台的连接
conn <- blpConnect(jvm.params = c("-Xmx256m", "-Xloggc:rbloomberg.gc", "-XX:+PrintGCDetails"))
索引成员及其代码
tickers <- bds(conn, index, "INDX_MEMBERS")[,1]
现在我想在bds()函数中插入一个特定日期,以便从1990年1月1日起获得索引成分。
感谢您的帮助。 最好的祝福 Jann
答案 0 :(得分:0)
正确的解决方案虽然不是很灵活。使用我们的HistIndexTickers功能,您可以在矩阵中获取所需的任何时间频率的历史代码。输出是一个带有零和一的矩阵,表示在任何给定日期,股票代码是否属于指数的一部分。
> require(RbbgExtension)
> require(quantmod)
>
> hist.tickers <- HistIndexTickers(index = "SPX",
+ startdate = "20140101",
+ freq = "MONTHLY")
R version 3.1.2 (2014-10-31)
rJava Version 0.9-6
Rbbg Version 0.5.3
Java environment initialized successfully.
Looking for most recent blpapi3.jar file...
Adding C:\blp\API\APIv3\JavaAPI\v3.7.1.1\lib\blpapi3.jar to Java classpath
Bloomberg API Version 3.7.1.1
R version 3.1.2 (2014-10-31)
rJava Version 0.9-6
Rbbg Version 0.5.3
Java environment initialized successfully.
Looking for most recent blpapi3.jar file...
Adding C:\blp\API\APIv3\JavaAPI\v3.7.1.1\lib\blpapi3.jar to Java classpath
Bloomberg API Version 3.7.1.1
[1] "Finding historical tickers for SPX on..."
2014-01-31
2014-02-28
2014-03-31
2014-04-30
2014-05-30
2014-06-30
2014-07-31
2014-08-29
2014-09-30
2014-10-31
2014-11-28
2014-12-31
2015-01-30
> dim(hist.tickers)
[1] 13 517
> hist.tickers[,1:6]
A US AA US AAPL US ABBV US ABC US ABT US
2014-01-31 1 1 1 1 1 1
2014-02-28 1 1 1 1 1 1
2014-03-31 1 1 1 1 1 1
2014-04-30 1 1 1 1 1 1
2014-05-30 1 1 1 1 1 1
2014-06-30 1 1 1 1 1 1
2014-07-31 1 1 1 1 1 1
2014-08-29 1 1 1 1 1 1
2014-09-30 1 1 1 1 1 1
2014-10-31 1 1 1 1 1 1
2014-11-28 1 1 1 1 1 1
2014-12-31 1 1 1 1 1 1
2015-01-30 1 1 1 1 1 1