QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.8
Public Member Functions | Protected Member Functions | List of all members
BaseCorrelationLossModel< BaseModel_T, Corr2DInt_T > Class Template Reference

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

+ Inheritance diagram for BaseCorrelationLossModel< BaseModel_T, Corr2DInt_T >:

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 &)
 
Observableoperator= (const Observable &)
 
void notifyObservers ()
 
- Public Member Functions inherited from Observer
 Observer (const Observer &)
 
Observeroperator= (const Observer &)
 
std::pair< 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

- Public Types inherited from Observer
typedef std::set< boost::shared_ptr< Observable > > set_type
 
typedef set_type::iterator iterator
 
- Protected Attributes inherited from DefaultLossModel
RelinkableHandle< Basketbasket_
 

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.