DiscountCurve           package:RQuantLib           R Documentation

_R_e_t_u_r_n_s _t_h_e _d_i_s_c_o_u_n_t _c_u_r_v_e (_w_i_t_h _z_e_r_o _r_a_t_e_s _a_n_d _f_o_r_w_a_r_d_s) _g_i_v_e_n _t_i_m_e_s

_D_e_s_c_r_i_p_t_i_o_n:

     '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.

_U_s_a_g_e:

     DiscountCurve(params, tsQuotes, times)

_A_r_g_u_m_e_n_t_s:

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

_D_e_t_a_i_l_s:

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

_V_a_l_u_e:

     '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

_A_u_t_h_o_r(_s):

     Dominick Samperi

_R_e_f_e_r_e_n_c_e_s:

     Brigo, D. and Mercurio, F. (2001) _Interest Rate Models: Theory
     and Practice_, Springer-Verlag, New York.

     For information about 'QuantLib' see <URL: http://quantlib.org>.

     For information about 'RQuantLib' see <URL:
     http://dirk.eddelbuettel.com/code/rquantlib.html>.

_S_e_e _A_l_s_o:

     'BermudanSwaption'

_E_x_a_m_p_l_e_s:

     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)

