Class Kou

Inheritance Relationships

Base Type

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.

See also

A Jump-Diffusion Model for Option Pricing, S.G.Kou 2002

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> &parameters)

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.