diff options
| -rw-r--r-- | R/yieldcurve.R | 52 |
1 files changed, 28 insertions, 24 deletions
diff --git a/R/yieldcurve.R b/R/yieldcurve.R index d3cdc7bc..b6b4cbbc 100644 --- a/R/yieldcurve.R +++ b/R/yieldcurve.R @@ -32,36 +32,40 @@ getMarkitIRData <- function(date=Sys.Date()) { return( xmlToList(paste(filename,".xml", sep="")) )
}
-buildMarkitYC <- function(MarkitData, dt=0.25){
+buildMarkitYC <- function(MarkitData, futurequotes, dt=0.25){
settledate <- as.Date(MarkitData$deposits$spotdate)
-
- params <- list(tradeDate=as.Date(MarkitData$effectiveasof,format="%Y-%m-%d"),
+ params <- list(tradeDate=as.Date(MarkitData$effectiveasof, format="%Y-%m-%d"),
settleDate=settledate,
dt=dt,
interpWhat="discount",
interpHow="loglinear")
- tsQuotes <- list(d1m=as.numeric(MarkitData$deposits[5]$curvepoint$parrate),
- #d2m=as.numeric(MarkitData$deposits[6]$curvepoint$parrate),
- d3m=as.numeric(MarkitData$deposits[7]$curvepoint$parrate),
- ## d6m=as.numeric(MarkitData$deposits[8]$curvepoint$parrate),
- ## d9m=as.numeric(MarkitData$deposits[9]$curvepoint$parrate),
- ## d1y=as.numeric(MarkitData$deposits[10]$curvepoint$parrate),
- s2y=as.numeric(MarkitData$swaps[8]$curvepoint$parrate),
- s3y=as.numeric(MarkitData$swaps[9]$curvepoint$parrate),
- #s4y=as.numeric(MarkitData$swaps[10]$curvepoint$parrate),
- s5y=as.numeric(MarkitData$swaps[11]$curvepoint$parrate),
- #s6y=as.numeric(MarkitData$swaps[12]$curvepoint$parrate),
- #s7y=as.numeric(MarkitData$swaps[13]$curvepoint$parrate),
- #s8y=as.numeric(MarkitData$swaps[14]$curvepoint$parrate),
- #s9y=as.numeric(MarkitData$swaps[15]$curvepoint$parrate),
- s10y=as.numeric(MarkitData$swaps[16]$curvepoint$parrate),
- #s12y=as.numeric(MarkitData$swaps[17]$curvepoint$parrate),
- s15y=as.numeric(MarkitData$swaps[18]$curvepoint$parrate),
- s20y=as.numeric(MarkitData$swaps[19]$curvepoint$parrate),
- #s25y=as.numeric(MarkitData$swaps[20]$curvepoint$parrate),
- s30y=as.numeric(MarkitData$swaps[21]$curvepoint$parrate))
+ short.term <- list()
+ if(missing(futurequotes)){
+ short.term <- list(d1m=as.numeric(MarkitData$deposits[5]$curvepoint$parrate),
+ d3m=as.numeric(MarkitData$deposits[7]$curvepoint$parrate))
+ }else{
+ for(i in 1:8){
+ short.term[[paste0("fut",i)]] <- futurequotes[i]
+ }
+ }
+
+ tsQuotes <- c(short.term,
+ list(
+ s2y=as.numeric(MarkitData$swaps[8]$curvepoint$parrate),
+ s3y=as.numeric(MarkitData$swaps[9]$curvepoint$parrate),
+ ##s4y=as.numeric(MarkitData$swaps[10]$curvepoint$parrate),
+ s5y=as.numeric(MarkitData$swaps[11]$curvepoint$parrate),
+ ##s6y=as.numeric(MarkitData$swaps[12]$curvepoint$parrate),
+ ##s7y=as.numeric(MarkitData$swaps[13]$curvepoint$parrate),
+ ##s8y=as.numeric(MarkitData$swaps[14]$curvepoint$parrate),
+ ##s9y=as.numeric(MarkitData$swaps[15]$curvepoint$parrate),
+ s10y=as.numeric(MarkitData$swaps[16]$curvepoint$parrate),
+ ##s12y=as.numeric(MarkitData$swaps[17]$curvepoint$parrate),
+ s15y=as.numeric(MarkitData$swaps[18]$curvepoint$parrate),
+ s20y=as.numeric(MarkitData$swaps[19]$curvepoint$parrate),
+ ##s25y=as.numeric(MarkitData$swaps[20]$curvepoint$parrate),
+ s30y=as.numeric(MarkitData$swaps[21]$curvepoint$parrate)))
YC.USD <- list(params=params, tsQuotes=tsQuotes)
return( YC.USD )
}
-
|
