DigitalCoupon Class Reference
Digital-payoff coupon. More...
#include <ql/cashflows/digitalcoupon.hpp>
Inheritance diagram for DigitalCoupon:

Public Member Functions | |
Constructors | |
DigitalCoupon (const boost::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 >(), const boost::shared_ptr< DigitalReplication > &replication=boost::shared_ptr< DigitalReplication >()) | |
general constructor | |
Coupon interface | |
Rate | rate () const |
accrued rate | |
Rate | convexityAdjustment () const |
convexity adjustment | |
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 |
boost::shared_ptr < FloatingRateCoupon > | underlying () const |
Rate | callOptionRate () const |
Rate | putOptionRate () const |
Observer interface | |
void | update () |
Visitability | |
virtual void | accept (AcyclicVisitor &) |
void | setPricer (const boost::shared_ptr< FloatingRateCouponPricer > &pricer) |
Protected Attributes | |
Data members | |
boost::shared_ptr < FloatingRateCoupon > | underlying_ |
Rate | callStrike_ |
strike rate for the the call option | |
Rate | putStrike_ |
strike rate for the the put option | |
Real | callCsi_ |
multiplicative factor of call payoff | |
Real | putCsi_ |
multiplicative factor of put payoff | |
bool | isCallATMIncluded_ |
inclusion flag og the call payoff if the call option ends at-the-money | |
bool | isPutATMIncluded_ |
inclusion flag og the put payoff if the put option ends at-the-money | |
bool | isCallCashOrNothing_ |
digital call option type: if true, cash-or-nothing, if false asset-or-nothing | |
bool | isPutCashOrNothing_ |
digital put option type: if true, cash-or-nothing, if false asset-or-nothing | |
Rate | callDigitalPayoff_ |
digital call option payoff rate, if any | |
Rate | putDigitalPayoff_ |
digital put option payoff rate, if any | |
Real | callLeftEps_ |
the left and right gaps applied in payoff replication for call | |
Real | callRightEps_ |
Real | putLeftEps_ |
the left and right gaps applied in payoff replication for puf | |
Real | putRightEps_ |
bool | hasPutStrike_ |
bool | hasCallStrike_ |
Replication::Type | replicationType_ |
Type of replication. |
Detailed Description
Digital-payoff coupon.
Implementation of a floating-rate coupon with digital call/put option. Payoffs:
- Coupon with cash-or-nothing Digital Call rate + csi * payoffRate * Heaviside(rate-strike)
- Coupon with cash-or-nothing Digital Put rate + csi * payoffRate * Heaviside(strike-rate) where csi=+1 or csi=-1.
- Coupon with asset-or-nothing Digital Call rate + csi * rate * Heaviside(rate-strike)
- Coupon with asset-or-nothing Digital Put rate + csi * rate * Heaviside(strike-rate) where csi=+1 or csi=-1. The evaluation of the coupon is made using the call/put spread replication method.
- Tests:
- the correctness of the returned value in case of Asset-or-nothing embedded option is tested by pricing the digital option with Cox-Rubinstein formula.
- the correctness of the returned value in case of deep-in-the-money Asset-or-nothing embedded option is tested vs the expected values of coupon and option.
- the correctness of the returned value in case of deep-out-of-the-money Asset-or-nothing embedded option is tested vs the expected values of coupon and option.
- the correctness of the returned value in case of Cash-or-nothing embedded option is tested by pricing the digital option with Reiner-Rubinstein formula.
- the correctness of the returned value in case of deep-in-the-money Cash-or-nothing embedded option is tested vs the expected values of coupon and option.
- the correctness of the returned value in case of deep-out-of-the-money Cash-or-nothing embedded option is tested vs the expected values of coupon and option.
- the correctness of the returned value is tested checking the correctness of the call-put parity relation.
- the correctness of the returned value is tested by the relationship between prices in case of different replication types.
Member Function Documentation
Rate callOptionRate | ( | ) | const |
Returns the call option rate (multiplied by: nominal*accrualperiod*discount is the NPV of the option)
Rate putOptionRate | ( | ) | const |
Returns the put option rate (multiplied by: nominal*accrualperiod*discount is the NPV of the option)
void update | ( | ) | [virtual] |
This method must be implemented in derived classes. An instance of Observer does not call this method directly: instead, it will be called by the observables the instance registered with when they need to notify any changes.
Reimplemented from FloatingRateCoupon.