Options
All
  • Public
  • Public/Protected
  • All
Menu

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.

Hierarchy

Index

Constructors

constructor

Properties

Private _attachAmount

_attachAmount: Real

_basket

_basket: RelinkableHandle<Basket> = new RelinkableHandle()

Protected _copula

Private _detachAmount

_detachAmount: Real

_isDisposed

_isDisposed: boolean = false

Private _lossUnit

_lossUnit: Real

Private _nBuckets

_nBuckets: Size

Private _notionals

_notionals: Real[]

_observers

_observers: Set<Observer>

Private _remainingBsktSize

_remainingBsktSize: Size

Private _wk

_wk: Real[]

copulaPolicy

copulaPolicy: any

Accessors

isDisposed

  • get isDisposed(): boolean

Methods

conditionalLossDistrib

conditionalLossDistribInvP

conditionalLossProb

  • Parameters

    Returns Real[]

defaultCorrelation

  • defaultCorrelation(d: Date, iName: Size, jName: Size): Real

densityTrancheLoss

  • densityTrancheLoss(d: Date, lossFraction: Real): Real
  • Probability density of a given loss fraction of the basket notional.

    Parameters

    • d: Date
    • lossFraction: Real

    Returns Real

dispose

  • dispose(): void
  • Returns void

expectedConditionalLoss

  • Parameters

    Returns Real

expectedConditionalLossInvP

  • Parameters

    Returns Real

expectedRecovery

expectedShortfall

  • expectedShortfall(d: Date, perctl: Real): Real

expectedTrancheLoss

  • expectedTrancheLoss(date: Date): Real

lossDistribution

lossProbability

  • lossProbability(date: Date): Real[]
  • Parameters

    • date: Date

    Returns Real[]

notifyObservers

  • notifyObservers(): void
  • This method should be called at the end of non-const methods or when the programmer desires to notify any changes.

    Returns void

percentile

  • percentile(d: Date, percentile: Real): Real

probAtLeastNEvents

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

    Parameters

    Returns Probability

probOverLoss

  • 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).

    Parameters

    • d: Date
    • lossFraction: Real

    Returns Probability

probsBeingNthEvent

  • 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.

    Parameters

    Returns Probability[]

registerObserver

resetModel

  • resetModel(): void

rlmInit

setBasket

  • setBasket(bskt: Basket): void

splitESFLevel

  • splitESFLevel(d: Date, loss: Real): Real[]
  • Associated ESF fraction to each counterparty.

    Parameters

    • d: Date
    • loss: Real

    Returns Real[]

splitVaRLevel

  • splitVaRLevel(d: Date, loss: Real): Real[]
  • Associated VaR fraction to each counterparty.

    Parameters

    • d: Date
    • loss: Real

    Returns Real[]

unregisterObserver