Options
All
  • Public
  • Public/Protected
  • All
Menu

Portfolio loss model with analytical expected tranche loss for a large homogeneous pool with Gaussian one-factor copula. See for example "The Normal Inverse Gaussian Distribution for Synthetic CDO pricing.", Anna Kalemanova, Bernd Schmid, Ralf Werner, Journal of Derivatives, Vol. 14, No. 3, (Spring 2007), pp. 80-93. http://www.defaultrisk.com/pp_crdrv_91.htm

It can be used to price a credit derivative or to provide risk metrics of a portfolio.

todo

It should be checking that basket exposures are deterministic (fixed or programmed amortizing) otherwise the model is not fit for the basket.

todo

Bugging on tranched baskets with upper limit over maximum attainable loss?

Hierarchy

Implements

Index

Constructors

constructor

Properties

_basket

_basket: RelinkableHandle<Basket> = new RelinkableHandle()

Private _beta

_beta: Real

Private _biphi

_cachedMktFactor

_cachedMktFactor: Handle<Quote>

_copula

_copula: any

Private _correl

_correl: Handle<Quote>

_factorWeights

_factorWeights: Real[][]

_idiosyncFctrs

_idiosyncFctrs: Real[]

_isDisposed

_isDisposed: boolean = false

_nFactors

_nFactors: Size

_nVariables

_nVariables: Size

_observables

_observables: Set<Observable> = new Set()

_observers

_observers: Set<Observer> = new Set()

Private _rrQuotes

_rrQuotes: Array<Handle<RecoveryRateQuote>> = []

Private _sqrt1minuscorrel

_sqrt1minuscorrel: Real

allFactorCumulInverter

allFactorCumulInverter: (probs: Real[]) => Real[]

Type declaration

copula

copula: () => any

Type declaration

    • (): any
    • Returns any

copulaPolicy

copulaPolicy: any

cumulativeY

cumulativeY: (val: Real, iVariable: Size) => Probability

Type declaration

cumulativeZ

cumulativeZ: (z: Real) => Probability

Type declaration

deepUpdate

deepUpdate: () => void

Type declaration

    • (): void
    • Returns void

defaultCorrelation

defaultCorrelation: (d: Date, iName: Size, jName: Size) => Real

Type declaration

density

density: (m: Real[]) => Probability

Type declaration

densityTrancheLoss

densityTrancheLoss: (d: Date, lossFraction: Real) => Real

Type declaration

    • Parameters

      • d: Date
      • lossFraction: Real

      Returns Real

dispose

dispose: () => void

Type declaration

    • (): void
    • Returns void

factorWeights

factorWeights: () => Real[][]

Type declaration

idiosyncFctrs

idiosyncFctrs: () => Real[]

Type declaration

init

init: (copulaPolicyImpl: any) => LatentModel

Type declaration

integratedExpectedValue1

integratedExpectedValue1: (f: UnaryFunction<Real[], Real>) => Real

Type declaration

integratedExpectedValue2

integratedExpectedValue2: (f: UnaryFunction<Real[], Real[]>) => Real[]

Type declaration

integration

integration: () => LMIntegration

Type declaration

inverseCumulativeDensity

inverseCumulativeDensity: (p: Probability, iFactor: Size) => Real

Type declaration

inverseCumulativeY

inverseCumulativeY: (p: Probability, iVariable: Size) => Real

Type declaration

inverseCumulativeZ

inverseCumulativeZ: (p: Probability) => Real

Type declaration

isDisposed

isDisposed: boolean

latentVarValue

latentVarValue: (allFactors: Real[], iVar: Size) => Real

Type declaration

latentVariableCorrel

latentVariableCorrel: (iVar1: Size, iVar2: Size) => Real

Type declaration

lmInit1

lmInit1: (factorsWeights: Real[][], ini?: any) => LatentModel

Type declaration

lmInit2

lmInit2: (factorsWeight: Real[], ini?: any) => LatentModel

Type declaration

lmInit3

lmInit3: (correlSqr: Real, nVariables: Size, ini?: any) => LatentModel

Type declaration

lmInit4

lmInit4: (singleFactorCorrel: Handle<Quote>, nVariables: Size, ini?: any) => LatentModel

Type declaration

lossDistribution

lossDistribution: (d: Date) => Map<Real, Probability>

Type declaration

notifyObservers

notifyObservers: () => void

Type declaration

    • (): void
    • Returns void

numFactors

numFactors: () => Size

Type declaration

numTotalFactors

numTotalFactors: () => Size

Type declaration

probAtLeastNEvents

probAtLeastNEvents: (n: Size, d: Date) => Probability

Type declaration

probsBeingNthEvent

probsBeingNthEvent: (n: Size, d: Date) => Probability[]

Type declaration

registerObserver

registerObserver: (o: Observer) => void

Type declaration

registerWith

registerWith: (h: Observable) => void

Type declaration

registerWithObservables

registerWithObservables: (o: Observer) => void

Type declaration

setBasket

setBasket: (bskt: Basket) => void

Type declaration

size

size: () => Size

Type declaration

splitESFLevel

splitESFLevel: (d: Date, loss: Real) => Real[]

Type declaration

splitVaRLevel

splitVaRLevel: (d: Date, loss: Real) => Real[]

Type declaration

unregisterObserver

unregisterObserver: (o: Observer) => void

Type declaration

unregisterWith

unregisterWith: (h: Observable) => Size

Type declaration

unregisterWithAll

unregisterWithAll: () => void

Type declaration

    • (): void
    • Returns void

Static _phi

_phi: CumulativeNormalDistribution = new CumulativeNormalDistribution()

Methods

averageProb

  • Parameters

    • d: Date

    Returns Probability

averageRecovery

  • averageRecovery(d: Date): Real
  • Parameters

    • d: Date

    Returns Real

expectedRecovery

expectedShortfall

expectedTrancheLoss

  • expectedTrancheLoss(d: Date): Real

Private expectedTrancheLossImpl

  • Parameters

    Returns Real

glhpmInit1

glhpmInit2

glhpmInit3

percentile

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

Protected percentilePortfolioLossFraction

  • percentilePortfolioLossFraction(d: Date, perctl: Real): Real
  • Parameters

    • d: Date
    • perctl: Real

    Returns Real

probOverLoss

  • probOverLoss(d: Date, remainingLossFraction: Real): Real

resetModel

  • resetModel(): void

update

  • update(): void