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
CoxIngersollRossProcess Class Reference

CoxIngersollRoss process class. More...

#include <coxingersollrossprocess.hpp>

+ Inheritance diagram for CoxIngersollRossProcess:
+ Collaboration diagram for CoxIngersollRossProcess:

Public Member Functions

 CoxIngersollRossProcess (Real speed, Volatility vol, Real x0=0.0, Real level=0.0)
 
Real drift (Time t, Real x) const override
 returns the drift part of the equation, i.e. \( \mu(t, x_t) \) More...
 
Real diffusion (Time t, Real x) const override
 returns the diffusion part of the equation, i.e. \( \sigma(t, x_t) \) More...
 
Real expectation (Time t0, Real x0, Time dt) const override
 
Real stdDeviation (Time t0, Real x0, Time dt) const override
 
Real x0 () const override
 returns the initial value of the state variable More...
 
Real speed () const
 
Real volatility () const
 
Real level () const
 
Real variance (Time t0, Real x0, Time dt) const override
 
Real evolve (Time t0, Real x0, Time dt, Real dw) const override
 
- Public Member Functions inherited from StochasticProcess1D
virtual Real apply (Real x0, Real dx) const
 
- Public Member Functions inherited from StochasticProcess
 ~StochasticProcess () override=default
 
virtual Size factors () const
 returns the number of independent factors of the process More...
 
virtual Time time (const Date &) 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

Real x0_
 
Real speed_
 
Real level_
 
Volatility volatility_
 

Additional Inherited Members

- Public Types inherited from Observer
typedef set_type::iterator iterator
 
- Protected Member Functions inherited from StochasticProcess1D
 StochasticProcess1D ()=default
 
 StochasticProcess1D (ext::shared_ptr< discretization >)
 
- Protected Member Functions inherited from StochasticProcess
 StochasticProcess ()=default
 
 StochasticProcess (ext::shared_ptr< discretization >)
 
- Protected Attributes inherited from StochasticProcess1D
ext::shared_ptr< discretizationdiscretization_
 
- Protected Attributes inherited from StochasticProcess
ext::shared_ptr< discretizationdiscretization_
 

Detailed Description

CoxIngersollRoss process class.

This class describes the CoxIngersollRoss process governed by

\[ dx(t) = k (\theta - x(t)) dt + \sigma \sqrt{x(t)} dW(t). \]

The process is discretized using the Quadratic Exponential scheme. For details see Leif Andersen, Efficient Simulation of the Heston Stochastic Volatility Model.

Definition at line 45 of file coxingersollrossprocess.hpp.

Constructor & Destructor Documentation

◆ CoxIngersollRossProcess()

CoxIngersollRossProcess ( Real  speed,
Volatility  vol,
Real  x0 = 0.0,
Real  level = 0.0 
)

Definition at line 24 of file coxingersollrossprocess.cpp.

Member Function Documentation

◆ drift()

Real drift ( Time  t,
Real  x 
) const
overridevirtual

returns the drift part of the equation, i.e. \( \mu(t, x_t) \)

Implements StochasticProcess1D.

Definition at line 90 of file coxingersollrossprocess.hpp.

◆ diffusion()

Real diffusion ( Time  t,
Real  x 
) const
overridevirtual

returns the diffusion part of the equation, i.e. \( \sigma(t, x_t) \)

Implements StochasticProcess1D.

Definition at line 94 of file coxingersollrossprocess.hpp.

◆ expectation()

Real expectation ( Time  t0,
Real  x0,
Time  dt 
) const
overridevirtual

returns the expectation \( E(x_{t_0 + \Delta t} | x_{t_0} = x_0) \) of the process after a time interval \( \Delta t \) according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.

Reimplemented from StochasticProcess1D.

Definition at line 98 of file coxingersollrossprocess.hpp.

+ Here is the call graph for this function:

◆ stdDeviation()

Real stdDeviation ( Time  t0,
Real  x0,
Time  dt 
) const
overridevirtual

returns the standard deviation \( S(x_{t_0 + \Delta t} | x_{t_0} = x_0) \) of the process after a time interval \( \Delta t \) according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.

Reimplemented from StochasticProcess1D.

Definition at line 103 of file coxingersollrossprocess.hpp.

+ Here is the call graph for this function:

◆ x0()

Real x0 ( ) const
overridevirtual

returns the initial value of the state variable

Implements StochasticProcess1D.

Definition at line 74 of file coxingersollrossprocess.hpp.

+ Here is the caller graph for this function:

◆ speed()

Real speed ( ) const

Definition at line 78 of file coxingersollrossprocess.hpp.

◆ volatility()

Real volatility ( ) const

Definition at line 82 of file coxingersollrossprocess.hpp.

◆ level()

Real level ( ) const

Definition at line 86 of file coxingersollrossprocess.hpp.

◆ variance()

Real variance ( Time  t0,
Real  x0,
Time  dt 
) const
overridevirtual

returns the variance \( V(x_{t_0 + \Delta t} | x_{t_0} = x_0) \) of the process after a time interval \( \Delta t \) according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.

Reimplemented from StochasticProcess1D.

Definition at line 32 of file coxingersollrossprocess.cpp.

◆ evolve()

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

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

\[ E(x_0,t_0,\Delta t) + S(x_0,t_0,\Delta t) \cdot \Delta w \]

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

Reimplemented from StochasticProcess1D.

Definition at line 108 of file coxingersollrossprocess.hpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ x0_

Real x0_
private

Definition at line 68 of file coxingersollrossprocess.hpp.

◆ speed_

Real speed_
private

Definition at line 68 of file coxingersollrossprocess.hpp.

◆ level_

Real level_
private

Definition at line 68 of file coxingersollrossprocess.hpp.

◆ volatility_

Volatility volatility_
private

Definition at line 69 of file coxingersollrossprocess.hpp.