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.
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
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 European Options: black_scholes_on_term_structures(), blackscholes(), implied_volatilities(), implied_volatility_with_term_struct(), implied_volatility()