QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.32
Loading...
Searching...
No Matches
List of all members
ZabrInterpolatedSmileSection< Evaluation > Class Template Reference

#include <ql/experimental/volatility/zabrinterpolatedsmilesection.hpp>

+ Inheritance diagram for ZabrInterpolatedSmileSection< Evaluation >:
+ Collaboration diagram for ZabrInterpolatedSmileSection< Evaluation >:

Public Member Functions

Constructors
 ZabrInterpolatedSmileSection (const Date &optionDate, Handle< Quote > forward, const std::vector< Rate > &strikes, bool hasFloatingStrikes, Handle< Quote > atmVolatility, const std::vector< Handle< Quote > > &volHandles, Real alpha, Real beta, Real nu, Real rho, Real gamma, bool isAlphaFixed=false, bool isBetaFixed=false, bool isNuFixed=false, bool isRhoFixed=false, bool isGammaFixed=false, bool vegaWeighted=true, ext::shared_ptr< EndCriteria > endCriteria=ext::shared_ptr< EndCriteria >(), ext::shared_ptr< OptimizationMethod > method=ext::shared_ptr< OptimizationMethod >(), const DayCounter &dc=Actual365Fixed())
 all market data are quotes More...
 
 ZabrInterpolatedSmileSection (const Date &optionDate, const Rate &forward, const std::vector< Rate > &strikes, bool hasFloatingStrikes, const Volatility &atmVolatility, const std::vector< Volatility > &vols, Real alpha, Real beta, Real nu, Real rho, Real gamma, bool isAlphaFixed=false, bool isBetaFixed=false, bool isNuFixed=false, bool isRhoFixed=false, bool isGammaFixed=false, bool vegaWeighted=true, ext::shared_ptr< EndCriteria > endCriteria=ext::shared_ptr< EndCriteria >(), ext::shared_ptr< OptimizationMethod > method=ext::shared_ptr< OptimizationMethod >(), const DayCounter &dc=Actual365Fixed())
 no quotes More...
 
LazyObject interface
void performCalculations () const override
 
void update () override
 
SmileSection interface
Real minStrike () const override
 
Real maxStrike () const override
 
Real atmLevel () const override
 
Real varianceImpl (Rate strike) const override
 
Volatility volatilityImpl (Rate strike) const override
 
- Public Member Functions inherited from SmileSection
 SmileSection (const Date &d, DayCounter dc=DayCounter(), const Date &referenceDate=Date(), VolatilityType type=ShiftedLognormal, Rate shift=0.0)
 
 SmileSection (Time exerciseTime, DayCounter dc=DayCounter(), VolatilityType type=ShiftedLognormal, Rate shift=0.0)
 
 SmileSection ()=default
 
 ~SmileSection () override=default
 
void update () override
 
virtual Real minStrike () const =0
 
virtual Real maxStrike () const =0
 
Real variance (Rate strike) const
 
Volatility volatility (Rate strike) const
 
virtual Real atmLevel () const =0
 
virtual const DateexerciseDate () const
 
virtual VolatilityType volatilityType () const
 
virtual Rate shift () const
 
virtual const DatereferenceDate () const
 
virtual Time exerciseTime () const
 
virtual const DayCounterdayCounter () const
 
virtual Real optionPrice (Rate strike, Option::Type type=Option::Call, Real discount=1.0) const
 
virtual Real digitalOptionPrice (Rate strike, Option::Type type=Option::Call, Real discount=1.0, Real gap=1.0e-5) const
 
virtual Real vega (Rate strike, Real discount=1.0) const
 
virtual Real density (Rate strike, Real discount=1.0, Real gap=1.0E-4) const
 
Volatility volatility (Rate strike, VolatilityType type, Real shift=0.0) const
 
- Public Member Functions inherited from Observable
 Observable ()
 
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
 Observable (Observable &&)=delete
 
Observableoperator= (Observable &&)=delete
 
virtual ~Observable ()=default
 
void notifyObservers ()
 
- Public Member Functions inherited from Observer
 Observer ()=default
 
 Observer (const Observer &)
 
Observeroperator= (const Observer &)
 
virtual ~Observer ()
 
std::pair< iterator, boolregisterWith (const ext::shared_ptr< Observable > &)
 
void registerWithObservables (const ext::shared_ptr< Observer > &)
 
Size unregisterWith (const ext::shared_ptr< Observable > &)
 
void unregisterWithAll ()
 
virtual void update ()=0
 
virtual void deepUpdate ()
 
- Public Member Functions inherited from LazyObject
 LazyObject ()
 
 ~LazyObject () override=default
 
void update () override
 
bool isCalculated () const
 
void forwardFirstNotificationOnly ()
 
void alwaysForwardNotifications ()
 
void recalculate ()
 
void freeze ()
 
void unfreeze ()
 

Inspectors

ext::shared_ptr< ZabrInterpolation< Evaluation > > zabrInterpolation_
 
const Handle< Quoteforward_
 Market data. More...
 
const Handle< QuoteatmVolatility_
 
std::vector< Handle< Quote > > volHandles_
 
std::vector< Ratestrikes_
 
std::vector< RateactualStrikes_
 Only strikes corresponding to valid market data. More...
 
bool hasFloatingStrikes_
 
Real forwardValue_
 
std::vector< Volatilityvols_
 
Real alpha_
 Sabr parameters. More...
 
Real beta_
 
Real nu_
 
Real rho_
 
Real gamma_
 
bool isAlphaFixed_
 Sabr interpolation settings. More...
 
bool isBetaFixed_
 
bool isNuFixed_
 
bool isRhoFixed_
 
bool isGammaFixed_
 
bool vegaWeighted_
 
const ext::shared_ptr< EndCriteriaendCriteria_
 
const ext::shared_ptr< OptimizationMethodmethod_
 
Real alpha () const
 
Real beta () const
 
Real nu () const
 
Real rho () const
 
Real gamma () const
 
Real rmsError () const
 
Real maxError () const
 
EndCriteria::Type endCriteria () const
 
void createInterpolation () const
 Creates the mutable SABRInterpolation. More...
 

Additional Inherited Members

- Public Types inherited from Observer
typedef set_type::iterator iterator
 
- Protected Member Functions inherited from SmileSection
virtual void initializeExerciseTime () const
 
virtual Real varianceImpl (Rate strike) const
 
virtual Volatility volatilityImpl (Rate strike) const =0
 
- Protected Member Functions inherited from LazyObject
virtual void calculate () const
 
- Protected Attributes inherited from LazyObject
bool calculated_ = false
 
bool frozen_ = false
 
bool alwaysForward_
 

Detailed Description

template<typename Evaluation>
class QuantLib::ZabrInterpolatedSmileSection< Evaluation >

Definition at line 38 of file zabrinterpolatedsmilesection.hpp.

Constructor & Destructor Documentation

◆ ZabrInterpolatedSmileSection() [1/2]

ZabrInterpolatedSmileSection ( const Date optionDate,
Handle< Quote forward,
const std::vector< Rate > &  strikes,
bool  hasFloatingStrikes,
Handle< Quote atmVolatility,
const std::vector< Handle< Quote > > &  volHandles,
Real  alpha,
Real  beta,
Real  nu,
Real  rho,
Real  gamma,
bool  isAlphaFixed = false,
bool  isBetaFixed = false,
bool  isNuFixed = false,
bool  isRhoFixed = false,
bool  isGammaFixed = false,
bool  vegaWeighted = true,
ext::shared_ptr< EndCriteria endCriteria = ext::shared_ptr<EndCriteria>(),
ext::shared_ptr< OptimizationMethod method = ext::shared_ptr<OptimizationMethod>(),
const DayCounter dc = Actual365Fixed() 
)

all market data are quotes

Definition at line 212 of file zabrinterpolatedsmilesection.hpp.

+ Here is the call graph for this function:

◆ ZabrInterpolatedSmileSection() [2/2]

ZabrInterpolatedSmileSection ( const Date optionDate,
const Rate forward,
const std::vector< Rate > &  strikes,
bool  hasFloatingStrikes,
const Volatility atmVolatility,
const std::vector< Volatility > &  vols,
Real  alpha,
Real  beta,
Real  nu,
Real  rho,
Real  gamma,
bool  isAlphaFixed = false,
bool  isBetaFixed = false,
bool  isNuFixed = false,
bool  isRhoFixed = false,
bool  isGammaFixed = false,
bool  vegaWeighted = true,
ext::shared_ptr< EndCriteria endCriteria = ext::shared_ptr<EndCriteria>(),
ext::shared_ptr< OptimizationMethod method = ext::shared_ptr<OptimizationMethod>(),
const DayCounter dc = Actual365Fixed() 
)

no quotes

Definition at line 248 of file zabrinterpolatedsmilesection.hpp.

Member Function Documentation

◆ performCalculations()

void performCalculations ( ) const
overridevirtual

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

Implements LazyObject.

Definition at line 295 of file zabrinterpolatedsmilesection.hpp.

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

Definition at line 138 of file zabrinterpolatedsmilesection.hpp.

+ Here is the call graph for this function:

◆ minStrike()

Real minStrike
overridevirtual

Implements SmileSection.

Definition at line 194 of file zabrinterpolatedsmilesection.hpp.

◆ maxStrike()

Real maxStrike
overridevirtual

Implements SmileSection.

Definition at line 200 of file zabrinterpolatedsmilesection.hpp.

◆ atmLevel()

Real atmLevel
overridevirtual

Implements SmileSection.

Definition at line 206 of file zabrinterpolatedsmilesection.hpp.

◆ varianceImpl()

Real varianceImpl ( Rate  strike) const
overridevirtual

Reimplemented from SmileSection.

Definition at line 319 of file zabrinterpolatedsmilesection.hpp.

◆ volatilityImpl()

Real volatilityImpl ( Rate  strike) const
overridevirtual

Implements SmileSection.

Definition at line 145 of file zabrinterpolatedsmilesection.hpp.

◆ alpha()

Real alpha

Definition at line 151 of file zabrinterpolatedsmilesection.hpp.

◆ beta()

Real beta

Definition at line 157 of file zabrinterpolatedsmilesection.hpp.

◆ nu()

Real nu

Definition at line 163 of file zabrinterpolatedsmilesection.hpp.

◆ rho()

Real rho

Definition at line 169 of file zabrinterpolatedsmilesection.hpp.

◆ gamma()

Real gamma ( ) const

◆ rmsError()

Real rmsError

Definition at line 175 of file zabrinterpolatedsmilesection.hpp.

◆ maxError()

Real maxError

Definition at line 181 of file zabrinterpolatedsmilesection.hpp.

◆ endCriteria()

EndCriteria::Type endCriteria

Definition at line 188 of file zabrinterpolatedsmilesection.hpp.

◆ createInterpolation()

void createInterpolation
protected

Creates the mutable SABRInterpolation.

Definition at line 284 of file zabrinterpolatedsmilesection.hpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ zabrInterpolation_

ext::shared_ptr<ZabrInterpolation<Evaluation> > zabrInterpolation_
mutableprotected

Definition at line 115 of file zabrinterpolatedsmilesection.hpp.

◆ forward_

const Handle<Quote> forward_
protected

Market data.

Definition at line 118 of file zabrinterpolatedsmilesection.hpp.

◆ atmVolatility_

const Handle<Quote> atmVolatility_
protected

Definition at line 119 of file zabrinterpolatedsmilesection.hpp.

◆ volHandles_

std::vector<Handle<Quote> > volHandles_
protected

Definition at line 120 of file zabrinterpolatedsmilesection.hpp.

◆ strikes_

std::vector<Rate> strikes_
mutableprotected

Definition at line 121 of file zabrinterpolatedsmilesection.hpp.

◆ actualStrikes_

std::vector<Rate> actualStrikes_
mutableprotected

Only strikes corresponding to valid market data.

Definition at line 123 of file zabrinterpolatedsmilesection.hpp.

◆ hasFloatingStrikes_

bool hasFloatingStrikes_
protected

Definition at line 124 of file zabrinterpolatedsmilesection.hpp.

◆ forwardValue_

Real forwardValue_
mutableprotected

Definition at line 126 of file zabrinterpolatedsmilesection.hpp.

◆ vols_

std::vector<Volatility> vols_
mutableprotected

Definition at line 127 of file zabrinterpolatedsmilesection.hpp.

◆ alpha_

Real alpha_
protected

Sabr parameters.

Definition at line 129 of file zabrinterpolatedsmilesection.hpp.

◆ beta_

Real beta_
protected

Definition at line 129 of file zabrinterpolatedsmilesection.hpp.

◆ nu_

Real nu_
protected

Definition at line 129 of file zabrinterpolatedsmilesection.hpp.

◆ rho_

Real rho_
protected

Definition at line 129 of file zabrinterpolatedsmilesection.hpp.

◆ gamma_

Real gamma_
protected

Definition at line 129 of file zabrinterpolatedsmilesection.hpp.

◆ isAlphaFixed_

bool isAlphaFixed_
protected

Sabr interpolation settings.

Definition at line 131 of file zabrinterpolatedsmilesection.hpp.

◆ isBetaFixed_

bool isBetaFixed_
protected

Definition at line 131 of file zabrinterpolatedsmilesection.hpp.

◆ isNuFixed_

bool isNuFixed_
protected

Definition at line 131 of file zabrinterpolatedsmilesection.hpp.

◆ isRhoFixed_

bool isRhoFixed_
protected

Definition at line 131 of file zabrinterpolatedsmilesection.hpp.

◆ isGammaFixed_

bool isGammaFixed_
protected

Definition at line 131 of file zabrinterpolatedsmilesection.hpp.

◆ vegaWeighted_

bool vegaWeighted_
protected

Definition at line 132 of file zabrinterpolatedsmilesection.hpp.

◆ endCriteria_

const ext::shared_ptr<EndCriteria> endCriteria_
protected

Definition at line 133 of file zabrinterpolatedsmilesection.hpp.

◆ method_

const ext::shared_ptr<OptimizationMethod> method_
protected

Definition at line 134 of file zabrinterpolatedsmilesection.hpp.