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

Generalized Black-Scholes stochastic process. More...

#include <ql/processes/blackscholesprocess.hpp>

Inheritance diagram for GeneralizedBlackScholesProcess:

Public Member Functions

 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)
StochasticProcess1D interface
Real x0 () const override
 returns the initial value of the state variable
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
Observer interface
void update () override
Public Member Functions inherited from StochasticProcess
virtual Size factors () const
 returns the number of independent factors of the process
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 ()

Inspectors

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

Additional Inherited Members

Public Types inherited from Observer
typedef set_type::iterator iterator
 StochasticProcess1D (ext::shared_ptr< discretization >)
 StochasticProcess (ext::shared_ptr< discretization >)
ext::shared_ptr< discretizationdiscretization_
ext::shared_ptr< discretizationdiscretization_

Detailed Description

Generalized Black-Scholes stochastic process.

This class describes the stochastic process \( S \) governed by

\[ d\ln S(t) = (r(t) - q(t) - \frac{\sigma(t, S)^2}{2}) dt + \sigma dW_t. \]

Warning
while the interface is expressed in terms of \( S \), the internal calculations work on \( ln S \).

Member Function Documentation

◆ x0()

Real x0 ( ) const
overridevirtual

returns the initial value of the state variable

Implements StochasticProcess1D.

◆ drift()

Real drift ( Time t,
Real x ) const
overridevirtual

Implements StochasticProcess1D.

◆ diffusion()

Real diffusion ( Time t,
Real x ) const
overridevirtual

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

◆ expectation()

Real expectation ( Time t0,
Real x0,
Time dt ) const
overridevirtual
Warning
in general raises a "not implemented" exception. It should be rewritten to return the expectation E(S) of the process, not exp(E(log S)).

Reimplemented from StochasticProcess1D.

◆ stdDeviation()

Real stdDeviation ( Time t0,
Real x0,
Time dt ) const
overridevirtual

returns the standard deviation \( S(x_{t_0 + \Delta t} | x_{t_0} = x_0) \) of the process after a time interval \( \Delta t \) according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.

Reimplemented from StochasticProcess1D.

◆ variance()

Real variance ( Time t0,
Real x0,
Time dt ) const
overridevirtual

returns the variance \( V(x_{t_0 + \Delta t} | x_{t_0} = x_0) \) of the process after a time interval \( \Delta t \) according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.

Reimplemented from StochasticProcess1D.

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

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