QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
Digital-payoff coupon. More...
#include <digitalcoupon.hpp>
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 () | |
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.
|
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.
|
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.
|
overridevirtual |
accrued rate
Implements Coupon.
Definition at line 253 of file digitalcoupon.cpp.
|
overridevirtual |
convexity adjustment
Reimplemented from FloatingRateCoupon.
Definition at line 258 of file digitalcoupon.cpp.
Rate callStrike | ( | ) | const |
Definition at line 262 of file digitalcoupon.cpp.
Rate putStrike | ( | ) | const |
Definition at line 269 of file digitalcoupon.cpp.
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.
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.
|
overridevirtual |
Reimplemented from Coupon.
Reimplemented in DigitalIborCoupon, and DigitalCmsSpreadCoupon.
Definition at line 290 of file digitalcoupon.cpp.
|
overridevirtual |
Reimplemented from FloatingRateCoupon.
Definition at line 136 of file digitalcoupon.hpp.
|
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.