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

Extended Ornstein-Uhlenbeck process class. More...

#include <extendedornsteinuhlenbeckprocess.hpp>

+ Inheritance diagram for ExtendedOrnsteinUhlenbeckProcess:
+ Collaboration diagram for ExtendedOrnsteinUhlenbeckProcess:

Public Types

enum  Discretization { MidPoint , Trapezodial , GaussLobatto }
 
- Public Types inherited from Observer
typedef set_type::iterator iterator
 

Public Member Functions

 ExtendedOrnsteinUhlenbeckProcess (Real speed, Volatility sigma, Real x0, ext::function< Real(Real)> b, Discretization discretization=MidPoint, Real intEps=1e-4)
 
- Public Member Functions inherited from StochasticProcess1D
virtual Real evolve (Time t0, Real x0, Time dt, Real dw) const
 
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 ()
 

StochasticProcess interface

const Real speed_
 
const Volatility vol_
 
const ext::function< Real(Real)> b_
 
const Real intEps_
 
const ext::shared_ptr< OrnsteinUhlenbeckProcessouProcess_
 
const Discretization discretization_
 
Real x0 () const override
 returns the initial value of the state variable More...
 
Real speed () const
 
Real volatility () const
 
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 variance (Time t0, Real x0, Time dt) const override
 

Additional Inherited Members

- 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

Extended Ornstein-Uhlenbeck process class.

This class describes the Ornstein-Uhlenbeck process governed by

\[ dx = a (b(t) - x_t) dt + \sigma dW_t. \]

Definition at line 42 of file extendedornsteinuhlenbeckprocess.hpp.

Member Enumeration Documentation

◆ Discretization

Enumerator
MidPoint 
Trapezodial 
GaussLobatto 

Definition at line 44 of file extendedornsteinuhlenbeckprocess.hpp.

Constructor & Destructor Documentation

◆ ExtendedOrnsteinUhlenbeckProcess()

ExtendedOrnsteinUhlenbeckProcess ( Real  speed,
Volatility  sigma,
Real  x0,
ext::function< Real(Real)>  b,
Discretization  discretization = MidPoint,
Real  intEps = 1e-4 
)

Definition at line 41 of file extendedornsteinuhlenbeckprocess.cpp.

Member Function Documentation

◆ x0()

Real x0 ( ) const
overridevirtual

returns the initial value of the state variable

Implements StochasticProcess1D.

Definition at line 54 of file extendedornsteinuhlenbeckprocess.cpp.

+ Here is the caller graph for this function:

◆ speed()

Real speed ( ) const

Definition at line 76 of file extendedornsteinuhlenbeckprocess.cpp.

◆ volatility()

Real volatility ( ) const

Definition at line 80 of file extendedornsteinuhlenbeckprocess.cpp.

◆ 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 58 of file extendedornsteinuhlenbeckprocess.cpp.

◆ 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 62 of file extendedornsteinuhlenbeckprocess.cpp.

◆ 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 84 of file extendedornsteinuhlenbeckprocess.cpp.

+ 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 66 of file extendedornsteinuhlenbeckprocess.cpp.

+ Here is the call graph for this function:

◆ 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 71 of file extendedornsteinuhlenbeckprocess.cpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ speed_

const Real speed_
private

Definition at line 65 of file extendedornsteinuhlenbeckprocess.hpp.

◆ vol_

const Volatility vol_
private

Definition at line 66 of file extendedornsteinuhlenbeckprocess.hpp.

◆ b_

const ext::function<Real (Real)> b_
private

Definition at line 67 of file extendedornsteinuhlenbeckprocess.hpp.

◆ intEps_

const Real intEps_
private

Definition at line 68 of file extendedornsteinuhlenbeckprocess.hpp.

◆ ouProcess_

const ext::shared_ptr<OrnsteinUhlenbeckProcess> ouProcess_
private

Definition at line 69 of file extendedornsteinuhlenbeckprocess.hpp.

◆ discretization_

const Discretization discretization_
private

Definition at line 70 of file extendedornsteinuhlenbeckprocess.hpp.