Learn R Programming

QFRM (version 1.0.1)

BOPM: Binomial option pricing model

Description

Compute option price via binomial option pricing model (recombining symmetric binomial tree). If no tree requested for European option, vectorized algorithm is used.

Usage

BOPM(o = OptPx(), IncBT = TRUE)

Arguments

o
An OptPx object
IncBT
Values TRUE or FALSE indicating whether to include a list of all option tree values (underlying and derivative prices) in the returned OptPx object.

Value

An original OptPx object with PxBT field as the binomial-tree-based price of an option and (an optional) the fullly-generated binomial tree in BT field.
  • IncBT = FALSE: option price value (type double, class numeric)
  • IncBT = TRUE: binomial tree as a list (of length (o$NSteps+1) of numeric matrices (2 x i)
Each matrix is a set of possible i outcomes at time step i columns: (underlying prices, option prices)

References

Hull, J.C., Options, Futures and Other Derivatives, 9ed, 2014. Prentice Hall. ISBN 978-0-13-345631-8, http://www-2.rotman.utoronto.ca/~hull/ofod. http://amzn.com/0133456315

#See Fig.13.11, Hull/9e/p291. #Create an option and price it o = Opt(Style='Eu', Right='C', S0 = 808, ttm = .5, K = 800) o = BOPM( OptPx(o, r=0.05, q=0.02, vol=0.2, NSteps=2), IncBT=TRUE) o$PxBT #print added calculated price to PxBT field

#Fig.13.11, Hull/9e/p291: o = Opt(Style='Eu', Right='C', S0=810, ttm=.5, K=800) BOPM( OptPx(o, r=0.05, q=0.02, vol=0.2, NSteps=2), IncBT=TRUE)$PxBT

#DerivaGem diplays up to 10 steps: o = Opt(Style='Am', Right='C', 810, .5, 800) BOPM( OptPx(o, r=0.05, q=0.02, vol=0.2, NSteps=20), IncBT=TRUE)

#DerivaGem computes up to 500 steps: o = Opt(Style='American', Right='Put', 810, 0.5, 800) BOPM( OptPx(o, r=0.05, q=0.02, vol=0.2, NSteps=1000), IncBT=FALSE)

See Also

BOPM_Eu for European option via vectorized approach.