DiscountCurve {RQuantLib} | R Documentation |
DiscountCurve
constructs the spot term structure of interest
rates based on input market data including the settlement date,
deposit rates, futures prices, FRA rates, or swap rates, in various
combinations. It returns the corresponding discount factors, zero
rates, and forward rates for a vector of times that is specified
as input.
DiscountCurve(params, tsQuotes, times)
params |
A list specifying the tradeDate (month/day/year),
settleDate , forward rate
time span dt , and two curve
construction options: interpWhat (with possible values
discount , forward , and zero ) and
interpHow (with possible values linear ,
loglinear , and spline ). spline here means cubic spline
interpolation of the interpWhat value.
| ||||||||||||||||||||||||||||||||||||
tsQuotes |
Market quotes used to construct the spot term
structure of interest rates. Must be a list of name/value pairs,
where the currently recognized names are:
flat is specified it must be the first and only item in
the list. The eight futures correspond to the first eight IMM
dates. The maturity dates of the instruments specified need not be
ordered, but they must be distinct.
| ||||||||||||||||||||||||||||||||||||
times |
A vector of times at which to return the discount
factors, forward rates, and zero rates. Times must be specified such
that the largest time plus dt does not exceed the longest
maturity of the instruments used for calibration (no extrapolation).
|
This function is based on QuantLib
Version 0.3.10. It
introduces support for fixed-income instruments in RQuantLib
.
Forward rates and zero rates are computed assuming continuous compounding, so the forward rate f over the period from t1 to t2 is determined by the relation
d1/d2 = exp(f(t2 - t1)),
where d1 and d2 are discount factors corresponding to the two times. In the case of the zero rate t1 is the current time (the spot date).
Curve construction can be a delicate problem and the algorithms may
fail for some input data sets and/or some combinations of the
values for interpWhat
and interpHow
.
Fortunately, the C++ exception mechanism seems to work well with the R
interface, and QuantLib
exceptions are propagated back to the
R user, usually with a message that indicates what went wrong. (The
first part of the message contains technical information about the
precise location of the problem in the QuantLib
code. Scroll to
the end to find information that is meaningful to the R user.)
DiscountCurve
returns a list containing:
times |
Vector of input times |
discounts |
Corresponding discount factors |
forwards |
Corresponding forward rates with time span dt |
zerorates |
Corresponding zero coupon rates |
flatQuotes |
True if a flat quote was used, False otherwise |
params |
The input parameter list |
Dominick Samperi
Brigo, D. and Mercurio, F. (2001) Interest Rate Models: Theory and Practice, Springer-Verlag, New York.
For information about QuantLib
see http://quantlib.org.
For information about RQuantLib
see
http://dirk.eddelbuettel.com/code/rquantlib.html.
savepar <- par(mfrow=c(3,3)) # This data is taken from sample code shipped with QuantLib 0.3.10. params <- list(tradeDate=as.Date('2002-2-15'), settleDate=as.Date('2002-2-19'), dt=.25, interpWhat="discount", interpHow="loglinear") tsQuotes <- list(d1w =0.0382, d1m =0.0372, fut1=96.2875, fut2=96.7875, fut3=96.9875, fut4=96.6875, fut5=96.4875, fut6=96.3875, fut7=96.2875, fut8=96.0875, s3y =0.0398, s5y =0.0443, s10y =0.05165, s15y =0.055175) times <- seq(0,10,.1) # Loglinear interpolation of discount factors curves <- DiscountCurve(params, tsQuotes, times) plot(curves,setpar=FALSE) # Linear interpolation of discount factors params$interpHow="linear" curves <- DiscountCurve(params, tsQuotes, times) plot(curves,setpar=FALSE) # Spline interpolation of discount factors params$interpHow="spline" curves <- DiscountCurve(params, tsQuotes, times) plot(curves,setpar=FALSE) par(savepar)