我对R还是比较陌生,因此对我的编码之旅非常有价值,所以首先:感谢所有贡献者!
我正在编写一些有关期权交易的代码,但是某些RQuantLib函数存在问题。我正在尝试使用“美国/纽约”日历向日期“添加”日期。如果您运行下面的代码,则可以看到该值与businessDaysBetween函数的预期值不同(请注意日期和返回的天数或作为参数):
library(RQuantLib)
# This shows there is only one business day between the dates using the "UnitedStates/NYSE" calendar
businessDaysBetween(calendar = "UnitedStates/NYSE", from = as.Date("2010-06-20"), to = as.Date("2010-06-22"))
# And this next line of code should advance the date to "2010-06-22" but doesn't...
advance(calendar = "UnitedStates/NYSE", dates = as.Date("2010-06-20"), n = 1, timeUnit = 0)
在帮助我的过程中,任何帮助将不胜感激!
最好
L
答案 0 :(得分:0)
好的,所以对我来说不是一个好的开始。我意识到了问题所在:如果不是工作日,提前会移动到您提供日期之后的第一个工作日。
如果有用,我编写了以下函数来做到这一点。如果其他人知道更好的解决方法,请告诉我们!
GenerateClosestBusinessDay <- function(date) {
d <- 0
repeat {
if (isBusinessDay(calendar = cal, dates = as.Date(date + d))) {
return(as.Date(date + d))
break
} else {
d <- d + 1
}
}
}