由于滚动 VaR 在缺少完整窗口时会出错,因此我做了以下估算 36 个月的滚动 VaR(HAM5 和 HAM6 缺少 36 个月的窗口):
library(PerformanceAnalytics)
data(managers)
var<-rollapply(managers,36,function(x){
if(!all(is.na(x))){
return(VaR(x, p=.95, method="modified",align = "right", fill = NA))
} else {
return(NA)
}
})
这工作正常,但在估计预期短缺和预期尾部损失时会出错:
ES<-rollapply(managers,36,function(x){
if(!all(is.na(x))){
return(ES(x, p=.95, method="modified",align = "right", fill = NA,))
} else {
return(NA)
}
})
ETL<-rollapply(managers,36,function(x){
if(!all(is.na(x))){
return(ETL(x, p=.95, method="modified",align = "right", fill = NA,))
} else {
return(NA)
}
})
错误:
Error in if (eval(0 > tmp)) { : missing value where TRUE/FALSE needed
非常感谢“ES”和“ETL”的更正代码。