QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
BatesProcess Class Reference

Square-root stochastic-volatility Bates process. More...

#include <batesprocess.hpp>

+ Inheritance diagram for BatesProcess:
+ Collaboration diagram for BatesProcess:

Public Member Functions

 BatesProcess (const Handle< YieldTermStructure > &riskFreeRate, const Handle< YieldTermStructure > &dividendYield, const Handle< Quote > &s0, Real v0, Real kappa, Real theta, Real sigma, Real rho, Real lambda, Real nu, Real delta, HestonProcess::Discretization d=HestonProcess::FullTruncation)
 
Size factors () const override
 returns the number of independent factors of the process More...
 
Array drift (Time t, const Array &x) const override
 returns the drift part of the equation, i.e., \( \mu(t, \mathrm{x}_t) \) More...
 
Array evolve (Time t0, const Array &x0, Time dt, const Array &dw) const override
 
Real lambda () const
 
Real nu () const
 
Real delta () const
 
- Public Member Functions inherited from HestonProcess
 HestonProcess (Handle< YieldTermStructure > riskFreeRate, Handle< YieldTermStructure > dividendYield, Handle< Quote > s0, Real v0, Real kappa, Real theta, Real sigma, Real rho, Discretization d=QuadraticExponentialMartingale)
 
Size size () const override
 returns the number of dimensions of the stochastic process More...
 
Size factors () const override
 returns the number of independent factors of the process More...
 
Array initialValues () const override
 returns the initial values of the state variables More...
 
Array drift (Time t, const Array &x) const override
 returns the drift part of the equation, i.e., \( \mu(t, \mathrm{x}_t) \) More...
 
Matrix diffusion (Time t, const Array &x) const override
 returns the diffusion part of the equation, i.e. \( \sigma(t, \mathrm{x}_t) \) More...
 
Array apply (const Array &x0, const Array &dx) const override
 
Array evolve (Time t0, const Array &x0, Time dt, const Array &dw) const override
 
Real v0 () const
 
Real rho () const
 
Real kappa () const
 
Real theta () const
 
Real sigma () const
 
const Handle< Quote > & s0 () const
 
const Handle< YieldTermStructure > & dividendYield () const
 
const Handle< YieldTermStructure > & riskFreeRate () const
 
Time time (const Date &) const override
 
Real pdf (Real x, Real v, Time t, Real eps=1e-3) const
 
- Public Member Functions inherited from StochasticProcess
 ~StochasticProcess () override=default
 
virtual Array expectation (Time t0, const Array &x0, Time dt) const
 
virtual Matrix stdDeviation (Time t0, const Array &x0, Time dt) const
 
virtual Matrix covariance (Time t0, const Array &x0, Time dt) const
 
void update () override
 
- Public Member Functions inherited from Observer
 Observer ()=default
 
 Observer (const Observer &)
 
Observeroperator= (const Observer &)
 
virtual ~Observer ()
 
std::pair< iterator, boolregisterWith (const ext::shared_ptr< Observable > &)
 
void registerWithObservables (const ext::shared_ptr< Observer > &)
 
Size unregisterWith (const ext::shared_ptr< Observable > &)
 
void unregisterWithAll ()
 
virtual void update ()=0
 
virtual void deepUpdate ()
 
- Public Member Functions inherited from Observable
 Observable ()
 
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
 Observable (Observable &&)=delete
 
Observableoperator= (Observable &&)=delete
 
virtual ~Observable ()=default
 
void notifyObservers ()
 

Private Attributes

const Real lambda_
 
const Real delta_
 
const Real nu_
 
const Real m_
 
const CumulativeNormalDistribution cumNormalDist_
 

Additional Inherited Members

- Public Types inherited from HestonProcess
enum  Discretization {
  PartialTruncation , FullTruncation , Reflection , NonCentralChiSquareVariance ,
  QuadraticExponential , QuadraticExponentialMartingale , BroadieKayaExactSchemeLobatto , BroadieKayaExactSchemeLaguerre ,
  BroadieKayaExactSchemeTrapezoidal
}
 
- Public Types inherited from Observer
typedef set_type::iterator iterator
 
- Protected Member Functions inherited from StochasticProcess
 StochasticProcess ()=default
 
 StochasticProcess (ext::shared_ptr< discretization >)
 
- Protected Attributes inherited from StochasticProcess
ext::shared_ptr< discretizationdiscretization_
 

Detailed Description

Square-root stochastic-volatility Bates process.

This class describes the square root stochastic volatility process incl jumps governed by

\[ \begin{array}{rcl} dS(t, S) &=& (r-d-\lambda m) S dt +\sqrt{v} S dW_1 + (e^J - 1) S dN \\ dv(t, S) &=& \kappa (\theta - v) dt + \sigma \sqrt{v} dW_2 \\ dW_1 dW_2 &=& \rho dt \\ \omega(J) &=& \frac{1}{\sqrt{2\pi \delta^2}} \exp\left[-\frac{(J-\nu)^2}{2\delta^2}\right] \end{array} \]

Definition at line 49 of file batesprocess.hpp.

Constructor & Destructor Documentation

◆ BatesProcess()

BatesProcess ( const Handle< YieldTermStructure > &  riskFreeRate,
const Handle< YieldTermStructure > &  dividendYield,
const Handle< Quote > &  s0,
Real  v0,
Real  kappa,
Real  theta,
Real  sigma,
Real  rho,
Real  lambda,
Real  nu,
Real  delta,
HestonProcess::Discretization  d = HestonProcess::FullTruncation 
)

Definition at line 26 of file batesprocess.cpp.

Member Function Documentation

◆ factors()

Size factors ( ) const
overridevirtual

returns the number of independent factors of the process

Reimplemented from StochasticProcess.

Definition at line 65 of file batesprocess.cpp.

+ Here is the call graph for this function:

◆ drift()

Array drift ( Time  t,
const Array x 
) const
overridevirtual

returns the drift part of the equation, i.e., \( \mu(t, \mathrm{x}_t) \)

Implements StochasticProcess.

Definition at line 40 of file batesprocess.cpp.

+ Here is the call graph for this function:

◆ evolve()

Array evolve ( Time  t0,
const Array x0,
Time  dt,
const Array dw 
) const
overridevirtual

returns the asset value after a time interval \( \Delta t \) according to the given discretization. By default, it returns

\[ E(\mathrm{x}_0,t_0,\Delta t) + S(\mathrm{x}_0,t_0,\Delta t) \cdot \Delta \mathrm{w} \]

where \( E \) is the expectation and \( S \) the standard deviation.

Reimplemented from StochasticProcess.

Definition at line 46 of file batesprocess.cpp.

+ Here is the call graph for this function:

◆ lambda()

Real lambda ( ) const

Definition at line 69 of file batesprocess.cpp.

◆ nu()

Real nu ( ) const

Definition at line 73 of file batesprocess.cpp.

◆ delta()

Real delta ( ) const

Definition at line 77 of file batesprocess.cpp.

Member Data Documentation

◆ lambda_

const Real lambda_
private

Definition at line 68 of file batesprocess.hpp.

◆ delta_

const Real delta_
private

Definition at line 68 of file batesprocess.hpp.

◆ nu_

const Real nu_
private

Definition at line 68 of file batesprocess.hpp.

◆ m_

const Real m_
private

Definition at line 68 of file batesprocess.hpp.

◆ cumNormalDist_

const CumulativeNormalDistribution cumNormalDist_
private

Definition at line 69 of file batesprocess.hpp.