所以,我想下载索引的数据,但无法获取数据。 问题在于,Yahoo.finance认为指数的股票代码前面有一个^,例如,^VIX而不是VIX。 不幸的是,我的代码不喜欢这样。 我找不到任何函数或替代方法来调用此数据。 另外,我真的不想更改我从中获取数据的平台,这对于我的其余代码来说将是一个巨大的痛苦。
我尝试将 ^ 与资产一起放入,但它不会下载数据。 我也尝试在没有 ^ 的情况下调用数据,这给出了错误的数据。
asset <- "VIX"
ticker <- "VIX"
start.date <- as.Date('2009-09-01')
getSymbols(ticker, src='yahoo', from=start.date)
Adj.Close <- get(ticker)[,6]
当我把它放进去时,我最终会收到这条消息:
Error in get(ticker) : object '^VIX' not found
感谢您抽出宝贵时间,无论您是否知道解决方案。
我无法确认您的问题。这里不需要前导"^"
符号。
运行
library(quantmod)
ticker <- "VIX"
start.date <- as.Date('2009-09-01')
getSymbols(ticker, src='yahoo', from=start.date)
将自动将输出存储在名为VIX
的xts
对象中
head(get(ticker))
# VIX.Open VIX.High VIX.Low VIX.Close VIX.Volume VIX.Adjusted
#2014-12-04 28200.4 30096.9 27953.0 28447.7 811330 28447.7
#2014-12-05 26551.2 27540.7 25974.0 26056.5 377529 26056.5
#2014-12-08 25231.9 26056.5 23582.8 23582.8 367585 23582.8
#2014-12-09 23582.8 23582.8 21274.0 21274.0 570963 21274.0
#2014-12-10 19789.7 20202.0 19212.5 19295.0 539795 19295.0
#2014-12-11 18635.3 19295.0 17398.5 17728.3 1053637 17728.3
请注意,如果避免将getSymbols
的输出自动分配给当前环境,是否可以避免get
步骤:
res <- getSymbols("VIX", src='yahoo', from=start.date, auto.assign = FALSE)
我假设Maurits寻求VIX指数的数据,在这种情况下,我发现有必要将克拉包含在股票代码中。基于前面的答案,我们可以看到,当我们使用"^VIX"代码时,会返回一个有效的对象。
library(quantmod)
start.date <- as.Date('2009-09-01')
ticker <- "^VIX"
getSymbols(ticker, src='yahoo', from=start.date)
[1] "^VIX"
但是,get
无法找到该对象:
head(get(ticker))
Error in get(ticker) : object '^VIX' not found
但是,将"VIX"而不是"^VIX"与get
一起使用会返回所需的结果:
head(get("VIX"))
VIX.Open VIX.High VIX.Low VIX.Close VIX.Volume VIX.Adjusted
2009-09-01 26.01 29.23 26.00 29.15 0 29.15
2009-09-02 29.14 29.57 28.41 28.90 0 28.90
2009-09-03 28.90 28.90 26.98 27.10 0 27.10
2009-09-04 26.98 26.98 24.86 25.26 0 25.26
2009-09-08 25.26 26.15 25.26 25.62 0 25.62
2009-09-09 25.66 25.93 24.23 24.32 0 24.32