QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
Coupon Class Referenceabstract

coupon accruing over a fixed period More...

#include <ql/cashflows/coupon.hpp>

Inheritance diagram for Coupon:

Public Member Functions

 Coupon (const Date &paymentDate, Real nominal, const Date &accrualStartDate, const Date &accrualEndDate, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const Date &exCouponDate=Date())
Event interface
Date date () const override
CashFlow interface
Date exCouponDate () const override
 returns the date that the cash flow trades exCoupon
Inspectors
virtual Real nominal () const
const DateaccrualStartDate () const
 start of the accrual period
const DateaccrualEndDate () const
 end of the accrual period
const DatereferencePeriodStart () const
 start date of the reference period
const DatereferencePeriodEnd () 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
virtual Rate rate () const =0
 accrued rate
virtual DayCounter dayCounter () const =0
 day counter for accrual calculation
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
virtual Real accruedAmount (const Date &) const =0
 accrued amount at the given date
Public Member Functions inherited from CashFlow
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
void performCalculations () const override
virtual Real amount () const =0
 returns the amount of the cash flow
bool tradingExCoupon (const Date &refDate=Date()) const
 returns true if the cashflow is trading ex-coupon on the refDate
Public Member Functions inherited from Event
Public Member Functions inherited from Observable
 Observable (const Observable &)
Observableoperator= (const Observable &)
 Observable (Observable &&)=delete
Observableoperator= (Observable &&)=delete
void notifyObservers ()
Public Member Functions inherited from LazyObject
void update () override
bool isCalculated () const
void forwardFirstNotificationOnly ()
void alwaysForwardNotifications ()
void recalculate ()
void freeze ()
void unfreeze ()
Public Member Functions inherited from Observer
 Observer (const Observer &)
Observeroperator= (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

Date paymentDate_
Real nominal_
Date accrualStartDate_
Date accrualEndDate_
Date refPeriodStart_
Date refPeriodEnd_
Date exCouponDate_
Real accrualPeriod_
void accept (AcyclicVisitor &) override

Additional Inherited Members

Public Types inherited from Observer
typedef set_type::iterator iterator
virtual void calculate () const
bool calculated_ = false
bool frozen_ = false
bool alwaysForward_

Detailed Description

coupon accruing over a fixed period

This class implements part of the CashFlow interface but it is still abstract and provides derived classes with methods for accrual period calculations.

Constructor & Destructor Documentation

◆ 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() )
Warning
the coupon does not adjust the payment date which must already be a business day.

Member Function Documentation

◆ date()

Date date ( ) const
overridevirtual
Note
This is inherited from the event class

Implements CashFlow.

◆ exCouponDate()

Date exCouponDate ( ) const
overridevirtual

returns the date that the cash flow trades exCoupon

Reimplemented from CashFlow.

◆ rate()

virtual Rate rate ( ) const
pure virtual

◆ dayCounter()

virtual DayCounter dayCounter ( ) const
pure virtual

day counter for accrual calculation

Implemented in FixedRateCoupon, FloatingRateCoupon, and InflationCoupon.

◆ accruedAmount()

virtual Real accruedAmount ( const Date & ) const
pure virtual

accrued amount at the given date

Implemented in CPICoupon, FixedRateCoupon, FloatingRateCoupon, InflationCoupon, and OvernightIndexedCoupon.

◆ accept()

void accept ( AcyclicVisitor & )
overridevirtual

Reimplemented from CashFlow.