Quantmod getSymbols系统地回归中国股票的缺失价值

问题描述 投票:1回答:2

今天(2019-2-27),我发现几乎所有在上海/深圳上市的中国公司的股票价格都不能通过quantmod中的“getSymbols”功能完全下载,它总是会产生缺失数据的警告信息。但是,美国公司和在美国上市的中国公司都没有受到影响。据我所知,这是我第一次遇到这个问题。我在想这个过程的哪些部分出了问题。雅虎财务数据库或getSymbols ???我尝试的例子实际上是一些最大的公司,所以我假设他们的股票数据是完全可用的。

> getSymbols("BABA") ### Alibaba listed in US, not affected
[1] "BABA"
> getSymbols("BILI")  
[1] "BILI"
> getSymbols("0700.hk") ### Tencent listed in HK, affected.
[1] "0700.HK"
Warning message:
0700.hk contains missing values. Some functions will not work if objects contain missing values in the middle of the series. Consider using na.omit(), na.approx(), na.fill(), etc to remove or replace them. 
> getSymbols("601398.SS")
[1] "601398.SS"
Warning message:
601398.SS contains missing values. Some functions will not work if objects contain missing values in the middle of the series. Consider using na.omit(), na.approx(), na.fill(), etc to remove or replace them. 
> getSymbols("601318.SS")
[1] "601318.SS"
Warning message:
601318.SS contains missing values. Some functions will not work if objects contain missing values in the middle of the series. Consider using na.omit(), na.approx(), na.fill(), etc to remove or replace them. 
r quantmod yahoo-finance
2个回答
1
投票

这是一个雅虎问题。如果你看看雅虎历史数据标签上的december 2011 data from tencent,你可以看到雅虎没有12月24日和31日的数据。哪三个是缺少数据的记录中的两个。另一个是2008-08-22。

你知道,使用getSymbols for yahoo的默认请求始于2007-01-01。所以你可以把它改成更近的日期。但它是免费数据。您不能期望与其他数据提供商具有相同的数据质量。对于其他代码,雅虎更经常发生这种情况。


0
投票

是的,正如上面提到的@phiver,来自雅虎财务数据库的数据质量并不令人满意。与此同时,自2018年3月以来,谷歌财务已停止为quantmod提供支持。因此,我在quantmod的框架内寻找另一个数据源。

我发现tiingo数据库开始支持quantmod作为谷歌财务退出。 https://www.r-bloggers.com/goodbye-google-hello-tiingo/

  1. 去tiingo网站创建一个帐户,然后你有api。
  2. 使用getSymbols.tiingo(ticker,api.key =“your key”)来下载数据

顺便说一下,与getSymbols相比,getSymbol.tiingo中的中国股票的股票代码有点不同。您无需指明哪个证券交易所,ss或sz。

getSymbols("000001.SS")

getSymbols.tiingo("000001",api.key="xxxxx")

你也可能需要存储你的api.key,我建议你创建一个片段,这是我迄今为止找到的最有效的方法。在我关于如何在Rstudio中存储api.key的另一个答案中可以看到更多细节。

© www.soinside.com 2019 - 2024. All rights reserved.