# BinomialTreeOptions: Binomial Tree Option Model In fOptions: Rmetrics - Pricing and Evaluating Basic Options

## Description

A collection and description of functions to valuate options in the framework of the Binomial tree option approach.

The functions are:

 `CRRBinomialTreeOption` CRR Binomial Tree Option, `JRBinomialTreeOption` JR Binomial Tree Option, `TIANBinomialTreeOption` TIAN Binomial Tree Option, `BinomialTreeOption` Binomial Tree Option, `BinomialTreePlot` Binomial Tree Plot.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11``` ```CRRBinomialTreeOption(TypeFlag = c("ce", "pe", "ca", "pa"), S, X, Time, r, b, sigma, n, title = NULL, description = NULL) JRBinomialTreeOption(TypeFlag = c("ce", "pe", "ca", "pa"), S, X, Time, r, b, sigma, n, title = NULL, description = NULL) TIANBinomialTreeOption(TypeFlag = c("ce", "pe", "ca", "pa"), S, X, Time, r, b, sigma, n, title = NULL, description = NULL) BinomialTreeOption(TypeFlag = c("ce", "pe", "ca", "pa"), S, X, Time, r, b, sigma, n, title = NULL, description = NULL) BinomialTreePlot(BinomialTreeValues, dx = -0.025, dy = 0.4, cex = 1, digits = 2, ...) ```

## Arguments

 `b` the annualized cost-of-carry rate, a numeric value; e.g. 0.1 means 10% pa. `BinomialTreeValues` the return value from the `BinomialTreeOption` function. `cex` a numerical value giving the amount by which the plotting text and symbols should be scaled relative to the default. `description` a character string which allows for a brief description. `digits` an integer value, how many digits should be displayed in the option tree? `dx, dy` numerical values, an offset fine tuning for the placement of the option values in the option tree. `n` number of time steps; an integer value. `r` the annualized rate of interest, a numeric value; e.g. 0.25 means 25% pa. `S` the asset price, a numeric value. `sigma` the annualized volatility of the underlying security, a numeric value; e.g. 0.3 means 30% volatility pa. `Time` the time to maturity measured in years, a numeric value; e.g. 0.5 means 6 months. `title` a character string which allows for a project title. `TypeFlag` a character string either `"ce"`, `"ca"` for an European or American call option or a `"pe"`, `"pa"` for a put option, respectively. `X` the exercise price, a numeric value. `...` arguments to be passed.

## Details

CRR Binomial Tree Model:

Binomial models were first suggested by Cox, Ross and Rubinstein (1979), CRR, and then became widely used because of its intuition and easy implementation. Binomial trees are constructed on a discrete-time lattice. With the time between two trading events shrinking to zero, the evolution of the price converges weakly to a lognormal diffusion. Within this mode the European options value converges to the value given by the Black-Scholes formula.

JR Binomial Tree Model:

There exist many extensions of the CRR model. Jarrow and Rudd (1983), JR, adjusted the CRR model to account for the local drift term. They constructed a binomial model where the first two moments of the discrete and continuous time return processes match. As a consequence a probability measure equal to one half results. Therefore the CRR and JR models are sometimes atrributed as equal jumps binomial trees and equal probabilities binomial trees.

TIAN Binomial Tree Model:

Tian (1993) suggested to match discrete and continuous local moments up to third order.

Leisen and Reimer (1996) proved that the order of convergence in pricing European options for all three methods is equal to one, and thus the three models are equivalent.

## Value

The option price, a numeric value.

## Note

Note, the `BinomialTree` and `BinomialTreePlot` are preliminary implementations.

## Author(s)

Diethelm Wuertz for the Rmetrics R-port.

## References

Broadie M., Detemple J. (1994); American Option Evaluation: New Bounds, Approximations, and a Comparison of Existing Methods, Working Paper, Columbia University, New York.

Cox J., Ross S.A., Rubinstein M. (1979); Option Pricing: A Simplified Approach, Journal of Financial Economics 7, 229–263.

Haug E.G. (1997); The complete Guide to Option Pricing Formulas, McGraw-Hill, New York.

Hull J.C. (1998); Introduction to Futures and Options Markets, Prentice Hall, London.

Jarrow R., Rudd A. (1983); Option Pricing, Homewood, Illinois, 183–188.

Leisen D.P., Reimer M., (1996); Binomial Models for Option Valuation – Examining and Improving Convergence, Applied Mathematical Finanace 3, 319–346.

Tian Y. (1993); A Modified Lattice Approach to Option Pricing, Journal of Futures Markets 13, 563–577.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44``` ```## Cox-Ross-Rubinstein Binomial Tree Option Model: # Example 14.1 from Hull's Book: CRRBinomialTreeOption(TypeFlag = "pa", S = 50, X = 50, Time = 5/12, r = 0.1, b = 0.1, sigma = 0.4, n = 5) # Example 3.1.1 from Haug's Book: CRRBinomialTreeOption(TypeFlag = "pa", S = 100, X = 95, Time = 0.5, r = 0.08, b = 0.08, sigma = 0.3, n = 5) # A European Call - Compare with Black Scholes: CRRBinomialTreeOption(TypeFlag = "ce", S = 100, X = 100, Time = 1, r = 0.1, b = 0.1, sigma = 0.25, n = 50) GBSOption(TypeFlag = "c", S = 100, X = 100, Time = 1, r = 0.1, b = 0.1, sigma = 0.25)@price ## CRR - JR - TIAN Model Comparison: # Hull's Example as Function of "n": par(mfrow = c(2, 1), cex = 0.7) steps = 50 CRROptionValue = JROptionValue = TIANOptionValue = rep(NA, times = steps) for (n in 3:steps) { CRROptionValue[n] = CRRBinomialTreeOption(TypeFlag = "pa", S = 50, X = 50, Time = 0.4167, r = 0.1, b = 0.1, sigma = 0.4, n = n)@price JROptionValue[n] = JRBinomialTreeOption(TypeFlag = "pa", S = 50, X = 50, Time = 0.4167, r = 0.1, b = 0.1, sigma = 0.4, n = n)@price TIANOptionValue[n] = TIANBinomialTreeOption(TypeFlag = "pa", S = 50, X = 50, Time = 0.4167, r = 0.1, b = 0.1, sigma = 0.4, n = n)@price } plot(CRROptionValue[3:steps], type = "l", col = "red", ylab = "Option Value") lines(JROptionValue[3:steps], col = "green") lines(TIANOptionValue[3:steps], col = "blue") # Add Result from BAW Approximation: BAWValue = BAWAmericanApproxOption(TypeFlag = "p", S = 50, X = 50, Time = 0.4167, r = 0.1, b = 0.1, sigma = 0.4)@price abline(h = BAWValue, lty = 3) title(main = "Convergence") data.frame(CRROptionValue, JROptionValue, TIANOptionValue) ## Plot CRR Option Tree: # Again Hull's Example: CRRTree = BinomialTreeOption(TypeFlag = "pa", S = 50, X = 50, Time = 0.4167, r = 0.1, b = 0.1, sigma = 0.4, n = 5) BinomialTreePlot(CRRTree, dy = 1, cex = 0.8, ylim = c(-6, 7), xlab = "n", ylab = "Option Value") title(main = "Option Tree") ```

fOptions documentation built on May 2, 2019, 2:27 p.m.