diff options
Diffstat (limited to 'R/yieldcurve.R')
| -rw-r--r-- | R/yieldcurve.R | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/R/yieldcurve.R b/R/yieldcurve.R index 96729c25..ddde9ae3 100644 --- a/R/yieldcurve.R +++ b/R/yieldcurve.R @@ -88,3 +88,27 @@ buildMarkitYC <- function(MarkitData, futurequotes, dt=0.25){ YC.USD <- list(params=params, tsQuotes=tsQuotes)
return( YC.USD )
}
+
+exportYC <- function(tradedate=Sys.Date(), calibration.date=tradedate){
+ ## export the Yield Curve into the environment
+ require(RQuantLib)
+ futurequotes <- read.csv(file.path(root.dir, "data", "Yield Curves",
+ sprintf("futures-%s.csv", calibration.date)), header=F)
+ ##retrieve yield curve data
+ MarkitData <- getMarkitIRData(tradedate)
+ L1m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/12)
+ L2m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/6)
+ L3m <- buildMarkitYC(MarkitData, futurequotes[,2])
+ L6m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/2)
+
+ if(!isBusinessDay(calendar="UnitedStates/GovernmentBond",dates=as.Date(MarkitData$effectiveasof))){
+ setEvaluationDate(addBusDay(tradedate=as.Date(MarkitData$effectiveasof),-1))
+ }else{
+ setEvaluationDate(as.Date(MarkitData$effectiveasof))
+ }
+ setCalendarContext("TARGET")
+ assign("L1m", L1m, env = parent.env(environment()))
+ assign("L2m", L2m, env = parent.env(environment()))
+ assign("L3m", L3m, env = parent.env(environment()))
+ assign("L6m", L6m, env = parent.env(environment()))
+}
|
