QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.12
Public Types | Public Member Functions | Protected Member Functions | List of all members
AndreasenHugeVolatilityInterpl Class Reference

Calibration of a local volatility surface to a sparse grid of options. More...

#include <ql/termstructures/volatility/equityfx/andreasenhugevolatilityinterpl.hpp>

+ Inheritance diagram for AndreasenHugeVolatilityInterpl:

Public Types

enum  InterpolationType { PiecewiseConstant, Linear, CubicSpline }
 
enum  CalibrationType { Call = Option::Call, Put = Option::Put, CallPut }
 
typedef std::vector< std::pair< boost::shared_ptr< VanillaOption >, boost::shared_ptr< Quote > > > CalibrationSet
 
- Public Types inherited from Observer
typedef std::set< boost::shared_ptr< Observable > > set_type
 
typedef set_type::iterator iterator
 

Public Member Functions

 AndreasenHugeVolatilityInterpl (const CalibrationSet &calibrationSet, const Handle< Quote > &spot, const Handle< YieldTermStructure > &rTS, const Handle< YieldTermStructure > &qTS, InterpolationType interpolationType=CubicSpline, CalibrationType calibrationType=Call, Size nGridPoints=500, Real minStrike=Null< Real >(), Real maxStrike=Null< Real >(), const boost::shared_ptr< OptimizationMethod > &optimizationMethod=boost::shared_ptr< OptimizationMethod >(new LevenbergMarquardt), const EndCriteria &endCriteria=EndCriteria(500, 100, 1e-12, 1e-10, 1e-10))
 
Date maxDate () const
 
Real minStrike () const
 
Real maxStrike () const
 
Real fwd (Time t) const
 
const Handle< YieldTermStructure > & riskFreeRate () const
 
boost::tuple< Real, Real, RealcalibrationError () const
 
Real optionPrice (Time t, Real strike, Option::Type optionType) const
 
Volatility localVol (Time t, Real strike) const
 
- Public Member Functions inherited from LazyObject
void update ()
 
void recalculate ()
 
void freeze ()
 
void unfreeze ()
 
void alwaysForwardNotifications ()
 
- 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 boost::shared_ptr< Observable > &)
 
void registerWithObservables (const boost::shared_ptr< Observer > &)
 
Size unregisterWith (const boost::shared_ptr< Observable > &)
 
void unregisterWithAll ()
 
virtual void deepUpdate ()
 

Protected Member Functions

void performCalculations () const
 
- Protected Member Functions inherited from LazyObject
virtual void calculate () const
 

Additional Inherited Members

- Protected Attributes inherited from LazyObject
bool calculated_
 
bool frozen_
 
bool alwaysForward_
 

Detailed Description

Calibration of a local volatility surface to a sparse grid of options.

References:

Andreasen J., Huge B., 2010. Volatility Interpolation https://ssrn.com/abstract=1694972

Member Function Documentation

◆ performCalculations()

void performCalculations ( ) const
protectedvirtual

This method must implement any calculations which must be (re)done in order to calculate the desired results.

Implements LazyObject.