finMath lib documentation
net.finmath.fouriermethod.models

## Class HestonModel

• All Implemented Interfaces:
ProcessCharacteristicFunctionInterface

public class HestonModel
extends Object
implements ProcessCharacteristicFunctionInterface
Implements the characteristic function of a Heston model. The model is $dS(t) = r^{\text{c}}(t) S(t) dt + \sqrt{V(t)} S(t) dW_{1}(t), \quad S(0) = S_{0},$ $dV(t) = \kappa ( \theta - V(t) ) dt + \xi \sqrt{V(t)} dW_{2}(t), \quad V(0) = \sigma^2,$ $dW_{1} dW_{2} = \rho dt$ $dN(t) = r^{\text{d}}(t) N(t) dt, \quad N(0) = N_{0},$ where $$W$$ is a Brownian motion. The model allows to specify two independent rate for forwarding ($$r^{\text{c}}$$) and discounting ($$r^{\text{d}}$$). It thus allow for a simple modelling of a funding / collateral curve (via ($$r^{\text{d}}$$) and/or the specification of a dividend yield. The free parameters of this model are:
$$S_{0}$$
spot - initial value of S
$$r^{\text{c}}$$
the risk free rate (may be provided as a curve or a constant)
$$\sigma$$
the initial volatility level
$$r^{\text{d}}$$
the discount rate (may be provided as a curve or a constant)
$$\xi$$
the volatility of volatility
$$\theta$$
the mean reversion level of the stochastic volatility
$$\kappa$$
the mean reversion speed of the stochastic volatility
$$\rho$$
the correlation of the Brownian drivers
Author:
Christian Fries, Andy Graf, Lorenzo Toricelli
• ### Constructor Summary

Constructors
Constructor and Description
HestonModel(double initialValue, DiscountCurveInterface discountCurveForForwardRate, double volatility, DiscountCurveInterface discountCurveForDiscountRate, double theta, double kappa, double xi, double rho)
Create a Heston model (characteristic function)
HestonModel(double initialValue, double riskFreeRate, double volatility, double theta, double kappa, double xi, double rho)
HestonModel(double initialValue, double riskFreeRate, double volatility, double discountRate, double theta, double kappa, double xi, double rho)
Create a Heston model (characteristic function)
• ### Method Summary

All Methods
Modifier and Type Method and Description
CharacteristicFunctionInterface apply(double time)
Returns the characteristic function of X(t), where X is this stochastic process.
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Constructor Detail

• #### HestonModel

public HestonModel(double initialValue,
DiscountCurveInterface discountCurveForForwardRate,
double volatility,
DiscountCurveInterface discountCurveForDiscountRate,
double theta,
double kappa,
double xi,
double rho)
Create a Heston model (characteristic function)
Parameters:
initialValue - $$S_{0}$$ - spot - initial value of S
discountCurveForForwardRate - The curve specifying $$t \mapsto exp(- r^{\text{c}}(t) \cdot t)$$ - with $$r^{\text{c}}(t)$$ the risk free rate
volatility - $$\sigma$$ the initial volatility level
discountCurveForDiscountRate - The curve specifying $$t \mapsto exp(- r^{\text{d}}(t) \cdot t)$$ - with $$r^{\text{d}}(t)$$ the discount rate
theta - $$\theta$$ - the mean reversion level of the stochastic volatility
kappa - $$\kappa$$ - the mean reversion speed of the stochastic volatility
xi - $$\xi$$ - the volatility of volatility
rho - $$\rho$$ - the correlation of the Brownian drivers
• #### HestonModel

public HestonModel(double initialValue,
double riskFreeRate,
double volatility,
double discountRate,
double theta,
double kappa,
double xi,
double rho)
Create a Heston model (characteristic function)
Parameters:
initialValue - $$S_{0}$$ - spot - initial value of S
riskFreeRate - $$r^{\text{c}}$$ - the risk free rate
volatility - $$\sigma$$ the initial volatility level
discountRate - $$r^{\text{d}}$$ - the discount rate
theta - $$\theta$$ - the mean reversion level of the stochastic volatility
kappa - $$\kappa$$ - the mean reversion speed of the stochastic volatility
xi - $$\xi$$ - the volatility of volatility
rho - $$\rho$$ - the correlation of the Brownian drivers
• #### HestonModel

public HestonModel(double initialValue,
double riskFreeRate,
double volatility,
double theta,
double kappa,
double xi,
double rho)
• ### Method Detail

• #### apply

public CharacteristicFunctionInterface apply(double time)
Description copied from interface: ProcessCharacteristicFunctionInterface
Returns the characteristic function of X(t), where X is this stochastic process.
Specified by:
apply in interface ProcessCharacteristicFunctionInterface
Parameters:
time - The time at which the stochastic process is observed.
Returns:
The characteristic function of X(t).