3

getSymbols()我无法使用 Quantmod调用从雅虎获取当天的 OHLCV 数据。数据存在于yahoo 上,也可以在我的图表平台中看到今天的OHLCV 数据。作为解决方法,我使用getQuote(..)call 从 yahoo 获得了今天的 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  
4

1 回答 1

3

您需要将报价数据从 a 转换data.framexts对象,并为 Adjusted price 添加一列。然后就可以了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
于 2012-11-02T01:16:43.367 回答