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

#include <klugeextouprocess.hpp>

+ Inheritance diagram for KlugeExtOUProcess:
+ Collaboration diagram for KlugeExtOUProcess:

Public Member Functions

 KlugeExtOUProcess (Real rho, ext::shared_ptr< ExtOUWithJumpsProcess > kluge, ext::shared_ptr< ExtendedOrnsteinUhlenbeckProcess > extOU)
 
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 evolve (Time t0, const Array &x0, Time dt, const Array &dw) const override
 
ext::shared_ptr< ExtOUWithJumpsProcessgetKlugeProcess () const
 
ext::shared_ptr< ExtendedOrnsteinUhlenbeckProcessgetExtOUProcess () const
 
Real rho () 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
 
virtual Array apply (const Array &x0, const Array &dx) const
 
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

const Real rho_
 
const Real sqrtMRho_
 
const ext::shared_ptr< ExtOUWithJumpsProcessklugeProcess_
 
const ext::shared_ptr< ExtendedOrnsteinUhlenbeckProcessouProcess_
 

Additional Inherited Members

- 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

This class describes a correlated Kluge - extended Ornstein-Uhlenbeck process governed by

\[ \begin{array}{rcl} P_t &=& \exp(p_t + X_t + Y_t) \\ dX_t &=& -\alpha X_tdt + \sigma_x dW_t^x \\ dY_t &=& -\beta Y_{t-}dt + J_tdN_t \\ \omega(J) &=& \eta e^{-\eta J} \\ G_t &=& \exp(g_t + U_t) \\ dU_t &=& -\kappa U_tdt + \sigma_udW_t^u \\ \rho &=& \mathrm{corr} (dW_t^x, dW_t^u) \end{array} \]

References: B. Hambly, S. Howison, T. Kluge, Modelling spikes and pricing swing options in electricity markets, http://people.maths.ox.ac.uk/hambly/PDF/Papers/elec.pdf

Definition at line 56 of file klugeextouprocess.hpp.

Constructor & Destructor Documentation

◆ KlugeExtOUProcess()

KlugeExtOUProcess ( Real  rho,
ext::shared_ptr< ExtOUWithJumpsProcess kluge,
ext::shared_ptr< ExtendedOrnsteinUhlenbeckProcess extOU 
)

Definition at line 28 of file klugeextouprocess.cpp.

Member Function Documentation

◆ size()

Size size ( ) const
overridevirtual

returns the number of dimensions of the stochastic process

Implements StochasticProcess.

Definition at line 38 of file klugeextouprocess.cpp.

+ Here is the caller graph for this function:

◆ factors()

Size factors ( ) const
overridevirtual

returns the number of independent factors of the process

Reimplemented from StochasticProcess.

Definition at line 42 of file klugeextouprocess.cpp.

+ Here is the caller graph for this function:

◆ initialValues()

Array initialValues ( ) const
overridevirtual

returns the initial values of the state variables

Implements StochasticProcess.

Definition at line 46 of file klugeextouprocess.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 55 of file klugeextouprocess.cpp.

+ Here is the call graph for this function:

◆ diffusion()

Matrix diffusion ( Time  t,
const Array x 
) const
overridevirtual

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

Implements StochasticProcess.

Definition at line 64 of file klugeextouprocess.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 76 of file klugeextouprocess.cpp.

+ Here is the call graph for this function:

◆ getKlugeProcess()

ext::shared_ptr< ExtOUWithJumpsProcess > getKlugeProcess ( ) const

Definition at line 90 of file klugeextouprocess.cpp.

◆ getExtOUProcess()

ext::shared_ptr< ExtendedOrnsteinUhlenbeckProcess > getExtOUProcess ( ) const

Definition at line 94 of file klugeextouprocess.cpp.

◆ rho()

Real rho ( ) const

Definition at line 98 of file klugeextouprocess.cpp.

Member Data Documentation

◆ rho_

const Real rho_
private

Definition at line 76 of file klugeextouprocess.hpp.

◆ sqrtMRho_

const Real sqrtMRho_
private

Definition at line 76 of file klugeextouprocess.hpp.

◆ klugeProcess_

const ext::shared_ptr<ExtOUWithJumpsProcess> klugeProcess_
private

Definition at line 77 of file klugeextouprocess.hpp.

◆ ouProcess_

const ext::shared_ptr<ExtendedOrnsteinUhlenbeckProcess> ouProcess_
private

Definition at line 78 of file klugeextouprocess.hpp.