QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
RandomDefaultLM< copulaPolicy, USNG > Class Template Reference

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

Inheritance diagram for RandomDefaultLM< copulaPolicy, USNG >:

Public Member Functions

 RandomDefaultLM (const ext::shared_ptr< DefaultLatentModel< copulaPolicy > > &model, const std::vector< Real > &recoveries=std::vector< Real >(), Size nSims=0, Real accuracy=1.e-6, BigNatural seed=2863311530UL)
 RandomDefaultLM (const ext::shared_ptr< ConstantLossLatentmodel< copulaPolicy > > &model, Size nSims=0, Real accuracy=1.e-6, BigNatural seed=2863311530UL)
Public Member Functions inherited from LazyObject
bool isCalculated () const
void forwardFirstNotificationOnly ()
void alwaysForwardNotifications ()
void recalculate ()
void freeze ()
void unfreeze ()
Public Member Functions inherited from Observable
 Observable (const Observable &)
Observableoperator= (const Observable &)
 Observable (Observable &&)=delete
Observableoperator= (Observable &&)=delete
void notifyObservers ()
Public Member Functions inherited from Observer
 Observer (const Observer &)
Observeroperator= (const Observer &)
std::pair< iterator, bool > registerWith (const ext::shared_ptr< Observable > &)
void registerWithObservables (const ext::shared_ptr< Observer > &)
Size unregisterWith (const ext::shared_ptr< Observable > &)
void unregisterWithAll ()
virtual void deepUpdate ()

Protected Member Functions

void nextSample (const std::vector< Real > &values) const
void initDates () const
Real getEventRecovery (const defaultSimEvent &evt) const
Real expectedRecovery (const Date &, Size iName, const DefaultProbKey &) const override
Real latentVarValue (const std::vector< Real > &factorsSample, Size iVar) const
Size basketSize () const
Protected Member Functions inherited from RandomLM< RandomDefaultLM, copulaPolicy, SobolRsg >
 RandomLM (Size numFactors, Size numLMVars, copulaPolicy copula, Size nSims, BigNatural seed)
void update () override
void performCalculations () const override
void performSimulations () const
const std::vector< simEvent< RandomDefaultLM< copulaPolicy, SobolRsg > > > & getSim (const Size iSim) const
Real getEventRecovery (const simEvent< RandomDefaultLM< copulaPolicy, SobolRsg > > &evt) const
Probability probAtLeastNEvents (Size n, const Date &d) const override
std::vector< ProbabilityprobsBeingNthEvent (Size n, const Date &d) const override
Real defaultCorrelation (const Date &d, Size iName, Size jName) const override
 Pearsons' default probability correlation.
Real expectedTrancheLoss (const Date &d) const override
virtual std::pair< Real, RealexpectedTrancheLossInterval (const Date &d, Probability confidencePerc) const
std::map< Real, ProbabilitylossDistribution (const Date &d) const override
 Full loss distribution.
virtual Histogram computeHistogram (const Date &d) const
Real expectedShortfall (const Date &d, Real percent) const override
 Expected shortfall given a default loss percentile.
Real percentile (const Date &d, Real percentile) const override
 Value at Risk given a default loss percentile.
virtual std::tuple< Real, Real, RealpercentileAndInterval (const Date &d, Real percentile) const
std::vector< RealsplitVaRLevel (const Date &date, Real loss) const override
virtual std::vector< std::vector< Real > > splitVaRAndError (const Date &date, Real loss, Probability confInterval) const
virtual void calculate () const
virtual Probability probOverLoss (const Date &d, Real lossFraction) const
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.

Friends

class RandomLM< ::QuantLib::RandomDefaultLM, copulaPolicy, USNG >

Additional Inherited Members

Public Types inherited from Observer
typedef set_type::iterator iterator
const Size numFactors_
const Size numLMVars_
const Size nSims_
std::vector< std::vector< simEvent< RandomDefaultLM< copulaPolicy, SobolRsg > > > > simsBuffer_
copulaPolicy copula_
ext::shared_ptr< copulaRNG_type > copulasRng_
bool calculated_ = false
bool frozen_ = false
bool alwaysForward_
Protected Attributes inherited from DefaultLossModel
RelinkableHandle< Basketbasket_
static const Size maxHorizon_

Detailed Description

template<class copulaPolicy, class USNG = SobolRsg>
class QuantLib::RandomDefaultLM< copulaPolicy, USNG >

Random default with deterministic recovery event type.

Stores sims results in a bitfield buffer for lean memory storage. Although strictly speaking this is not guaranteed by the compiler it amounts to reducing the memory storage by half. Some computations, like conditional statistics, precise that all sims results be available.

Default only latent model simulation with trivially fixed recovery amounts.

Examples
BasketLosses.cpp.

Member Function Documentation

◆ expectedRecovery()

template<class copulaPolicy, class USNG = SobolRsg>
Real expectedRecovery ( const Date & ,
Size iName,
const DefaultProbKey &  ) const
overrideprotectedvirtual

Expected RR for name conditinal to default by that date.

Reimplemented from DefaultLossModel.