这确实是一个警告,但我确实提出并回答了一个问题。在to
,getSymbols
,tq_get
中指定了getSymbols
日期参数后,即使文档中包含( quantmod::getSymbols.yahoo
)声明它将“在此日期之前检索数据”。考虑以下示例,该示例取自tidyquant vignette:
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上查看价格。
文档(例如tidyquant小插图)经常仅显示head功能的结果,因此这是一个容易遗漏的细节。如果在此示例中,您想获得2015年的表现,那您将迷失一天。
那么问题来了:我如何获得这些函数以返回直到并包括to
日期参数的价格?
答案 0 :(得分:2)
请注意,带有源getSymbols
的{{1}}函数将返回yahoo
类型的index.class。如果您从Tiingo采购数据,则返回的index.class类型为Date
,您将获得所需的数据,并按预期包括“起始日期”。即
POSIXct
(注意:请从Tiingo输入您的个人api.token,而不是示例中的3个“ x”)
检查: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
,仅由?getSymbols.tiingo
内部调用。不应直接调用此方法,而应调用getSymbols
。
如果要使用Yahoo数据,简单的解决方案是省略getSymbols("x", src="tiingo”)
参数并将数据子集化为所需的结束日期:
to
答案 1 :(得分:0)
我的建议是在to
日期参数中增加一天。我试图将我的时区更改为UTC,但没有任何效果。在示例中,设置to
参数:
as.Date(“ 2015-12-31”)+ lubridate :: days(1)
答案 2 :(得分:0)
对我有用的是:getSymbols(“ xxx”,src =“ yahoo”,from = xxx,to = end,periodicity =“ daily”) 其中end = Sys.Dat()+ 10
那是我得到当天价格的时候