Main Content

IRBootstrapOptions

Construct specific options for bootstrapping interest-rate curve object

Syntax

mybootoptions = IRBootstrapOptions(Name,Value)

Arguments

ConvexityAdjustment

(Optional) Controls the convexity adjustment to interest-rate futures. This can be specified as a function handle that takes one numeric input (time-to-maturity) and returns one numeric output, ConvexityAdjustment. For more information on defining a function handle, see the MATLAB® Programming Fundamentals documentation.

Alternatively, you can define ConvexityAdjustment as an N-by-1 vector of values, where N is the number of interest-rate futures.

In either case, the ConvexityAdjustment is subtracted from the futures rate.

LowerBound

(Optional) Specifies a lower bound for rates associated with bonds or swaps. LowerBound can be a scalar or N-by-1 vector where N is the number of swaps and bonds. By default, LowerBound is 0.

UpperBound

(Optional) Specifies an upper bound for rates associated with bonds or swaps. UpperBound can be a scalar or N-by-1 vector where N is the number of swaps and bonds. By default, UpperBound is 1. Specify an upper bound that is greater than 1 when bootstrapping a discount curve.

Description

mybootoptions = IRBootstrapOptions(Name,Value) constructs an IRBootstrapOptionsObj structure. You must enter the optional arguments for ConvexityAdjustment, LowerBound, and UpperBound as comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

The IRBootstrapOptionsObj is used with the bootstrap method.

Examples

collapse all

Set the ConvexityAdjustment to control interest-rate futures.

mybootoptions = IRBootstrapOptions('ConvexityAdjustment',repmat(.005,10,1))
mybootoptions = 
  IRBootstrapOptions with properties:

    ConvexityAdjustment: [10x1 double]
             LowerBound: 0
             UpperBound: 1

Use mybootoptions as the optional argument, IRBootstrapOptionsObj, to use with the bootstrap method.

Use an IRBootstrapOptionsObj optional argument with the bootstrap method to allow for negative zero rates when solving the swap zero points.

Settle = datenum('15-Mar-2015'); 
InstrumentTypes = {'Deposit';'Deposit';'Swap';'Swap';'Swap';'Swap';}; 

Instruments = [Settle,datenum('15-Jun-2015'),.001; ... 
Settle,datenum('15-Dec-2015'),.0005; ... 
Settle,datenum('15-Mar-2016'),-.001; ... 
Settle,datenum('15-Mar-2017'),-0.0005; ... 
Settle,datenum('15-Mar-2018'),.0017; ... 
Settle,datenum('15-Mar-2020'),.0019]; 

irbo = IRBootstrapOptions('LowerBound',-1); 

bootModel = IRDataCurve.bootstrap('zero', Settle, InstrumentTypes,... 
    Instruments,'IRBootstrapOptions',irbo); 

bootModel.getZeroRates(datemnth(Settle,1:60))
ans = 60×1

    0.0012
    0.0011
    0.0010
    0.0009
    0.0008
    0.0008
    0.0007
    0.0006
    0.0005
   -0.0000
      ⋮

Note that IRBootstrapOptions optional argument for LowerBound is set to -1 for negative zero rates when solving the swap zero points.

Introduced in R2008b