YoYCapFloorTermPriceSurface Class Referenceabstract

Abstract base class, inheriting from InflationTermStructure. More...

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

Inheritance diagram for YoYCapFloorTermPriceSurface:
[legend]

## Public Member Functions

YoYCapFloorTermPriceSurface (Natural fixingDays, const Period &yyLag, const boost::shared_ptr< YoYInflationIndex > &yii, Rate baseRate, const Handle< YieldTermStructure > &nominal, const DayCounter &dc, const Calendar &cal, const BusinessDayConvention &bdc, const std::vector< Rate > &cStrikes, const std::vector< Rate > &fStrikes, const std::vector< Period > &cfMaturities, const Matrix &cPrice, const Matrix &fPrice)

virtual std::pair< std::vector< Time >, std::vector< Rate > > | atmYoYSwapTimeRates () const =0
| atm yoy swaps from put-call parity on cap/floor data More...
virtual std::pair< std::vector< Date >, std::vector< Rate > > | atmYoYSwapDateRates () const =0
virtual boost::shared_ptr< YoYInflationTermStructure > | YoYTS () const =0
| derived from yoy swap rates
boost::shared_ptr< YoYInflationIndex > | yoyIndex () const
| index yoy is based on
virtual Date | yoyOptionDateFromTenor (const Period &p) const
virtual BusinessDayConvention | businessDayConvention () const
| inspectors More...
virtual Natural | fixingDays () const
virtual Real | price (const Date &d, const Rate k) const =0
virtual Real | capPrice (const Date &d, const Rate k) const =0
virtual Real | floorPrice (const Date &d, const Rate k) const =0
virtual Rate | atmYoYSwapRate (const Date &d, bool extrapolate=true) const =0
virtual Rate | atmYoYRate (const Date &d, const Period &obsLag=Period(-1, Days), bool extrapolate=true) const =0
virtual Real | price (const Period &d, const Rate k) const
virtual Real | capPrice (const Period &d, const Rate k) const
virtual Real | floorPrice (const Period &d, const Rate k) const
virtual Rate | atmYoYSwapRate (const Period &d, bool extrapolate=true) const
virtual Rate | atmYoYRate (const Period &d, const Period &obsLag=Period(-1, Days), bool extrapolate=true) const
virtual std::vector< Rate > | strikes () const
virtual std::vector< Rate > | capStrikes () const
virtual std::vector< Rate > | floorStrikes () const
virtual std::vector< Period > | maturities () const
virtual Rate | minStrike () const
virtual Rate | maxStrike () const
virtual Date | minMaturity () const
virtual Date | maxMaturity () const
Public Member Functions inherited from InflationTermStructure
void | setSeasonality (const boost::shared_ptr< Seasonality > &seasonality=boost::shared_ptr< Seasonality >())
| Functions to set and get seasonality. More...
boost::shared_ptr< Seasonality > | seasonality () const
bool | hasSeasonality () const
| InflationTermStructure (Rate baseRate, const Period &observationLag, Frequency frequency, bool indexIsInterpolated, const Handle< YieldTermStructure > &yTS, const DayCounter &dayCounter=DayCounter(), const boost::shared_ptr< Seasonality > &seasonality=boost::shared_ptr< Seasonality >())
| InflationTermStructure (const Date &referenceDate, Rate baseRate, const Period &observationLag, Frequency frequency, bool indexIsInterpolated, const Handle< YieldTermStructure > &yTS, const Calendar &calendar=Calendar(), const DayCounter &dayCounter=DayCounter(), const boost::shared_ptr< Seasonality > &seasonality=boost::shared_ptr< Seasonality >())
| InflationTermStructure (Natural settlementDays, const Calendar &calendar, Rate baseRate, const Period &observationLag, Frequency frequency, bool indexIsInterpolated, const Handle< YieldTermStructure > &yTS, const DayCounter &dayCounter=DayCounter(), const boost::shared_ptr< Seasonality > &seasonality=boost::shared_ptr< Seasonality >())
virtual Period | observationLag () const
virtual Frequency | frequency () const
virtual bool | indexIsInterpolated () const
virtual Rate | baseRate () const
virtual Handle< YieldTermStructure > | nominalTermStructure () const
virtual Date | baseDate () const =0
| minimum (base) date More...
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 DayCounter | dayCounter () const
| the day counter used for date/time conversion
Time | timeFromReference (const Date &date) const
| date/time conversion
virtual Date | maxDate () const =0
| the latest date for which the curve can return values
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 boost::shared_ptr< Observable > &)
void | registerWithObservables (const boost::shared_ptr< Observer > &)
Size | unregisterWith (const boost::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

virtual bool | checkStrike (Rate K)
virtual bool | checkMaturity (const Date &d)
Protected Member Functions inherited from InflationTermStructure
virtual void | setBaseRate (const Rate &r)
void | checkRange (const Date &, bool extrapolate) const
void | checkRange (Time t, bool extrapolate) const
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

Natural | fixingDays_
BusinessDayConvention | bdc_
boost::shared_ptr< YoYInflationIndex > | yoyIndex_
std::vector< Rate > | cStrikes_
std::vector< Rate > | fStrikes_
std::vector< Period > | cfMaturities_
std::vector< Real > | cfMaturityTimes_
Matrix | cPrice_
Matrix | fPrice_
std::vector< Rate > | cfStrikes_
boost::shared_ptr< YoYInflationTermStructure > | yoy_
std::pair< std::vector< Time >, std::vector< Rate > > | atmYoYSwapTimeRates_
std::pair< std::vector< Date >, std::vector< Rate > > | atmYoYSwapDateRates_
Protected Attributes inherited from InflationTermStructure
boost::shared_ptr< Seasonality > | seasonality_
Period | observationLag_
Frequency | frequency_
bool | indexIsInterpolated_
Rate | baseRate_
Handle< YieldTermStructure > | nominalTermStructure_
Protected Attributes inherited from TermStructure
bool | moving_
bool | updated_
Calendar | calendar_

## Additional Inherited Members

Public Types inherited from Observer
typedef std::set< boost::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator

## Detailed Description

Abstract base class, inheriting from InflationTermStructure.

Since this can create a yoy term structure it does take a YoY index.

## Member Function Documentation

## atmYoYSwapTimeRates()

virtual std::pair<std::vector<Time>, std::vector<Rate> > atmYoYSwapTimeRates | ( |  | ) | const

pure virtual

atm yoy swaps from put-call parity on cap/floor data

uses interpolation (on surface price data), yearly maturities.

## businessDayConvention()

virtual BusinessDayConvention businessDayConvention | ( |  | ) | const

virtual

inspectors

Note
  you don't know if price() is a cap or a floor without checking the YoYSwapATM level.
  atm cap/floor prices are generally inaccurate because they are from extrapolation and intersection.