Stochastic volatility with Fourier inversion¶
-
class
BsmFft
(sigma, intr=0.0, divr=0.0, is_fwd=False)[source] Option pricing under Black-Scholes-Merton (BSM) model using fast fourier transform (FFT).
Examples
>>> import numpy as np >>> import pyfeng as pf >>> m = pf.BsmFft(sigma=0.2, intr=0.05, divr=0.1) >>> m.price(np.arange(80, 121, 10), 100, 1.2) array([15.71362027, 9.69251556, 5.52948647, 2.94558375, 1.4813909 ])
-
charfunc_logprice
(x, texp) Characteristic function of log price
- Parameters
x –
texp –
Returns:
-
delta
(strike, spot, texp, cp=1) Option model delta (sensitivity to price) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
delta value
-
delta_numeric
(strike, spot, texp, cp=1) Option model delta (sensitivity to price) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
delta value
-
fft_interp
(texp, *args, **kwargs) FFT method based on the Lewis expression
References
-
forward
(spot, texp) Forward price
- Parameters
spot – spot price
texp – time to expiry
- Returns
forward price
-
gamma
(strike, spot, texp, cp=1) Option model gamma (2nd derivative to price) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
Delta with numerical derivative
-
gamma_numeric
(strike, spot, texp, cp=1) Option model gamma (2nd derivative to price) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
Delta with numerical derivative
-
impvol
(price, strike, spot, texp, cp=1, setval=False) Implied volatility using Brent’s method. Slow but robust implementation.
- Parameters
price – option price
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put
setval – if True, sigma is set with the solved implied volatility
- Returns
implied volatility
-
impvol_brentq
(price, strike, spot, texp, cp=1, setval=False) Implied volatility using Brent’s method. Slow but robust implementation.
- Parameters
price – option price
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put
setval – if True, sigma is set with the solved implied volatility
- Returns
implied volatility
-
mgf_logprice
(uu, texp)[source] Moment generating function (MGF) of log price. (forward = 1)
- Parameters
xx – dummy variable
texp – time to expiry
- Returns
MGF value at xx
-
params_kw
() Model parameters in dictionary
-
pdf_numeric
(strike, spot, texp, cp=- 1, h=0.001) Probability density functin (PDF) at strike
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
probability densitiy
-
price
(strike, spot, texp, cp=1) Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) price.
texp – time to expiry.
cp – 1/-1 for call/put option.
- Returns
option price
-
theta
(strike, spot, texp, cp=1) Option model thegta (sensitivity to time-to-maturity) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
theta value
-
theta_numeric
(strike, spot, texp, cp=1) Option model thegta (sensitivity to time-to-maturity) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
theta value
-
vanna
(strike, spot, texp, cp=1) Option model vanna (cross-derivative to price and volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
vanna value
-
vanna_numeric
(strike, spot, texp, cp=1) Option model vanna (cross-derivative to price and volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
vanna value
-
vega
(strike, spot, texp, cp=1) Option model vega (sensitivity to volatility) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
vega value
-
vega_numeric
(strike, spot, texp, cp=1) Option model vega (sensitivity to volatility) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
vega value
-
volga
(strike, spot, texp, cp=1) Option model volga (2nd derivative to volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
volga value
-
volga_numeric
(strike, spot, texp, cp=1) Option model volga (2nd derivative to volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
volga value
-
-
class
ExpNigFft
(sigma, vov=0.01, rho=0.0, mr=0.01, theta=None, intr=0.0, divr=0.0, is_fwd=False)[source] -
charfunc_logprice
(x, texp) Characteristic function of log price
- Parameters
x –
texp –
Returns:
-
delta
(strike, spot, texp, cp=1) Option model delta (sensitivity to price) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
delta value
-
delta_numeric
(strike, spot, texp, cp=1) Option model delta (sensitivity to price) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
delta value
-
fft_interp
(texp, *args, **kwargs) FFT method based on the Lewis expression
References
-
forward
(spot, texp) Forward price
- Parameters
spot – spot price
texp – time to expiry
- Returns
forward price
-
gamma
(strike, spot, texp, cp=1) Option model gamma (2nd derivative to price) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
Delta with numerical derivative
-
gamma_numeric
(strike, spot, texp, cp=1) Option model gamma (2nd derivative to price) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
Delta with numerical derivative
-
impvol
(price, strike, spot, texp, cp=1, setval=False) Implied volatility using Brent’s method. Slow but robust implementation.
- Parameters
price – option price
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put
setval – if True, sigma is set with the solved implied volatility
- Returns
implied volatility
-
impvol_brentq
(price, strike, spot, texp, cp=1, setval=False) Implied volatility using Brent’s method. Slow but robust implementation.
- Parameters
price – option price
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put
setval – if True, sigma is set with the solved implied volatility
- Returns
implied volatility
-
classmethod
init_benchmark
(set_no=None) Initiate an SV model with stored benchmark parameter sets
- Parameters
set_no – set number
- Returns
Dataframe of all test cases if set_no = None (model, Dataframe of result, params) if set_no is specified
References:
-
mgf_logprice
(uu, texp)[source] - Parameters
uu –
texp –
Returns:
-
model_type
alias of
NotImplementedError
-
params_kw
() Model parameters in dictionary
-
pdf_numeric
(strike, spot, texp, cp=- 1, h=0.001) Probability density functin (PDF) at strike
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
probability densitiy
-
price
(strike, spot, texp, cp=1) Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) price.
texp – time to expiry.
cp – 1/-1 for call/put option.
- Returns
option price
-
theta_numeric
(strike, spot, texp, cp=1) Option model thegta (sensitivity to time-to-maturity) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
theta value
-
vanna
(strike, spot, texp, cp=1) Option model vanna (cross-derivative to price and volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
vanna value
-
vanna_numeric
(strike, spot, texp, cp=1) Option model vanna (cross-derivative to price and volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
vanna value
-
var_process
alias of
NotImplementedError
-
vega
(strike, spot, texp, cp=1) Option model vega (sensitivity to volatility) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
vega value
-
vega_numeric
(strike, spot, texp, cp=1) Option model vega (sensitivity to volatility) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
vega value
-
vol_smile
(strike, spot, texp, cp=1, model='bsm') Equivalent volatility smile for a given model
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put option
model – {‘bsm’, ‘norm’} ‘bsm’ (by default) for Black-Scholes-Merton, ‘norm’ for Bachelier
- Returns
volatility smile under the specified model
-
volga
(strike, spot, texp, cp=1) Option model volga (2nd derivative to volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
volga value
-
volga_numeric
(strike, spot, texp, cp=1) Option model volga (2nd derivative to volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
volga value
-
-
class
HestonFft
(sigma, vov=0.01, rho=0.0, mr=0.01, theta=None, intr=0.0, divr=0.0, is_fwd=False)[source] Heston model option pricing with FFT
References
Lewis AL (2000) Option valuation under stochastic volatility: with Mathematica code. Finance Press
Examples
>>> import numpy as np >>> import pyfeng as pf >>> strike = np.array([60, 70, 100, 140]) >>> sigma, vov, mr, rho, texp, spot = 0.04, 1, 0.5, -0.9, 10, 100 >>> m = pf.HestonFft(sigma, vov=vov, mr=mr, rho=rho) >>> m.price(strike, spot, texp) >>> # true price: 44.32997507, 35.8497697, 13.08467014, 0.29577444 array([44.32997507, 35.8497697 , 13.08467014, 0.29577444])
-
charfunc_logprice
(x, texp) Characteristic function of log price
- Parameters
x –
texp –
Returns:
-
delta
(strike, spot, texp, cp=1) Option model delta (sensitivity to price) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
delta value
-
delta_numeric
(strike, spot, texp, cp=1) Option model delta (sensitivity to price) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
delta value
-
fft_interp
(texp, *args, **kwargs) FFT method based on the Lewis expression
References
-
forward
(spot, texp) Forward price
- Parameters
spot – spot price
texp – time to expiry
- Returns
forward price
-
gamma
(strike, spot, texp, cp=1) Option model gamma (2nd derivative to price) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
Delta with numerical derivative
-
gamma_numeric
(strike, spot, texp, cp=1) Option model gamma (2nd derivative to price) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
Delta with numerical derivative
-
impvol
(price, strike, spot, texp, cp=1, setval=False) Implied volatility using Brent’s method. Slow but robust implementation.
- Parameters
price – option price
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put
setval – if True, sigma is set with the solved implied volatility
- Returns
implied volatility
-
impvol_brentq
(price, strike, spot, texp, cp=1, setval=False) Implied volatility using Brent’s method. Slow but robust implementation.
- Parameters
price – option price
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put
setval – if True, sigma is set with the solved implied volatility
- Returns
implied volatility
-
classmethod
init_benchmark
(set_no=None) Initiate an SV model with stored benchmark parameter sets
- Parameters
set_no – set number
- Returns
Dataframe of all test cases if set_no = None (model, Dataframe of result, params) if set_no is specified
References:
-
mgf_logprice
(uu, texp)[source] Log price MGF under the Heston model. We use the characteristic function in Eq (2.8) of Lord & Kahl (2010) that is continuous in branch cut when complex log is evaluated.
References
Heston SL (1993) A Closed-Form Solution for Options with Stochastic Volatility with Applications to Bond and Currency Options. The Review of Financial Studies 6:327–343. https://doi.org/10.1093/rfs/6.2.327
Lord R, Kahl C (2010) Complex Logarithms in Heston-Like Models. Mathematical Finance 20:671–694. https://doi.org/10.1111/j.1467-9965.2010.00416.x
-
params_kw
() Model parameters in dictionary
-
pdf_numeric
(strike, spot, texp, cp=- 1, h=0.001) Probability density functin (PDF) at strike
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
probability densitiy
-
price
(strike, spot, texp, cp=1) Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) price.
texp – time to expiry.
cp – 1/-1 for call/put option.
- Returns
option price
-
theta_numeric
(strike, spot, texp, cp=1) Option model thegta (sensitivity to time-to-maturity) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
theta value
-
vanna
(strike, spot, texp, cp=1) Option model vanna (cross-derivative to price and volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
vanna value
-
vanna_numeric
(strike, spot, texp, cp=1) Option model vanna (cross-derivative to price and volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
vanna value
-
var_process
alias of
NotImplementedError
-
vega
(strike, spot, texp, cp=1) Option model vega (sensitivity to volatility) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
vega value
-
vega_numeric
(strike, spot, texp, cp=1) Option model vega (sensitivity to volatility) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
vega value
-
vol_smile
(strike, spot, texp, cp=1, model='bsm') Equivalent volatility smile for a given model
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put option
model – {‘bsm’, ‘norm’} ‘bsm’ (by default) for Black-Scholes-Merton, ‘norm’ for Bachelier
- Returns
volatility smile under the specified model
-
volga
(strike, spot, texp, cp=1) Option model volga (2nd derivative to volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
volga value
-
volga_numeric
(strike, spot, texp, cp=1) Option model volga (2nd derivative to volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
volga value
-
class
OusvFft
(sigma, vov=0.01, rho=0.0, mr=0.01, theta=None, intr=0.0, divr=0.0, is_fwd=False)[source] OUSV model option pricing with FFT
-
charfunc_logprice
(x, texp) Characteristic function of log price
- Parameters
x –
texp –
Returns:
-
delta
(strike, spot, texp, cp=1) Option model delta (sensitivity to price) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
delta value
-
delta_numeric
(strike, spot, texp, cp=1) Option model delta (sensitivity to price) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
delta value
-
fft_interp
(texp, *args, **kwargs) FFT method based on the Lewis expression
References
-
forward
(spot, texp) Forward price
- Parameters
spot – spot price
texp – time to expiry
- Returns
forward price
-
gamma
(strike, spot, texp, cp=1) Option model gamma (2nd derivative to price) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
Delta with numerical derivative
-
gamma_numeric
(strike, spot, texp, cp=1) Option model gamma (2nd derivative to price) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
Delta with numerical derivative
-
impvol
(price, strike, spot, texp, cp=1, setval=False) Implied volatility using Brent’s method. Slow but robust implementation.
- Parameters
price – option price
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put
setval – if True, sigma is set with the solved implied volatility
- Returns
implied volatility
-
impvol_brentq
(price, strike, spot, texp, cp=1, setval=False) Implied volatility using Brent’s method. Slow but robust implementation.
- Parameters
price – option price
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put
setval – if True, sigma is set with the solved implied volatility
- Returns
implied volatility
-
classmethod
init_benchmark
(set_no=None) Initiate an SV model with stored benchmark parameter sets
- Parameters
set_no – set number
- Returns
Dataframe of all test cases if set_no = None (model, Dataframe of result, params) if set_no is specified
References:
-
mgf_logprice
(uu, texp)[source] Log price MGF under the OUSV model. We use the characteristic function in Eq (4.14) of Lord & Kahl (2010) that is continuous in branch cut when complex log is evaluated.
- Returns
MGF value at uu
References
Lord R, Kahl C (2010) Complex Logarithms in Heston-Like Models. Mathematical Finance 20:671–694. https://doi.org/10.1111/j.1467-9965.2010.00416.x
-
mgf_logprice_schobelzhu1998
(uu, texp)[source] MGF from Eq. (13) in Schobel & Zhu (1998). This form suffers discontinuity in complex log branch cut. Should not be used for pricing.
- Parameters
uu – dummy variable
texp – time to expiry
- Returns
MGF value at uu
References
Schöbel R, Zhu J (1999) Stochastic Volatility With an Ornstein–Uhlenbeck Process: An Extension. Rev Financ 3:23–46. https://doi.org/10.1023/A:1009803506170
-
params_kw
() Model parameters in dictionary
-
pdf_numeric
(strike, spot, texp, cp=- 1, h=0.001) Probability density functin (PDF) at strike
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
probability densitiy
-
price
(strike, spot, texp, cp=1) Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) price.
texp – time to expiry.
cp – 1/-1 for call/put option.
- Returns
option price
-
theta_numeric
(strike, spot, texp, cp=1) Option model thegta (sensitivity to time-to-maturity) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
theta value
-
vanna
(strike, spot, texp, cp=1) Option model vanna (cross-derivative to price and volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
vanna value
-
vanna_numeric
(strike, spot, texp, cp=1) Option model vanna (cross-derivative to price and volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
vanna value
-
var_process
alias of
NotImplementedError
-
vega
(strike, spot, texp, cp=1) Option model vega (sensitivity to volatility) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
vega value
-
vega_numeric
(strike, spot, texp, cp=1) Option model vega (sensitivity to volatility) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
vega value
-
vol_smile
(strike, spot, texp, cp=1, model='bsm') Equivalent volatility smile for a given model
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put option
model – {‘bsm’, ‘norm’} ‘bsm’ (by default) for Black-Scholes-Merton, ‘norm’ for Bachelier
- Returns
volatility smile under the specified model
-
volga
(strike, spot, texp, cp=1) Option model volga (2nd derivative to volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
volga value
-
volga_numeric
(strike, spot, texp, cp=1) Option model volga (2nd derivative to volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
volga value
-
-
class
VarGammaFft
(sigma, vov=0.01, rho=0.0, mr=0.01, theta=None, intr=0.0, divr=0.0, is_fwd=False)[source] -
charfunc_logprice
(x, texp) Characteristic function of log price
- Parameters
x –
texp –
Returns:
-
delta
(strike, spot, texp, cp=1) Option model delta (sensitivity to price) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
delta value
-
delta_numeric
(strike, spot, texp, cp=1) Option model delta (sensitivity to price) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
delta value
-
fft_interp
(texp, *args, **kwargs) FFT method based on the Lewis expression
References
-
forward
(spot, texp) Forward price
- Parameters
spot – spot price
texp – time to expiry
- Returns
forward price
-
gamma
(strike, spot, texp, cp=1) Option model gamma (2nd derivative to price) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
Delta with numerical derivative
-
gamma_numeric
(strike, spot, texp, cp=1) Option model gamma (2nd derivative to price) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
Delta with numerical derivative
-
impvol
(price, strike, spot, texp, cp=1, setval=False) Implied volatility using Brent’s method. Slow but robust implementation.
- Parameters
price – option price
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put
setval – if True, sigma is set with the solved implied volatility
- Returns
implied volatility
-
impvol_brentq
(price, strike, spot, texp, cp=1, setval=False) Implied volatility using Brent’s method. Slow but robust implementation.
- Parameters
price – option price
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put
setval – if True, sigma is set with the solved implied volatility
- Returns
implied volatility
-
classmethod
init_benchmark
(set_no=None) Initiate an SV model with stored benchmark parameter sets
- Parameters
set_no – set number
- Returns
Dataframe of all test cases if set_no = None (model, Dataframe of result, params) if set_no is specified
References:
-
mgf_logprice
(uu, texp)[source] Moment generating function (MGF) of log price. (forward = 1)
- Parameters
xx – dummy variable
texp – time to expiry
- Returns
MGF value at xx
-
model_type
alias of
NotImplementedError
-
params_kw
() Model parameters in dictionary
-
pdf_numeric
(strike, spot, texp, cp=- 1, h=0.001) Probability density functin (PDF) at strike
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
probability densitiy
-
price
(strike, spot, texp, cp=1) Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) price.
texp – time to expiry.
cp – 1/-1 for call/put option.
- Returns
option price
-
theta_numeric
(strike, spot, texp, cp=1) Option model thegta (sensitivity to time-to-maturity) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
theta value
-
vanna
(strike, spot, texp, cp=1) Option model vanna (cross-derivative to price and volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
vanna value
-
vanna_numeric
(strike, spot, texp, cp=1) Option model vanna (cross-derivative to price and volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
vanna value
-
var_process
alias of
NotImplementedError
-
vega
(strike, spot, texp, cp=1) Option model vega (sensitivity to volatility) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
vega value
-
vega_numeric
(strike, spot, texp, cp=1) Option model vega (sensitivity to volatility) by finite difference
- Parameters
strike – strike price
spot – spot (or forward) price
texp – time to expiry
cp – 1/-1 for call/put option
- Returns
vega value
-
vol_smile
(strike, spot, texp, cp=1, model='bsm') Equivalent volatility smile for a given model
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put option
model – {‘bsm’, ‘norm’} ‘bsm’ (by default) for Black-Scholes-Merton, ‘norm’ for Bachelier
- Returns
volatility smile under the specified model
-
volga
(strike, spot, texp, cp=1) Option model volga (2nd derivative to volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
volga value
-
volga_numeric
(strike, spot, texp, cp=1) Option model volga (2nd derivative to volatility) by finite difference
- Parameters
strike – strike price
spot – spot price
texp – time to expiry
cp – 1/-1 for call/put
- Returns
volga value
-