diff options
Diffstat (limited to 'cds_utils.R')
| -rw-r--r-- | cds_utils.R | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/cds_utils.R b/cds_utils.R index f0799a8f..afb8f400 100644 --- a/cds_utils.R +++ b/cds_utils.R @@ -77,7 +77,11 @@ couponSchedule <- function(nextpaydate=NULL, maturity, frequency, coupontype, cu Q = "3 months",
M = "1 month",
B = "2 months",
- S = "6 months")
+ S = "6 months",
+ A = "12 months")
+ if(is.null(bystring)){
+ stop("unknown frequency")
+ }
if(is.null(nextpaydate)){
dates <- rev(seq(maturity, today(), by =paste0("-", bystring)))
}else{
@@ -91,7 +95,9 @@ couponSchedule <- function(nextpaydate=NULL, maturity, frequency, coupontype, cu S = DiscountCurve(L6m$params, L6m$tsQuotes, yearFrac(L6m$params$tradeDate, dates)),
Q = DiscountCurve(L3m$params, L3m$tsQuotes, yearFrac(L3m$params$tradeDate, dates)),
M = DiscountCurve(L1m$params, L1m$tsQuotes, yearFrac(L1m$params$tradeDate, dates)),
- B = DiscountCurve(L2m$params, L2m$tsQuotes, yearFrac(L2m$params$tradeDate, dates)))
+ B = DiscountCurve(L2m$params, L2m$tsQuotes, yearFrac(L2m$params$tradeDate, dates)),
+ A = DiscountCurve(L12m$params, L12m$tsQuotes, yearFrac(L12m$params$tradeDate, dates)))
+
if(coupontype=="FLOAT" && !is.na(margin)){ #if is.na(margin) probably letter of credit
coupons <- pmax(currentcoupon, DC$forwards + margin)
}else{
|
