QuantLib: GeneralizedBlackScholesProcess Class Reference

A free/open-source library for quantitative finance Reference manual - version 1.20

Public Member Functions | List of all members
GeneralizedBlackScholesProcess Class Reference
Stochastic processes

Generalized Black-Scholes stochastic process. More...

`#include <ql/processes/blackscholesprocess.hpp>`

Inheritance diagram for GeneralizedBlackScholesProcess:
[legend]

## Public Member Functions
| GeneralizedBlackScholesProcess (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), bool forceDiscretization=false)
| GeneralizedBlackScholesProcess (const Handle< Quote > &x0, const Handle< YieldTermStructure > &dividendTS, const Handle< YieldTermStructure > &riskFreeTS, const Handle< BlackVolTermStructure > &blackVolTS, const Handle< LocalVolTermStructure > &localVolTS)
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 | stdDeviation (Time t0, Real x0, Time dt) const
Real | variance (Time t0, Real x0, Time dt) const
Real | evolve (Time t0, Real x0, Time dt, Real dw) const
Time | time (const Date &) const
Observer interface
void | update ()
Public Member Functions inherited from StochasticProcess1D
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 &)
Observer & | operator= (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 &)
Observable & | operator= (const Observable &)
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 boost::unordered_set< ext::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator
Protected Member Functions inherited from StochasticProcess1D
| StochasticProcess1D ()
| StochasticProcess1D (const ext::shared_ptr< discretization > &)
Protected Member Functions inherited from StochasticProcess
| StochasticProcess ()
| StochasticProcess (const ext::shared_ptr< discretization > &)
Protected Attributes inherited from StochasticProcess1D
ext::shared_ptr< discretization > | discretization_
Protected Attributes inherited from StochasticProcess
ext::shared_ptr< discretization > | discretization_

## 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

## ◆ drift()

Real drift | ( | Time | t,
|  | Real | x
| ) |  | const
| virtual

Implements StochasticProcess1D.

## ◆ diffusion()

Real diffusion | ( | Time | t,
|  | Real | x
| ) |  | const
| virtual

Implements StochasticProcess1D.

## ◆ apply()

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.

## ◆ expectation()

Real expectation | ( | Time | t0,
|  | Real | x0,
|  | Time | dt
| ) |  | const
| virtual

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
| virtual

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
| virtual

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

## ◆ update()

void update | ( |  | ) |
| virtual

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.