QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
Cms-rate coupon with digital digital call/put option. More...
#include <digitalcmscoupon.hpp>
Public Member Functions | |
DigitalCmsCoupon (const ext::shared_ptr< CmsCoupon > &underlying, Rate callStrike=Null< Rate >(), Position::Type callPosition=Position::Long, bool isCallATMIncluded=false, Rate callDigitalPayoff=Null< Rate >(), Rate putStrike=Null< Rate >(), Position::Type putPosition=Position::Long, bool isPutATMIncluded=false, Rate putDigitalPayoff=Null< Rate >(), const ext::shared_ptr< DigitalReplication > &replication={}, bool nakedOption=false) | |
Visitability | |
void | accept (AcyclicVisitor &) override |
Public Member Functions inherited from DigitalCoupon | |
DigitalCoupon (const ext::shared_ptr< FloatingRateCoupon > &underlying, Rate callStrike=Null< Rate >(), Position::Type callPosition=Position::Long, bool isCallITMIncluded=false, Rate callDigitalPayoff=Null< Rate >(), Rate putStrike=Null< Rate >(), Position::Type putPosition=Position::Long, bool isPutITMIncluded=false, Rate putDigitalPayoff=Null< Rate >(), ext::shared_ptr< DigitalReplication > replication={}, bool nakedOption=false) | |
general constructor More... | |
void | deepUpdate () override |
void | performCalculations () const override |
Rate | rate () const override |
accrued rate More... | |
Rate | convexityAdjustment () const override |
convexity adjustment More... | |
Rate | callStrike () const |
Rate | putStrike () const |
Rate | callDigitalPayoff () const |
Rate | putDigitalPayoff () const |
bool | hasPut () const |
bool | hasCall () const |
bool | hasCollar () const |
bool | isLongPut () const |
bool | isLongCall () const |
ext::shared_ptr< FloatingRateCoupon > | underlying () const |
Rate | callOptionRate () const |
Rate | putOptionRate () const |
void | accept (AcyclicVisitor &) override |
void | setPricer (const ext::shared_ptr< FloatingRateCouponPricer > &pricer) 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... | |
virtual Date | fixingDate () const |
fixing date 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 | indexFixing () const |
fixing of the underlying index More... | |
virtual Rate | adjustedFixing () const |
convexity-adjusted fixing More... | |
bool | isInArrears () const |
whether or not the coupon fixes in arrears More... | |
void | accept (AcyclicVisitor &) override |
ext::shared_ptr< FloatingRateCouponPricer > | 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 () |
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 DigitalCoupon | |
ext::shared_ptr< FloatingRateCoupon > | underlying_ |
Rate | callStrike_ |
strike rate for the the call option More... | |
Rate | putStrike_ |
strike rate for the the put option More... | |
Real | callCsi_ = 0. |
multiplicative factor of call payoff More... | |
Real | putCsi_ = 0. |
multiplicative factor of put payoff More... | |
bool | isCallATMIncluded_ |
inclusion flag og the call payoff if the call option ends at-the-money More... | |
bool | isPutATMIncluded_ |
inclusion flag og the put payoff if the put option ends at-the-money More... | |
bool | isCallCashOrNothing_ = false |
digital call option type: if true, cash-or-nothing, if false asset-or-nothing More... | |
bool | isPutCashOrNothing_ = false |
digital put option type: if true, cash-or-nothing, if false asset-or-nothing More... | |
Rate | callDigitalPayoff_ |
digital call option payoff rate, if any More... | |
Rate | putDigitalPayoff_ |
digital put option payoff rate, if any More... | |
Real | callLeftEps_ |
the left and right gaps applied in payoff replication for call More... | |
Real | callRightEps_ |
Real | putLeftEps_ |
the left and right gaps applied in payoff replication for put More... | |
Real | putRightEps_ |
bool | hasPutStrike_ = false |
bool | hasCallStrike_ = false |
Replication::Type | replicationType_ |
Type of replication. More... | |
bool | nakedOption_ |
underlying excluded from the payoff More... | |
Protected Attributes inherited from FloatingRateCoupon | |
ext::shared_ptr< InterestRateIndex > | index_ |
DayCounter | dayCounter_ |
Natural | fixingDays_ |
Real | gearing_ |
Spread | spread_ |
bool | isInArrears_ |
ext::shared_ptr< FloatingRateCouponPricer > | pricer_ |
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_ |
Cms-rate coupon with digital digital call/put option.
Definition at line 36 of file digitalcmscoupon.hpp.
DigitalCmsCoupon | ( | const ext::shared_ptr< CmsCoupon > & | underlying, |
Rate | callStrike = Null<Rate>() , |
||
Position::Type | callPosition = Position::Long , |
||
bool | isCallATMIncluded = false , |
||
Rate | callDigitalPayoff = Null<Rate>() , |
||
Rate | putStrike = Null<Rate>() , |
||
Position::Type | putPosition = Position::Long , |
||
bool | isPutATMIncluded = false , |
||
Rate | putDigitalPayoff = Null<Rate>() , |
||
const ext::shared_ptr< DigitalReplication > & | replication = {} , |
||
bool | nakedOption = false |
||
) |
Definition at line 28 of file digitalcmscoupon.cpp.
|
overridevirtual |
Reimplemented from Coupon.
Definition at line 44 of file digitalcmscoupon.cpp.