Multiasset Models¶
-
class
BsmBasket1Bm
(sigma, weight=None, intr=0.0, divr=0.0, is_fwd=False)[source] Multiasset BSM model for pricing basket/Spread options when all asset prices are driven by a single Brownian motion (BM).
-
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
-
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
-
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)[source] 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
-
static
root
(fac, std, strike)[source] Calculate the root x of f(x) = sum(fac * exp(std*x)) - strike = 0 using Newton’s method
Each fac and std should have the same signs so that f(x) is a monotonically increasing function.
fac: factor to the exponents. (n_asset, ) or (n_strike, n_asset). Asset takes the last dimension. std: total standard variance. (n_asset, ) strike: strike prices. scalar or (n_asset, )
-
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
BsmBasketChoi2018
(sigma, cor=None, weight=None, intr=0.0, divr=0.0, is_fwd=False)[source] Choi (2018)’s pricing method for Basket/Spread/Asian options
- References
Choi J (2018) Sum of all Black-Scholes-Merton models: An efficient pricing method for spread, basket, and Asian options. Journal of Futures Markets 38:627–644. https://doi.org/10.1002/fut.21909
-
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
-
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
-
static
householder
(vv0)[source] Returns a Householder reflection (orthonormal matrix) that maps (1,0,…0) to vv0
- Parameters
vv0 – vector
- Returns
Reflection matrix
-
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_spread
(sigma, cor=None, intr=0.0, divr=0.0, is_fwd=False) Initalize an instance for spread option pricing. This is a special case of the initalization with weight = (1, -1)
Examples
>>> import numpy as np >>> import pyfeng as pf >>> m = pf.NormSpread.init_spread((20, 30), cor=-0.5, intr=0.05) >>> m.price(np.arange(-2, 3) * 10, [100, 120], 1.3) array([17.95676186, 13.74646821, 10.26669936, 7.47098719, 5.29057157])
-
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)[source] Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) prices for assets. Asset dimension should be the last, e.g. (n_asset, ) or (N, n_asset)
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
-
v1_fwd_weight
(fwd, texp)[source] Construct v1, forward array, and weights
- Parameters
fwd – forward vector of assets
texp – time to expiry
- Returns
(v1, f_k, ww)
-
v_mat
(fwd)[source] Construct the V matrix
- Parameters
fwd – forward vector of assets
- Returns
V matrix
-
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
BsmBasketJsu
(sigma, cor=None, weight=None, intr=0.0, divr=0.0, is_fwd=False)[source] Johnson’s SU distribution approximation for Basket option pricing under the multiasset BSM model.
Note: Johnson’s SU distribution is the solution of NSVh with NSVh with lambda = 1.
References
Posner, S. E., & Milevsky, M. A. (1998). Valuing exotic options by approximating the SPD
with higher moments. The Journal of Financial Engineering, 7(2). https://ssrn.com/abstract=108539
Choi, J., Liu, C., & Seo, B. K. (2019). Hyperbolic normal stochastic volatility model.
Journal of Futures Markets, 39(2), 186–204. https://doi.org/10.1002/fut.21967
-
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
-
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_spread
(sigma, cor=None, intr=0.0, divr=0.0, is_fwd=False) Initalize an instance for spread option pricing. This is a special case of the initalization with weight = (1, -1)
Examples
>>> import numpy as np >>> import pyfeng as pf >>> m = pf.NormSpread.init_spread((20, 30), cor=-0.5, intr=0.05) >>> m.price(np.arange(-2, 3) * 10, [100, 120], 1.3) array([17.95676186, 13.74646821, 10.26669936, 7.47098719, 5.29057157])
-
moment_vsk
(fwd, texp)[source] Return variance, skewness, kurtosis for Basket options.
- Parameters
fwd – forward price
texp – time to expiry
Returns: variance, skewness, kurtosis of Basket options
-
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)[source] Basket options price. :param strike: strike price :param spot: spot price :param texp: time to expiry :param cp: 1/-1 for call/put option
Returns: Basket options 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
BsmBasketLevy1992
(sigma, cor=None, weight=None, intr=0.0, divr=0.0, is_fwd=False)[source] Basket option pricing with the log-normal approximation of Levy & Turnbull (1992)
References
Levy E, Turnbull S (1992) Average intelligence. Risk 1992:53–57
Krekel M, de Kock J, Korn R, Man T-K (2004) An analysis of pricing methods for basket options. Wilmott Magazine 2004:82–89
Examples
>>> import numpy as np >>> import pyfeng as pf >>> strike = np.arange(50, 151, 10) >>> m = pf.BsmBasketLevy1992(sigma=0.4*np.ones(4), cor=0.5) >>> m.price(strike, spot=100*np.ones(4), texp=5) array([54.34281026, 47.521086 , 41.56701301, 36.3982413 , 31.92312156, 28.05196621, 24.70229571, 21.800801 , 19.28360474, 17.09570196, 15.19005654])
-
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
-
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_spread
(sigma, cor=None, intr=0.0, divr=0.0, is_fwd=False) Initalize an instance for spread option pricing. This is a special case of the initalization with weight = (1, -1)
Examples
>>> import numpy as np >>> import pyfeng as pf >>> m = pf.NormSpread.init_spread((20, 30), cor=-0.5, intr=0.05) >>> m.price(np.arange(-2, 3) * 10, [100, 120], 1.3) array([17.95676186, 13.74646821, 10.26669936, 7.47098719, 5.29057157])
-
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)[source] Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) prices for assets. Asset dimension should be the last, e.g. (n_asset, ) or (N, n_asset)
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
BsmBasketMilevsky1998
(sigma, cor=None, weight=None, intr=0.0, divr=0.0, is_fwd=False)[source] Basket option pricing with the inverse gamma distribution of Milevsky & Posner (1998)
References
Milevsky MA, Posner SE (1998) A Closed-Form Approximation for Valuing Basket Options. The Journal of Derivatives 5:54–61. https://doi.org/10.3905/jod.1998.408005
Krekel M, de Kock J, Korn R, Man T-K (2004) An analysis of pricing methods for basket options. Wilmott Magazine 2004:82–89
Examples
>>> import numpy as np >>> import pyfeng as pf >>> strike = np.arange(50, 151, 10) >>> m = pf.BsmBasketMilevsky1998(sigma=0.4*np.ones(4), cor=0.5) >>> m.price(strike, spot=100*np.ones(4), texp=5) array([51.93069524, 44.40986 , 38.02596564, 32.67653542, 28.21560931, 24.49577509, 21.38543199, 18.77356434, 16.56909804, 14.69831445, 13.10186928])
-
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
-
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_spread
(sigma, cor=None, intr=0.0, divr=0.0, is_fwd=False) Initalize an instance for spread option pricing. This is a special case of the initalization with weight = (1, -1)
Examples
>>> import numpy as np >>> import pyfeng as pf >>> m = pf.NormSpread.init_spread((20, 30), cor=-0.5, intr=0.05) >>> m.price(np.arange(-2, 3) * 10, [100, 120], 1.3) array([17.95676186, 13.74646821, 10.26669936, 7.47098719, 5.29057157])
-
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)[source] Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) prices for assets. Asset dimension should be the last, e.g. (n_asset, ) or (N, n_asset)
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
BsmMax2
(sigma, cor=None, weight=None, intr=0.0, divr=0.0, is_fwd=False)[source] Option on the max of two assets. Payout = max( max(F_1, F_2) - K, 0 ) for all or max( K - max(F_1, F_2), 0 ) for put option
References
Rubinstein M (1991) Somewhere Over the Rainbow. Risk 1991:63–66
Examples
>>> import numpy as np >>> import pyfeng as pf >>> m = pf.BsmMax2(0.2*np.ones(2), cor=0, divr=0.1, intr=0.05) >>> m.price(strike=[90, 100, 110], spot=100*np.ones(2), texp=3) array([15.86717049, 11.19568103, 7.71592217])
-
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
-
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
-
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)[source] Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) prices for assets. Asset dimension should be the last, e.g. (n_asset, ) or (N, n_asset)
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
BsmSpreadBjerksund2014
(sigma, cor=None, intr=0.0, divr=0.0, is_fwd=False)[source] Bjerksund & Stensland (2014)’s approximation for spread option.
References
Bjerksund P, Stensland G (2014) Closed form spread option valuation. Quantitative Finance 14:1785–1794. https://doi.org/10.1080/14697688.2011.617775
Examples
>>> import numpy as np >>> import pyfeng as pf >>> m = pf.BsmSpreadBjerksund2014((0.2, 0.3), cor=-0.5) >>> m.price(np.arange(-2, 3) * 10, [100, 120], 1.3) array([22.13172022, 17.18304247, 12.98974214, 9.54431944, 6.80612597])
-
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
-
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
-
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)[source] Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) prices for assets. Asset dimension should be the last, e.g. (n_asset, ) or (N, n_asset)
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
BsmSpreadKirk
(sigma, cor=None, intr=0.0, divr=0.0, is_fwd=False)[source] Kirk’s approximation for spread option.
References
Kirk E (1995) Correlation in the energy markets. In: Managing Energy Price Risk, First. Risk Publications, London, pp 71–78
Examples
>>> import numpy as np >>> import pyfeng as pf >>> m = pf.BsmSpreadKirk((0.2, 0.3), cor=-0.5) >>> m.price(np.arange(-2, 3) * 10, [100, 120], 1.3) array([22.15632247, 17.18441817, 12.98974214, 9.64141666, 6.99942072])
-
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
-
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
-
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)[source] Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) prices for assets. Asset dimension should be the last, e.g. (n_asset, ) or (N, n_asset)
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
NormBasket
(sigma, cor=None, weight=None, intr=0.0, divr=0.0, is_fwd=False)[source] Basket option pricing under the multiasset Bachelier model
-
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
-
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_spread
(sigma, cor=None, intr=0.0, divr=0.0, is_fwd=False)[source] Initalize an instance for spread option pricing. This is a special case of the initalization with weight = (1, -1)
Examples
>>> import numpy as np >>> import pyfeng as pf >>> m = pf.NormSpread.init_spread((20, 30), cor=-0.5, intr=0.05) >>> m.price(np.arange(-2, 3) * 10, [100, 120], 1.3) array([17.95676186, 13.74646821, 10.26669936, 7.47098719, 5.29057157])
-
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)[source] Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) prices for assets. Asset dimension should be the last, e.g. (n_asset, ) or (N, n_asset)
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
OptMaABC
(sigma, cor=None, intr=0.0, divr=0.0, is_fwd=False)[source] -
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
-
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
-
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)[source] Call/put option price.
- Parameters
strike – strike price.
spot – spot (or forward) prices for assets. Asset dimension should be the last, e.g. (n_asset, ) or (N, n_asset)
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
-