Black-Scholes pricing of european-exercise options with term structure arguments

Description

Price an option according to the famous Black-Scholes formula, with the optional addition of a jump-to-default intensity and discrete dividends. Volatility and rates may be provided as constants or as 2+ parameter functions with first argument T corresponding to maturity and second argument t corresponding to model date.

Usage

1
2
3
4
5
6
7
black_scholes_on_term_structures(callput, S0, K, time, const_volatility = 0.5,
  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)) },
  variance_cumulation_fcn = function(T, t) {     const_volatility^2 * (T - t)
  }, dividends = NULL, borrow_cost = 0, dividend_rate = 0)

Arguments

callput

1 for calls, -1 for puts

S0

initial underlying price

K

strike

time

Time from 0 until expiration

const_volatility

A constant to use for volatility in case variance_cumulation_fcn is not given

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

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.

variance_cumulation_fcn

A function for computing total stock variance occurring during this timestep, with arguments T, t. E.g. with a constant volatility s this takes the form (T-t)s^2.

dividends

A data.frame with columns time, fixed, and proportional. Dividend size at the given time is then expected to be equal to fixed + proportional * S / S0. Fixed dividends will be converted to proportional for purposes of this algorithm.

borrow_cost

A continuous rate for stock borrow costs

dividend_rate

A continuous rate for dividends and other cashflows such as foreign interest rates

Details

Any term structures will be converted to equivalent constant arguments by calling them with the arguments (time, 0).

See Also

Other Equity Independent Default Intensity: american_implied_volatility, american, 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

Other European Options: blackscholes, implied_volatilities_with_rates_struct, implied_volatilities, implied_volatility_with_term_struct, implied_volatility

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
black_scholes_on_term_structures(callput=-1, S0=100, K=90, time=1,
                                 discount_factor_fcn = function(T, t, ...) {
                                   exp(-0.03 * (T - t))
                                 },
                                 survival_probability_fcn = function(T, t, ...) {
                                   exp(-0.07 * (T - t))
                                 },
                                 variance_cumulation_fcn = function(T, t) {
                                   0.45 ^ 2 * (T - t)
                                 })

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