QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
Square-root stochastic-volatility Heston process. More...
#include <hestonprocess.hpp>
Public Types | |
enum | Discretization { PartialTruncation , FullTruncation , Reflection , NonCentralChiSquareVariance , QuadraticExponential , QuadraticExponentialMartingale , BroadieKayaExactSchemeLobatto , BroadieKayaExactSchemeLaguerre , BroadieKayaExactSchemeTrapezoidal } |
Public Types inherited from Observer | |
typedef set_type::iterator | iterator |
Public Member Functions | |
HestonProcess (Handle< YieldTermStructure > riskFreeRate, Handle< YieldTermStructure > dividendYield, Handle< Quote > s0, Real v0, Real kappa, Real theta, Real sigma, Real rho, Discretization d=QuadraticExponentialMartingale) | |
Size | size () const override |
returns the number of dimensions of the stochastic process More... | |
Size | factors () const override |
returns the number of independent factors of the process More... | |
Array | initialValues () const override |
returns the initial values of the state variables More... | |
Array | drift (Time t, const Array &x) const override |
returns the drift part of the equation, i.e., \( \mu(t, \mathrm{x}_t) \) More... | |
Matrix | diffusion (Time t, const Array &x) const override |
returns the diffusion part of the equation, i.e. \( \sigma(t, \mathrm{x}_t) \) More... | |
Array | apply (const Array &x0, const Array &dx) const override |
Array | evolve (Time t0, const Array &x0, Time dt, const Array &dw) const override |
Real | v0 () const |
Real | rho () const |
Real | kappa () const |
Real | theta () const |
Real | sigma () const |
const Handle< Quote > & | s0 () const |
const Handle< YieldTermStructure > & | dividendYield () const |
const Handle< YieldTermStructure > & | riskFreeRate () const |
Time | time (const Date &) const override |
Real | pdf (Real x, Real v, Time t, Real eps=1e-3) const |
Public Member Functions inherited from StochasticProcess | |
~StochasticProcess () override=default | |
virtual Array | expectation (Time t0, const Array &x0, Time dt) const |
virtual Matrix | stdDeviation (Time t0, const Array &x0, Time dt) const |
virtual Matrix | covariance (Time t0, const Array &x0, Time dt) const |
void | update () override |
Public Member Functions inherited from Observer | |
Observer ()=default | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
virtual | ~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 | update ()=0 |
virtual void | deepUpdate () |
Public Member Functions inherited from Observable | |
Observable () | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
Observable (Observable &&)=delete | |
Observable & | operator= (Observable &&)=delete |
virtual | ~Observable ()=default |
void | notifyObservers () |
Private Member Functions | |
Real | varianceDistribution (Real v, Real dw, Time dt) const |
Private Attributes | |
Handle< YieldTermStructure > | riskFreeRate_ |
Handle< YieldTermStructure > | dividendYield_ |
Handle< Quote > | s0_ |
Real | v0_ |
Real | kappa_ |
Real | theta_ |
Real | sigma_ |
Real | rho_ |
Discretization | discretization_ |
Additional Inherited Members | |
Protected Member Functions inherited from StochasticProcess | |
StochasticProcess ()=default | |
StochasticProcess (ext::shared_ptr< discretization >) | |
Protected Attributes inherited from StochasticProcess | |
ext::shared_ptr< discretization > | discretization_ |
Square-root stochastic-volatility Heston process.
This class describes the square root stochastic volatility process governed by
\[ \begin{array}{rcl} dS(t, S) &=& \mu S dt + \sqrt{v} S dW_1 \\ dv(t, S) &=& \kappa (\theta - v) dt + \sigma \sqrt{v} dW_2 \\ dW_1 dW_2 &=& \rho dt \end{array} \]
Definition at line 46 of file hestonprocess.hpp.
enum Discretization |
Definition at line 48 of file hestonprocess.hpp.
HestonProcess | ( | Handle< YieldTermStructure > | riskFreeRate, |
Handle< YieldTermStructure > | dividendYield, | ||
Handle< Quote > | s0, | ||
Real | v0, | ||
Real | kappa, | ||
Real | theta, | ||
Real | sigma, | ||
Real | rho, | ||
Discretization | d = QuadraticExponentialMartingale |
||
) |
|
overridevirtual |
returns the number of dimensions of the stochastic process
Implements StochasticProcess.
Definition at line 56 of file hestonprocess.cpp.
|
overridevirtual |
returns the number of independent factors of the process
Reimplemented from StochasticProcess.
Definition at line 60 of file hestonprocess.cpp.
|
overridevirtual |
returns the initial values of the state variables
Implements StochasticProcess.
Definition at line 66 of file hestonprocess.cpp.
returns the drift part of the equation, i.e., \( \mu(t, \mathrm{x}_t) \)
Implements StochasticProcess.
Definition at line 70 of file hestonprocess.cpp.
returns the diffusion part of the equation, i.e. \( \sigma(t, \mathrm{x}_t) \)
Implements StochasticProcess.
Definition at line 83 of file hestonprocess.cpp.
applies a change to the asset value. By default, it returns \( \mathrm{x} + \Delta \mathrm{x} \).
Reimplemented from StochasticProcess.
Definition at line 104 of file hestonprocess.cpp.
returns the asset value after a time interval \( \Delta t \) according to the given discretization. By default, it returns
\[ E(\mathrm{x}_0,t_0,\Delta t) + S(\mathrm{x}_0,t_0,\Delta t) \cdot \Delta \mathrm{w} \]
where \( E \) is the expectation and \( S \) the standard deviation.
Reimplemented from StochasticProcess.
Definition at line 396 of file hestonprocess.cpp.
Real v0 | ( | ) | const |
Definition at line 77 of file hestonprocess.hpp.
Real rho | ( | ) | const |
Definition at line 78 of file hestonprocess.hpp.
Real kappa | ( | ) | const |
Definition at line 79 of file hestonprocess.hpp.
Real theta | ( | ) | const |
Definition at line 80 of file hestonprocess.hpp.
Real sigma | ( | ) | const |
Definition at line 81 of file hestonprocess.hpp.
const Handle< YieldTermStructure > & dividendYield | ( | ) | const |
Definition at line 556 of file hestonprocess.cpp.
const Handle< YieldTermStructure > & riskFreeRate | ( | ) | const |
Definition at line 560 of file hestonprocess.cpp.
returns the time value corresponding to the given date in the reference system of the stochastic process.
Reimplemented from StochasticProcess.
Definition at line 564 of file hestonprocess.cpp.
|
private |
Definition at line 96 of file hestonprocess.hpp.
|
private |
Definition at line 96 of file hestonprocess.hpp.
Definition at line 97 of file hestonprocess.hpp.
|
private |
Definition at line 98 of file hestonprocess.hpp.
|
private |
Definition at line 98 of file hestonprocess.hpp.
|
private |
Definition at line 98 of file hestonprocess.hpp.
|
private |
Definition at line 98 of file hestonprocess.hpp.
|
private |
Definition at line 98 of file hestonprocess.hpp.
|
private |
Definition at line 99 of file hestonprocess.hpp.