QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.20
Public Member Functions | List of all members
ExtOUWithJumpsProcess Class Reference

#include <ql/experimental/processes/extouwithjumpsprocess.hpp>

+ Inheritance diagram for ExtOUWithJumpsProcess:

Public Member Functions

 ExtOUWithJumpsProcess (const ext::shared_ptr< ExtendedOrnsteinUhlenbeckProcess > &process, Real Y0, Real beta, Real jumpIntensity, Real eta)
 
Size size () const
 returns the number of dimensions of the stochastic process
 
Size factors () const
 returns the number of independent factors of the process
 
Disposable< ArrayinitialValues () const
 returns the initial values of the state variables
 
Disposable< Arraydrift (Time t, const Array &x) const
 returns the drift part of the equation, i.e., \( \mu(t, \mathrm{x}_t) \)
 
Disposable< Matrixdiffusion (Time t, const Array &x) const
 returns the diffusion part of the equation, i.e. \( \sigma(t, \mathrm{x}_t) \)
 
Disposable< Arrayevolve (Time t0, const Array &x0, Time dt, const Array &dw) const
 
ext::shared_ptr< ExtendedOrnsteinUhlenbeckProcessgetExtendedOrnsteinUhlenbeckProcess () const
 
Real beta () const
 
Real eta () const
 
Real jumpIntensity () const
 
- Public Member Functions inherited from StochasticProcess
virtual Disposable< Arrayexpectation (Time t0, const Array &x0, Time dt) const
 
virtual Disposable< MatrixstdDeviation (Time t0, const Array &x0, Time dt) const
 
virtual Disposable< Matrixcovariance (Time t0, const Array &x0, Time dt) const
 
virtual Disposable< Arrayapply (const Array &x0, const Array &dx) const
 
virtual Time time (const Date &) const
 
void update ()
 
- Public Member Functions inherited from Observer
 Observer (const Observer &)
 
Observeroperator= (const 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 deepUpdate ()
 
- Public Member Functions inherited from Observable
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
void notifyObservers ()
 

Additional Inherited Members

- Public Types inherited from Observer
typedef boost::unordered_set< ext::shared_ptr< Observable > > set_type
 
typedef set_type::iterator iterator
 
- Protected Member Functions inherited from StochasticProcess
 StochasticProcess ()
 
 StochasticProcess (const 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

Member Function Documentation

◆ evolve()

Disposable<Array> evolve ( Time  t0,
const Array x0,
Time  dt,
const Array dw 
) const
virtual

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.