### A free/open-source library for quantitative finance

Public Member Functions | Protected Member Functions | Protected Attributes
CPICoupon Class Reference

Coupon paying the performance of a CPI (zero inflation) index More...

`#include <ql/cashflows/cpicoupon.hpp>`

Inheritance diagram for CPICoupon:
[legend]

List of all members.

## Public Member Functions

| CPICoupon (Real baseCPI, const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const boost::shared_ptr< ZeroInflationIndex > &index, const Period &observationLag, CPI::InterpolationType observationInterpolation, const DayCounter &dayCounter, Real fixedRate, Spread spread=0.0, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date())
Inspectors
Real | fixedRate () const
| fixed rate that will be inflated by the index ratio
Spread | spread () const
| spread paid over the fixing of the underlying index
Rate | adjustedFixing () const
| adjusted fixing (already divided by the base fixing)
Rate | indexFixing () const
| allows for a different interpolation from the index
Rate | baseCPI () const
| base value for the CPI index
CPI::InterpolationType | observationInterpolation () const
| how do you observe the index? as-is, flat, linear?
Rate | indexObservation (const Date &onDate) const
| utility method, calls indexFixing
boost::shared_ptr < ZeroInflationIndex > | cpiIndex () const
| index used
Visitability
virtual void | accept (AcyclicVisitor &)

## Protected Member Functions

bool | checkPricerImpl (const boost::shared_ptr< InflationCouponPricer > &) const
| makes sure you were given the correct type of pricer
Rate | indexFixing (const Date &) const

## Protected Attributes

Real | baseCPI_
Real | fixedRate_
Spread | spread_
CPI::InterpolationType | observationInterpolation_

## Detailed Description

Coupon paying the performance of a CPI (zero inflation) index

The performance is relative to the index value on the base date.

The other inflation value is taken from the refPeriodEnd date with observation lag, so any roll/calendar etc. will be built in by the caller. By default this is done in the InflationCoupon which uses ModifiedPreceding with fixing days assumed positive meaning earlier, i.e. always stay in same month (relative to referencePeriodEnd).

This is more sophisticated than an IndexedCashFlow because it does date calculations itself.

Possible enhancements:
  we do not do any convexity adjustment for lags different to the natural ZCIIS lag that was used to create the forward inflation curve.

## Member Function Documentation

Rate baseCPI | ( |  | ) | const

base value for the CPI index

Warning:
  make sure that the interpolation used to create this is what you are using for the fixing, i.e. the observationInterpolation.