BermudanSwaption          package:RQuantLib          R Documentation

_B_e_r_m_u_d_a_n _s_w_a_p_t_i_o_n _v_a_l_u_a_t_i_o_n _u_s_i_n_g _s_e_v_e_r_a_l _s_h_o_r_t-_r_a_t_e _m_o_d_e_l_s

_D_e_s_c_r_i_p_t_i_o_n:

     'BermudanSwaption' prices a Bermudan swaption with specified
     strike and maturity (in years), after calibrating the selected
     short-rate model to an input swaption volatility matrix. Swaption
     maturities are in years down the rows, and swap tenors are in
     years along the columns, in the usual fashion. It is assumed that
     the Bermudan swaption is exercisable on each reset date of the
     underlying swaps.

_U_s_a_g_e:

     BermudanSwaption(params, tsQuotes, swaptionMaturities, swapTenors,
     volMatrix)

_A_r_g_u_m_e_n_t_s:

  params: A list specifying the 'tradeDate' (month/day/year),
          'settlementDate', 'payFixed' flag, 'strike', pricing
          'method', and curve construction options (see _Examples_
          section below). Curve construction options are 'interpWhat'
          (possible values are 'discount', 'forward', and 'zero') and
          'interpHow' (possible values are 'linear', 'loglinear' , and
          'spline'). Both 'interpWhat' and 'interpHow' are ignored when
          a flat yield curve is requested, but they must be present
          nevertheless. The pricing method can be one of the following
          (all short-rate models):

            'G2Analytic'  G2 2-factor Gaussian model using analytic formulas.
            'HWAnalytic'  Hull-White model using analytic formulas.
            'HWTree'      Hull-White model using a tree.
            'BKTree'      Black-Karasinski model using a tree.

tsQuotes: Market observables needed to construct the spot term
          structure of interest rates. A list of name/value pairs. See
          the help page for 'DiscountCurve' for details.

swaptionMaturities: A vector containing the swaption maturities
          associated with the rows of the swaption volatility matrix.

swapTenors: A vector containing the underlying swap tenors associated
          with the columns of the swaption volatility matrix.

volMatrix: The swaption volatility matrix. Must be a 2D matrix stored
          by rows. See the example below.

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

     At present only a small number of the many parameters that can be
     set in 'QuantLib' are exposed by this function. Some of the
     hard-coded parameters that apply to the current version include:
     day-count conventions, fixing days (2), index (Euribor), fixed leg
     frequency (annual), and floating leg frequency (semi-annual).
     Also, it is assumed that the swaption volatility matrix
     corresponds to expiration dates and tenors that are measured in
     years (a 6-month expiration date is not currently supported, for
     example).

     Given the number of parameters that must be specified and the care
     with which they must be specified (with no defaults), it is not
     practical to use this function in the usual interactive fashion.

     The simplest approach is simply to save the example below to a
     file, edit as desired, and 'source' the result. Alternatively, the
     input commands can be kept in a script file (under Windows) or an
     Emacs/ESS session (under Linux), and selected parts of the script
     can be executed in the usual way.

     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:

     'BermudanSwaption' returns a list containing calibrated model
     paramters (what parameters are returned depends on the model
     selected) along with: 

   price: Price of swaption in basis points (actual price equals
          'price' times notional divided by 10,000)

ATMStrike: At-the-money strike

  params: 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:

     'DiscountCurve'

_E_x_a_m_p_l_e_s:

     # 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'),
                    payFixed=TRUE,
                    strike=.06,
                    method="G2Analytic",
                    interpWhat="discount",
                    interpHow="loglinear")
                     
     # Market data used to construct the term structure of interest rates
     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)

     # Use this to compare with the Bermudan swaption example from QuantLib
     #tsQuotes <- list(flat=0.04875825)

     # Swaption volatility matrix with corresponding maturities and tenors
     swaptionMaturities <- c(1,2,3,4,5)

     swapTenors <- c(1,2,3,4,5)

     volMatrix <- matrix(
                         c(0.1490, 0.1340, 0.1228, 0.1189, 0.1148,
                           0.1290, 0.1201, 0.1146, 0.1108, 0.1040,
                           0.1149, 0.1112, 0.1070, 0.1010, 0.0957,
                           0.1047, 0.1021, 0.0980, 0.0951, 0.1270,
                           0.1000, 0.0950, 0.0900, 0.1230, 0.1160),
                         ncol=5, byrow=TRUE)

     # Price the Bermudan swaption
     pricing <- BermudanSwaption(params, tsQuotes,
                                 swaptionMaturities, swapTenors, volMatrix)
     summary(pricing)

