QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.20
Public Member Functions | List of all members
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 ()
 
void calculate () const
 
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 (const Handle< HestonModel > &model=Handle< HestonModel >())
 
 GenericModelEngine (const ext::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 PricingEngine
virtual arguments * getArguments () const =0
 
virtual const results * getResults () const =0
 
- Public Member Functions inherited from Observable
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
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 boost::unordered_set< ext::shared_ptr< Observable > > set_type
 
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 ( )
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.