FinancePy

FinancePy API Reference

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.