aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--R/thetas-durations.R9
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])