C# Class VarianceGamma.VarianceGammaOptionsCalibration

Inheritance: IEstimator, IDescription
Show file Open project: fairmat/EquityModels Class Usage Examples

Public Methods

Method Description
Estimate ( List data, IEstimationSettings settings = null, IController controller = null, object>.Dictionary properties = null ) : EstimationResult

Attempts to solve the Variance Gamma Optimization problem using Heston.VarianceGammaOptimizationProblem.

GetRequirements ( IEstimationSettings settings, EstimateQuery query ) : EstimateRequirement[]

Gets the types required by the estimator in order to work: EquitySpotMarketData and CallPriceMarketData are the required type for this estimator.

VGCall ( double theta, double sigma, double nu, double t, double k, double q, double s0, double r ) : double

Calculate the price of a call option. Notation and formulas follow Whitley A. "Pricing of European, Bermudan and American Options under the Exponential Variance Gamma Process" (2009) apart from a correction in the last line where we substituted q (dividend yield) in place of r (risk free rate).

Private Methods

Method Description
BesselI ( double nu, double z ) : double

Calculates the modified Bessel function of the first kind

BesselK ( double nu, double z ) : double

Calculates the modified Bessel function of the second kind

CH ( double a, double b, double c, double x, double y ) : double

Calculates the confluent hypergeometric function of two variables

Factorial ( int n ) : double

Simple wrapper for the Fairmat provided factorial function.

Gamma ( double z ) : double

Simple wrapper for the Fairmat provided Gamma function. It handles some special cases required by Variance Gamma.

Psi ( double a, double b, double c ) : double

Psi function that enters in the call price formula Notation and formulas follow Whitley A. "Pricing of European, Bermudan and American Options under the Exponential Variance Gamma Process" (2009)

Method Details

Estimate() public method

Attempts to solve the Variance Gamma Optimization problem using Heston.VarianceGammaOptimizationProblem.
public Estimate ( List data, IEstimationSettings settings = null, IController controller = null, object>.Dictionary properties = null ) : EstimationResult
data List /// The data to be used in order to perform the optimization. ///
settings IEstimationSettings The parameter is not used.
controller IController
properties object>.Dictionary
return EstimationResult

GetRequirements() public method

Gets the types required by the estimator in order to work: EquitySpotMarketData and CallPriceMarketData are the required type for this estimator.
public GetRequirements ( IEstimationSettings settings, EstimateQuery query ) : EstimateRequirement[]
settings IEstimationSettings The parameter is not used.
query EstimateQuery
return EstimateRequirement[]

VGCall() public static method

Calculate the price of a call option. Notation and formulas follow Whitley A. "Pricing of European, Bermudan and American Options under the Exponential Variance Gamma Process" (2009) apart from a correction in the last line where we substituted q (dividend yield) in place of r (risk free rate).
public static VGCall ( double theta, double sigma, double nu, double t, double k, double q, double s0, double r ) : double
theta double VG theta parameter
sigma double VG sigma parameter
nu double VG nu parameter
t double Call maturity
k double Call strike
q double Dividend yield
s0 double Process starting value
r double Risk free rate
return double