quantmod ...无法获取当天的OHLCV符号数据

时间:2012-11-02 00:10:47

标签: r quantmod

我目前无法使用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  

1 个答案:

答案 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