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

experimental Black-Scholes-Merton stochastic process More...

#include <extendedblackscholesprocess.hpp>

+ Inheritance diagram for ExtendedBlackScholesMertonProcess:
+ Collaboration diagram for ExtendedBlackScholesMertonProcess:

Public Types

enum  Discretization { Euler , Milstein , PredictorCorrector }
 
- Public Types inherited from Observer
typedef set_type::iterator iterator
 

Public Member Functions

 ExtendedBlackScholesMertonProcess (const Handle< Quote > &x0, const Handle< YieldTermStructure > &dividendTS, const Handle< YieldTermStructure > &riskFreeTS, const Handle< BlackVolTermStructure > &blackVolTS, const ext::shared_ptr< discretization > &d=ext::shared_ptr< discretization >(new EulerDiscretization), Discretization evolDisc=Milstein)
 
Real drift (Time t, Real x) const override
 returns the drift part of the equation, i.e. \( \mu(t, x_t) \) More...
 
Real diffusion (Time t, Real x) const override
 returns the diffusion part of the equation, i.e. \( \sigma(t, x_t) \) More...
 
Real evolve (Time t0, Real x0, Time dt, Real dw) const override
 
- Public Member Functions inherited from GeneralizedBlackScholesProcess
 GeneralizedBlackScholesProcess (Handle< Quote > x0, Handle< YieldTermStructure > dividendTS, Handle< YieldTermStructure > riskFreeTS, Handle< BlackVolTermStructure > blackVolTS, const ext::shared_ptr< discretization > &d=ext::shared_ptr< discretization >(new EulerDiscretization), bool forceDiscretization=false)
 
 GeneralizedBlackScholesProcess (Handle< Quote > x0, Handle< YieldTermStructure > dividendTS, Handle< YieldTermStructure > riskFreeTS, Handle< BlackVolTermStructure > blackVolTS, Handle< LocalVolTermStructure > localVolTS)
 
Real x0 () const override
 returns the initial value of the state variable More...
 
Real drift (Time t, Real x) const override
 
Real diffusion (Time t, Real x) const override
 
Real apply (Real x0, Real dx) const override
 
Real expectation (Time t0, Real x0, Time dt) const override
 
Real stdDeviation (Time t0, Real x0, Time dt) const override
 
Real variance (Time t0, Real x0, Time dt) const override
 
Real evolve (Time t0, Real x0, Time dt, Real dw) const override
 
Time time (const Date &) const override
 
void update () override
 
const Handle< Quote > & stateVariable () const
 
const Handle< YieldTermStructure > & dividendYield () const
 
const Handle< YieldTermStructure > & riskFreeRate () const
 
const Handle< BlackVolTermStructure > & blackVolatility () const
 
const Handle< LocalVolTermStructure > & localVolatility () const
 
- Public Member Functions inherited from StochasticProcess1D
- 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 ()
 

Private Attributes

const Discretization discretization_
 

Additional Inherited Members

- 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

experimental Black-Scholes-Merton stochastic process

This class allows to choose a built-in discretization scheme

Definition at line 36 of file extendedblackscholesprocess.hpp.

Member Enumeration Documentation

◆ Discretization

Enumerator
Euler 
Milstein 
PredictorCorrector 

Definition at line 39 of file extendedblackscholesprocess.hpp.

Constructor & Destructor Documentation

◆ ExtendedBlackScholesMertonProcess()

ExtendedBlackScholesMertonProcess ( const Handle< Quote > &  x0,
const Handle< YieldTermStructure > &  dividendTS,
const Handle< YieldTermStructure > &  riskFreeTS,
const Handle< BlackVolTermStructure > &  blackVolTS,
const ext::shared_ptr< discretization > &  d = ext::shared_ptr<discretization>(new EulerDiscretization),
Discretization  evolDisc = Milstein 
)

Definition at line 24 of file extendedblackscholesprocess.cpp.

Member Function Documentation

◆ 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 34 of file extendedblackscholesprocess.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ 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 44 of file extendedblackscholesprocess.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ evolve()

Real evolve ( Time  t0,
Real  x0,
Time  dt,
Real  dw 
) const
overridevirtual

returns the asset value after a time interval \( \Delta t \) according to the given discretization. By default, it returns

\[ E(x_0,t_0,\Delta t) + S(x_0,t_0,\Delta t) \cdot \Delta w \]

where \( E \) is the expectation and \( S \) the standard deviation.

Reimplemented from StochasticProcess1D.

Definition at line 48 of file extendedblackscholesprocess.cpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ discretization_

const Discretization discretization_
private

Definition at line 53 of file extendedblackscholesprocess.hpp.