首页 文章

下载quantmod数据时出错

提问于
浏览
2

我目前正在关注财经视频,而且我的时间是以下8:02 video . 我认为,就视频作者所做的那样,我在下载数据时出错了 .

我已粘贴下面的代码,您应该可以从Rstudio窗口运行而无需下载任何其他文件 .

我首先使用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,而Adj的价格为9.88 . 当我查看我通过quantmod软件包下载的数据时,我打开2012-10-01作为12.380和Adj Close 8.915304 . 我完全理解在下载数据时可能存在值的差异,但为什么我通过quantmod包得到的值大不相同 .

进一步

我去雅虎财经网站交叉检查 Value 观 . 这是2012年10月1日的Yahoo link或雅虎在9月30日至2012年的开盘价为9.89,调整后的收盘价为8.92,非常接近视频中的 Value .

为什么通过quantmod导入不正确,这是漫长的一天,所以我假设我错过了一些东西 .

1 回答

  • 3

    下载的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月的股息大小 . 派息后,请注意雅虎和xts对象的OHL价格是如何相同的 .

    https://finance.yahoo.com/quote/F/history?period1=1352178000&period2=1509944400&interval=1d&filter=history&frequency=1d

    如果要在不进行分红调整的情况下返回雅虎数据,请在getSymbols调用中将 adjust 参数集添加到 TRUE (这是函数 getSymbols.yahoo / getSymbols.yahooj 的passthru参数):

    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
    

    正如雅虎网站上所指出的,似乎股票拆分在其网站上的数据中得到了解释 .

相关问题