Logo Search packages:      
Sourcecode: quantlib version File versions  Download package

QuantLib::CappedFlooredCoupon Class Reference

#include <capflooredcoupon.hpp>

Inheritance diagram for QuantLib::CappedFlooredCoupon:

QuantLib::FloatingRateCoupon QuantLib::Coupon QuantLib::Observer QuantLib::CashFlow QuantLib::Event QuantLib::Observable

List of all members.

Detailed Description

Capped and/or floored floating-rate coupon.

The payoff $ P $ of a capped floating-rate coupon is:

\[ P = N \times T \times \min(a L + b, C). \]

The payoff of a floored floating-rate coupon is:

\[ P = N \times T \times \max(a L + b, F). \]

The payoff of a collared floating-rate coupon is:

\[ P = N \times T \times \min(\max(a L + b, F), C). \]

where $ N $ is the notional, $ T $ is the accrual time, $ L $ is the floating rate, $ a $ is its gearing, $ b $ is the spread, and $ C $ and $ F $ the strikes.

They can be decomposed in the following manner. Decomposition of a capped floating rate coupon:

\[ R = \min(a L + b, C) = (a L + b) + \min(C - b - \xi |a| L, 0) \]

where $ \xi = sgn(a) $. Then:

\[ R = (a L + b) + |a| \min(\frac{C - b}{|a|} - \xi L, 0) \]

Definition at line 57 of file capflooredcoupon.hpp.


Rate cap_
Rate floor_
bool isCapped_
bool isFloored_
< FloatingRateCoupon
virtual void accept (AcyclicVisitor &)
bool isCapped () const
bool isFloored () const
void setPricer (const boost::shared_ptr< FloatingRateCouponPricer > &pricer)

Public Member Functions

Rate cap () const
 CappedFlooredCoupon (const boost::shared_ptr< FloatingRateCoupon > &underlying, Rate cap=Null< Rate >(), Rate floor=Null< Rate >())
Rate effectiveCap () const
 effective cap of fixing
Rate effectiveFloor () const
 effective floor of fixing
Rate floor () const
void notifyObservers ()
< FloatingRateCouponPricer
pricer () const
void registerWith (const boost::shared_ptr< Observable > &)
void unregisterWith (const boost::shared_ptr< Observable > &)
BigInteger accrualDays () const
 accrual period in days
const DateaccrualEndDate () const
 end of the accrual period
Time accrualPeriod () const
 accrual period as fraction of year
const DateaccrualStartDate () const
 start of the accrual period
Real nominal () const
const DatereferencePeriodEnd () const
 end date of the reference period
const DatereferencePeriodStart () const
 start date of the reference period
Coupon interface
Real accruedAmount (const Date &) const
 accrued amount at the given date
DayCounter dayCounter () const
 day counter for accrual calculation
Real price (const Handle< YieldTermStructure > &discountingCurve) const
virtual Rate adjustedFixing () const
 convexity-adjusted fixing
virtual Date fixingDate () const
 fixing date
Natural fixingDays () const
 fixing days
Real gearing () const
 index gearing, i.e. multiplicative coefficient for the index
const boost::shared_ptr
< InterestRateIndex > & 
index () const
 floating index
virtual Rate indexFixing () const
 fixing of the underlying index
bool isInArrears () const
 whether or not the coupon fixes in arrears
Spread spread () const
 spread paid over the fixing of the underlying index
CashFlow interface
Real amount () const
 returns the amount of the cash flow
Coupon interface
Rate convexityAdjustment () const
 convexity adjustment
Rate rate () const
 accrued rate
Event interface
Date date () const
Event interface
bool hasOccurred (const Date &refDate=Date(), boost::optional< bool > includeRefDate=boost::none) const
 returns true if an event has already occurred before a date
Observer interface
void update ()

Protected Member Functions

Rate convexityAdjustmentImpl (Rate fixing) const
 convexity adjustment for the given index fixing

Protected Attributes

Date accrualEndDate_
Date accrualStartDate_
DayCounter dayCounter_
Natural fixingDays_
Real gearing_
< InterestRateIndex
bool isInArrears_
Real nominal_
Date paymentDate_
< FloatingRateCouponPricer
Date refPeriodEnd_
Date refPeriodStart_
Spread spread_

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index