# doCalculation (3) - Linux Man Pages

## doCalculation: analytic Heston-model engine based on Fourier transform

## NAME

QuantLib::AnalyticHestonEngine - analytic Heston-model engine based on Fourier transform

## SYNOPSIS

#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** }

### 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)

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

## 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.

References:

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

**Tests**

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

## Author

Generated automatically by Doxygen for QuantLib from the source code.