finMath lib documentation
net.finmath.fouriermethod.models

Class BatesModel

• All Implemented Interfaces:
ProcessCharacteristicFunctionInterface, ModelInterface

public class BatesModel
extends Object
implements ProcessCharacteristicFunctionInterface
Implements the characteristic function of a Bates model. The Bates model for an underlying $$S$$ is given by $dS(t) = r^{\text{c}} S(t) dt + \sqrt{V(t)} S(t) dW_{1}(t) + S dJ, \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}} N(t) dt, \quad N(0) = N_{0},$ where $$W$$ is Brownian motion and $$J$$ is a jump process (compound Poisson process). The free parameters of this model are:
$$S_{0}$$
spot - initial value of S
$$r$$
the risk free rate
$$\sigma$$
the initial volatility level
$$\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
$$a$$
the jump size mean
$$b$$
the jump size standard deviation
The process $$J$$ is given by $$J(t) = \sum_{i=1}^{N(t)} (Y_{i}-1)$$, where $$\log(Y_{i})$$ are i.i.d. normals with mean $$a - \frac{1}{2} b^{2}$$ and standard deviation $$b$$. Here $$a$$ is the jump size mean and $$b$$ is the jump size std. dev. The model can be rewritten as $$S = \exp(X)$$, where $dX = \mu dt + \sqrt{V(t)} dW + dJ^{X}, \quad X(0) = \log(S_{0}),$ with $J^{X}(t) = \sum_{i=1}^{N(t)} \log(Y_{i})$ with $$\mu = r - \frac{1}{2} \sigma^2 - (exp(a)-1) \lambda$$.
Author:
Christian Fries, Andy Graf, Lorenzo Toricelli
• Constructor Summary

Constructors
Constructor and Description
BatesModel(double initialValue, double riskFreeRate, double[] volatility, double[] alpha, double[] beta, double[] sigma, double[] rho, double[] lambda, double k, double delta)
Create a two factor Bates model.
BatesModel(double initialValue, double riskFreeRate, double[] volatility, double discountRate, double[] alpha, double[] beta, double[] sigma, double[] rho, double[] lambda, double k, double delta)
Create a two factor Bates model.
BatesModel(double initialValue, double riskFreeRate, double volatility, double alpha, double beta, double sigma, double rho, double lambdaZero, double lambdaOne, double k, double delta)
Create a one factor Bates model.
• 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

• BatesModel

public BatesModel(double initialValue,
double riskFreeRate,
double[] volatility,
double discountRate,
double[] alpha,
double[] beta,
double[] sigma,
double[] rho,
double[] lambda,
double k,
double delta)
Create a two factor Bates model.
Parameters:
initialValue - Initial value of S.
riskFreeRate - Risk free rate.
volatility - Square root of initial value of the stochastic variance process V.
discountRate - Rate used for the discount factor.
alpha - The parameter alpha/beta is the mean reversion level of the variance process V.
beta - Mean reversion speed of variance process V.
sigma - Volatility of volatility.
rho - Correlations of the Brownian drives (underlying, variance).
lambda - Coefficients of for the jump intensity.
k - Jump size mean.
delta - Jump size variance.
• BatesModel

public BatesModel(double initialValue,
double riskFreeRate,
double[] volatility,
double[] alpha,
double[] beta,
double[] sigma,
double[] rho,
double[] lambda,
double k,
double delta)
Create a two factor Bates model.
Parameters:
initialValue - Initial value of S.
riskFreeRate - Risk free rate.
volatility - Square root of initial value of the stochastic variance process V.
alpha - The parameter alpha/beta is the mean reversion level of the variance process V.
beta - Mean reversion speed of variance process V.
sigma - Volatility of volatility.
rho - Correlations of the Brownian drives (underlying, variance).
lambda - Coefficients of for the jump intensity.
k - Jump size mean.
delta - Jump size variance.
• BatesModel

public BatesModel(double initialValue,
double riskFreeRate,
double volatility,
double alpha,
double beta,
double sigma,
double rho,
double lambdaZero,
double lambdaOne,
double k,
double delta)
Create a one factor Bates model.
Parameters:
initialValue - Initial value of S.
riskFreeRate - Risk free rate.
volatility - Square root of initial value of the stochastic variance process V.
alpha - The parameter alpha/beta is the mean reversion level of the variance process V.
beta - Mean reversion speed of variance process V.
sigma - Volatility of volatility.
rho - Correlations of the Brownian drives (underlying, variance).
lambdaZero - Constant part of the jump intensity.
lambdaOne - Coefficients of the jump intensity, linear in variance.
k - Jump size mean.
delta - Jump size variance.
• 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).