我目前无法使用Quantmod getSymbols()
电话从雅虎获取OHLCV数据。数据存在于雅虎,也可以在我的图表平台上看到今天的OHLCV数据。作为解决方法,我今天通过getQuote(..)
电话从雅虎获得了EOD报价。但是当我尝试通过rbind将其附加到下载的符号数据时,数据对象将填充NULL。
我感谢任何关于如何将今天的报价附加到下载的历史符号数据或任何R API的建议,我可以在上市时间之后调用以获得包括今天的符号EOD(OHLCV数据)。感谢。
library(quantmod)
library(blotter)
library(PerformanceAnalytics)
getSymbols("SPY")
spy.quote = getQuote("SPY", what = yahooQuote.EOD)
> tail(SPY, n=3)
SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted
2012-10-25 142.02 142.28 140.57 141.43 134457400 141.43
2012-10-26 141.30 141.84 140.39 141.35 146023500 141.35
2012-10-31 141.85 142.03 140.68 141.35 103341300 141.35
> spy.quote
Trade Time Open High Low Close Volume
SPY 2012-11-01 04:00:00 141.65 143.01 141.52 142.83 100990760
> SPY = rbind(SPY, spy.quote)
> tail(SPY, n=3)
SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted
NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL
spy.quote NULL NULL NULL NULL NULL NULL
答案 0 :(得分:3)
您需要将报价数据从data.frame
转换为xts
对象,并为调整后的价格添加一列。然后你可以rbind
。
getSymbols("SPY", src='yahoo', to='2012-10-31')
spy.quote = getQuote("SPY", what = yahooQuote.EOD)
# convert to xts
xts.quote <- xts(spy.quote[, -1], as.Date(spy.quote[, 1])) # use Date for indexClass
xts.quote$Adjusted <- xts.quote[, 'Close'] # add an Adjusted column
tail(rbind(SPY, xts.quote), 3)
SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted
2012-10-26 141.30 141.84 140.39 141.35 146023500 141.35
2012-10-31 141.85 142.03 140.68 141.35 103341300 141.35
2012-11-01 141.65 143.01 141.52 142.83 100995568 142.83