QuantLib_AnalyticHestonEngine man page

AnalyticHestonEngine — analytic Heston-model engine based on Fourier transform  


#include <ql/pricingengines/vanilla/analytichestonengine.hpp>

Inherits GenericModelEngine< HestonModel, VanillaOption::arguments, VanillaOption::results >.

Inherited by AnalyticHestonHullWhiteEngine, BatesDoubleExpEngine, and BatesEngine.

Public Types

enum ComplexLogFormula { Gatheral, BranchCorrection, AndersenPiterbarg }

Public Member Functions

AnalyticHestonEngine (const boost::shared_ptr< HestonModel > &model, Real relTolerance, Size maxEvaluations)
AnalyticHestonEngine (const boost::shared_ptr< HestonModel > &model, Size integrationOrder=144)
AnalyticHestonEngine (const boost::shared_ptr< HestonModel > &model, ComplexLogFormula cpxLog, const Integration &itg, Real andersenPiterbargEpsilon=1e-8)
std::complex< Real > chF (const std::complex< Real > &z, Time t) const
std::complex< Real > lnChF (const std::complex< Real > &z, Time t) const
void calculate () const
Size numberOfEvaluations () const

Static Public Member Functions

static void doCalculation (Real riskFreeDiscount, Real dividendDiscount, Real spotPrice, Real strikePrice, Real term, Real kappa, Real theta, Real sigma, Real v0, Real rho, const TypePayoff &type, const Integration &integration, const ComplexLogFormula cpxLog, const AnalyticHestonEngine *const enginePtr, Real &value, Size &evaluations)

Protected Member Functions

virtual std::complex< Real > addOnTerm (Real phi, Time t, Size j) const

Additional Inherited Members

Detailed Description

analytic Heston-model engine based on Fourier transform

Integration detail: Two algebraically equivalent formulations of the complex logarithm of the Heston model exist. Gatherals [2005] (also Duffie, Pan and Singleton [2000], and Schoutens, Simons and Tistaert[2004]) version does not cause discoutinuities whereas the original version (e.g. Heston [1993]) needs some sort of 'branch correction' to work properly. Gatheral's version does also work with adaptive integration routines and should be preferred over the original Heston version.


Heston, Steven L., 1993. A Closed-Form Solution for Options with Stochastic Volatility with Applications to Bond and Currency Options. The review of Financial Studies, Volume 6, Issue 2, 327-343.

A. Sepp, Pricing European-Style Options under Jump Diffusion Processes with Stochastic Volatility: Applications of Fourier Transform (http://math.ut.ee/~spartak/papers/stochjumpvols.pdf)

R. Lord and C. Kahl, Why the rotation count algorithm works, http://papers.ssrn.com/sol3/papers.cfm?abstract_id=921335

H. Albrecher, P. Mayer, W.Schoutens and J. Tistaert, The Little Heston Trap, http://www.schoutens.be/HestonTrap.pdf

J. Gatheral, The Volatility Surface: A Practitioner's Guide, Wiley Finance

F. Le Floc'h, Fourier Integration and Stochastic Volatility Calibration, https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2362968

L. Andersen, and V. Piterbarg, 2010, Interest Rate Modeling, Volume I: Foundations and Vanilla Models, Atlantic Financial Press London.


the correctness of the returned value is tested by reproducing results available in web/literature and comparison with Black pricing.

Examples: EquityOption.cpp.


Generated automatically by Doxygen for QuantLib from the source code.

Referenced By

The man pages AnalyticHestonEngine(3), chF(3), doCalculation(3), lnChF(3) and numberOfEvaluations(3) are aliases of QuantLib_AnalyticHestonEngine(3).

Mon Apr 30 2018 Version 1.12.1 QuantLib