【发布时间】:2011-09-23 06:42:32
【问题描述】:
我正在尝试编写一个简单的函数,如果参数 date(s) 是 Op-Ex Friday,则(应该)返回 true。
require(timeDate)
require(quantmod)
getSymbols("^GSPC", adjust=TRUE, from="1960-01-01")
assign("SPX", GSPC, envir=.GlobalEnv)
names(SPX) <- c("SPX.Open", "SPX.High", "SPX.Low", "SPX.Close",
"SPX.Volume", "SPX.Adjusted")
dates <- last(index(SPX), n=10)
from <- as.numeric(format(as.Date(min(dates)), "%Y"))
to <- as.numeric(format(as.Date(max(dates)), "%Y"))
isOpExFriday <- ifelse(
isBizday(
timeDate(as.Date(dates)),
holidayNYSE(from:to)) & (as.Date(dates) == as.Date(
format(timeNthNdayInMonth(timeFirstDayInMonth(dates), nday=5, nth=3)))
), TRUE, FALSE)
现在,结果应该是[1] "2011-09-16"。但相反,我得到了[1] "2011-09-15":
dates[isOpExFriday]
[1] "2011-09-15"
我是不是做错了什么,期待 timeDate 包没有按设计做的事情,还是 timeDate 中存在错误?
【问题讨论】:
-
您的代码在我的机器上运行正常。
标签: r datetime finance quantmod