AmericanOption: American Option evaluation using Finite Differences

View source: R/option.R

AmericanOptionR Documentation

American Option evaluation using Finite Differences

Description

This function evaluations an American-style option on a common stock using finite differences. The option value as well as the common first derivatives ("Greeks") are returned.

Usage

## Default S3 method:
AmericanOption(type, underlying, strike,
		dividendYield, riskFreeRate, maturity, volatility, 
		timeSteps=150, gridPoints=149, engine="BaroneAdesiWhaley", 
		discreteDividends, discreteDividendsTimeUntil)

Arguments

type

A string with one of the values call or put

underlying

Current price of the underlying stock

strike

Strike price of the option

dividendYield

Continuous dividend yield (as a fraction) of the stock

riskFreeRate

Risk-free rate

maturity

Time to maturity (in fractional years)

volatility

Volatility of the underlying stock

timeSteps

Time steps for the “CrankNicolson” finite differences method engine, default value is 150

gridPoints

Grid points for the “CrankNicolson” finite differences method, default value is 149

engine

String selecting pricing engine, currently supported are “BaroneAdesiWhaley” and “CrankNicolson”

discreteDividends

Vector of discrete dividends (optional)

discreteDividendsTimeUntil

Vector of times to discrete dividends (in fractional years, optional)

Details

The Finite Differences method is used to value the American Option.

Please see any decent Finance textbook for background reading, and the QuantLib documentation for details on the QuantLib implementation.

Value

An object of class AmericanOption (which inherits from class Option) is returned. It contains a list with the following components:

value

Value of option

delta

Sensitivity of the option value for a change in the underlying

gamma

Sensitivity of the option delta for a change in the underlying

vega

Sensitivity of the option value for a change in the underlying's volatility

theta

Sensitivity of the option value for a change in t, the remaining time to maturity

rho

Sensitivity of the option value for a change in the risk-free interest rate

dividendRho

Sensitivity of the option value for a change in the dividend yield

Note that under the new pricing framework used in QuantLib, pricers do not provide analytics for all 'Greeks'. When “CrankNicolson” is selected, then at least delta, gamma and vega are available. With the default pricing engine of “BaroneAdesiWhaley”, no greeks are returned.

The “CrankNicolson” engine needs to be used when setting discrete dividends.

Note

The interface might change in future release as QuantLib stabilises its own API.

Author(s)

Dirk Eddelbuettel edd@debian.org for the R interface; the QuantLib Group for QuantLib

References

https://www.quantlib.org/ for details on QuantLib.

See Also

EuropeanOption

Examples

# simple call with unnamed parameters
AmericanOption("call", 100, 100, 0.02, 0.03, 0.5, 0.4)
# simple call with some explicit parameters
AmericanOption("put", strike=100, volatility=0.4, 100, 0.02, 0.03, 0.5)
# simple call with unnamed parameters, using Crank-Nicolons
AmericanOption("put", strike=100, volatility=0.4, 100, 0.02, 0.03, 0.5, engine="CrankNicolson")

eddelbuettel/rquantlib documentation built on March 27, 2024, 12:23 p.m.