RecursiveLossModel< copulaPolicy > Class Template Reference

`#include <ql/experimental/credit/recursivelossmodel.hpp>`

Inheritance diagram for RecursiveLossModel< copulaPolicy >:
[legend]

## Public Member Functions

| RecursiveLossModel (const ext::shared_ptr< ConstantLossLatentmodel< copulaPolicy > > &m, Size nbuckets=1)
Real | expectedTrancheLoss (const Date &date) const
Disposable< std::vector< Real > > | lossProbability (const Date &date) const
Disposable< std::map< Real, Probability > > | lossDistribution (const Date &d) const
| Full loss distribution.
Real | percentile (const Date &d, Real percentile) const
| Value at Risk given a default loss percentile.
Real | expectedShortfall (const Date &d, Real perctl) const
| Expected shortfall given a default loss percentile.
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()

## Protected Member Functions

void | resetModel ()
| Concrete models do now any updates/inits they need on basket reset.
Protected Member Functions inherited from DefaultLossModel
virtual Probability | probOverLoss (const Date &d, Real lossFraction) const
virtual Disposable< std::vector< Real > > | splitVaRLevel (const Date &d, Real loss) const
| Associated VaR fraction to each counterparty.
virtual Disposable< std::vector< Real > > | splitESFLevel (const Date &d, Real loss) const
| Associated ESF fraction to each counterparty.
virtual Real | densityTrancheLoss (const Date &d, Real lossFraction) const
| Probability density of a given loss fraction of the basket notional.
virtual Disposable< std::vector< Probability > > | probsBeingNthEvent (Size n, const Date &d) const
virtual Real | defaultCorrelation (const Date &d, Size iName, Size jName) const
| Pearsons' default probability correlation.
virtual Probability | probAtLeastNEvents (Size n, const Date &d) const
virtual Real | expectedRecovery (const Date &, Size iName, const DefaultProbKey &) const

## Protected Attributes

const ext::shared_ptr< ConstantLossLatentmodel< copulaPolicy > > | copula_
Protected Attributes inherited from DefaultLossModel
RelinkableHandle< Basket > | basket_

## Detailed Description

### template<class copulaPolicy>
class QuantLib::RecursiveLossModel< copulaPolicy >

Recursive STCDO default loss model for a heterogeneous pool of names. The pool names are heterogeneous in their default probabilities, notionals and recovery rates. Correlations are given by the latent model. The recursive pricing algorithm used here is described in Andersen, Sidenius and Basu; "All your hedges in one basket", Risk, November 2003, pages 67-72

    Notice that using copulas other than Gaussian it is only an
    approximation (see remark on p.68).

    \todo Make the loss unit equal to some small fraction depending on the
    portfolio loss weights (notionals and recoveries). As it is now this
    is ok for pricing but not for risk metrics. See the discussion in O'Kane
    18.3.2
    \todo Intengrands should all use the inverted probabilities for
    performance instead of calling the copula inversion with the same vals.