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

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.

example

Input Arguments

expand all

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

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.

Version History

Introduced in R2008b