Class VarianceGamma
Defined in File variance_gamma.hpp
Inheritance Relationships
Base Type
public otyca::LevyProcess
(Class LevyProcess)
Class Documentation
-
class VarianceGamma : public otyca::LevyProcess
Represents the Variance Gamma (VG) stochastic process.
The Variance Gamma process is a pure jump process with infinite activity and finite variation, used to model returns with heavy tails and skewness, beyond what standard Brownian motion allows.
The VG process can be constructed by evaluating Brownian motion with drift at random times given by a Gamma process. The Variance Gamma process has no diffusion component; all randomness comes from jumps.
See also
The Variance Gamma Process and Option Pricing, Dilip B. Madan, Peter P. Carr, Eric C. Chang, 1998
Public Functions
-
inline VarianceGamma()
-
inline VarianceGamma(double nu, double theta, double sigma)
-
inline virtual VarianceGamma *clone() const
Clone the current LevyProcess instance.
- Returns:
A pointer to a newly allocated copy.
-
virtual ~VarianceGamma()
-
virtual arma::cx_colvec characteristic_exponent(const arma::cx_colvec &u) const override
Compute the characteristic exponent at a set of frequencies.
- Parameters:
u – Complex-valued column vector of Fourier arguments.
- Returns:
characteristic exponent vector.
-
virtual std::vector<arma::cx_colvec> characteristic_exponent_derivatives(const arma::cx_colvec &u) const override
Compute the derivatives of the characteristic exponent.
- Parameters:
u – Complex-valued column vector of Fourier arguments.
- Returns:
A vector of derivatives of characteristic exponent with respect to parameters
-
inline double get_theta() const
-
inline double get_nu() const
-
inline double get_sigma() const
-
inline void set_theta(double _Theta)
-
inline void set_nu(double _Nu)
-
inline void set_sigma(double _Sigma)
-
virtual void set_transformed_calibration_parameters(const std::vector<double>&)
set the transformed parameters for calibration.
- Parameters:
transformed_calibration_parameters – the transformed calibration parameters
-
virtual std::vector<double> get_transformed_calibration_parameters() const
get the transformed parameters for calibration.
- Returns:
the transformed parameters for calibration
-
virtual std::vector<double> transformation_derivatives() const
Get derivatives of the transformation with respect to the raw parameters.
Used for Jacobian computation during calibration.
- Returns:
A vector of derivatives (default: all 1).
-
inline virtual std::vector<double> get_parameters() const
Get the model’s raw parameters.
- Returns:
A vector containing the model’s parameters.
-
inline virtual void set_parameters(const std::vector<double> &in)
Set the model’s raw parameters.
- Parameters:
parameters – A vector of new parameter values.
-
virtual std::vector<double> get_transformed_calibration_parameter_variances() const
-
inline virtual std::string name() const
Get the model’s name.
- Returns:
A string representing the name of the model.
-
inline virtual std::vector<std::string> get_parameter_names() const
Get the names of the model parameters.
Default implementation assigns names as “p1”, “p2”, etc.
- Returns:
A vector of parameter names.
-
inline void set_multiplier(double m)
-
inline VarianceGamma()