# 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**, const **Calendar** &, **BusinessDayConvention** bdc, const **DayCounter** &dc, const **Period** &**observationLag**, **Frequency** frequency, bool indexIsInterpolated)

**Volatility**

**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. **Volatility volatility** (const **Period** &optionTenor, **Rate** strike, const **Period** &obsLag=**Period**(-1, Days), bool extrapolate=false) const

returns the volatility for a given option tenor and strike rate

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

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

**Inspectors**

virtual **Period observationLag** () const

virtual **Frequency frequency** () const

virtual bool **indexIsInterpolated** () const

virtual **Date baseDate** () const

virtual **Time timeFromBase** (const **Date** &date, const **Period** &obsLag=**Period**(-1, Days)) const

base date will be in the past because of observation lag

virtual **Volatility baseLevel** () const

**Limits**

virtual **Real minStrike** () const =0

the minimum strike for which the term structure can return vols

virtual **Real maxStrike** () const =0

the maximum strike for which the term structure can return vols

### Protected Member Functions

virtual void **checkRange** (const **Date** &, **Rate** strike, bool extrapolate) const

virtual void **checkRange** (**Time**, **Rate** strike, bool extrapolate) const

virtual **Volatility volatilityImpl** (**Time** length, **Rate** strike) const =0

### Protected Attributes

**Volatility baseLevel_****Period observationLag_****Frequency frequency_**

bool **indexIsInterpolated_**

### 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).