|
void | resetModel () |
| Concrete models do now any updates/inits they need on basket reset.
|
|
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 |
|
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.