Stripped zero inflation volatility structure. More...
#include <qle/termstructures/inflation/cpipricevolatilitysurface.hpp>
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_ |
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