QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
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 (ext::shared_ptr< LLM > copula)
Public Member Functions inherited from Observable
 Observable (const Observable &)
Observableoperator= (const Observable &)
 Observable (Observable &&)=delete
Observableoperator= (Observable &&)=delete
void notifyObservers ()

Protected Member Functions

std::vector< RealexpectedDistribution (const Date &date) const
std::vector< ReallossPoints (const Date &) const
 attainable loss points this model provides
std::map< Real, ProbabilitylossDistribution (const Date &d) const override
 Returns the cumulative full loss distribution.
Real percentile (const Date &d, Real percentile) const override
 Loss level for this percentile.
Real expectedShortfall (const Date &d, Real percentile) const override
 Expected shortfall given a default loss percentile.
Real expectedTrancheLoss (const Date &d) const override
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
std::vector< RealexpConditionalLgd (const Date &d, const std::vector< Real > &mktFactors) const
std::vector< ReallossProbability (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.
virtual Probability probOverLoss (const Date &d, Real lossFraction) const
virtual std::vector< RealsplitVaRLevel (const Date &d, Real loss) const
 Associated VaR fraction to each counterparty.
virtual std::vector< RealsplitESFLevel (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 std::vector< ProbabilityprobsBeingNthEvent (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()

template<class LLM>
std::vector< Real > expectedDistribution ( const Date & date) const
protected

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

◆ lossDistribution()

template<class LLM>
std::map< Real, Probability > lossDistribution ( const Date & d) const
overrideprotectedvirtual

Returns the cumulative full loss distribution.

Reimplemented from DefaultLossModel.

◆ percentile()

template<class LLM>
Real percentile ( const Date & d,
Real percentile ) const
overrideprotectedvirtual

Loss level for this percentile.

Reimplemented from DefaultLossModel.

◆ expectedShortfall()

template<class LLM>
Real expectedShortfall ( const Date & d,
Real percentile ) const
overrideprotectedvirtual

Expected shortfall given a default loss percentile.

Reimplemented from DefaultLossModel.

◆ expectedTrancheLoss()

template<class LLM>
Real expectedTrancheLoss ( const Date & d) const
overrideprotectedvirtual

Reimplemented from DefaultLossModel.