Предупреждение: getSymbols, tq_get, getSymbols.yahoo не возвращает цены на текущий момент - PullRequest
0 голосов
/ 24 декабря 2018

Это действительно больше предупреждения, но я спрашиваю и отвечаю на вопрос.Когда параметр to указан в getSymbols, tq_get, getSymbols, функция возвращает цены на даты до, но не включая дату, даже если в документации (quantmod::getSymbols.yahoo) указано, что она будет "Получить данные через эту дату ".Рассмотрим следующий пример, взятый из тидиквантной виньетки :

Ra <- c("AAPL", "GOOG", "NFLX") %>%
tq_get(get  = "stock.prices",
       from = "2010-01-01",
       to   = "2015-12-31")

Можно ожидать, что результат будет включать цены за 2015-12-31, но он возвращает цены только до 2015-12-30.Есть цены на 31-е;рынок был открыт и цены можно посмотреть на Yahoo Finance .

Документация, такая как виньетка, часто показывает результат только функции головы, поэтому эту деталь легко пропустить.Если в этом примере вам нужна производительность в 2015 году, вы пропустите день.

Итак, вопрос: как заставить эти функции возвращать цены вплоть до параметра даты to включительно?

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Имейте в виду, что функция getSymbols с источником yahoo возвращает index.class типа Date.Если вы отправляете свои данные из Tiingo, возвращаемый index.class имеет тип POSIXct, и вы получаете данные, включая «с даты», как и ожидалось.Т.е.

getSymbols("AAPL", src = "tiingo", to = "2015-12-31", api.key = "xxx"); tail(AAPL)
[1] "AAPL"
           AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume
2015-12-23    107.27    108.85 107.2000     108.61    32657354
2015-12-24    109.00    109.00 107.9500     108.03    13596680
2015-12-28    107.59    107.69 106.1807     106.82    26704210
2015-12-29    106.96    109.43 106.8600     108.74    30931243
2015-12-30    108.58    108.70 107.1800     107.32    25213777
2015-12-31    107.01    107.03 104.8200     105.26    40912316

(внимание: вставьте свой личный api.token от Tiingo, вместо 3 'x' в моем примере)

Check: ?getSymbols.tiingo, который предназначен длявызываться внутренне только getSymbols.Этот метод не предназначен для непосредственного вызова, вместо этого вызывается getSymbols("x", src="tiingo”).

. Если вы хотите использовать данные Yahoo, простое решение состоит в том, чтобы опустить аргумент to и поместить данные вжелаемая дата окончания:

tail(getSymbols('AAPL',auto.assign = F)['::2015-12-31'])
           AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2015-12-23    107.27    108.85   107.20     108.61    32657400     103.01801
2015-12-24    109.00    109.00   107.95     108.03    13570400     102.46785
2015-12-28    107.59    107.69   106.18     106.82    26704200     101.32014
2015-12-29    106.96    109.43   106.86     108.74    30931200     103.14129
2015-12-30    108.58    108.70   107.18     107.32    25213800     101.79442
2015-12-31    107.01    107.03   104.82     105.26    40635300      99.84048
0 голосов
/ 24 декабря 2018

Я предлагаю добавить день к параметру даты to.Я пытался изменить свой часовой пояс на UTC безрезультатно.В этом примере укажите параметр to:

as.Date ("2015-12-31") + lubridate :: days (1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...