20#include <ql/errors.hpp>
21#include <ql/experimental/variancegamma/variancegammaprocess.hpp>
22#include <ql/math/distributions/normaldistribution.hpp>
23#include <ql/processes/eulerdiscretization.hpp>
35 s0_(
std::move(s0)), dividendYield_(
std::move(dividendYield)),
36 riskFreeRate_(
std::move(riskFreeRate)), sigma_(sigma), nu_(nu), theta_(theta) {
49 QL_FAIL(
"not implemented yet");
54 QL_FAIL(
"not implemented yet");
Euler discretization for stochastic processes.
Shared handle to an observable.
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
1-dimensional stochastic process
discretization of a stochastic process over a given time interval
const Handle< YieldTermStructure > & dividendYield() const
Real diffusion(Time t, Real x) const override
returns the diffusion part of the equation, i.e.
VarianceGammaProcess(Handle< Quote > s0, Handle< YieldTermStructure > dividendYield, Handle< YieldTermStructure > riskFreeRate, Real sigma, Real nu, Real theta)
Real drift(Time t, Real x) const override
returns the drift part of the equation, i.e.
Handle< YieldTermStructure > dividendYield_
Real x0() const override
returns the initial value of the state variable
const Handle< Quote > & s0() const
const Handle< YieldTermStructure > & riskFreeRate() const
Handle< YieldTermStructure > riskFreeRate_
Real Time
continuous quantity with 1-year units