下载 quantmod 数据时出错
Error downloading quantmod data
我目前正在关注一个财经视频,我正处于以下 video 的第 8:02 分钟。我相信我在下载数据方面出错了,就像视频作者所做的那样。
我已经粘贴了下面的代码,您应该可以从 Rstudio window 中 运行 而无需下载任何其他文件。
我首先使用 quantmod 包导入数据。
library(quantmod)
getSymbols("F", src="yahoo", periodicity = "monthly", from="2007-10-01", to="2012-11-01")
colnames(F) <- c("Open", "High", "Low", "Close", "Volume", "Adj")
我 运行 遇到了一个小问题,该视频在 2012 年 10 月 1 日的开盘价为 9.89,调整收盘价为 9.88。当我查看我通过 quantmod 包下载的数据时,我在 2012-10-01 上打开了 12.380 和 Adj Close 8.915304。我完全理解下载数据时的值可能存在差异,但为什么我通过 quantmod 包获得的值会大不相同。
进一步
我去雅虎金融网站交叉检查了这些值。这是 2012 年 10 月 1 日或雅虎 2012 年 9 月 30 日的 Yahoo link,开盘价为 9.89,收盘价为 8.92,非常接近视频。
为什么通过 quantmod 导入不正确,这是漫长的一天所以我假设它是我错过的东西。
下载的 quantmod 数据已针对股息进行了调整。看看最近的每日价格,然后在 2017 年 10 月对股息进行修正:
aa <- getSymbols("F", src="yahoo", periodicity = "daily", from="2007-10-01", auto.assign = FALSE)
aa["2017-10/"]
随着时间的推移计算股息会导致 yahoo 和您下载的 xts 对象中的价格发生变化。例如OHL 价格调整了 15 美分,这是 10 月份分红前的分红规模。股息支付后,请注意 yahoo 和 xts 对象中的 OHL 价格是如何相同的。
如果你想return没有股息调整的雅虎数据,在getSymbols调用中添加adjust
参数设置为TRUE
(这是函数getSymbols.yahoo
/getSymbols.yahooj
):
a2 <- getSymbols("F", src="yahoo", periodicity = "daily", from="2007-10-01", auto.assign = FALSE, adjust = TRUE)
head(a2["2012-10"])
F.Open F.High F.Low F.Close F.Volume F.Adjusted
2012-10-01 9.89 10.08 9.88 7.932703 33445600 7.932703
2012-10-02 10.01 10.05 9.71 7.820863 63630000 7.820863
2012-10-03 9.82 10.02 9.76 7.940693 51023800 7.940693
2012-10-04 10.06 10.15 9.96 8.076502 46855500 8.076502
2012-10-05 10.17 10.28 10.13 8.116439 40693900 8.116439
2012-10-08 10.06 10.12 9.99 8.028567 25473900 8.028567
正如雅虎网站上所指出的,他们网站上的数据似乎考虑了股票分割。
我目前正在关注一个财经视频,我正处于以下 video 的第 8:02 分钟。我相信我在下载数据方面出错了,就像视频作者所做的那样。
我已经粘贴了下面的代码,您应该可以从 Rstudio window 中 运行 而无需下载任何其他文件。
我首先使用 quantmod 包导入数据。
library(quantmod)
getSymbols("F", src="yahoo", periodicity = "monthly", from="2007-10-01", to="2012-11-01")
colnames(F) <- c("Open", "High", "Low", "Close", "Volume", "Adj")
我 运行 遇到了一个小问题,该视频在 2012 年 10 月 1 日的开盘价为 9.89,调整收盘价为 9.88。当我查看我通过 quantmod 包下载的数据时,我在 2012-10-01 上打开了 12.380 和 Adj Close 8.915304。我完全理解下载数据时的值可能存在差异,但为什么我通过 quantmod 包获得的值会大不相同。
进一步
我去雅虎金融网站交叉检查了这些值。这是 2012 年 10 月 1 日或雅虎 2012 年 9 月 30 日的 Yahoo link,开盘价为 9.89,收盘价为 8.92,非常接近视频。
为什么通过 quantmod 导入不正确,这是漫长的一天所以我假设它是我错过的东西。
下载的 quantmod 数据已针对股息进行了调整。看看最近的每日价格,然后在 2017 年 10 月对股息进行修正:
aa <- getSymbols("F", src="yahoo", periodicity = "daily", from="2007-10-01", auto.assign = FALSE)
aa["2017-10/"]
随着时间的推移计算股息会导致 yahoo 和您下载的 xts 对象中的价格发生变化。例如OHL 价格调整了 15 美分,这是 10 月份分红前的分红规模。股息支付后,请注意 yahoo 和 xts 对象中的 OHL 价格是如何相同的。
如果你想return没有股息调整的雅虎数据,在getSymbols调用中添加adjust
参数设置为TRUE
(这是函数getSymbols.yahoo
/getSymbols.yahooj
):
a2 <- getSymbols("F", src="yahoo", periodicity = "daily", from="2007-10-01", auto.assign = FALSE, adjust = TRUE)
head(a2["2012-10"])
F.Open F.High F.Low F.Close F.Volume F.Adjusted
2012-10-01 9.89 10.08 9.88 7.932703 33445600 7.932703
2012-10-02 10.01 10.05 9.71 7.820863 63630000 7.820863
2012-10-03 9.82 10.02 9.76 7.940693 51023800 7.940693
2012-10-04 10.06 10.15 9.96 8.076502 46855500 8.076502
2012-10-05 10.17 10.28 10.13 8.116439 40693900 8.116439
2012-10-08 10.06 10.12 9.99 8.028567 25473900 8.028567
正如雅虎网站上所指出的,他们网站上的数据似乎考虑了股票分割。