Logo
Reference manual - version qle_version
Public Member Functions | Protected Attributes | List of all members
IndexCdsTrancheEngine Class Reference

#include <qle/pricingengines/indexcdstrancheengine.hpp>

+ Inheritance diagram for IndexCdsTrancheEngine:

Public Member Functions

 IndexCdsTrancheEngine (const QuantLib::Handle< QuantLib::YieldTermStructure > &discountCurve, boost::optional< bool > includeSettlementDateFlows=boost::none)
 
void calculate () const override
 

Protected Attributes

QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve_
 
boost::optional< bool > includeSettlementDateFlows_
 

Detailed Description

Index tranche pricing engine

The engine obtains the index CDS reference basket from its arguments and it is expecting it to have a default model assigned.

This engine prices standard index CDS tranches. The mechanics of such tranches is outlined in Markit Credit Indices A Primer, 2014 for example available on the Markit website.

Warning:
We do not cover the possibility that recovery amounts decrease the tranche notional on which the premium is paid. For tranche detachment points met in practice, it is rare that recovery amounts exceed the notional of the super-senior tranche and thus erode the notional of the other tranches. If we want to cover this possibility we would need to extend the basket loss model algorithms so that they account for losses on a tranche notional due to recovery amounts in addition to the losses due to default. In summary, do not expect this pricing engine to work well for tranches with high detachment points which are likely to be breached by the sum of recovered amounts as the premium leg will be over-estimated in those situations.