Logo
Reference manual - version qle_version
StrippedCPIVolatilitySurface< Interpolator2D > Class Template Reference

Stripped zero inflation volatility structure. More...

#include <qle/termstructures/strippedcpivolatilitystructure.hpp>

Inheritance diagram for StrippedCPIVolatilitySurface< Interpolator2D >:

Public Member Functions

 StrippedCPIVolatilitySurface (PriceQuotePreference type, const QuantLib::Handle< QuantLib::CPICapFloorTermPriceSurface > &priceSurface, const QuantLib::ext::shared_ptr< QuantLib::ZeroInflationIndex > &zeroIndex, const bool quotedPricesUseInterpolatedCPIFixings, const QuantLib::ext::shared_ptr< QuantExt::CPICapFloorEngine > &engine, const QuantLib::Date &capFloorStartDate=Date(), const QuantLib::Real &upperVolBound=StrippedCPIVolSurfaceDefaultValues::upperVolBound, const QuantLib::Real &lowerVolBound=StrippedCPIVolSurfaceDefaultValues::lowerVolBound, const QuantLib::Real &solverTolerance=StrippedCPIVolSurfaceDefaultValues::solverTolerance, const Interpolator2D &interpolator2d=Interpolator2D(), const QuantLib::VolatilityType &volType=QuantLib::ShiftedLognormal, const double displacement=0.0)
LazyObject interface
void performCalculations () const
Limits
QuantLib::Real minStrike () const override
 the minimum strike for which the term structure can return vols
QuantLib::Real maxStrike () const override
 the maximum strike for which the term structure can return vols
QuantLib::Date maxDate () const override
 maximum date for which the term structure can return vols
Public Member Functions inherited from CPIVolatilitySurface
 CPIVolatilitySurface (QuantLib::Natural settlementDays, const QuantLib::Calendar &, QuantLib::BusinessDayConvention bdc, const QuantLib::DayCounter &dc, const QuantLib::Period &observationLag, QuantLib::Frequency frequency, bool indexIsInterpolated, const QuantLib::Date &capFloorStartDate=QuantLib::Date(), QuantLib::VolatilityType volType=QuantLib::ShiftedLognormal, double displacement=0.0)
QuantLib::Date optionDateFromTenor (const QuantLib::Period &tenor) const override
 Computes the expiry date from the capFloorStartDate().
QuantLib::Date baseDate () const override
 base date will be in the past
QuantLib::VolatilityType volatilityType () const
 Returns the volatility type.
double displacement () const
 Returns the displacement for lognormal volatilities.
bool isLogNormal () const
QuantLib::Volatility volatility (const QuantLib::Date &maturityDate, QuantLib::Rate strike, const QuantLib::Period &obsLag=QuantLib::Period(-1, QuantLib::Days), bool extrapolate=false) const override
QuantLib::Date capFloorStartDate () const

Inspectors

const std::vector< QuantLib::Real > & strikes ()
const std::vector< QuantLib::Period > & maturities ()
const QuantLib::Matrix & volData ()
QuantLib::Real atmStrike (const QuantLib::Date &maturity, const QuantLib::Period &obsLag=QuantLib::Period(-1, QuantLib::Days)) const override

Additional Inherited Members

Protected Member Functions inherited from CPIVolatilitySurface
virtual double fixingTime (const QuantLib::Date &maturityDate) const
 Computes the expiry time from the capFloorStartDate().
Protected Attributes inherited from CPIVolatilitySurface
QuantLib::VolatilityType volType_
double displacement_

Detailed Description

template<class Interpolator2D>
class QuantExt::StrippedCPIVolatilitySurface< Interpolator2D >

Stripped zero inflation volatility structure.

The surface provides implied CPI Black volatilities for the union of strikes that occur in the underlying cap and floor price surface.

The type argument determines which kind of price quotes are used with priority when there is an overlap, i.e. strikes for which we have both cap and floor quotes: If type is Cap: Use cap quotes where available, floor quotes otherwise If type is Floor: Use floor quotes where available, cap quotes otherwise If type is CapFloor: In case of overlap, use floor quotes up to the ATM strike, cap quotes for strikes beyond ATM

Member Function Documentation

◆ atmStrike()

template<class Interpolator2D>
QuantLib::Real atmStrike ( const QuantLib::Date & maturity,
const QuantLib::Period & obsLag = QuantLib::Period(-1, QuantLib::Days) ) const
overridevirtual

Implements CPIVolatilitySurface.