CreditDefaultSwap Class Reference
[Financial instruments]

Credit default swap. More...

#include <ql/instruments/creditdefaultswap.hpp>

Inheritance diagram for CreditDefaultSwap:

List of all members.

Public Member Functions

Constructors
 CreditDefaultSwap (Protection::Side side, Real notional, Rate spread, const Schedule &schedule, BusinessDayConvention paymentConvention, const DayCounter &dayCounter, bool settlesAccrual=true, bool paysAtDefaultTime=true, const boost::shared_ptr< Claim > &=boost::shared_ptr< Claim >())
Instrument interface
bool isExpired () const
 returns whether the instrument is still tradable.
void setupArguments (PricingEngine::arguments *) const
void fetchResults (const PricingEngine::results *) const
Inspectors
Protection::Side side () const
Real notional () const
Rate spread () const
bool settlesAccrual () const
bool paysAtDefaultTime () const
const Leg & coupons () const
Results
Rate fairSpread () const
Real couponLegBPS () const
Real couponLegNPV () const
Real defaultLegNPV () const
Rate impliedHazardRate (Real targetNPV, const Handle< YieldTermStructure > &discountCurve, const DayCounter &dayCounter, Real recoveryRate=0.4, Real accuracy=1.0e-6) const

Protected Member Functions

Instrument interface
void setupExpired () const

Protected Attributes

Protection::Side side_
Real notional_
Rate spread_
bool settlesAccrual_
bool paysAtDefaultTime_
boost::shared_ptr< Claimclaim_
Leg leg_
Rate fairSpread_
Real couponLegBPS_
Real couponLegNPV_
Real defaultLegNPV_


Detailed Description

Credit default swap.

Note:
This instrument currently assumes that the issuer did not default until today's date.
Warning:
if QL_TODAYS_PAYMENTS was defined (in userconfig.hpp or when calling ./configure; it is undefined by default) payments occurring at the settlement date of the swap are included in the NPV, and therefore affect the fair-spread calculation. This might not be what you want.
Examples:

CDS.cpp.


Member Function Documentation

void setupArguments ( PricingEngine::arguments *   )  const [virtual]

When a derived argument structure is defined for an instrument, this method should be overridden to fill it. This is mandatory in case a pricing engine is used.

Reimplemented from Instrument.

void fetchResults ( const PricingEngine::results *  r  )  const [virtual]

When a derived result structure is defined for an instrument, this method should be overridden to read from it. This is mandatory in case a pricing engine is used.

Reimplemented from Instrument.

void setupExpired (  )  const [protected, virtual]

This method must leave the instrument in a consistent state when the expiration condition is met.

Reimplemented from Instrument.