Quantmod getSymbols систематически возвращает недостающие данные по китайским акциям - PullRequest
0 голосов
/ 27 февраля 2019

Сегодня (2019-2-27) я обнаружил, что почти все цены на акции китайских компаний, перечисленных в Шанхае / Шэньчжэне, не могут быть полностью загружены функцией «getSymbols» в Quantmod, которая всегда генерирует предупреждающее сообщение об отсутствующих данных.Однако ни американские компании, ни китайские компании, зарегистрированные в США, не пострадали.Насколько я помню, я впервые сталкиваюсь с этой проблемой.Я думал, какие части этого процесса пошли не так.Yahoo финансовая база данных или 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. 

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Да, как упоминалось выше @phiver, качество данных из финансовой базы данных Yahoo не удовлетворяет.Между тем, с марта 2018 года Google Finance прекратил оказывать поддержку Quantmod. Таким образом, я искал другой источник данных в рамках QuantMod.

Я обнаружил, что база данных tiingo начала поддерживать QuantMod при выходе из Google Finance.https://www.r -bloggers.com / goodbye-google-hello-tiingo /

  1. зайдите на сайт tiingo, чтобы создать учетную запись, тогда у вас есть api.
  2. используйте getSymbols.tiingo (ticker, api.key = "ваш ключ") для загрузки данных

кстати, тикер китайских акций немного отличается в getSymbol.tiingo по сравнению с getSymbols,Вам не нужно указывать, какая биржа, сс или сз.

getSymbols("000001.SS")

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

Также вам может понадобиться сохранить ваш api.key, я рекомендую вам создать фрагмент, это самый эффективный способ, который я нашел до сих пор.Дальнейшие подробности можно увидеть в моем другом ответе о том, как хранить api.key в Rstudio.

0 голосов
/ 27 февраля 2019

Это проблема Yahoo.Если вы посмотрите на данные за декабрь 2011 года из tencent на вкладке исторических данных Yahoo, вы увидите, что у Yahoo нет данных за 24 и 31 декабря.Которые являются двумя из 3 записей, в которых отсутствуют данные.Другой для 2008-08-22.

Вы знаете, что запрос по умолчанию с getSymbols для Yahoo начинается в 2007-01-01.Таким образом, вы можете изменить это на более позднюю дату.Но это бесплатные данные.Вы не можете ожидать того же качества данных, что и другие поставщики данных.И это часто случается с Yahoo для других тикеров.

...