lrtree

Build Leisen-Reimer stock tree

Syntax

``LRTree = lrtree(StockSpec,RateSpec,TimeSpec,Strike)``
``LRTree = lrtree(___,Name,Value)``

Description

example

````LRTree = lrtree(StockSpec,RateSpec,TimeSpec,Strike)` builds a Leisen-Reimer stock tree. ```

example

````LRTree = lrtree(___,Name,Value)` adds a name-value pair argument. ```

Examples

collapse all

This example shows how to build Leisen-Reimer stock tree. Consider a European put option with an exercise price of \$30 that expires on June 1, 2010. The underlying stock is trading at \$30 on January 1, 2010 and has a volatility of 30% per annum. The annualized continuously compounded risk-free rate is 5% per annum. Using this data, create a Leisen-Reimer tree with 101 steps using the `PP1` method.

```AssetPrice = 30; Strike = 30; ValuationDate = 'Jan-1-2010'; Maturity = 'June-1-2010'; % define StockSpec Sigma = 0.3; StockSpec = stockspec(Sigma, AssetPrice); % define RateSpec Rates = 0.05; Settle = ValuationDate; Basis = 1; Compounding = -1; RateSpec = intenvset('ValuationDate', ValuationDate, 'StartDates', Settle, ... 'EndDates', Maturity, 'Rates', Rates, 'Compounding', Compounding, 'Basis', Basis); % build the Leisen-Reimer (LR) tree with 101 steps LRTimeSpec = lrtimespec(ValuationDate, Maturity, 101); % use the PP1 method LRMethod = 'PP1'; LRTree = lrtree(StockSpec, RateSpec, LRTimeSpec, Strike, ... 'method', LRMethod)```
```LRTree = struct with fields: FinObj: 'BinStockTree' Method: 'LR' Submethod: 'PP1' Strike: 30 StockSpec: [1x1 struct] TimeSpec: [1x1 struct] RateSpec: [1x1 struct] tObs: [0 0.0041 0.0082 0.0123 0.0164 0.0205 0.0246 0.0288 0.0329 0.0370 0.0411 0.0452 0.0493 0.0534 0.0575 0.0616 0.0657 0.0698 0.0739 0.0780 0.0821 0.0863 0.0904 0.0945 0.0986 0.1027 0.1068 0.1109 0.1150 0.1191 0.1232 0.1273 0.1314 0.1355 ... ] dObs: [734139 734140 734141 734143 734144 734146 734147 734149 734150 734152 734153 734155 734156 734158 734159 734161 734162 734164 734165 734167 734168 734170 734171 734173 734174 734176 734177 734179 734180 734182 734183 734185 734186 ... ] STree: {1x102 cell} UpProbs: [101x1 double] ```

Input Arguments

collapse all

Stock specification for underlying asset, specified using `StockSpec` obtained from `stockspec`. For information on the stock specification, see `stockspec`.

`stockspec` can handle other types of underlying assets. For example, stocks, stock indices, and commodities. If dividends are not specified in `StockSpec`, dividends are assumed to be `0`.

Data Types: `struct`

Interest-rate specification for initial rate curve, specified by the `RateSpec` obtained from `intenvset`. For information on the interest-rate specification, see `intenvset`.

Data Types: `struct`

Time tree layout specification, specified using the `TimeSpec` output obtained from `lrtimespec`.

Data Types: `struct`

Option strike price value, specified as a scalar nonnegative integer.

Data Types: `double`

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: ```LRTree = lrtree(StockSpec,RateSpec,LRTimeSpec,Strike,'Method','PP2')```

Computation method, specified as the comma-separated pair consisting of `'Method'` and a character vector with a value of `'PP1'` or `'PP2'`. `'PP1'` is for Peizer-Pratt method 1 inversion and `'PP2'` is for Peizer-Pratt method 2 inversion. For more information on `'PP1'` and `'PP2'` methods, see Leisen-Reimer Tree (LR) Modeling.

Data Types: `char`

Output Arguments

collapse all

Stock and time information for a Leisen-Reimer tree, returned as a structure.

References

[1] Leisen D.P., M. Reimer. “Binomial Models for Option Valuation – Examining and Improving Convergence.” Applied Mathematical Finance. Number 3, 1996, pp. 319–346.

Version History

Introduced in R2010b