Class Kou
Defined in File kou.hpp
Inheritance Relationships
Base Type
public otyca::LevyProcess
(Class LevyProcess)
Class Documentation
-
class Kou : public otyca::LevyProcess
Represents the double exponential jump diffusion (Kou) stochastic process.
The Kou jump process models asset prices by a stochastic jump, where the jump sizes follow a double exponential distribution. The jump size distribution is characterized by:
Probability p for an upward jump with mean jump size 1/eta1,
Probability 1-p for a downward jump with mean jump size -1/eta2$.
This model allows for asymmetric jump behavior, capturing realistic market features like a tendency for large downward moves (crashes) and smaller upward corrections.
Public Functions
-
inline Kou()
-
inline Kou(double eta1, double eta2, double lambda, double p)
-
inline virtual Kou *clone() const
Clone the current LevyProcess instance.
- Returns:
A pointer to a newly allocated copy.
-
virtual ~Kou()
-
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_eta1() const
-
inline double get_eta2() const
-
inline double get_lambda() const
-
inline double get_p() const
-
inline void set_eta1(double _Eta1)
-
inline void set_eta2(double _Eta2)
-
inline void set_lambda(double _Lambda)
-
inline void set_p(double _P)
-
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.