QuantLib: CPICoupon Class Reference

A free/open-source library for quantitative finance Reference manual - version 1.20

Public Member Functions | List of all members
CPICoupon Class Reference

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

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

Inheritance diagram for CPICoupon:
[legend]

## Public Member Functions
| CPICoupon (Real baseCPI, const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const ext::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(), const Date &exCouponDate=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 More...
CPI::InterpolationType | observationInterpolation () const
| how do you observe the index? as-is, flat, linear?
Rate | indexObservation (const Date &onDate) const
| utility method, calls indexFixing
ext::shared_ptr< ZeroInflationIndex > | cpiIndex () const
| index used
Public Member Functions inherited from InflationCoupon
| InflationCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const ext::shared_ptr< InflationIndex > &index, const Period &observationLag, const DayCounter &dayCounter, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date())
Real | amount () const
| returns the amount of the cash flow More...
Real | price (const Handle< YieldTermStructure > &discountingCurve) const
DayCounter | dayCounter () const
| day counter for accrual calculation
Real | accruedAmount (const Date &) const
| accrued amount at the given date
Rate | rate () const
| accrued rate
const ext::shared_ptr< InflationIndex > & | index () const
| yoy inflation index
Period | observationLag () const
| how the coupon observes the index
Natural | fixingDays () const
| fixing days
virtual Date | fixingDate () const
| fixing date
void | update ()
void | setPricer (const ext::shared_ptr< InflationCouponPricer > &)
ext::shared_ptr< InflationCouponPricer > | pricer () const
Public Member Functions inherited from Coupon
| Coupon (const Date &paymentDate, Real nominal, const Date &accrualStartDate, const Date &accrualEndDate, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date())
Date | date () const
Date | exCouponDate () const
| returns the date that the cash flow trades exCoupon
virtual Real | nominal () const
const Date & | accrualStartDate () const
| start of the accrual period
const Date & | accrualEndDate () const
| end of the accrual period
const Date & | referencePeriodStart () const
| start date of the reference period
const Date & | referencePeriodEnd () const
| end date of the reference period
Time | accrualPeriod () const
| accrual period as fraction of year
Date::serial_type | accrualDays () const
| accrual period in days
Time | accruedPeriod (const Date &) const
| accrued period as fraction of year at the given date
Date::serial_type | accruedDays (const Date &) const
| accrued days at the given date
Public Member Functions inherited from CashFlow
bool | hasOccurred (const Date &refDate=Date(), boost::optional< bool > includeRefDate=boost::none) const
| returns true if an event has already occurred before a date More...
bool | tradingExCoupon (const Date &refDate=Date()) const
| returns true if the cashflow is trading ex-coupon on the refDate
Event interface
Visitability
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
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 ()

## Visitability
Real | baseCPI_
Real | fixedRate_
Spread | spread_
CPI::InterpolationType | observationInterpolation_
virtual void | accept (AcyclicVisitor &)
bool | checkPricerImpl (const ext::shared_ptr< InflationCouponPricer > &) const
| makes sure you were given the correct type of pricer
Rate | indexFixing (const Date &) const

## Additional Inherited Members
Public Types inherited from Observer
typedef boost::unordered_set< ext::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator
Protected Member Functions inherited from InflationCoupon
Protected Attributes inherited from InflationCoupon
ext::shared_ptr< InflationCouponPricer > | pricer_
ext::shared_ptr< InflationIndex > | index_
Period | observationLag_
DayCounter | dayCounter_
Natural | fixingDays_
Protected Attributes inherited from Coupon
Date | paymentDate_
Real | nominal_
Date | accrualStartDate_
Date | accrualEndDate_
Date | refPeriodStart_
Date | refPeriodEnd_
Date | exCouponDate_
Real | accrualPeriod_

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

## Member Function Documentation

## ◆ baseCPI()

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.