DiscountCurve {RQuantLib} | R Documentation

## 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`, `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` | rate for a flat yield curve
`d1w` | 1-week deposit rate
`d1m` | 1-month deposit rate
`d3m` | 3-month deposit rate
`d6m` | 6-month deposit rate
`d9m` | 9-month deposit rate
`d1y` | 1-year deposit rate
`s2y` | 2-year swap rate
`s3y` | 3-year swap rate
`s5y` | 5-year swap rate
`s10y` | 10-year swap rate
`s15y` | 15-year swap rate
`s20y` | 20-year swap rate
`s30y` | 30-year swap rate
`fut1`–`fut8` | 3-month futures contracts
`fra3x6` | 3x6 FRA
`fra6x9` | 6x9 FRA
`fra6x12` | 6x12 FRA
Here rates are expected as fractions (so 5% means .05). If `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).

### 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 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.)

### Value

`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
`params` | The input parameter list

### Author(s)

Dominick Samperi

### 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

    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)

[Package RQuantLib version 0.2.7 Index]