diff options
| -rw-r--r-- | R/thetas-durations.R | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/R/thetas-durations.R b/R/thetas-durations.R index 8fd60295..487ef8cc 100644 --- a/R/thetas-durations.R +++ b/R/thetas-durations.R @@ -45,9 +45,9 @@ fastduration <- function(sc, cs, tradedate, maturities){ startdate <- tradedate+1 acc <- cdsAccrued(tradedate, 1) for(i in seq_along(maturities)){ - r[i] <- if(startdate <= maturities[i]){ - couponleg(cs[cs$unadj.dates<=maturities[i],], sc, - startdate, accruedondefault=TRUE)-acc + if(startdate <= maturities[i]){ + r[i] <- couponleg(cs[cs$unadj.dates<=maturities[i],], sc, + startdate, accruedondefault=TRUE)-acc } } return( r ) @@ -116,9 +116,10 @@ for(index in c('IG', 'HY')){ ## 0, tradedate, IMMDate(tradedate, "prev")) ## quotes <- data.frame(upfront=(100-as.numeric(indexquotes[i,-1]))/100, maturities) ## sc <- cdshazardrate(quotes, recov, tradedate, cs) - ## durandthetas <- rbind(r, c(fastduration(sc, cs, tradedate, maturities$maturity), + ## durandthetas <- rbind(durandthetas, c(fastduration(sc, cs, tradedate, maturities$maturity), ## fasttheta(sc, cs, recov, tradedate, maturities$maturity, quotes$upfront, coupon))) ## } + n <- nrow(maturities) df.durations <- data.frame(date=indexquotes$date, durandthetas[,1:n, drop=F]) df.thetas <- data.frame(date=indexquotes$date, durandthetas[,(n+1):(2*n), drop=F]) |
