implied_volatilities_with_rates_struct function

Find the implied volatility of european-exercise options with a term structure of interest rates

Find the implied volatility of european-exercise options with a term structure of interest rates

Use the provided discount factor function to infer constant short rates applicable to each expiration time, then use the Black-Scholes formula to generate European option values and run them through Newton's method until a constant volatility matching each provided option price has been found.

implied_volatilities_with_rates_struct( option_price, callput, S0, K, discount_factor_fcn, time, const_default_intensity = 0, divrate = 0, borrow_cost = 0, dividends = NULL, relative_tolerance = 1e-06, max.iter = 100, max_vola = 4 )

Arguments

  • option_price: Present option values (may be a vector)
  • callput: 1 for calls, -1 for puts (may be a vector)
  • S0: initial underlying prices (may be a vector)
  • K: strikes (may be a vector)
  • discount_factor_fcn: A function for computing present values to time t, with arguments T, t
  • time: Time from 0 until expirations (may be a vector)
  • const_default_intensity: hazard rates of underlying default (may be a vector)
  • divrate: A continuous rate for dividends and other cashflows such as foreign interest rates (may be a vector)
  • borrow_cost: A continuous rate for stock borrow costs (may be a vector)
  • 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 proprtional for purposes of this algorithm.
  • relative_tolerance: Relative tolerance in option price to achieve before halting the search
  • max.iter: Number of iterations to try before abandoning the search
  • max_vola: Maximum volatility to try in the search

Returns

Scalar volatilities

Details

Differs from implied_volatility_with_term_struct by first computing constant interest rates for each option, and then calling implied_volatilities

Examples

d_fcn = function(T,t) {exp(-0.03*(T-t))} implied_volatilities_with_rates_struct(c(23,24,25), c(-1,1,1), 100, 100, discount_factor_fcn=d_fcn, time=c(4,4,5))

See Also

implied_volatility for simpler cases with constant parameters, implied_volatilities for the underlying algorithm with constant rates, implied_volatility_with_term_struct when volatilities or survival probabilities also have a nontrivial term structure

Other Implied Volatilities: american_implied_volatility(), equivalent_bs_vola_to_jump(), equivalent_jump_vola_to_bs(), fit_variance_cumulation(), implied_jump_process_volatility(), implied_volatilities(), implied_volatility_with_term_struct(), implied_volatility()

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

Other Equity Independent Default Intensity: american_implied_volatility(), american(), black_scholes_on_term_structures(), blackscholes(), equivalent_bs_vola_to_jump(), equivalent_jump_vola_to_bs(), implied_volatilities(), implied_volatility_with_term_struct(), implied_volatility()

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

Useful links