QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
Coupon paying the performance of a CPI (zero inflation) index More...
#include <cpicoupon.hpp>
Public Member Functions | |
Constructors | |
CPICoupon (Real baseCPI, const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, const ext::shared_ptr< ZeroInflationIndex > &index, const Period &observationLag, CPI::InterpolationType observationInterpolation, const DayCounter &dayCounter, Real fixedRate, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date()) | |
CPICoupon (const Date &baseDate, const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, const ext::shared_ptr< ZeroInflationIndex > &index, const Period &observationLag, CPI::InterpolationType observationInterpolation, const DayCounter &dayCounter, Real fixedRate, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date()) | |
CPICoupon (Real baseCPI, const Date &baseDate, const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, const ext::shared_ptr< ZeroInflationIndex > &index, const Period &observationLag, CPI::InterpolationType observationInterpolation, const DayCounter &dayCounter, Real fixedRate, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date()) | |
QL_DEPRECATED | CPICoupon (Real baseCPI, const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, const ext::shared_ptr< ZeroInflationIndex > &index, const Period &observationLag, CPI::InterpolationType observationInterpolation, const DayCounter &dayCounter, Real fixedRate, Spread spread, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date()) |
QL_DEPRECATED | CPICoupon (const Date &baseDate, const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, const ext::shared_ptr< ZeroInflationIndex > &index, const Period &observationLag, CPI::InterpolationType observationInterpolation, const DayCounter &dayCounter, Real fixedRate, Spread spread, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date()) |
QL_DEPRECATED | CPICoupon (Real baseCPI, const Date &baseDate, const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, const ext::shared_ptr< ZeroInflationIndex > &index, const Period &observationLag, CPI::InterpolationType observationInterpolation, const DayCounter &dayCounter, Real fixedRate, Spread spread, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date()) |
QL_DEPRECATED_DISABLE_WARNING | ~CPICoupon () override=default |
Inspectors | |
Real | fixedRate () const |
fixed rate that will be inflated by the index ratio More... | |
Spread | spread () const |
Rate | baseCPI () const |
base value for the CPI index More... | |
Date | baseDate () const |
base date for the base fixing of the CPI index More... | |
CPI::InterpolationType | observationInterpolation () const |
how do you observe the index? as-is, flat, linear? More... | |
ext::shared_ptr< ZeroInflationIndex > | cpiIndex () const |
index used More... | |
Calculations | |
Real | accruedAmount (const Date &) const override |
accrued amount at the given date More... | |
Rate | indexFixing () const override |
the index value observed (with a lag) at the end date More... | |
Rate | indexRatio (Date d) const |
the ratio between the index fixing at the passed date and the base CPI More... | |
Rate | adjustedIndexGrowth () const |
the ratio between the end index fixing and the base CPI More... | |
Public Member Functions inherited from InflationCoupon | |
InflationCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, ext::shared_ptr< InflationIndex > index, const Period &observationLag, DayCounter dayCounter, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date()) | |
Real | amount () const override |
returns the amount of the cash flow More... | |
Real | price (const Handle< YieldTermStructure > &discountingCurve) const |
DayCounter | dayCounter () const override |
day counter for accrual calculation More... | |
Real | accruedAmount (const Date &) const override |
accrued amount at the given date More... | |
Rate | rate () const override |
accrued rate More... | |
const ext::shared_ptr< InflationIndex > & | index () const |
yoy inflation index More... | |
Period | observationLag () const |
how the coupon observes the index More... | |
Natural | fixingDays () const |
fixing days More... | |
virtual Date | fixingDate () const |
fixing date More... | |
void | performCalculations () const override |
void | accept (AcyclicVisitor &) override |
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 override |
Date | exCouponDate () const override |
returns the date that the cash flow trades exCoupon More... | |
virtual Real | nominal () const |
const Date & | accrualStartDate () const |
start of the accrual period More... | |
const Date & | accrualEndDate () const |
end of the accrual period More... | |
const Date & | referencePeriodStart () const |
start date of the reference period More... | |
const Date & | referencePeriodEnd () const |
end date of the reference period More... | |
Time | accrualPeriod () const |
accrual period as fraction of year More... | |
Date::serial_type | accrualDays () const |
accrual period in days More... | |
Time | accruedPeriod (const Date &) const |
accrued period as fraction of year at the given date More... | |
Date::serial_type | accruedDays (const Date &) const |
accrued days at the given date More... | |
Public Member Functions inherited from CashFlow | |
~CashFlow () override=default | |
bool | hasOccurred (const Date &refDate=Date(), ext::optional< bool > includeRefDate=ext::nullopt) const override |
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 More... | |
Public Member Functions inherited from Event | |
~Event () override=default | |
Public Member Functions inherited from Observable | |
Observable () | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
Observable (Observable &&)=delete | |
Observable & | operator= (Observable &&)=delete |
virtual | ~Observable ()=default |
void | notifyObservers () |
Public Member Functions inherited from LazyObject | |
LazyObject () | |
~LazyObject () override=default | |
void | update () override |
bool | isCalculated () const |
void | forwardFirstNotificationOnly () |
void | alwaysForwardNotifications () |
void | recalculate () |
void | freeze () |
void | unfreeze () |
Public Member Functions inherited from Observer | |
Observer ()=default | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
virtual | ~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 | update ()=0 |
virtual void | deepUpdate () |
Visitability | |
Real | baseCPI_ |
Real | fixedRate_ |
Spread | spread_ |
CPI::InterpolationType | observationInterpolation_ |
Date | baseDate_ |
void | accept (AcyclicVisitor &) override |
bool | checkPricerImpl (const ext::shared_ptr< InflationCouponPricer > &) const override |
makes sure you were given the correct type of pricer More... | |
Additional Inherited Members | |
Public Types inherited from Observer | |
typedef set_type::iterator | iterator |
Protected Member Functions inherited from InflationCoupon | |
Protected Member Functions inherited from LazyObject | |
virtual void | calculate () const |
Protected Attributes inherited from InflationCoupon | |
ext::shared_ptr< InflationCouponPricer > | pricer_ |
ext::shared_ptr< InflationIndex > | index_ |
Period | observationLag_ |
DayCounter | dayCounter_ |
Natural | fixingDays_ |
Real | rate_ |
Protected Attributes inherited from Coupon | |
Date | paymentDate_ |
Real | nominal_ |
Date | accrualStartDate_ |
Date | accrualEndDate_ |
Date | refPeriodStart_ |
Date | refPeriodEnd_ |
Date | exCouponDate_ |
Real | accrualPeriod_ |
Protected Attributes inherited from LazyObject | |
bool | calculated_ = false |
bool | frozen_ = false |
bool | alwaysForward_ |
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.
Definition at line 55 of file cpicoupon.hpp.
QL_DEPRECATED_DISABLE_WARNING CPICoupon | ( | Real | baseCPI, |
const Date & | paymentDate, | ||
Real | nominal, | ||
const Date & | startDate, | ||
const Date & | endDate, | ||
const ext::shared_ptr< ZeroInflationIndex > & | index, | ||
const Period & | observationLag, | ||
CPI::InterpolationType | observationInterpolation, | ||
const DayCounter & | dayCounter, | ||
Real | fixedRate, | ||
const Date & | refPeriodStart = Date() , |
||
const Date & | refPeriodEnd = Date() , |
||
const Date & | exCouponDate = Date() |
||
) |
Definition at line 34 of file cpicoupon.cpp.
CPICoupon | ( | const Date & | baseDate, |
const Date & | paymentDate, | ||
Real | nominal, | ||
const Date & | startDate, | ||
const Date & | endDate, | ||
const ext::shared_ptr< ZeroInflationIndex > & | index, | ||
const Period & | observationLag, | ||
CPI::InterpolationType | observationInterpolation, | ||
const DayCounter & | dayCounter, | ||
Real | fixedRate, | ||
const Date & | refPeriodStart = Date() , |
||
const Date & | refPeriodEnd = Date() , |
||
const Date & | exCouponDate = Date() |
||
) |
Definition at line 51 of file cpicoupon.cpp.
CPICoupon | ( | Real | baseCPI, |
const Date & | baseDate, | ||
const Date & | paymentDate, | ||
Real | nominal, | ||
const Date & | startDate, | ||
const Date & | endDate, | ||
const ext::shared_ptr< ZeroInflationIndex > & | index, | ||
const Period & | observationLag, | ||
CPI::InterpolationType | observationInterpolation, | ||
const DayCounter & | dayCounter, | ||
Real | fixedRate, | ||
const Date & | refPeriodStart = Date() , |
||
const Date & | refPeriodEnd = Date() , |
||
const Date & | exCouponDate = Date() |
||
) |
Definition at line 68 of file cpicoupon.cpp.
CPICoupon | ( | Real | baseCPI, |
const Date & | paymentDate, | ||
Real | nominal, | ||
const Date & | startDate, | ||
const Date & | endDate, | ||
const ext::shared_ptr< ZeroInflationIndex > & | index, | ||
const Period & | observationLag, | ||
CPI::InterpolationType | observationInterpolation, | ||
const DayCounter & | dayCounter, | ||
Real | fixedRate, | ||
Spread | spread, | ||
const Date & | refPeriodStart = Date() , |
||
const Date & | refPeriodEnd = Date() , |
||
const Date & | exCouponDate = Date() |
||
) |
Definition at line 86 of file cpicoupon.cpp.
CPICoupon | ( | const Date & | baseDate, |
const Date & | paymentDate, | ||
Real | nominal, | ||
const Date & | startDate, | ||
const Date & | endDate, | ||
const ext::shared_ptr< ZeroInflationIndex > & | index, | ||
const Period & | observationLag, | ||
CPI::InterpolationType | observationInterpolation, | ||
const DayCounter & | dayCounter, | ||
Real | fixedRate, | ||
Spread | spread, | ||
const Date & | refPeriodStart = Date() , |
||
const Date & | refPeriodEnd = Date() , |
||
const Date & | exCouponDate = Date() |
||
) |
Definition at line 104 of file cpicoupon.cpp.
CPICoupon | ( | Real | baseCPI, |
const Date & | baseDate, | ||
const Date & | paymentDate, | ||
Real | nominal, | ||
const Date & | startDate, | ||
const Date & | endDate, | ||
const ext::shared_ptr< ZeroInflationIndex > & | index, | ||
const Period & | observationLag, | ||
CPI::InterpolationType | observationInterpolation, | ||
const DayCounter & | dayCounter, | ||
Real | fixedRate, | ||
Spread | spread, | ||
const Date & | refPeriodStart = Date() , |
||
const Date & | refPeriodEnd = Date() , |
||
const Date & | exCouponDate = Date() |
||
) |
Definition at line 122 of file cpicoupon.cpp.
|
overridedefault |
Real fixedRate | ( | ) | const |
fixed rate that will be inflated by the index ratio
Definition at line 338 of file cpicoupon.hpp.
Real spread | ( | ) | const |
Definition at line 342 of file cpicoupon.hpp.
Rate baseCPI | ( | ) | const |
base value for the CPI index
Definition at line 358 of file cpicoupon.hpp.
Date baseDate | ( | ) | const |
base date for the base fixing of the CPI index
Definition at line 362 of file cpicoupon.hpp.
CPI::InterpolationType observationInterpolation | ( | ) | const |
how do you observe the index? as-is, flat, linear?
Definition at line 366 of file cpicoupon.hpp.
ext::shared_ptr< ZeroInflationIndex > cpiIndex | ( | ) | const |
index used
Definition at line 370 of file cpicoupon.hpp.
accrued amount at the given date
Implements Coupon.
Definition at line 161 of file cpicoupon.cpp.
|
overridevirtual |
the index value observed (with a lag) at the end date
Reimplemented from InflationCoupon.
Definition at line 354 of file cpicoupon.hpp.
the ratio between the index fixing at the passed date and the base CPI
No adjustments are applied
Definition at line 172 of file cpicoupon.cpp.
Rate adjustedIndexGrowth | ( | ) | const |
the ratio between the end index fixing and the base CPI
This might include adjustments calculated by the pricer
Definition at line 348 of file cpicoupon.hpp.
|
overridevirtual |
Reimplemented from Coupon.
Definition at line 153 of file cpicoupon.cpp.
|
overrideprotectedvirtual |
makes sure you were given the correct type of pricer
Implements InflationCoupon.
Definition at line 191 of file cpicoupon.cpp.
|
protected |
Definition at line 214 of file cpicoupon.hpp.
|
protected |
Definition at line 215 of file cpicoupon.hpp.
|
protected |
Definition at line 220 of file cpicoupon.hpp.
|
protected |
Definition at line 221 of file cpicoupon.hpp.
|
protected |
Definition at line 222 of file cpicoupon.hpp.