我想寫一個簡單的函數,(應)返回true如果參數日期(s)是一個Op-Ex星期五。找到一個特定的日期是否是一個期權到期星期五 - 問題與timeDate包
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的錯誤嗎?
您的代碼在我的計算機上正常工作。 – Andrie