如何使用getSymbols将多个收盘价格下载到单独的xts文件中?

时间:2014-11-17 19:56:51

标签: r lapply quantmod

如何使用quantmod包中的getSymbols执行以下操作:

  1. 下载多个股票价格历史
  2. 仅选择调整后的收盘价 - 即,抑制开盘价/最高价/最低价以及成交量数据
  3. 将每个价格历史记录保存为单独的xts文件,日期为
  4. 我可以实现第1步和第2步,但是我遇到了第3步的问题.StackOverflow有几个关于下载和合并多个代码的价格的帖子,但我找不到下载和保存在单独文件中的说明。

    这是我到目前为止所拥有的。关于实施最后一步的任何建议都将不胜感激。提前谢谢!

    library(quantmod)
    symbols = c("GOOG","MSFT","AAPL")
    getSymbols(symbols, from="2011-01-01")
    ClosePrices <- lapply(symbols, function(x) Ad(get(x)))
    

    我怀疑解决方案是将ClosePrices文件分成单独的文件,每个自动收报机一个,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

第1部分,请参阅我的回答here。您的方法不适用于^GSPC之类的索引符号,也不适用于以特殊字符开头的任何符号(由于自动分配)。

对于第3部分,一旦你获取所有符号并将其存储到myList中,如上面的链接所述,请尝试以下操作循环列表并将列表中的元素导出到工作目录:< / p>

require(quantmod)

#Vector of symbols to fetch prices for
symbols <- c('MSFT','SBUX','GOOGL')

#Initialize a list to store the fetched prices
myList <- list()

#Loop through symbols, fetch prices, and store in myList
myList <-lapply(symbols, function(x) {getSymbols(x,auto.assign=FALSE)} )

#Housekeeping
names(myList) <- symbols

#Export to seperate files
quiet <- lapply(1:length(myList), function(x){    #looping through all elements of your list
  write.csv(myList[[x]],     #accessing the xth element of your list
            paste0(names(myList)[x],'.csv'),   #naming the exported element
            row.names=index(myList[[x]])   #include dates in the export
  )  #close write.csv
}  #close function
)  #close lapply

编辑:按照第一条评论合并两个帖子。