black_scholes_on_term_structures function

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

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

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.

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 ss this takes the form (Tt)s2(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 ss this takes the form (Tt)s2(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).

Examples

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

See Also

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

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

  • Maintainer: Brian K. Boonstra
  • License: GPL (>= 2)
  • Last published: 2020-03-03

Useful links