QuantLib_CPISwap man page

CPISwap — zero-inflation-indexed swap,


#include <ql/instruments/cpiswap.hpp>

Inherits Swap.


class arguments
Arguments for swap calculation
class results
Results from swap calculation

Public Types

enum Type { Receiver = -1, Payer = 1 }

Public Member Functions

CPISwap (Type type, Real nominal, bool subtractInflationNominal, Spread spread, const DayCounter &floatDayCount, const Schedule &floatSchedule, const BusinessDayConvention &floatRoll, Natural fixingDays, const boost::shared_ptr< IborIndex > &floatIndex, Rate fixedRate, Real baseCPI, const DayCounter &fixedDayCount, const Schedule &fixedSchedule, const BusinessDayConvention &fixedRoll, const Period &observationLag, const boost::shared_ptr< ZeroInflationIndex > &fixedIndex, CPI::InterpolationType observationInterpolation=CPI::AsIndex, Real inflationNominal=Null< Real >())

virtual Real floatLegNPV () const

virtual Spread fairSpread () const

virtual Real fixedLegNPV () const

virtual Rate fairRate () const

virtual Type type () const

virtual Real nominal () const

virtual bool subtractInflationNominal () const

virtual Spread spread () const

virtual const DayCounter & floatDayCount () const

virtual const Schedule & floatSchedule () const

virtual const BusinessDayConvention & floatPaymentRoll () const

virtual Natural fixingDays () const

virtual const boost::shared_ptr< IborIndex > & floatIndex () const

virtual Rate fixedRate () const

virtual Real baseCPI () const

virtual const DayCounter & fixedDayCount () const

virtual const Schedule & fixedSchedule () const

virtual const BusinessDayConvention & fixedPaymentRoll () const

virtual Period observationLag () const

virtual const boost::shared_ptr< ZeroInflationIndex > & fixedIndex () const

virtual CPI::InterpolationType observationInterpolation () const

virtual Real inflationNominal () const

virtual const Leg & cpiLeg () const

virtual const Leg & floatLeg () const

void setupArguments (PricingEngine::arguments *args) const

void fetchResults (const PricingEngine::results *) const

Additional Inherited Members

Detailed Description

zero-inflation-indexed swap,

fixed x zero-inflation, i.e. fixed x CPI(i'th fixing)/CPI(base) versus floating + spread

Note that this does ony the inflation-vs-floating-leg. Extension to inflation-vs-fixed-leg. is simple - just replace the floating leg with a fixed leg.

Typically there are notional exchanges at the end: either inflated-notional vs notional; or just (inflated-notional - notional) vs zero. The latter is perhaphs more typical.


Setting subtractInflationNominal to true means that the original inflation nominal is subtracted from both nominals before they are exchanged, even if they are different.

This swap can mimic a ZCIIS where [(1+q)^n - 1] is exchanged against (cpi ratio - 1), by using differnt nominals on each leg and setting subtractInflationNominal to true. ALSO - there must be just one date in each schedule.

The two legs can have different schedules, fixing (days vs lag), settlement, and roll conventions. N.B. accrual adjustment periods are already in the schedules. Trade date and swap settlement date are outside the scope of the instrument.

Member Function Documentation

void setupArguments (PricingEngine::arguments *) const [virtual]

When a derived argument structure is defined for an instrument, this method should be overridden to fill it. This is mandatory in case a pricing engine is used.

Reimplemented from Instrument.

void fetchResults (const PricingEngine::results * r) const [virtual]

When a derived result structure is defined for an instrument, this method should be overridden to read from it. This is mandatory in case a pricing engine is used.

Reimplemented from Instrument.


Generated automatically by Doxygen for QuantLib from the source code.

Referenced By

cpiLeg(3), CPISwap(3), fairRate(3), fixedDayCount(3), fixedIndex(3), fixedLegNPV(3), fixedPaymentRoll(3), fixedSchedule(3), fixingDays(3), floatDayCount(3), floatIndex(3), floatLeg(3), floatLegNPV(3), floatPaymentRoll(3), floatSchedule(3), inflationNominal(3) and subtractInflationNominal(3) are aliases of QuantLib_CPISwap(3).

QuantLib Version 1.8.1 Fri Sep 23 2016