Main Content

IRBootstrapOptions

Construct specific options for bootstrapping interest-rate curve object

Description

Build an IRBootstrapOptions object using IRBootstrapOptions.

After creating an IRBootstrapOptions object, you can use the object with bootstrap.

For more detailed information on this workflow, see Interest-Rate Curve Objects and Workflow.

Creation

Description

example

IRBootstrapOptions_obj = IRBootstrapOptions(Name,Value) sets properties and create the IRBootstrapOptions object to use with the bootstrap function. For example, IRBootstrapOptions_obj = IRBootstrapOptions('LowerBound',-1) creates an IRBootstrapOptions object. You can specify multiple name-value pair arguments.

Input Arguments

expand all

Name-Value Pair Arguments

Specify optional 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.

Example: IRBootstrapOptions_obj = IRBootstrapOptions('LowerBound',-1)

Controls the convexity adjustment to interest rate futures, specified as the comma-separated pair consisting of 'ConvexityAdjustment' and a function handle or an N-by-1 numeric vector.

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

Data Types: double | function_handle

Upper bound for rates associated with bonds or swaps, specified as the comma-separated pair consisting of 'UpperBound' and a scalar numeric or an 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.

Data Types: double

Lower bound for rates associated with bonds or swaps, specified as the comma-separated pair consisting of 'LowerBound' and a scalar numeric or an N-by-1 vector where N is the number of swaps and bonds. By default, LowerBound is 0.

Data Types: double

Properties

expand all

This property is read-only.

Controls the convexity adjustment to interest rate futures, returned as a function handle or an N-by-1 numeric vector.

Data Types: double | function_handle

Upper bound for rates associated with bonds or swaps, returned as a scalar numeric or an N-by-1 vector.

Data Types: double

Lower bound for rates associated with bonds or swaps, returned as a scalar numeric or an N-by-1 vector.

Data Types: double

Object Functions

bootstrapBootstrap interest-rate curve from market data

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