QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Classes | Public Member Functions | List of all members
IborCoupon Class Reference

Coupon paying a Libor-type index More...

#include <iborcoupon.hpp>

+ Inheritance diagram for IborCoupon:
+ Collaboration diagram for IborCoupon:

Classes

class  Settings
 Per-session settings for IborCoupon class. More...
 

Public Member Functions

 IborCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const ext::shared_ptr< IborIndex > &index, Real gearing=1.0, Spread spread=0.0, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), const DayCounter &dayCounter=DayCounter(), bool isInArrears=false, const Date &exCouponDate=Date())
 
Inspectors
const ext::shared_ptr< IborIndex > & iborIndex () const
 
FloatingRateCoupon interface
Date fixingDate () const override
 fixing date More...
 
Rate indexFixing () const override
 fixing of the underlying index More...
 
void setPricer (const ext::shared_ptr< FloatingRateCouponPricer > &) override
 
Visitability
void accept (AcyclicVisitor &) override
 
- Public Member Functions inherited from FloatingRateCoupon
 FloatingRateCoupon (const Date &paymentDate, Real nominal, const Date &startDate, const Date &endDate, Natural fixingDays, const ext::shared_ptr< InterestRateIndex > &index, Real gearing=1.0, Spread spread=0.0, const Date &refPeriodStart=Date(), const Date &refPeriodEnd=Date(), DayCounter dayCounter=DayCounter(), bool isInArrears=false, const Date &exCouponDate=Date())
 
void performCalculations () const override
 
Real amount () const override
 returns the amount of the cash flow More...
 
Rate rate () const override
 accrued rate 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...
 
const ext::shared_ptr< InterestRateIndex > & index () const
 floating index More...
 
Natural fixingDays () const
 fixing days More...
 
Real gearing () const
 index gearing, i.e. multiplicative coefficient for the index More...
 
Spread spread () const
 spread paid over the fixing of the underlying index More...
 
virtual Rate convexityAdjustment () const
 convexity adjustment More...
 
virtual Rate adjustedFixing () const
 convexity-adjusted fixing More...
 
bool isInArrears () const
 whether or not the coupon fixes in arrears More...
 
ext::shared_ptr< FloatingRateCouponPricerpricer () 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 DateaccrualStartDate () const
 start of the accrual period More...
 
const DateaccrualEndDate () const
 end of the accrual period More...
 
const DatereferencePeriodStart () const
 start date of the reference period More...
 
const DatereferencePeriodEnd () 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 &)
 
Observableoperator= (const Observable &)
 
 Observable (Observable &&)=delete
 
Observableoperator= (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 &)
 
Observeroperator= (const Observer &)
 
virtual ~Observer ()
 
std::pair< iterator, boolregisterWith (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 ()
 

Internal calculations

You won't probably need these methods unless you're implementing a coupon pricer.

class IborCouponPricer
 
ext::shared_ptr< IborIndexiborIndex_
 
Date fixingDate_
 
bool cachedDataIsInitialized_ = false
 
Date fixingValueDate_
 
Date fixingEndDate_
 
Date fixingMaturityDate_
 
Time spanningTime_
 
Time spanningTimeIndexMaturity_
 
const DatefixingValueDate () const
 Start of the deposit period underlying the index fixing. More...
 
const DatefixingMaturityDate () const
 End of the deposit period underlying the index fixing. More...
 
const DatefixingEndDate () const
 End of the deposit period underlying the coupon fixing. More...
 
Time spanningTimeIndexMaturity () const
 Period underlying the index fixing, as a year fraction. More...
 
Time spanningTime () const
 Period underlying the coupon fixing, as a year fraction. More...
 
void initializeCachedData () const
 

Additional Inherited Members

- Public Types inherited from Observer
typedef set_type::iterator iterator
 
- Protected Member Functions inherited from FloatingRateCoupon
Rate convexityAdjustmentImpl (Rate fixing) const
 convexity adjustment for the given index fixing More...
 
- Protected Member Functions inherited from LazyObject
virtual void calculate () const
 
- Protected Attributes inherited from FloatingRateCoupon
ext::shared_ptr< InterestRateIndexindex_
 
DayCounter dayCounter_
 
Natural fixingDays_
 
Real gearing_
 
Spread spread_
 
bool isInArrears_
 
ext::shared_ptr< FloatingRateCouponPricerpricer_
 
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_
 

Detailed Description

Coupon paying a Libor-type index

Definition at line 41 of file iborcoupon.hpp.

Constructor & Destructor Documentation

◆ IborCoupon()

IborCoupon ( const Date paymentDate,
Real  nominal,
const Date startDate,
const Date endDate,
Natural  fixingDays,
const ext::shared_ptr< IborIndex > &  index,
Real  gearing = 1.0,
Spread  spread = 0.0,
const Date refPeriodStart = Date(),
const Date refPeriodEnd = Date(),
const DayCounter dayCounter = DayCounter(),
bool  isInArrears = false,
const Date exCouponDate = Date() 
)

Definition at line 35 of file iborcoupon.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ iborIndex()

const ext::shared_ptr< IborIndex > & iborIndex ( ) const

Definition at line 58 of file iborcoupon.hpp.

+ Here is the caller graph for this function:

◆ fixingDate()

Date fixingDate ( ) const
overridevirtual

fixing date

Reimplemented from FloatingRateCoupon.

Definition at line 87 of file iborcoupon.cpp.

+ Here is the caller graph for this function:

◆ indexFixing()

Rate indexFixing ( ) const
overridevirtual

fixing of the underlying index

Reimplemented from FloatingRateCoupon.

Definition at line 91 of file iborcoupon.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setPricer()

void setPricer ( const ext::shared_ptr< FloatingRateCouponPricer > &  pricer)
overridevirtual

Reimplemented from FloatingRateCoupon.

Definition at line 131 of file iborcoupon.cpp.

+ Here is the call graph for this function:

◆ accept()

void accept ( AcyclicVisitor v)
overridevirtual

Reimplemented from FloatingRateCoupon.

Definition at line 136 of file iborcoupon.cpp.

+ Here is the call graph for this function:

◆ fixingValueDate()

const Date & fixingValueDate ( ) const

Start of the deposit period underlying the index fixing.

Definition at line 62 of file iborcoupon.cpp.

+ Here is the call graph for this function:

◆ fixingMaturityDate()

const Date & fixingMaturityDate ( ) const

End of the deposit period underlying the index fixing.

Definition at line 72 of file iborcoupon.cpp.

+ Here is the call graph for this function:

◆ fixingEndDate()

const Date & fixingEndDate ( ) const

End of the deposit period underlying the coupon fixing.

This might be not the same as fixingMaturityDate if par coupons are used.

Definition at line 67 of file iborcoupon.cpp.

+ Here is the call graph for this function:

◆ spanningTimeIndexMaturity()

Time spanningTimeIndexMaturity ( ) const

Period underlying the index fixing, as a year fraction.

Definition at line 82 of file iborcoupon.cpp.

+ Here is the call graph for this function:

◆ spanningTime()

Time spanningTime ( ) const

Period underlying the coupon fixing, as a year fraction.

This might be not the same as spanningTimeIndexMaturity if par coupons are used.

Definition at line 77 of file iborcoupon.cpp.

+ Here is the call graph for this function:

◆ initializeCachedData()

void initializeCachedData ( ) const
private

Definition at line 56 of file iborcoupon.cpp.

+ Here is the caller graph for this function:

Friends And Related Function Documentation

◆ IborCouponPricer

friend class IborCouponPricer
friend

Definition at line 92 of file iborcoupon.hpp.

Member Data Documentation

◆ iborIndex_

ext::shared_ptr<IborIndex> iborIndex_
private

Definition at line 93 of file iborcoupon.hpp.

◆ fixingDate_

Date fixingDate_
private

Definition at line 94 of file iborcoupon.hpp.

◆ cachedDataIsInitialized_

bool cachedDataIsInitialized_ = false
mutableprivate

Definition at line 97 of file iborcoupon.hpp.

◆ fixingValueDate_

Date fixingValueDate_
mutableprivate

Definition at line 98 of file iborcoupon.hpp.

◆ fixingEndDate_

Date fixingEndDate_
private

Definition at line 98 of file iborcoupon.hpp.

◆ fixingMaturityDate_

Date fixingMaturityDate_
private

Definition at line 98 of file iborcoupon.hpp.

◆ spanningTime_

Time spanningTime_
mutableprivate

Definition at line 99 of file iborcoupon.hpp.

◆ spanningTimeIndexMaturity_

Time spanningTimeIndexMaturity_
private

Definition at line 99 of file iborcoupon.hpp.