|
QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
|
#include <ql/experimental/credit/recursivelossmodel.hpp>
Public Member Functions | |
| RecursiveLossModel (const ext::shared_ptr< ConstantLossLatentmodel< copulaPolicy > > &m, Size nbuckets=1) | |
| Real | expectedTrancheLoss (const Date &date) const override |
| std::vector< Real > | lossProbability (const Date &date) const |
| std::map< Real, Probability > | lossDistribution (const Date &d) const override |
| Full loss distribution. | |
| Real | percentile (const Date &d, Real percentile) const override |
| Value at Risk given a default loss percentile. | |
| Real | expectedShortfall (const Date &d, Real perctl) const override |
| Expected shortfall given a default loss percentile. | |
| Public Member Functions inherited from Observable | |
| Observable (const Observable &) | |
| Observable & | operator= (const Observable &) |
| Observable (Observable &&)=delete | |
| Observable & | operator= (Observable &&)=delete |
| void | notifyObservers () |
Protected Member Functions | |
| void | resetModel () override |
| Concrete models do now any updates/inits they need on basket reset. | |
| virtual Probability | probOverLoss (const Date &d, Real lossFraction) const |
| virtual std::vector< Real > | splitVaRLevel (const Date &d, Real loss) const |
| Associated VaR fraction to each counterparty. | |
| virtual 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 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< ConstantLossLatentmodel< copulaPolicy > > | copula_ |
| Protected Attributes inherited from DefaultLossModel | |
| RelinkableHandle< Basket > | basket_ |
Recursive STCDO default loss model for a heterogeneous pool of names. The pool names are heterogeneous in their default probabilities, notionals and recovery rates. Correlations are given by the latent model. The recursive pricing algorithm used here is described in Andersen, Sidenius and Basu; "All your hedges in one basket", Risk, November 2003, pages 67-72
Notice that using copulas other than Gaussian it is only an approximation (see remark on p.68). \todo Make the loss unit equal to some small fraction depending on the portfolio loss weights (notionals and recoveries). As it is now this is ok for pricing but not for risk metrics. See the discussion in O'Kane 18.3.2 \todo Intengrands should all use the inverted probabilities for performance instead of calling the copula inversion with the same vals.
|
overrideprotectedvirtual |
Concrete models do now any updates/inits they need on basket reset.
Implements DefaultLossModel.
Reimplemented from DefaultLossModel.
|
overridevirtual |
Full loss distribution.
Reimplemented from DefaultLossModel.
Value at Risk given a default loss percentile.
Reimplemented from DefaultLossModel.
Expected shortfall given a default loss percentile.
Reimplemented from DefaultLossModel.