QuantLib_CPISwap man page

CPISwap — zero-inflation-indexed swap,  

Synopsis

#include <ql/instruments/cpiswap.hpp>

Inherits Swap.

Classes

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.

Warning

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.

Author

Generated automatically by Doxygen for QuantLib from the source code.

Referenced By

cpiLeg(3), CPISwap(3), fixedIndex(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).

Fri Feb 10 2017 Version 1.9.1 QuantLib