Lognormal Mixture Surface
financepy.models.lognormal_mixture_surface
Created on Mon Sep 7 19:29:25 2026
@author: Dominic
Classes
LognormalMixtureSurface
LognormalMixtureSurface(maturities, forwards, strikes, vol_surface, rates=0.0)
Calibrates one LognormalMixtureModel per maturity.
Parameters
----------
maturities : array-like
Times to maturity.
forwards : array-like
Forward corresponding to each maturity.
rates : array-like or float
Continuously compounded rates.
strikes : array-like
Common strike grid across maturities.
vol_surface : 2D array-like
Implied volatility surface with shape
(n_maturities, n_strikes)
Methods
calibrate
calibrate(self, weights=None, warm_start=True)
Calibrate one mixture model for each maturity.
Parameters
----------
weights : None or array-like
Optional calibration weights.
Can be:
- 1D array of length n_strikes
- 2D array matching vol_surface
warm_start : bool
If True, use previous maturity's fitted parameters
as the starting point for the next maturity.
fitted_vol_surface
fitted_vol_surface(self)
Return calibrated implied vols on the original strike grid.
call_price_surface
call_price_surface(self)
Return call prices on the original strike grid.
implied_vol
implied_vol(self, K, T)
Interpolate implied volatility between calibrated maturities.
Interpolation is done in total variance:
w(K,T) = sigma(K,T)^2 T
which is preferable to direct interpolation of volatility.
calibration_errors
calibration_errors(self)
Return model vol errors on the original grid.
rmse_by_maturity
rmse_by_maturity(self)
RMSE of fitted implied vols by maturity.
max_abs_error_by_maturity
max_abs_error_by_maturity(self)
No description available.
calendar_arbitrage_flags
calendar_arbitrage_flags(self)
Simple diagnostic using total variance on the original strike grid.
Returns True where total variance decreases between maturities.
Generated automatically from the FinancePy source code.
Do not edit this file manually.