Learn R Programming

RQuantLib (version 0.2.8)

DiscountCurve: Returns the discount curve (with zero rates and forwards) given times

Description

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.

Usage

DiscountCurve(params, tsQuotes, times)

Arguments

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,
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: ll{ flat rate for a flat yield curve d1w
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

Value

  • DiscountCurve returns a list containing:
  • timesVector of input times
  • discountsCorresponding discount factors
  • forwardsCorresponding forward rates with time span dt
  • zeroratesCorresponding zero coupon rates
  • flatQuotesTrue if a flat quote was used, False otherwise
  • paramsThe input parameter list

Details

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 $t_1$ to $t_2$ is determined by the relation $$d_1/d_2 = e^{f (t_2 - t_1)},$$ where $d_1$ and $d_2$ are discount factors corresponding to the two times. In the case of the zero rate $t_1$ 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.)

References

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.

See Also

BermudanSwaption

Examples

Run this code
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)

Run the code above in your browser using DataLab