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

#include <extouwithjumpsprocess.hpp>

+ Inheritance diagram for ExtOUWithJumpsProcess:
+ Collaboration diagram for ExtOUWithJumpsProcess:

Public Member Functions

 ExtOUWithJumpsProcess (ext::shared_ptr< ExtendedOrnsteinUhlenbeckProcess > process, Real Y0, Real beta, Real jumpIntensity, Real eta)
 
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< ExtendedOrnsteinUhlenbeckProcessgetExtendedOrnsteinUhlenbeckProcess () const
 
Real beta () const
 
Real eta () const
 
Real jumpIntensity () 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 Y0_
 
const Real beta_
 
const Real jumpIntensity_
 
const Real eta_
 
const ext::shared_ptr< ExtendedOrnsteinUhlenbeckProcessouProcess_
 
const CumulativeNormalDistribution cumNormalDist_
 

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 Ornstein Uhlenbeck model plus exp jump, an extension of the Lucia and Schwartz model

\[ \begin{array}{rcl} S &=& exp(X_t + Y_t) \\ dX_t &=& \alpha(\mu(t)-X_t)dt + \sigma dW_t \\ dY_t &=& -\beta Y_{t-}dt + J_tdN_t \\ \omega(J)&=& \eta_u e^{-\eta_u J} \end{array} \]

References: T. Kluge, 2008. Pricing Swing Options and other Electricity Derivatives, http://eprints.maths.ox.ac.uk/246/1/kluge.pdf

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 59 of file extouwithjumpsprocess.hpp.

Constructor & Destructor Documentation

◆ ExtOUWithJumpsProcess()

ExtOUWithJumpsProcess ( ext::shared_ptr< ExtendedOrnsteinUhlenbeckProcess process,
Real  Y0,
Real  beta,
Real  jumpIntensity,
Real  eta 
)

Definition at line 30 of file extouwithjumpsprocess.cpp.

Member Function Documentation

◆ size()

Size size ( ) const
overridevirtual

returns the number of dimensions of the stochastic process

Implements StochasticProcess.

Definition at line 41 of file extouwithjumpsprocess.cpp.

◆ factors()

Size factors ( ) const
overridevirtual

returns the number of independent factors of the process

Reimplemented from StochasticProcess.

Definition at line 44 of file extouwithjumpsprocess.cpp.

◆ initialValues()

Array initialValues ( ) const
overridevirtual

returns the initial values of the state variables

Implements StochasticProcess.

Definition at line 61 of file extouwithjumpsprocess.cpp.

◆ 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 68 of file extouwithjumpsprocess.cpp.

◆ 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 75 of file extouwithjumpsprocess.cpp.

◆ 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 82 of file extouwithjumpsprocess.cpp.

◆ getExtendedOrnsteinUhlenbeckProcess()

ext::shared_ptr< ExtendedOrnsteinUhlenbeckProcess > getExtendedOrnsteinUhlenbeckProcess ( ) const

Definition at line 48 of file extouwithjumpsprocess.cpp.

◆ beta()

Real beta ( ) const

Definition at line 51 of file extouwithjumpsprocess.cpp.

◆ eta()

Real eta ( ) const

Definition at line 57 of file extouwithjumpsprocess.cpp.

◆ jumpIntensity()

Real jumpIntensity ( ) const

Definition at line 54 of file extouwithjumpsprocess.cpp.

Member Data Documentation

◆ Y0_

const Real Y0_
private

Definition at line 82 of file extouwithjumpsprocess.hpp.

◆ beta_

const Real beta_
private

Definition at line 82 of file extouwithjumpsprocess.hpp.

◆ jumpIntensity_

const Real jumpIntensity_
private

Definition at line 82 of file extouwithjumpsprocess.hpp.

◆ eta_

const Real eta_
private

Definition at line 82 of file extouwithjumpsprocess.hpp.

◆ ouProcess_

const ext::shared_ptr<ExtendedOrnsteinUhlenbeckProcess> ouProcess_
private

Definition at line 83 of file extouwithjumpsprocess.hpp.

◆ cumNormalDist_

const CumulativeNormalDistribution cumNormalDist_
private

Definition at line 85 of file extouwithjumpsprocess.hpp.