|
QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.38
|
Digital-payoff coupon. More...
#include <digitalcoupon.hpp>
Inheritance diagram for DigitalCoupon:
Collaboration diagram for DigitalCoupon:Public Member Functions | |
Constructors | |
| 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... | |
Obverver interface | |
| void | deepUpdate () override |
LazyObject interface | |
| void | performCalculations () const override |
Coupon interface | |
| Rate | rate () const override |
| accrued rate More... | |
| Rate | convexityAdjustment () const override |
| convexity adjustment More... | |
Digital inspectors | |
| 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 |
Visitability | |
| 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 ()=default | |
| 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 () |
Data members | |
| 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... | |
| Rate | callPayoff () const |
| Rate | putPayoff () 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< 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_ |
Digital-payoff coupon.
Implementation of a floating-rate coupon with digital call/put option. Payoffs:
Coupon with asset-or-nothing Digital Put rate + csi * rate * Heaviside(strike-rate) where csi=+1 or csi=-1. If nakedOption is true, the rate in the payoffs is set to zero. The evaluation of the coupon is made using the call/put spread replication method.
Definition at line 79 of file digitalcoupon.hpp.
| 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
Definition at line 28 of file digitalcoupon.cpp.
Here is the call graph for this function:
|
overridevirtual |
This method allows to explicitly update the instance itself and nested observers. If notifications are disabled a call to this method ensures an update of such nested observers. It should be implemented in derived classes whenever applicable
Reimplemented from Observer.
Definition at line 221 of file digitalcoupon.cpp.
Here is the call graph for this function:
|
overridevirtual |
This method must implement any calculations which must be (re)done in order to calculate the desired results.
Reimplemented from CashFlow.
Definition at line 226 of file digitalcoupon.cpp.
Here is the call graph for this function:
|
overridevirtual |
accrued rate
Implements Coupon.
Definition at line 251 of file digitalcoupon.cpp.
Here is the call graph for this function:
|
overridevirtual |
convexity adjustment
Reimplemented from FloatingRateCoupon.
Definition at line 256 of file digitalcoupon.cpp.
| Rate callStrike | ( | ) | const |
Definition at line 260 of file digitalcoupon.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:| Rate putStrike | ( | ) | const |
Definition at line 267 of file digitalcoupon.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:| Rate callDigitalPayoff | ( | ) | const |
| Rate putDigitalPayoff | ( | ) | const |
| bool hasPut | ( | ) | const |
| bool hasCall | ( | ) | const |
| bool hasCollar | ( | ) | const |
Definition at line 119 of file digitalcoupon.hpp.
| bool isLongPut | ( | ) | const |
Definition at line 120 of file digitalcoupon.hpp.
| bool isLongCall | ( | ) | const |
Definition at line 121 of file digitalcoupon.hpp.
| ext::shared_ptr< FloatingRateCoupon > underlying | ( | ) | const |
| Rate callOptionRate | ( | ) | const |
Returns the call option rate (multiplied by: nominal*accrualperiod*discount is the NPV of the option)
Definition at line 179 of file digitalcoupon.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:| Rate putOptionRate | ( | ) | const |
Returns the put option rate (multiplied by: nominal*accrualperiod*discount is the NPV of the option)
Definition at line 200 of file digitalcoupon.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:
|
overridevirtual |
Reimplemented from Coupon.
Reimplemented in DigitalIborCoupon, and DigitalCmsSpreadCoupon.
Definition at line 288 of file digitalcoupon.cpp.
Here is the call graph for this function:
|
overridevirtual |
Reimplemented from FloatingRateCoupon.
Definition at line 136 of file digitalcoupon.hpp.
Here is the call graph for this function:
|
private |
|
private |
|
protected |
Definition at line 150 of file digitalcoupon.hpp.
|
protected |
strike rate for the the call option
Definition at line 152 of file digitalcoupon.hpp.
|
protected |
strike rate for the the put option
Definition at line 154 of file digitalcoupon.hpp.
|
protected |
multiplicative factor of call payoff
Definition at line 156 of file digitalcoupon.hpp.
|
protected |
multiplicative factor of put payoff
Definition at line 158 of file digitalcoupon.hpp.
|
protected |
inclusion flag og the call payoff if the call option ends at-the-money
Definition at line 160 of file digitalcoupon.hpp.
|
protected |
inclusion flag og the put payoff if the put option ends at-the-money
Definition at line 162 of file digitalcoupon.hpp.
|
protected |
digital call option type: if true, cash-or-nothing, if false asset-or-nothing
Definition at line 164 of file digitalcoupon.hpp.
|
protected |
digital put option type: if true, cash-or-nothing, if false asset-or-nothing
Definition at line 166 of file digitalcoupon.hpp.
|
protected |
digital call option payoff rate, if any
Definition at line 168 of file digitalcoupon.hpp.
|
protected |
digital put option payoff rate, if any
Definition at line 170 of file digitalcoupon.hpp.
|
protected |
the left and right gaps applied in payoff replication for call
Definition at line 172 of file digitalcoupon.hpp.
|
protected |
Definition at line 172 of file digitalcoupon.hpp.
|
protected |
the left and right gaps applied in payoff replication for put
Definition at line 174 of file digitalcoupon.hpp.
|
protected |
Definition at line 174 of file digitalcoupon.hpp.
|
protected |
Definition at line 176 of file digitalcoupon.hpp.
|
protected |
Definition at line 176 of file digitalcoupon.hpp.
|
protected |
Type of replication.
Definition at line 178 of file digitalcoupon.hpp.
|
protected |
underlying excluded from the payoff
Definition at line 180 of file digitalcoupon.hpp.