Class CGMY
Defined in File cgmy.hpp
Inheritance Relationships
Base Type
public otyca::LevyProcess
(Class LevyProcess)
Class Documentation
-
class CGMY : public otyca::LevyProcess
Represents the CGMY stochastic process model.
The CGMY process is a pure-jump Lévy process widely used in financial modeling, particularly for capturing asset returns with jumps and heavy tails. It is characterized by four parameters:
C: Activity level of small jumps
G: Decay rate of positive jumps
M: Decay rate of negative jumps
Y: Tail heaviness (or jump intensity) parameter
The CGMY process generalizes several well-known models, including the Variance Gamma process (when Y=0) and the stable process (when Y∈(0,2) and C is constant).
This class provides methods for evaluating process characteristics, simulating paths, and computing relevant quantities for applications such as option pricing and risk management.
See also
“Carr, P., Geman, H., Madan, D.B., and Yor, M. The Fine Structure of Asset Returns: An Empirical
Investigation, Journal of Business, 2002” for more detailed background.
Note
The process reduces to a Brownian motion in the appropriate parameter limits.
Public Functions
-
inline CGMY(double C, double G, double M, double Y)
-
inline CGMY()
-
inline virtual CGMY *clone() const
Clone the current LevyProcess instance.
- Returns:
A pointer to a newly allocated copy.
-
virtual ~CGMY()
-
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_c() const
-
inline double get_g() const
-
inline double get_m() const
-
inline double get_y() const
-
inline void set_c(double c)
-
inline void set_g(double g)
-
inline void set_m(double m)
-
inline void set_y(double y)
-
virtual void set_transformed_calibration_parameters(const std::vector<double>&)
set the transformed parameters for calibration.
- Parameters:
transformed_calibration_parameters – the transformed calibration parameters
-
inline virtual void set_parameters(const std::vector<double> ¶meters)
Set the model’s raw parameters.
- Parameters:
parameters – A vector of new parameter values.
-
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).
-
virtual std::vector<double> get_transformed_calibration_parameters() const
get the transformed parameters for calibration.
- Returns:
the transformed parameters for calibration
-
inline virtual std::vector<double> get_parameters() const
Get the model’s raw parameters.
- Returns:
A vector containing the model’s parameters.
-
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)