Price barrier option from Cox-Ross-Rubinstein binomial tree
[Price, PriceTree] = barrierbycrr(CRRTree,
Settle, ExerciseDates, AmericanOpt, BarrierSpec, Barrier,
Stock tree structure created by crrtree.
NINST-by-1 list of string values 'Call' or 'Put'.
NINST-by-1 vector of strike price values. Each row is the schedule for one option.
NINST-by-1 vector of Settle dates. The settle date for every barrier option is set to the valuation date of the stock tree. The barrier argument Settle is ignored.
For a European option (AmericanOpt = 0):
NINST-by-1 vector of exercise dates. Each row is the schedule for one option. For a European option, there is only one exercise date, the option expiry date.
For an American option (AmericanOpt = 1):
NINST-by-2 vector of exercise date boundaries. For each instrument, the option can be exercised on any tree date between or including the pair of dates on that row. If only one non-NaN date is listed, or if ExerciseDates is NINST-by-1, the option can be exercised between the valuation date of the stock tree and the single listed exercise date.
If AmericanOpt = 0, NaN, or is unspecified, the option is a European option. If AmericanOpt = 1, the option is an American option.
List of string values:
'UI': Up Knock In
'UO': Up Knock Out
'DI': Down Knock In
'DO': Down Knock Out
Vector of barrier values.
(Optional) NINST-by-1 matrix of rebate values. Default = 0. For Knock-in options, the rebate is paid at expiry. For Knock-out options, the rebate is paid when the barrier is reached.
(Optional) Derivatives pricing options structure created with derivset.
See instbarrier for a description of barrier contract arguments.
Price is a NINST-by-1 vector of expected prices at time 0.
PriceTree is a tree structure with a vector of instrument prices at each node.
This example shows how to to price a barrier option using a CRR binomial tree by loading the file deriv.mat, which provides CRRTree. The CRRTree structure contains the stock specification and time information needed to price the option.
load deriv.mat; OptSpec = 'Call'; Strike = 105; Settle = '01-Jan-2003'; ExerciseDates = '01-Jan-2006'; AmericanOpt = 1; BarrierSpec = 'UI'; Barrier = 102; Price = barrierbycrr(CRRTree, OptSpec, Strike, Settle, ... ExerciseDates, AmericanOpt, BarrierSpec, Barrier)
Price = 12.1272
Derman, E., I. Kani, D. Ergener and I. Bardhan, "Enhanced Numerical Methods for Options with Barriers," Financial Analysts Journal, (Nov. - Dec. 1995), pp. 65-74.