Options
All
  • Public
  • Public/Protected
  • All
Menu

Default loss distribution convolution for finite non homogeneous pool

A note on the number of buckets: As it is now the code goes splitting losses into buckets from loses equal to zero to losses up to the value of the underlying basket. This is in view of a stochastic loss given default but in a constant LGD situation this is a waste and it is more efficient to go up to the attainable losses.

todo

Extend to the multifactor case for a generic LM

todo

Many common code with the homogeneous version, both classes perform the same work on different loss distribution types, merge and send the distribution object?

Hierarchy

Index

Constructors

constructor

Properties

Protected _attach

_attach: Real

Protected _attachAmount

_attachAmount: Real

_basket

_basket: RelinkableHandle<Basket> = new RelinkableHandle()

Protected _copula

Private _delta

_delta: Real

Protected _detach

_detach: Real

Protected _detachAmount

_detachAmount: Real

_isDisposed

_isDisposed: boolean = false

Private _min

_min: Real

Protected _nBuckets

_nBuckets: Size

Private _nSteps

_nSteps: Size

Protected _notional

_notional: Real

Protected _notionals

_notionals: Real[]

_observers

_observers: Set<Observer>

copulaPolicy

copulaPolicy: any

Accessors

isDisposed

  • get isDisposed(): boolean

Methods

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

expectedRecovery

expectedShortfall

expectedTrancheLoss

  • expectedTrancheLoss(d: Date): Real

ihplmInit

lossDistrib

  • Parameters

    • d: Date

    Returns Distribution

lossDistribution

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

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