COSHestonEngine Class Reference
Pricing engines » Vanilla option engines

COS-method Heston engine based on efficient Fourier series expansions. More...

`#include <ql/pricingengines/vanilla/coshestonengine.hpp>`

Inheritance diagram for COSHestonEngine:
[legend]

## Public Member Functions

| COSHestonEngine (const boost::shared_ptr< HestonModel > &model, Real L=16, Size N=200)
void | update ()
void | calculate () const
std::complex< Real > | chF (Real u, Real t) const
Real | c1 (Time t) const
Real | c2 (Time t) const
Real | c3 (Time t) const
Real | c4 (Time t) const
Public Member Functions inherited from GenericModelEngine< HestonModel, VanillaOption::arguments, VanillaOption::results >
| GenericModelEngine (const Handle< HestonModel > &model=Handle< HestonModel >())
| GenericModelEngine (const boost::shared_ptr< HestonModel > &model)
Public Member Functions inherited from GenericEngine< VanillaOption::arguments, VanillaOption::results >
PricingEngine::arguments * | getArguments () const
const PricingEngine::results * | getResults () const
void | reset ()
void | update ()
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from Observer
| Observer (const Observer &)
Observer & | operator= (const Observer &)
std::pair< iterator, bool > | registerWith (const boost::shared_ptr< Observable > &)
void | registerWithObservables (const boost::shared_ptr< Observer > &)
Size | unregisterWith (const boost::shared_ptr< Observable > &)
void | unregisterWithAll ()
virtual void | deepUpdate ()

## Additional Inherited Members

Public Types inherited from Observer
typedef std::set< boost::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator
Protected Attributes inherited from GenericModelEngine< HestonModel, VanillaOption::arguments, VanillaOption::results >
Handle< HestonModel > | model_
Protected Attributes inherited from GenericEngine< VanillaOption::arguments, VanillaOption::results >
VanillaOption::arguments | arguments_
VanillaOption::results | results_

## Detailed Description

COS-method Heston engine based on efficient Fourier series expansions.

References:

F. Fang, C.W. Oosterlee: A Novel Pricing Method for European Ooptions based on Fourier-Cosine Series Expansions, http://ta.twi.tudelft.nl/mf/users/oosterle/oosterlee/COS.pdf

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

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

## Member Function Documentation

## update()

void update | ( |  | ) |

virtual

This method must be implemented in derived classes. An instance of Observer does not call this method directly: instead, it will be called by the observables the instance registered with when they need to notify any changes.

Implements Observer.