QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
HybridHestonHullWhiteProcess Class Reference

Hybrid Heston Hull-White stochastic process. More...

#include <ql/processes/hybridhestonhullwhiteprocess.hpp>

Inheritance diagram for HybridHestonHullWhiteProcess:

Public Types

enum  Discretization { Euler , BSMHullWhite }
Public Types inherited from Observer
typedef set_type::iterator iterator

Public Member Functions

 HybridHestonHullWhiteProcess (const ext::shared_ptr< HestonProcess > &hestonProcess, const ext::shared_ptr< HullWhiteForwardProcess > &hullWhiteProcess, Real corrEquityShortRate, Discretization discretization=BSMHullWhite)
Size size () const override
 returns the number of dimensions of the stochastic process
Array initialValues () const override
 returns the initial values of the state variables
Array drift (Time t, const Array &x) const override
 returns the drift part of the equation, i.e., \( \mu(t, \mathrm{x}_t) \)
Matrix diffusion (Time t, const Array &x) const override
 returns the diffusion part of the equation, i.e. \( \sigma(t, \mathrm{x}_t) \)
Array apply (const Array &x0, const Array &dx) const override
Array evolve (Time t0, const Array &x0, Time dt, const Array &dw) const override
DiscountFactor numeraire (Time t, const Array &x) const
const ext::shared_ptr< HestonProcess > & hestonProcess () const
const ext::shared_ptr< HullWhiteForwardProcess > & hullWhiteProcess () const
Real eta () const
Time time (const Date &date) const override
Discretization discretization () const
void update () override
Public Member Functions inherited from StochasticProcess
virtual Size factors () const
 returns the number of independent factors of the process
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
void update () override
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 &)
 Observable (Observable &&)=delete
Observableoperator= (Observable &&)=delete
void notifyObservers ()

Protected Attributes

const ext::shared_ptr< HestonProcesshestonProcess_
const ext::shared_ptr< HullWhiteForwardProcesshullWhiteProcess_
const ext::shared_ptr< HullWhitehullWhiteModel_
const Real corrEquityShortRate_
const Discretization discretization_
const Real maxRho_
const Time T_
DiscountFactor endDiscount_
ext::shared_ptr< discretizationdiscretization_

Additional Inherited Members

 StochasticProcess (ext::shared_ptr< discretization >)

Detailed Description

Hybrid Heston Hull-White stochastic process.

This class implements a three factor Heston Hull-White model

Bug
This class was not tested enough to guarantee its functionality... work in progress

Member Function Documentation

◆ size()

Size size ( ) const
overridevirtual

returns the number of dimensions of the stochastic process

Implements StochasticProcess.

◆ initialValues()

Array initialValues ( ) const
overridevirtual

returns the initial values of the state variables

Implements StochasticProcess.

◆ 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.

◆ 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.

◆ apply()

Array apply ( const Array & x0,
const Array & dx ) const
overridevirtual

applies a change to the asset value. By default, it returns \( \mathrm{x} + \Delta \mathrm{x} \).

Reimplemented from StochasticProcess.

◆ 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.

◆ time()

Time time ( const Date & ) const
overridevirtual

returns the time value corresponding to the given date in the reference system of the stochastic process.

Note
As a number of processes might not need this functionality, a default implementation is given which raises an exception.

Reimplemented from StochasticProcess.

◆ update()

void update ( )
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.