KInterpolatedYoYOptionletVolatilitySurface< Interpolator1D > Class Template Reference

K-interpolated YoY optionlet volatility. More...

`#include <ql/experimental/inflation/kinterpolatedyoyoptionletvolatilitysurface.hpp>`

Inheritance diagram for KInterpolatedYoYOptionletVolatilitySurface< Interpolator1D >:
[legend]

## Constructor

calculate the reference date based on the global evaluation date
ext::shared_ptr< YoYCapFloorTermPriceSurface > | capFloorPrices_
ext::shared_ptr< YoYInflationCapFloorEngine > | yoyInflationCouponPricer_
ext::shared_ptr< YoYOptionletStripper > | yoyOptionletStripper_
Interpolator1D | factory1D_
Real | slope_
bool | lastDateisSet_
Date | lastDate_
Interpolation | tempKinterpolation_
std::pair< std::vector< Rate >, std::vector< Volatility > > | slice_

KInterpolatedYoYOptionletVolatilitySurface (Natural settlementDays, const Calendar &, BusinessDayConvention bdc, const DayCounter &dc, const Period &lag, const ext::shared_ptr< YoYCapFloorTermPriceSurface > &capFloorPrices, const ext::shared_ptr< YoYInflationCapFloorEngine > &pricer, const ext::shared_ptr< YoYOptionletStripper > &yoyOptionletStripper, Real slope, const Interpolator1D &interpolator=Interpolator1D())

virtual Real | minStrike () const
| the minimum strike for which the term structure can return vols
virtual Real | maxStrike () const
| the maximum strike for which the term structure can return vols
virtual Date | maxDate () const
| the latest date for which the curve can return values
std::pair< std::vector< Rate >, std::vector< Volatility > > | Dslice (const Date &d) const
virtual Volatility | volatilityImpl (const Date &d, Rate strike) const
virtual Volatility | volatilityImpl (Time length, Rate strike) const
virtual void | performCalculations () const

## Additional Inherited Members

Public Types inherited from Observer
typedef boost::unordered_set< ext::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator
Public Member Functions inherited from YoYOptionletVolatilitySurface
| YoYOptionletVolatilitySurface (Natural settlementDays, const Calendar &, BusinessDayConvention bdc, const DayCounter &dc, const Period &observationLag, Frequency frequency, bool indexIsInterpolated)
virtual | ~YoYOptionletVolatilitySurface ()
Volatility | volatility (const Date &maturityDate, Rate strike, const Period &obsLag=Period(-1, Days), bool extrapolate=false) const
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
| Returns the total integrated variance for a given exercise date and strike rate. More...
virtual Volatility | totalVariance (const Period &optionTenor, Rate strike, const Period &obsLag=Period(-1, Days), bool extrapolate=false) const
| returns the total integrated variance for a given option tenor and strike rate
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
Public Member Functions inherited from VolatilityTermStructure
| VolatilityTermStructure (BusinessDayConvention bdc, const DayCounter &dc=DayCounter())
| VolatilityTermStructure (const Date &referenceDate, const Calendar &cal, BusinessDayConvention bdc, const DayCounter &dc=DayCounter())
| initialize with a fixed reference date
| VolatilityTermStructure (Natural settlementDays, const Calendar &cal, BusinessDayConvention bdc, const DayCounter &dc=DayCounter())
| calculate the reference date based on the global evaluation date
virtual BusinessDayConvention | businessDayConvention () const
| the business day convention used in tenor to date conversion
Date | optionDateFromTenor (const Period &) const
| period/date conversion
Public Member Functions inherited from TermStructure
| TermStructure (const DayCounter &dc=DayCounter())
| default constructor More...
| TermStructure (const Date &referenceDate, const Calendar &calendar=Calendar(), const DayCounter &dc=DayCounter())
| initialize with a fixed reference date
| TermStructure (Natural settlementDays, const Calendar &, const DayCounter &dc=DayCounter())
| calculate the reference date based on the global evaluation date
virtual | ~TermStructure ()
virtual DayCounter | dayCounter () const
| the day counter used for date/time conversion
Time | timeFromReference (const Date &date) const
| date/time conversion
virtual Time | maxTime () const
| the latest time for which the curve can return values
virtual const Date & | referenceDate () const
| the date at which discount = 1.0 and/or variance = 0.0
virtual Calendar | calendar () const
| the calendar used for reference and/or option date calculation
virtual Natural | settlementDays () const
| the settlementDays used for reference date calculation
void | update ()
Public Member Functions inherited from Observer
| Observer (const Observer &)
Observer & | operator= (const Observer &)
std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &)
void | registerWithObservables (const ext::shared_ptr< Observer > &)
Size | unregisterWith (const ext::shared_ptr< Observable > &)
void | unregisterWithAll ()
virtual void | deepUpdate ()
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from Extrapolator
void | enableExtrapolation (bool b=true)
| enable extrapolation in subsequent calls
void | disableExtrapolation (bool b=true)
| disable extrapolation in subsequent calls
bool | allowsExtrapolation () const
| tells whether extrapolation is enabled
Protected Member Functions inherited from YoYOptionletVolatilitySurface
virtual void | checkRange (const Date &, Rate strike, bool extrapolate) const
virtual void | checkRange (Time, Rate strike, bool extrapolate) const
virtual void | setBaseLevel (Volatility v)
Protected Member Functions inherited from VolatilityTermStructure
void | checkStrike (Rate strike, bool extrapolate) const
| strike-range check
Protected Member Functions inherited from TermStructure
void | checkRange (const Date &d, bool extrapolate) const
| date-range check
void | checkRange (Time t, bool extrapolate) const
| time-range check
Protected Attributes inherited from YoYOptionletVolatilitySurface
Volatility | baseLevel_
Period | observationLag_
Frequency | frequency_
bool | indexIsInterpolated_
Protected Attributes inherited from TermStructure
bool | moving_
bool | updated_
Calendar | calendar_

## Detailed Description

### template<class Interpolator1D>
class QuantLib::KInterpolatedYoYOptionletVolatilitySurface< Interpolator1D >

K-interpolated YoY optionlet volatility.

The stripper provides curves in the T direction along each K. We don't know whether this is interpolating or fitting in the T direction. Our K direction interpolations are not model fitting.

An alternative design would be a FittedYoYOptionletVolatilitySurface taking a model, e.g. SABR in the interest rate world. This could use the same stripping in the T direction along each K.

Bug:
  Tests currently fail.

## Member Function Documentation

## volatilityImpl()

Volatility volatilityImpl | ( | Time | length,
|  | Rate | strike
| ) |  | const

protected virtual

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

Implements YoYOptionletVolatilitySurface.