GeneralizedBlackScholesProcess Class Reference

Generalized Black-Scholes stochastic process. More...

#include <ql/processes/blackscholesprocess.hpp>

Inheritance diagram for GeneralizedBlackScholesProcess:

Public Member Functions

 GeneralizedBlackScholesProcess (const Handle< Quote > &x0, const Handle< YieldTermStructure > &dividendTS, const Handle< YieldTermStructure > &riskFreeTS, const Handle< BlackVolTermStructure > &blackVolTS, const boost::shared_ptr< discretization > &d=boost::shared_ptr< discretization >(new EulerDiscretization))
 
Time time (const Date &) const
 
StochasticProcess1D interface
Real x0 () const
 returns the initial value of the state variable
 
Real drift (Time t, Real x) const
 
Real diffusion (Time t, Real x) const
 
Real apply (Real x0, Real dx) const
 
Real expectation (Time t0, Real x0, Time dt) const
 
Real evolve (Time t0, Real x0, Time dt, Real dw) const
 
Observer interface
void update ()
 
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
 
- Public Member Functions inherited from StochasticProcess1D
virtual Real stdDeviation (Time t0, Real x0, Time dt) const
 
virtual Real variance (Time t0, Real x0, Time dt) const
 
- Public Member Functions inherited from StochasticProcess
virtual Size factors () const
 returns the number of independent factors of the process
 
void update ()
 
- Public Member Functions inherited from Observer
 Observer (const Observer &)
 
Observeroperator= (const Observer &)
 
std::pair< std::set
< boost::shared_ptr
< Observable > >::iterator,
bool > 
registerWith (const boost::shared_ptr< Observable > &)
 
Size unregisterWith (const boost::shared_ptr< Observable > &)
 
void unregisterWithAll ()
 
- Public Member Functions inherited from Observable
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
void notifyObservers ()
 

Additional Inherited Members

- Protected Member Functions inherited from StochasticProcess1D
 StochasticProcess1D (const boost::shared_ptr< discretization > &)
 
- Protected Attributes inherited from StochasticProcess1D
boost::shared_ptr< discretizationdiscretization_
 

Detailed Description

Generalized Black-Scholes stochastic process.

This class describes the stochastic process governed by

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

Member Function Documentation

Real drift ( Time  t,
Real  x 
) const
virtual
Possible enhancements:
revise extrapolation

Implements StochasticProcess1D.

Real diffusion ( Time  t,
Real  x 
) const
virtual
Possible enhancements:
revise extrapolation

Implements StochasticProcess1D.

Real apply ( Real  x0,
Real  dx 
) const
virtual

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

Reimplemented from StochasticProcess1D.

Real expectation ( Time  t0,
Real  x0,
Time  dt 
) const
virtual
Warning:
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.

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

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 ( const Date ) const
virtual

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.