# BOPM: Binomial option pricing model In QFRM: Pricing of Vanilla and Exotic Option Contracts

## 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

 `1` ```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)

## Author(s)

Oleg Melnikov, Department of Statistics, Rice University, Spring 2015

## 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)

`BOPM_Eu` for European option via vectorized approach.