Lognormal Mixture Model
financepy.models.lognormal_mixture_model
Created on Mon Sep 7 17:59:06 2026
@author: Dominic
Classes
LognormalMixtureModel
LognormalMixtureModel(F, T, r=0.0)
Two-component lognormal mixture model for a single maturity.
Parameters
----------
F : float
Market forward price.
T : float
Time to maturity.
r : float
Continuously compounded risk-free rate.
Model parameters
----------------
p : float
Weight of first component.
displacement : float
Determines F1 through F1 = F * exp(displacement).
sigma1 : float
Volatility of first component.
sigma2 : float
Volatility of second component.
The second component forward F2 is determined by
p F1 + (1-p) F2 = F
so that the mixture satisfies the risk-neutral forward condition.
Methods
black_call
black_call(F, K, T, r, sigma)
Black call price in forward form:
C = exp(-rT) [F N(d1) - K N(d2)]
black_implied_vol
black_implied_vol(price, F, K, T, r)
Recover Black implied volatility from a European call price.
price
price(self, K, p=None, displacement=None, sigma1=None, sigma2=None)
Price European calls under the two-component mixture.
implied_vol
implied_vol(self, K)
Return model implied volatility for one or several strikes.
density
density(self, ST)
Evaluate the calibrated terminal risk-neutral density.
calibrate
calibrate(self, strikes, market_vols, weights=None, initial_guess=None)
Calibrate the model to market implied volatilities.
Parameters
----------
strikes : array-like
Market strikes.
market_vols : array-like
Market implied volatilities in decimal form.
weights : array-like, optional
Calibration weights.
initial_guess : array-like, optional
Initial guess in raw optimisation coordinates.
Returns
-------
dict
Calibrated parameters.
parameters
Return calibrated model parameters.
forward_check
Verify the risk-neutral forward condition.
calibration_errors
calibration_errors(self, strikes, market_vols)
Return model IVs and calibration errors.
Generated automatically from the FinancePy source code.
Do not edit this file manually.