Logo
Reference manual - version qle_version
Public Member Functions | List of all members
CPIPriceVolatilitySurface< InterpolatorStrike, InterpolatorTime > Class Template Reference

Stripped zero inflation volatility structure. More...

#include <qle/termstructures/inflation/cpipricevolatilitysurface.hpp>

+ Inheritance diagram for CPIPriceVolatilitySurface< InterpolatorStrike, InterpolatorTime >:

Public Member Functions

 CPIPriceVolatilitySurface (PriceQuotePreference type, const QuantLib::Period &observationLag, const QuantLib::Calendar &cal, const QuantLib::BusinessDayConvention &bdc, const QuantLib::DayCounter &dc, const boost::shared_ptr< QuantLib::ZeroInflationIndex > index, QuantLib::Handle< QuantLib::YieldTermStructure > yts, const std::vector< QuantLib::Rate > &cStrikes, const std::vector< QuantLib::Rate > &fStrikes, const std::vector< QuantLib::Period > &cfMaturities, const QuantLib::Matrix &cPrice, const QuantLib::Matrix &fPrice, const boost::shared_ptr< QuantExt::CPICapFloorEngine > &engine, const bool quotedInstrumentsAreInterpolated=false, const QuantLib::Date &capFloorStartDate=QuantLib::Date(), bool ignoreMissingPrices=false, bool lowerStrikeConstExtrap=true, bool upperStrikeConstExtrap=true, const QuantLib::VolatilityType &volType=QuantLib::ShiftedLognormal, const double displacement=0.0, const QuantLib::Real &upperVolBound=CPIPriceVolatilitySurfaceDefaultValues::upperVolBound, const QuantLib::Real &lowerVolBound=CPIPriceVolatilitySurfaceDefaultValues::lowerVolBound, const QuantLib::Real &solverTolerance=CPIPriceVolatilitySurfaceDefaultValues::solverTolerance)
 
QL_DEPRECATED CPIPriceVolatilitySurface (PriceQuotePreference type, const QuantLib::Period &observationLag, const QuantLib::Calendar &cal, const QuantLib::BusinessDayConvention &bdc, const QuantLib::DayCounter &dc, const boost::shared_ptr< QuantLib::ZeroInflationIndex > index, QuantLib::Handle< QuantLib::YieldTermStructure > yts, const std::vector< QuantLib::Rate > &cStrikes, const std::vector< QuantLib::Rate > &fStrikes, const std::vector< QuantLib::Period > &cfMaturities, const QuantLib::Matrix &cPrice, const QuantLib::Matrix &fPrice, const boost::shared_ptr< QuantExt::CPICapFloorEngine > &engine, const QuantLib::Date &capFloorStartDate=QuantLib::Date(), bool ignoreMissingPrices=false, bool lowerStrikeConstExtrap=true, bool upperStrikeConstExtrap=true, const QuantLib::VolatilityType &volType=QuantLib::ShiftedLognormal, const double displacement=0.0, const QuantLib::Real &upperVolBound=CPIPriceVolatilitySurfaceDefaultValues::upperVolBound, const QuantLib::Real &lowerVolBound=CPIPriceVolatilitySurfaceDefaultValues::lowerVolBound, const QuantLib::Real &solverTolerance=CPIPriceVolatilitySurfaceDefaultValues::solverTolerance)
 
LazyObject interface
void performCalculations () const override
 
void update () override
 
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 ()
 Returns the strikes.
 
const std::vector< QuantLib::Period > & maturities ()
 Returns the tenors.
 
const QuantLib::Matrix & volData () const
 
const std::vector< std::vector< bool > > & missingValues () const
 
const std::vector< std::vector< bool > > & pricesFailedToConvert () const
 
double baseCPI () const
 CPI fixing on the baseDate of the surface.
 
double atmGrowth (QuantLib::Period &tenor) const
 
double atmGrowth (const QuantLib::Date &date) const
 
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 InterpolatorStrike, class InterpolatorTime>
class QuantExt::CPIPriceVolatilitySurface< InterpolatorStrike, InterpolatorTime >

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