Logo
Reference manual - version qle_version
IndexCdsTrancheEngine Class Reference

#include <qle/pricingengines/indexcdstrancheengine.hpp>

Inheritance diagram for IndexCdsTrancheEngine:

Public Member Functions

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

Protected Attributes

QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve_
QuantLib::ext::optional< boolincludeSettlementDateFlows_

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.