implied_volatility: Implied volatility of european-exercise option under...

Description Usage Arguments Details Value See Also Examples

View source: R/calibration.R

Description

Find default-free volatility (not necessarily just Black-Scholes) based on known interest rates and hazard rates, using a given option price.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
implied_volatility(
  option_price,
  callput,
  S0,
  K,
  r,
  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 value

callput

1 for calls, -1 for puts

S0

initial underlying price

K

strike

r

risk-free interest rate

time

Time from 0 until expiration

const_default_intensity

hazard rate of underlying default

divrate

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

borrow_cost

A continuous rate for stock borrow costs

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. To handle truly fixed dividends, see implied_jump_process_volatility

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

Details

To get a straight Black-Scholes implied volatility, simply call this function with const_default_intensity set to zero (the default).

Value

A scalar volatility

See Also

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_with_rates_struct(), implied_volatilities(), implied_volatility_with_term_struct()

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_with_rates_struct(), implied_volatilities(), implied_volatility_with_term_struct()

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

Examples

1
2
3
4
5
implied_volatility(2.5, 1, 100, 105, 0.01, 0.75)
implied_volatility(option_price = 17,
                   callput = CALL, S0 = 250,  K=245,
                   r = 0.005, time = 2,
                   const_default_intensity = 0.03)

Example output

Loading required package: limSolve
Loading required package: futile.logger
Welcome to ragtop.  Logging can be enabled with commands such as
  futile.logger::flog.threshold(futile.logger::INFO, name='ragtop.calibration')
[1] 0.121443
[1] NA

ragtop documentation built on March 26, 2020, 7:28 p.m.