|
| RandomLM (Size numFactors, Size numLMVars, const copulaPolicy &copula, Size nSims, BigNatural seed) |
|
void | update () |
|
void | performCalculations () const |
|
void | performSimulations () const |
|
const std::vector< simEvent< derivedRandomLM< copulaPolicy, USNG > > > & | getSim (const Size iSim) const |
|
Real | getEventRecovery (const simEvent< derivedRandomLM< copulaPolicy, USNG > > &evt) const |
|
virtual void | calculate () const |
|
virtual Probability | probOverLoss (const Date &d, Real lossFraction) const |
|
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 Real | expectedRecovery (const Date &, Size iName, const DefaultProbKey &) const |
|
|
const Size | numFactors_ |
|
const Size | numLMVars_ |
|
const Size | nSims_ |
|
std::vector< std::vector< simEvent< derivedRandomLM< copulaPolicy, USNG > > > > | simsBuffer_ |
|
copulaPolicy | copula_ |
|
ext::shared_ptr< copulaRNG_type > | copulasRng_ |
|
static const Size | maxHorizon_ = 4050 |
|
virtual Probability | probAtLeastNEvents (Size n, const Date &d) const |
|
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 Real | expectedTrancheLoss (const Date &d) const |
|
virtual std::pair< Real, Real > | expectedTrancheLossInterval (const Date &d, Probability confidencePerc) const |
|
virtual Disposable< std::map< Real, Probability > > | lossDistribution (const Date &d) const |
| Full loss distribution.
|
|
virtual Histogram | computeHistogram (const Date &d) const |
|
virtual Real | expectedShortfall (const Date &d, Real percent) const |
| Expected shortfall given a default loss percentile.
|
|
virtual Real | percentile (const Date &d, Real percentile) const |
| Value at Risk given a default loss percentile.
|
|
virtual ext::tuple< Real, Real, Real > | percentileAndInterval (const Date &d, Real percentile) const |
|
virtual Disposable< std::vector< Real > > | splitVaRLevel (const Date &date, Real loss) const |
|
virtual Disposable< std::vector< std::vector< Real > > > | splitVaRAndError (const Date &date, Real loss, Probability confInterval) const |
|
virtual | ~RandomLM () |
|
template<template< class, class > class derivedRandomLM, class copulaPolicy, class USNG = SobolRsg>
class QuantLib::RandomLM< derivedRandomLM, copulaPolicy, USNG >
Base class for latent model monte carlo simulation. Independent of the copula type and the generator. Generates the factors and variable samples and determines event threshold but it is not responsible for actual event specification; thats the derived classes responsibility according to what they model. Derived classes need mainly to implement nextSample (Worker::nextSample in the multithreaded version) to compute the simulation event generated, if any, from the latent variables sample. They also have the accompanying event trait to specify.
Order of results refers to the simulated (super)pool not the basket's pool. Notice that this statistic suffers from heavy dispersion. To see techniques to improve it (not implemented here) see: Joshi, M., D. Kainth. 2004. Rapid and accurate development of prices and Greeks for nth to default credit swaps in the Li model. Quantitative Finance, Vol. 4. Institute of Physics Publishing, London, UK, 266-275 and: Chen, Z., Glasserman, P. 'Fast pricing of basket default swaps' in Operations Research Vol. 56, No. 2, March/April 2008, pp. 286-303
Reimplemented from DefaultLossModel.