YoYCapFloorTermPriceSurface Class Reference

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

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

Inheritance diagram for YoYCapFloorTermPriceSurface:

List of all members.

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
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
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< Ratestrikes () const
virtual std::vector< RatecapStrikes () const
virtual std::vector< RatefloorStrikes () const
virtual std::vector< Periodmaturities () const
virtual Rate minStrike () const
virtual Rate maxStrike () const
virtual Date minMaturity () const
virtual Date maxMaturity () const

Protected Member Functions

virtual bool checkStrike (Rate K)
virtual bool checkMaturity (const Date &d)

Protected Attributes

Natural fixingDays_
BusinessDayConvention bdc_
boost::shared_ptr
< YoYInflationIndex
yoyIndex_
std::vector< RatecStrikes_
std::vector< RatefStrikes_
std::vector< PeriodcfMaturities_
std::vector< RealcfMaturityTimes_
Matrix cPrice_
Matrix fPrice_
std::vector< RatecfStrikes_
boost::shared_ptr
< YoYInflationTermStructure
yoy_
std::pair< std::vector< Time >
, std::vector< Rate > > 
atmYoYSwapTimeRates_
std::pair< std::vector< Date >
, std::vector< Rate > > 
atmYoYSwapDateRates_

Detailed Description

Abstract base class, inheriting from InflationTermStructure.

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

Possible enhancements:
deal with index interpolation.

Member Function Documentation

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.

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.