YearOnYearInflationSwap Class Reference

Year-on-year inflation-indexed swap. More...

#include <ql/instruments/yearonyearinflationswap.hpp>

Inheritance diagram for YearOnYearInflationSwap:

List of all members.

Classes

class  arguments
 Arguments for YoY swap calculation More...
class  results
 Results from YoY swap calculation More...

Public Types

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

Public Member Functions

 YearOnYearInflationSwap (Type type, Real nominal, const Schedule &fixedSchedule, Rate fixedRate, const DayCounter &fixedDayCount, const Schedule &yoySchedule, const boost::shared_ptr< YoYInflationIndex > &yoyIndex, const Period &observationLag, Spread spread, const DayCounter &yoyDayCount, const Calendar &paymentCalendar, BusinessDayConvention paymentConvention=ModifiedFollowing)
virtual Real fixedLegNPV () const
virtual Rate fairRate () const
virtual Real yoyLegNPV () const
virtual Spread fairSpread () const
virtual Type type () const
virtual Real nominal () const
virtual const SchedulefixedSchedule () const
virtual Rate fixedRate () const
virtual const DayCounterfixedDayCount () const
virtual const ScheduleyoySchedule () const
virtual const
boost::shared_ptr
< YoYInflationIndex > & 
yoyInflationIndex () const
virtual Period observationLag () const
virtual Spread spread () const
virtual const DayCounteryoyDayCount () const
virtual Calendar paymentCalendar () const
virtual BusinessDayConvention paymentConvention () const
virtual const Leg & fixedLeg () const
virtual const Leg & yoyLeg () const
void setupArguments (PricingEngine::arguments *args) const
void fetchResults (const PricingEngine::results *) const


Detailed Description

Year-on-year inflation-indexed swap.

Quoted as a fixed rate $ K $. At start:

\[ \sum_{i=1}^{M} P_n(0,t_i) N K = \sum_{i=1}^{M} P_n(0,t_i) N \left[ \frac{I(t_i)}{I(t_i-1)} - 1 \right] \]

where $ t_M $ is the maturity time, $ P_n(0,t) $ is the nominal discount factor at time $ t $, $ N $ is the notional, and $ I(t) $ is the inflation index value at time $ t $.

Note:
These instruments have now been changed to follow typical VanillaSwap type design conventions w.r.t. Schedules etc.

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

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