Price one or more american-exercise options

Description

Use a control-variate scheme to simultaneously estimate the present values of a collection of one or more American-exercise options under a default model with survival probabilities not linked to equity prices.

Usage

1
2
3
4
5
6
7
american(callput, S0, K, time, const_short_rate = 0,
  const_default_intensity = 0, discount_factor_fcn = function(T, t, ...) {  
    exp(-const_short_rate * (T - t)) }, survival_probability_fcn = function(T,
  t, ...) {     exp(-const_default_intensity * (T - t)) },
  default_intensity_fcn = function(t, S, ...) {     const_default_intensity +
  0 * S }, ..., num_time_steps = 100, structure_constant = 2,
  std_devs_width = 5)

Arguments

callput

1 for calls, -1 for puts (may be a vector of the same)

S0

initial underlying price

K

strike (may be a vector)

time

Time from 0 until expiration (may be a vector)

const_short_rate

A constant to use for the instantaneous interest rate in case discount_factor_fcn is not given

const_default_intensity

A constant to use for the instantaneous default intensity in case default_intensity_fcn is not given

discount_factor_fcn

A function for computing present values to time t of various cashflows occurring during this timestep, with arguments T, t

survival_probability_fcn

(Implied argument) A function for probability of survival, with arguments T, t and T>t. E.g. with a constant volatility s this takes the form (T-t)s^2. Should be matched to default_intensity_fcn

default_intensity_fcn

A function for computing default intensity occurring at a given time, dependent on time and stock price, with arguments t, S. Should be matched to survival_probability_fcn

...

Further arguments passed on to find_present_value

num_time_steps

Number of steps to use in the grid solver. Can usually be set quite low due to the control variate scheme.

structure_constant

The maximum ratio between time intervals dt and the square of space intervals dz^2

std_devs_width

The number of standard deviations, in sigma * sqrt(T) units, to incorporate into the grid

Details

The scheme uses find_present_value() to price the options and their European-exercise equivalents. It then compares the latter to black-scholes formula output and uses the results as an error correction on the prices of the American-exercise options.

Value

A vector of estimated option present values

See Also

Other American Exercise Equity Options: american_implied_volatility, control_variate_pairs

Other Equity Independent Default Intensity: american_implied_volatility, black_scholes_on_term_structures, blackscholes, equivalent_bs_vola_to_jump, equivalent_jump_vola_to_bs, implied_volatilities_with_rates_struct, implied_volatilities, implied_volatility_with_term_struct, implied_volatility

Examples

1
2
3
4
5
6
american(PUT, S0=100, K=110, time=0.77, const_short_rate = 0.06,
         const_volatility=0.20, num_time_steps=200)
american(callput=-1, S0=100, K=90, time=1, const_short_rate=0.025,
         variance_cumulation_fcn = function(T, t) {  # Term structure of vola
             0.45 ^ 2 * (T - t) + 0.15^2 * max(0, T-0.25)
         })

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.