QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
multi-dimensional stochastic process class. More...
#include <stochasticprocess.hpp>
Classes | |
class | discretization |
discretization of a stochastic process over a given time interval More... | |
Public Member Functions | |
~StochasticProcess () override=default | |
Stochastic process interface | |
virtual Size | size () const =0 |
returns the number of dimensions of the stochastic process More... | |
virtual Size | factors () const |
returns the number of independent factors of the process More... | |
virtual Array | initialValues () const =0 |
returns the initial values of the state variables More... | |
virtual Array | drift (Time t, const Array &x) const =0 |
returns the drift part of the equation, i.e., \( \mu(t, \mathrm{x}_t) \) More... | |
virtual Matrix | diffusion (Time t, const Array &x) const =0 |
returns the diffusion part of the equation, i.e. \( \sigma(t, \mathrm{x}_t) \) More... | |
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 |
virtual Array | evolve (Time t0, const Array &x0, Time dt, const Array &dw) const |
virtual Array | apply (const Array &x0, const Array &dx) const |
utilities | |
virtual Time | time (const Date &) const |
Public Member Functions inherited from Observer | |
Observer ()=default | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
virtual | ~Observer () |
std::pair< iterator, bool > | registerWith (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 &) | |
Observable & | operator= (const Observable &) |
Observable (Observable &&)=delete | |
Observable & | operator= (Observable &&)=delete |
virtual | ~Observable ()=default |
void | notifyObservers () |
Observer interface | |
ext::shared_ptr< discretization > | discretization_ |
void | update () override |
StochasticProcess ()=default | |
StochasticProcess (ext::shared_ptr< discretization >) | |
Additional Inherited Members | |
Public Types inherited from Observer | |
typedef set_type::iterator | iterator |
multi-dimensional stochastic process class.
This class describes a stochastic process governed by
\[ d\mathrm{x}_t = \mu(t, x_t)\mathrm{d}t + \sigma(t, \mathrm{x}_t) \cdot d\mathrm{W}_t. \]
Definition at line 42 of file stochasticprocess.hpp.
|
overridedefault |
|
protecteddefault |
|
explicitprotected |
Definition at line 29 of file stochasticprocess.cpp.
|
pure virtual |
returns the number of dimensions of the stochastic process
Implemented in ExtOUWithJumpsProcess, KlugeExtOUProcess, LiborForwardModelProcess, G2Process, G2ForwardProcess, GJRGARCHProcess, HestonProcess, HestonSLVProcess, HybridHestonHullWhiteProcess, JointStochasticProcess, StochasticProcessArray, and StochasticProcess1D.
|
virtual |
returns the number of independent factors of the process
Reimplemented in ExtOUWithJumpsProcess, KlugeExtOUProcess, LiborForwardModelProcess, BatesProcess, HestonProcess, HestonSLVProcess, and JointStochasticProcess.
Definition at line 32 of file stochasticprocess.cpp.
|
pure virtual |
returns the initial values of the state variables
Implemented in ExtOUWithJumpsProcess, KlugeExtOUProcess, LiborForwardModelProcess, G2Process, G2ForwardProcess, GJRGARCHProcess, HestonProcess, HestonSLVProcess, HybridHestonHullWhiteProcess, JointStochasticProcess, StochasticProcessArray, and StochasticProcess1D.
returns the drift part of the equation, i.e., \( \mu(t, \mathrm{x}_t) \)
Implemented in ExtOUWithJumpsProcess, KlugeExtOUProcess, LiborForwardModelProcess, BatesProcess, G2Process, G2ForwardProcess, GJRGARCHProcess, HestonProcess, HestonSLVProcess, HybridHestonHullWhiteProcess, JointStochasticProcess, StochasticProcessArray, and StochasticProcess1D.
returns the diffusion part of the equation, i.e. \( \sigma(t, \mathrm{x}_t) \)
Implemented in ExtOUWithJumpsProcess, KlugeExtOUProcess, LiborForwardModelProcess, G2Process, G2ForwardProcess, GJRGARCHProcess, HestonProcess, HestonSLVProcess, HybridHestonHullWhiteProcess, JointStochasticProcess, StochasticProcessArray, and StochasticProcess1D.
returns the expectation \( E(\mathrm{x}_{t_0 + \Delta t} | \mathrm{x}_{t_0} = \mathrm{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 in G2Process, G2ForwardProcess, JointStochasticProcess, StochasticProcessArray, and StochasticProcess1D.
Definition at line 36 of file stochasticprocess.cpp.
returns the standard deviation \( S(\mathrm{x}_{t_0 + \Delta t} | \mathrm{x}_{t_0} = \mathrm{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 in G2Process, G2ForwardProcess, JointStochasticProcess, StochasticProcessArray, and StochasticProcess1D.
Definition at line 42 of file stochasticprocess.cpp.
returns the covariance \( V(\mathrm{x}_{t_0 + \Delta t} | \mathrm{x}_{t_0} = \mathrm{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 in LiborForwardModelProcess, G2Process, G2ForwardProcess, JointStochasticProcess, StochasticProcessArray, and StochasticProcess1D.
Definition at line 48 of file stochasticprocess.cpp.
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 in GemanRoncoroniProcess, ExtOUWithJumpsProcess, KlugeExtOUProcess, LiborForwardModelProcess, BatesProcess, GJRGARCHProcess, HestonProcess, HestonSLVProcess, HybridHestonHullWhiteProcess, JointStochasticProcess, StochasticProcessArray, and StochasticProcess1D.
Definition at line 54 of file stochasticprocess.cpp.
applies a change to the asset value. By default, it returns \( \mathrm{x} + \Delta \mathrm{x} \).
Reimplemented in LiborForwardModelProcess, GJRGARCHProcess, HestonProcess, HestonSLVProcess, HybridHestonHullWhiteProcess, JointStochasticProcess, StochasticProcessArray, and StochasticProcess1D.
Definition at line 59 of file stochasticprocess.cpp.
returns the time value corresponding to the given date in the reference system of the stochastic process.
Reimplemented in GeneralizedBlackScholesProcess, GJRGARCHProcess, HestonProcess, Merton76Process, StochasticProcessArray, GsrProcess, HestonSLVProcess, HybridHestonHullWhiteProcess, and JointStochasticProcess.
Definition at line 64 of file stochasticprocess.cpp.
|
overridevirtual |
This method must be implemented in derived classes. An instance of Observer does not call this method directly: instead, it will be called by the observables the instance registered with when they need to notify any changes.
Implements Observer.
Definition at line 68 of file stochasticprocess.cpp.
|
protected |
Definition at line 153 of file stochasticprocess.hpp.