java.lang.Object
net.finmath.functions.HestonModel
This class implements some functions as static class methods related to the Heston model.
The calculation is performed by means of the FFT algorithm of Carr Madan applied to the gradient of the characteristic funtion.
The model is
\[
dS(t) = r^{\text{c}}(t) S(t) dt + \sqrt{V(t)} S(t) dW_{1}(t), \quad S(0) = S_{0},
\]
\[
dV(t) = \kappa ( \theta - V(t) ) dt + \xi \sqrt{V(t)} dW_{2}(t), \quad V(0) = \sigma^2,
\]
\[
dW_{1} dW_{2} = \rho dt
\]
\[
dN(t) = r^{\text{d}}(t) N(t) dt, \quad N(0) = N_{0},
\]
where \( W \) is a Brownian motion.
The free parameters of this model are:
- \( S_{0} \)
- spot - initial value of S
- \( r^{\text{c}} \)
- the drift of the stock, equals difference of repo rate and divident yield
- \( \sigma \)
- the initial volatility level (initial variance \( V_{0} = \sigma^{2} \))
- \( r^{\text{d}} \)
- the discount rate
- \( \xi \)
- the volatility of volatility
- \( \theta \)
- the mean reversion level of the stochastic volatility
- \( \kappa \)
- the mean reversion speed of the stochastic volatility
- \( \rho \)
- the correlation of the Brownian drivers
- Author:
- Alessandro Gnoatto
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic doublehestonOptionDelta(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the delta of a call option under a Heston model.static doublehestonOptionGamma(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the gamma of a call option under a Heston modelstatic doublehestonOptionRho(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the rho of a call option under a Heston modelstatic doublehestonOptionTheta(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the theta of a call option under a Heston modelstatic doublehestonOptionVanna(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the vanna of a call option under a Heston modelstatic doublehestonOptionVega(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the vega of a call option under a Heston model, that is \( d/d \sigma \), where \( \sigma = \sqrt{v_0} \) is the square root of the initial variance of the model, i.e., the initial volatility.static doublehestonOptionVega1(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the vega1 of a call option under a Heston model, that is \( d/d v_0 \), where \( v_0 \) is the initial variance of the model.static doublehestonOptionVolga(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the volga of a call option under a Heston model
-
Constructor Details
-
HestonModel
public HestonModel()
-
-
Method Details
-
hestonOptionDelta
public static double hestonOptionDelta(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the delta of a call option under a Heston model.- Parameters:
initialStockValue- Initital value of the stock.riskFreeRate- The risk free rate (the drift of the forward, repoRate - dividendYield = r-q).discountRate- The discount rate.sigma- the square root of the initial instantaneous variance (\( V_0 = sigma^2 \))theta- the long run mean of the volatility.kappa- the speed of mean reversion.xi- the volatility of variance.rho- correlation between the two Brownian motionsoptionMaturity- the maturity of the optionoptionStrike- the strike of the option.- Returns:
- The delta of the option.
-
hestonOptionGamma
public static double hestonOptionGamma(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the gamma of a call option under a Heston model- Parameters:
initialStockValue- Initital value of the stock.riskFreeRate- The risk free rate (the drift of the forward, repoRate - dividendYield = r-q).discountRate- The discount rate.sigma- the square root of the initial instantaneous variance (\( V_0 = sigma^2 \))theta- the long run mean of the volatility.kappa- the speed of mean reversion.xi- the volatility of variance.rho- correlation between the two Brownian motionsoptionMaturity- the maturity of the optionoptionStrike- the strike of the option.- Returns:
- The gamma of the option
-
hestonOptionTheta
public static double hestonOptionTheta(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the theta of a call option under a Heston model- Parameters:
initialStockValue- Initital value of the stock.riskFreeRate- The risk free rate (the drift of the forward, repoRate - dividendYield = r-q).discountRate- The discount rate.sigma- the square root of the initial instantaneous variance (\( V_0 = sigma^2 \))theta- the long run mean of the volatility.kappa- the speed of mean reversion.xi- the volatility of variance.rho- correlation between the two Brownian motionsoptionMaturity- the maturity of the optionoptionStrike- the strike of the option.- Returns:
- The theta of the option
-
hestonOptionRho
public static double hestonOptionRho(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the rho of a call option under a Heston model- Parameters:
initialStockValue- Initital value of the stock.riskFreeRate- The risk free rate (the drift of the forward, repoRate - dividendYield = r-q).discountRate- The discount rate.sigma- the square root of the initial instantaneous variance (\( V_0 = sigma^2 \))theta- the long run mean of the volatility.kappa- the speed of mean reversion.xi- the volatility of variance.rho- correlation between the two Brownian motionsoptionMaturity- the maturity of the optionoptionStrike- the strike of the option.- Returns:
- The rho of the option
-
hestonOptionVega
public static double hestonOptionVega(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the vega of a call option under a Heston model, that is \( d/d \sigma \), where \( \sigma = \sqrt{v_0} \) is the square root of the initial variance of the model, i.e., the initial volatility.- Parameters:
initialStockValue- Initital value of the stock.riskFreeRate- The risk free rate (the drift of the forward, repoRate - dividendYield = r-q).discountRate- The discount rate.sigma- the square root of the initial instantaneous variance (\( V_0 = sigma^2 \))theta- the long run mean of the volatility.kappa- the speed of mean reversion.xi- the volatility of variance.rho- correlation between the two Brownian motionsoptionMaturity- the maturity of the optionoptionStrike- the strike of the option.- Returns:
- The vega of the option
-
hestonOptionVega1
public static double hestonOptionVega1(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the vega1 of a call option under a Heston model, that is \( d/d v_0 \), where \( v_0 \) is the initial variance of the model.- Parameters:
initialStockValue- Initital value of the stock.riskFreeRate- The risk free rate (the drift of the forward, repoRate - dividendYield = r-q).discountRate- The discount rate.sigma- the square root of the initial instantaneous variance (\( V_0 = sigma^2 \))theta- the long run mean of the volatility.kappa- the speed of mean reversion.xi- the volatility of variance.rho- correlation between the two Brownian motionsoptionMaturity- the maturity of the optionoptionStrike- the strike of the option.- Returns:
- The vega1 of the option
-
hestonOptionVanna
public static double hestonOptionVanna(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the vanna of a call option under a Heston model- Parameters:
initialStockValue- Initital value of the stock.riskFreeRate- The risk free rate (the drift of the forward, repoRate - dividendYield = r-q).discountRate- The discount rate.sigma- the square root of the initial instantaneous variance (\( V_0 = sigma^2 \))theta- the long run mean of the volatility.kappa- the speed of mean reversion.xi- the volatility of variance.rho- correlation between the two Brownian motionsoptionMaturity- the maturity of the optionoptionStrike- the strike of the option.- Returns:
- The vanna of the option
-
hestonOptionVolga
public static double hestonOptionVolga(double initialStockValue, double riskFreeRate, double discountRate, double sigma, double theta, double kappa, double xi, double rho, double optionMaturity, double optionStrike)Calculates the volga of a call option under a Heston model- Parameters:
initialStockValue- Initital value of the stock.riskFreeRate- The risk free rate (the drift of the forward, repoRate - dividendYield = r-q).discountRate- The discount rate.sigma- the square root of the initial instantaneous variance (\( V_0 = sigma^2 \))theta- the long run mean of the volatility.kappa- the speed of mean reversion.xi- the volatility of variance.rho- correlation between the two Brownian motionsoptionMaturity- the maturity of the optionoptionStrike- the strike of the option.- Returns:
- The volga of the option
-