BaseCorrelationLossModel< BaseModel_T, Corr2DInt_T > Class Template Reference

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

Inheritance diagram for BaseCorrelationLossModel< BaseModel_T, Corr2DInt_T >:
[legend]

## Public Member Functions

| BaseCorrelationLossModel (const Handle< BaseCorrelationTermStructure< Corr2DInt_T > > &correlTS, const std::vector< Real > &recoveries, const initTraits &traits=initTraits())
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from Observer
| Observer (const Observer &)
Observer & | operator= (const Observer &)
std::pair< std::set< boost::shared_ptr< Observable > >::iterator, bool > | registerWith (const boost::shared_ptr< Observable > &)
void | registerWithObservables (const boost::shared_ptr< Observer > &)
Size | unregisterWith (const boost::shared_ptr< Observable > &)
void | unregisterWithAll ()

## Protected Member Functions

void | setupModels () const
template<>
void | setupModels () const
template<>
void | setupModels () const
template<>
void | setupModels () const
template<>
void | setupModels () const
Protected Member Functions inherited from DefaultLossModel
virtual Probability | probOverLoss (const Date &d, Real lossFraction) const
virtual Real | percentile (const Date &d, Real percentile) const
| Value at Risk given a default loss percentile.
virtual Real | expectedShortfall (const Date &d, Real percentile) const
| Expected shortfall given a default loss percentile.
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 Disposable< std::map< Real, Probability > > | lossDistribution (const Date &) const
| Full loss distribution.
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

## Additional Inherited Members

Protected Attributes inherited from DefaultLossModel
RelinkableHandle< Basket > | basket_

## Detailed Description

### template<class BaseModel_T, class Corr2DInt_T>
class QuantLib::BaseCorrelationLossModel< BaseModel_T, Corr2DInt_T >

Base Correlation loss model; interpolation is performed by portfolio (live) amount percentage.

  Though the literature on this model is inmense, see for a more than introductory level (precrisis) chapters 19, 20 and 21 of Modelling single name and multi-name credit derivatives. Dominic O’Kane, Wiley Finance, 2008

  For freely available documentation see:

  Credit Correlation: A Guide; JP Morgan Credit Derivatives Strategy; 12 March 2004

  Introducing Base Correlations; JP Morgan Credit Derivatives Strategy; 22 March 2004

  A Relative Value Framework for Credit Correlation; JP Morgan Credit Derivatives Strategy; 27 April 2004

  Valuing and Hedging Synthetic CDO Tranches Using Base Correlations; Bear Stearns; May 17, 2004

  Correlation Primer; Nomura Fixed Income Research, August 6, 2004

  Base Correlation Explained; Lehman Brothers Fixed Income Quantitative Credit Research; 15 November 2004

  'Pricing CDOs with a smile' in Societe Generale Credit Research; February 2005

  For bespoke base correlation see:

  Base Correlation Mapping in Lehman Brothers' Quantitative Credit Research Quarterly; Volume 2007-Q1

  You can explore typical postcrisis data by perusing some of the JPMorgan Global Correlation Daily Analytics

  Here the crisis model problems of ability to price stressed portfolios or tranches over the maximum loss are the responsibility of the base models. Users should select their models according to this; choosing the copula or a random loss given default base model (or more exotic ones).

  Notice this is different to a bespoke base correlation loss (bespoke here refering to basket composition, not just attachment levels) ; where loss interpolation is on the expected loss value to match the two baskets. Therefore the correlation surface should refer to the same basket intended to be priced. But this is left to the user and is not implemented in the correlation surface (yet...)

BaseModel_T must have a constructor with a single quote value

## Member Function Documentation

void setupModels | ( |  | ) | const

protected

Sets up attach/detach models. Gets called on basket update. To be specialized on the spacific model type.