getSymbols(quantmod)给出错误的日期

时间:2012-12-22 00:29:59

标签: r finance xts quantmod

我正在使用quantmod包来获取股票数据。代码

Data = getSymbols('LON:ADN',src="google",auto.assign=FALSE, from = '2011-08-10')

按预期结果为xts,但仔细研究后显示2012-10-21(10月21日)是一个星期天的交易量,因此显然是错误的。其他几个星期日也包括在内。不幸的是,围绕周末的错误似乎已经使其余的数据不一致。

之前是否有人遇到类似的问题,使用quantmod获取代码,如果有,他们是否知道绕过它们的方法?

由于

1 个答案:

答案 0 :(得分:3)

正如您在评论中提到的,这看起来像是时区问题,可能是由于xts函数中的POSIX日期转换(请参阅this answer)。

Sys.getenv("TZ")为空字符串时,我能够在新的R会话中重现该问题。将时区设置为任何有效时区(并非所有测试时间),例如,"America/Chicago"会产生预期日期,即没有星期日:

在一个新的会议上(2012年12月16日是星期天):

Sys.getenv("TZ")
# [1] ""

library(quantmod)
Data <- getSymbols('LON:ADN',src="google",auto.assign=FALSE, from = '2011-08-10')
tail(index(Data))
# [1] "2012-12-13" "2012-12-16" "2012-12-17" "2012-12-18" "2012-12-19" "2012-12-20"

然后更改时区

Sys.setenv(TZ="America/Chicago")

Data <- getSymbols('LON:ADN',src="google",auto.assign=FALSE, from = '2011-08-10')
tail(index(Data))
# [1] "2012-12-14" "2012-12-17" "2012-12-18" "2012-12-19" "2012-12-20" "2012-12-21"

没有星期天。