QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.20
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BinomialLossModel< LLM > Class Template Reference

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

+ Inheritance diagram for BinomialLossModel< LLM >:

Public Types

typedef LLM::copulaType copulaType
 

Public Member Functions

 BinomialLossModel (const ext::shared_ptr< LLM > &copula)
 
- Public Member Functions inherited from Observable
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
void notifyObservers ()
 

Protected Member Functions

Disposable< std::vector< Real > > expectedDistribution (const Date &date) const
 
Disposable< std::vector< Real > > lossPoints (const Date &) const
 attainable loss points this model provides
 
Disposable< std::map< Real, Probability > > lossDistribution (const Date &d) const
 Returns the cumulative full loss distribution.
 
Real percentile (const Date &d, Real percentile) const
 Loss level for this percentile.
 
Real expectedShortfall (const Date &d, Real percentile) const
 Expected shortfall given a default loss percentile.
 
Real expectedTrancheLoss (const Date &d) const
 
Real averageLoss (const Date &, const std::vector< Real > &reminingNots, const std::vector< Real > &) const
 Average loss per credit.
 
Real condTrancheLoss (const Date &, const std::vector< Real > &lossVals, const std::vector< Real > &bsktNots, const std::vector< Probability > &uncondDefProbs, const std::vector< Real > &) const
 
Disposable< std::vector< Real > > expConditionalLgd (const Date &d, const std::vector< Real > &mktFactors) const
 
Disposable< std::vector< Real > > lossProbability (const Date &date, const std::vector< Real > &bsktNots, const std::vector< Real > &uncondDefProbInv, const std::vector< Real > &mktFactor) const
 Loss probability density conditional on the market factor value.
 
- 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< LLM > copula_
 
Real attachAmount_
 
Real detachAmount_
 
- Protected Attributes inherited from DefaultLossModel
RelinkableHandle< Basketbasket_
 

Detailed Description

template<class LLM>
class QuantLib::BinomialLossModel< LLM >

Binomial Defaultable Basket Loss Model

Models the portfolio loss distribution by approximatting it to an adjusted binomial. Fits the two moments of the loss distribution through an adapted binomial approximation. This simple model allows for portfolio inhomogeneity with no excesive cost over the LHP.
See:
Approximating Independent Loss Distributions with an Adjusted Binomial Distribution , Dominic O'Kane, 2007 EDHEC RISK AND ASSET MANAGEMENT RESEARCH CENTRE
Modelling single name and multi-name credit derivatives Chapter 18.5.2, Dominic O'Kane, Wiley Finance, 2008
The version presented here is adaptated to the multifactorial case by computing a conditional binomial approximation; notice that the Binomial is stable. This way the model can be used also in risk management models rather than only in pricing. The copula is also left undefined/arbitrary.
LLM: Loss Latent Model template parameter able to model default and loss.
The model is allowed and arbitrary copula, although initially designed for a Gaussian setup. If these exotic versions were not allowed the template parameter can then be dropped but the use of random recoveries should be added in some other way.

Member Function Documentation

◆ expectedDistribution()

Disposable<std::vector<Real> > expectedDistribution ( const Date date) const
protected

Returns the probability of the default loss values given by the method lossPoints.