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: [1x102 double]
         dObs: [1x102 double]
        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 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: 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.

Introduced in R2010b