QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
COSHestonEngine Class Reference

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

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

Inheritance diagram for COSHestonEngine:

Public Member Functions

 COSHestonEngine (const ext::shared_ptr< HestonModel > &model, Real L=16, Size N=200)
void update () override
void calculate () const override
std::complex< RealchF (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
Real mu (Time t) const
Real var (Time t) const
Real skew (Time t) const
Real kurtosis (Time t) const
Public Member Functions inherited from GenericModelEngine< HestonModel, VanillaOption::arguments, VanillaOption::results >
 GenericModelEngine (Handle< HestonModel > model=Handle< HestonModel >())
Public Member Functions inherited from GenericEngine< VanillaOption::arguments, VanillaOption::results >
PricingEngine::arguments * getArguments () const override
const PricingEngine::results * getResults () const override
void reset () override
void update () override
Public Member Functions inherited from Observable
 Observable (const Observable &)
Observableoperator= (const Observable &)
 Observable (Observable &&)=delete
Observableoperator= (Observable &&)=delete
void notifyObservers ()
Public Member Functions inherited from Observer
 Observer (const Observer &)
Observeroperator= (const Observer &)
std::pair< iterator, bool > registerWith (const ext::shared_ptr< Observable > &)
void registerWithObservables (const ext::shared_ptr< Observer > &)
Size unregisterWith (const ext::shared_ptr< Observable > &)
void unregisterWithAll ()
virtual void deepUpdate ()

Additional Inherited Members

Public Types inherited from Observer
typedef set_type::iterator iterator
Protected Attributes inherited from GenericModelEngine< HestonModel, VanillaOption::arguments, VanillaOption::results >
Handle< HestonModelmodel_
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 ( )
overridevirtual

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.

◆ calculate()

void calculate ( ) const
overridevirtual

Implements PricingEngine.