# QuantLib_CPIVolatilitySurface man page

CPIVolatilitySurface — zero inflation (i.e. CPI/RPI/HICP/etc.) volatility structures

## Synopsis

`#include <ql/termstructures/volatility/inflation/cpivolatilitystructure.hpp>`

Inherits **VolatilityTermStructure**.

Inherited by **ConstantCPIVolatility**.

### Public Member Functions

CPIVolatilitySurface(Natural settlementDays, constCalendar&,BusinessDayConventionbdc, constDayCounter&dc, constPeriod&observationLag,Frequencyfrequency, bool indexIsInterpolated)

**Volatility**

Volatility volatility(constDate&maturityDate,Ratestrike, constPeriod&obsLag=Period(-1, Days), bool extrapolate=false) const

Returns the volatility for a given maturity date and strike rate.Volatility volatility(constPeriod&optionTenor,Ratestrike, constPeriod&obsLag=Period(-1, Days), bool extrapolate=false) const

returns the volatility for a given option tenor and strike rate

virtualVolatility totalVariance(constDate&exerciseDate,Ratestrike, constPeriod&obsLag=Period(-1, Days), bool extrapolate=false) const

virtualVolatility totalVariance(constPeriod&optionTenor,Ratestrike, constPeriod&obsLag=Period(-1, Days), bool extrapolate=false) const

**Inspectors**

virtualPeriod observationLag() const

virtualFrequency frequency() const

virtual boolindexIsInterpolated() const

virtualDate baseDate() const

virtualTime timeFromBase(constDate&date, constPeriod&obsLag=Period(-1, Days)) const

base date will be in the past because of observation lag

virtualVolatility baseLevel() const

**Limits**

virtualReal minStrike() const =0

the minimum strike for which the term structure can return vols

virtualReal maxStrike() const =0

the maximum strike for which the term structure can return vols

### Protected Member Functions

virtual voidcheckRange(constDate&,Ratestrike, bool extrapolate) const

virtual voidcheckRange(Time,Ratestrike, bool extrapolate) const

virtualVolatility volatilityImpl(Timelength,Ratestrike) const =0

### Protected Attributes

Volatility baseLevel_Period observationLag_Frequency frequency_

boolindexIsInterpolated_

### Additional Inherited Members

## Detailed Description

zero inflation (i.e. CPI/RPI/HICP/etc.) volatility structures

Abstract interface. CPI volatility is always with respect to some base date. Also deal with lagged observations of an index with a (usually different) availability lag.

## Constructor & Destructor Documentation

### CPIVolatilitySurface (Natural settlementDays, const Calendar &, BusinessDayConvention bdc, const DayCounter & dc, const Period & observationLag, Frequency frequency, bool indexIsInterpolated)

calculates the reference date based on the global evaluation date.

## Member Function Documentation

### Volatility volatility (const Date & maturityDate, Rate strike, const Period & obsLag = Period(-1, Days), bool extrapolate = false) const

Returns the volatility for a given maturity date and strike rate. by default, inflation is observed with the lag of the term structure.

Because inflation is highly linked to dates (for interpolation, periods, etc) time-based overload of the methods are not provided.

### virtual Volatility totalVariance (const Date & exerciseDate, Rate strike, const Period & obsLag = Period(-1, Days), bool extrapolate = false) const [virtual]

Returns the total integrated variance for a given exercise date and strike rate.

Total integrated variance is useful because it scales out t for the optionlet pricing formulae. Note that it is called 'total' because the surface does not know whether it represents Black, Bachelier or Displaced Diffusion variance. These are virtual so alternate connections between const vol and total var are possible.

### virtual Volatility totalVariance (const Period & optionTenor, Rate strike, const Period & obsLag = Period(-1, Days), bool extrapolate = false) const [virtual]

returns the total integrated variance for a given option tenor and strike rate.

### virtual Period observationLag () const [virtual]

The term structure observes with a lag that is usually different from the availability lag of the index. An inflation rate is given, by default, for the maturity requested assuming this lag.

### virtual Volatility volatilityImpl (Time length, Rate strike) const [protected], [pure virtual]

Implements the actual volatility surface calculation in derived classes e.g. bilinear interpolation. N.B. does not derive the surface.

## Author

Generated automatically by Doxygen for QuantLib from the source code.

## Referenced By

baseLevel(3), baseLevel_(3), CPIVolatilitySurface(3), indexIsInterpolated(3), indexIsInterpolated_(3), timeFromBase(3) and totalVariance(3) are aliases of QuantLib_CPIVolatilitySurface(3).