QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Merton76Process Class Reference

Merton-76 jump-diffusion process. More...

#include <merton76process.hpp>

+ Inheritance diagram for Merton76Process:
+ Collaboration diagram for Merton76Process:

Public Member Functions

 Merton76Process (const Handle< Quote > &stateVariable, const Handle< YieldTermStructure > &dividendTS, const Handle< YieldTermStructure > &riskFreeTS, const Handle< BlackVolTermStructure > &blackVolTS, Handle< Quote > jumpInt, Handle< Quote > logJMean, Handle< Quote > logJVol, const ext::shared_ptr< discretization > &d=ext::shared_ptr< discretization >(new EulerDiscretization))
 
StochasticProcess1D interface
Real x0 () const override
 returns the initial value of the state variable More...
 
Real drift (Time, Real) const override
 returns the drift part of the equation, i.e. \( \mu(t, x_t) \) More...
 
Real diffusion (Time, Real) const override
 returns the diffusion part of the equation, i.e. \( \sigma(t, x_t) \) More...
 
Real apply (Real, Real) const override
 
Time time (const Date &) const override
 
- Public Member Functions inherited from StochasticProcess1D
virtual Real expectation (Time t0, Real x0, Time dt) const
 
virtual Real stdDeviation (Time t0, Real x0, Time dt) const
 
virtual Real variance (Time t0, Real x0, Time dt) const
 
virtual Real evolve (Time t0, Real x0, Time dt, Real dw) const
 
- Public Member Functions inherited from StochasticProcess
 ~StochasticProcess () override=default
 
virtual Size factors () const
 returns the number of independent factors of the process More...
 
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 ()
 

Inspectors

ext::shared_ptr< GeneralizedBlackScholesProcessblackProcess_
 
Handle< QuotejumpIntensity_
 
Handle< QuotelogMeanJump_
 
Handle< QuotelogJumpVolatility_
 
const Handle< Quote > & stateVariable () const
 
const Handle< YieldTermStructure > & dividendYield () const
 
const Handle< YieldTermStructure > & riskFreeRate () const
 
const Handle< BlackVolTermStructure > & blackVolatility () const
 
const Handle< Quote > & jumpIntensity () const
 
const Handle< Quote > & logMeanJump () const
 
const Handle< Quote > & logJumpVolatility () const
 

Additional Inherited Members

- Public Types inherited from Observer
typedef set_type::iterator iterator
 
- Protected Member Functions inherited from StochasticProcess1D
 StochasticProcess1D ()=default
 
 StochasticProcess1D (ext::shared_ptr< discretization >)
 
- Protected Member Functions inherited from StochasticProcess
 StochasticProcess ()=default
 
 StochasticProcess (ext::shared_ptr< discretization >)
 
- Protected Attributes inherited from StochasticProcess1D
ext::shared_ptr< discretizationdiscretization_
 
- Protected Attributes inherited from StochasticProcess
ext::shared_ptr< discretizationdiscretization_
 

Detailed Description

Merton-76 jump-diffusion process.

Definition at line 36 of file merton76process.hpp.

Constructor & Destructor Documentation

◆ Merton76Process()

Merton76Process ( const Handle< Quote > &  stateVariable,
const Handle< YieldTermStructure > &  dividendTS,
const Handle< YieldTermStructure > &  riskFreeTS,
const Handle< BlackVolTermStructure > &  blackVolTS,
Handle< Quote jumpInt,
Handle< Quote logJMean,
Handle< Quote logJVol,
const ext::shared_ptr< discretization > &  d = ext::shared_ptr<discretization>(new EulerDiscretization) 
)

Definition at line 27 of file merton76process.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ x0()

Real x0 ( ) const
overridevirtual

returns the initial value of the state variable

Implements StochasticProcess1D.

Definition at line 45 of file merton76process.cpp.

◆ drift()

Real drift ( Time  t,
Real  x 
) const
overridevirtual

returns the drift part of the equation, i.e. \( \mu(t, x_t) \)

Implements StochasticProcess1D.

Definition at line 50 of file merton76process.hpp.

◆ diffusion()

Real diffusion ( Time  t,
Real  x 
) const
overridevirtual

returns the diffusion part of the equation, i.e. \( \sigma(t, x_t) \)

Implements StochasticProcess1D.

Definition at line 51 of file merton76process.hpp.

◆ apply()

Real apply ( Real  x0,
Real  dx 
) const
overridevirtual

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

Reimplemented from StochasticProcess1D.

Definition at line 52 of file merton76process.hpp.

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

Definition at line 49 of file merton76process.cpp.

◆ stateVariable()

const Handle< Quote > & stateVariable ( ) const

Definition at line 53 of file merton76process.cpp.

◆ dividendYield()

const Handle< YieldTermStructure > & dividendYield ( ) const

Definition at line 57 of file merton76process.cpp.

◆ riskFreeRate()

const Handle< YieldTermStructure > & riskFreeRate ( ) const

Definition at line 61 of file merton76process.cpp.

◆ blackVolatility()

const Handle< BlackVolTermStructure > & blackVolatility ( ) const

Definition at line 66 of file merton76process.cpp.

◆ jumpIntensity()

const Handle< Quote > & jumpIntensity ( ) const

Definition at line 70 of file merton76process.cpp.

◆ logMeanJump()

const Handle< Quote > & logMeanJump ( ) const

Definition at line 74 of file merton76process.cpp.

◆ logJumpVolatility()

const Handle< Quote > & logJumpVolatility ( ) const

Definition at line 78 of file merton76process.cpp.

Member Data Documentation

◆ blackProcess_

ext::shared_ptr<GeneralizedBlackScholesProcess> blackProcess_
private

Definition at line 66 of file merton76process.hpp.

◆ jumpIntensity_

Handle<Quote> jumpIntensity_
private

Definition at line 67 of file merton76process.hpp.

◆ logMeanJump_

Handle<Quote> logMeanJump_
private

Definition at line 67 of file merton76process.hpp.

◆ logJumpVolatility_

Handle<Quote> logJumpVolatility_
private

Definition at line 67 of file merton76process.hpp.