QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Protected Member Functions | Protected Attributes | Friends | List of all members
DefaultLossModel Class Referenceabstract

#include <defaultlossmodel.hpp>

+ Inheritance diagram for DefaultLossModel:
+ Collaboration diagram for DefaultLossModel:

Protected Member Functions

 DefaultLossModel ()=default
 

Protected Attributes

RelinkableHandle< Basketbasket_
 

Friends

class Basket
 

Statistics

virtual Real expectedTrancheLoss (const Date &d) const
 
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. More...
 
virtual Real expectedShortfall (const Date &d, Real percentile) const
 Expected shortfall given a default loss percentile. More...
 
virtual std::vector< RealsplitVaRLevel (const Date &d, Real loss) const
 Associated VaR fraction to each counterparty. More...
 
virtual std::vector< RealsplitESFLevel (const Date &d, Real loss) const
 Associated ESF fraction to each counterparty. More...
 
virtual std::map< Real, ProbabilitylossDistribution (const Date &) const
 Full loss distribution. More...
 
virtual Real densityTrancheLoss (const Date &d, Real lossFraction) const
 Probability density of a given loss fraction of the basket notional. More...
 
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. More...
 
virtual Probability probAtLeastNEvents (Size n, const Date &d) const
 
virtual Real expectedRecovery (const Date &, Size iName, const DefaultProbKey &) const
 
void setBasket (Basket *bskt)
 
virtual void resetModel ()=0
 Concrete models do now any updates/inits they need on basket reset. More...
 

Additional Inherited Members

- Public Member Functions inherited from Observable
 Observable ()
 
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
 Observable (Observable &&)=delete
 
Observableoperator= (Observable &&)=delete
 
virtual ~Observable ()=default
 
void notifyObservers ()
 

Detailed Description

Default loss model interface definition. Allows communication between the basket and specific algorithms. Intended to hold any kind of portfolio joint loss, latent models, top-down,....

An inconvenience of this design as opposed to the full arguments/results is that when pricing several derivatives instruments on the same basket not all the pricing engines would point to the same loss model; thus when pricing a set of such instruments there might be some switching on the basket loss models, which might require recalculations (of the basket) or not depending on the pricing order.

Definition at line 48 of file defaultlossmodel.hpp.

Constructor & Destructor Documentation

◆ DefaultLossModel()

DefaultLossModel ( )
protecteddefault

Member Function Documentation

◆ expectedTrancheLoss()

virtual Real expectedTrancheLoss ( const Date d) const
protectedvirtual

◆ probOverLoss()

virtual Probability probOverLoss ( const Date d,
Real  lossFraction 
) const
protectedvirtual

Probability of the tranche losing the same or more than the fractional amount given.

The passed lossFraction is a fraction of losses over the tranche notional (not the portfolio).

Reimplemented in GaussianLHPLossModel, and SaddlePointLossModel< CP >.

Definition at line 76 of file defaultlossmodel.hpp.

◆ percentile()

virtual Real percentile ( const Date d,
Real  percentile 
) const
protectedvirtual

◆ expectedShortfall()

virtual Real expectedShortfall ( const Date d,
Real  percentile 
) const
protectedvirtual

◆ splitVaRLevel()

virtual std::vector< Real > splitVaRLevel ( const Date d,
Real  loss 
) const
protectedvirtual

◆ splitESFLevel()

virtual std::vector< Real > splitESFLevel ( const Date d,
Real  loss 
) const
protectedvirtual

Associated ESF fraction to each counterparty.

Definition at line 93 of file defaultlossmodel.hpp.

◆ lossDistribution()

virtual std::map< Real, Probability > lossDistribution ( const Date ) const
protectedvirtual

◆ densityTrancheLoss()

virtual Real densityTrancheLoss ( const Date d,
Real  lossFraction 
) const
protectedvirtual

Probability density of a given loss fraction of the basket notional.

Definition at line 104 of file defaultlossmodel.hpp.

◆ probsBeingNthEvent()

virtual std::vector< Probability > probsBeingNthEvent ( Size  n,
const Date d 
) const
protectedvirtual

Probabilities for each of the (remaining) basket elements in the pool to have defaulted by time d and at the same time be the Nth defaulting name to default in the basket. This method is oriented to default order dependent portfolio pricing (e.g. NTDs) The the probabilities ordering in the vector coincides with the pool order.

Reimplemented in RandomLM< derivedRandomLM, copulaPolicy, USNG >, RandomLM< RandomDefaultLM, copulaPolicy, SobolRsg >, and RandomLM< RandomLossLM, copulaPolicy, SobolRsg >.

Definition at line 115 of file defaultlossmodel.hpp.

◆ defaultCorrelation()

virtual Real defaultCorrelation ( const Date d,
Size  iName,
Size  jName 
) const
protectedvirtual

◆ probAtLeastNEvents()

virtual Probability probAtLeastNEvents ( Size  n,
const Date d 
) const
protectedvirtual

Returns the probaility of having a given or larger number of defaults in the basket portfolio at a given time.

Reimplemented in ConstantLossModel< copulaPolicy >, RandomLM< derivedRandomLM, copulaPolicy, USNG >, RandomLM< RandomDefaultLM, copulaPolicy, SobolRsg >, and RandomLM< RandomLossLM, copulaPolicy, SobolRsg >.

Definition at line 126 of file defaultlossmodel.hpp.

◆ expectedRecovery()

virtual Real expectedRecovery ( const Date ,
Size  iName,
const DefaultProbKey  
) const
protectedvirtual

Expected RR for name conditinal to default by that date.

Reimplemented in RandomDefaultLM< copulaPolicy, USNG >, GaussianLHPLossModel, and ConstantLossModel< copulaPolicy >.

Definition at line 131 of file defaultlossmodel.hpp.

◆ setBasket()

void setBasket ( Basket bskt)
private

Send a reference to the basket to allow the model to read the problem arguments (contained in the basket)

Definition at line 141 of file defaultlossmodel.hpp.

+ Here is the call graph for this function:

◆ resetModel()

virtual void resetModel ( )
privatepure virtual

Friends And Related Function Documentation

◆ Basket

friend class Basket
friend

Definition at line 53 of file defaultlossmodel.hpp.

Member Data Documentation

◆ basket_

RelinkableHandle<Basket> basket_
mutableprotected

Definition at line 56 of file defaultlossmodel.hpp.