Options
All
  • Public
  • Public/Protected
  • All
Menu

Base Correlation loss model; interpolation is performed by portfolio (live) amount percentage.\par Though the literature on this model is inmense, see for a more than introductory level (precrisis) chapters 19, 20 and 21 of Modelling single name and multi-name credit derivatives. Dominic O'Kane, Wiley Finance, 2008\par For freely available documentation see:\par Credit Correlation: A Guide; JP Morgan Credit Derivatives Strategy; 12 March 2004 \par Introducing Base Correlations; JP Morgan Credit Derivatives Strategy; 22 March 2004 \par A Relative Value Framework for Credit Correlation; JP Morgan Credit Derivatives Strategy; 27 April 2004 \par Valuing and Hedging Synthetic CDO Tranches Using Base Correlations; Bear Stearns; May 17, 2004 \par Correlation Primer; Nomura Fixed Income Research, August 6, 2004 \par Base Correlation Explained; Lehman Brothers Fixed Income Quantitative Credit Research; 15 November 2004 \par 'Pricing CDOs with a smile' in Societe Generale Credit Research; February 2005 \par For bespoke base correlation see: \par Base Correlation Mapping in Lehman Brothers' Quantitative Credit Research Quarterly; Volume 2007-Q1 \par You can explore typical postcrisis data by perusing some of the JPMorgan Global Correlation Daily Analytics \par Here the crisis model problems of ability to price stressed portfolios or tranches over the maximum loss are the responsibility of the base models. Users should select their models according to this; choosing the copula or a random loss given default base model (or more exotic ones). \par Notice this is different to a bespoke base correlation loss (bespoke here refering to basket composition, not just attachment levels) ; where loss interpolation is on the expected loss value to match the two baskets. Therefore the correlation surface should refer to the same basket intended to be priced. But this is left to the user and is not implemented in the correlation surface (yet...)

todo

Bespoke portfolios BC models are yet to be implemented.

BaseModel_T must have a constructor with a single quote value

Criticism: This model is not as generic as it could be. In principle a default loss model dependent on a single factor correlation parameter is the only restriction on the base loss model(s) type. This class however is tied to a LatentModel single factor. But there is no need for the underlying model to be of a latent type. This link is due to the copula initialization traits which have to be present for non trivial copula policies initialization (e.g. Student-T base correl models)

Maybe a possibility is to pass copiable instances of the model and relinking to the correlation in two internal copies.

Hierarchy

Implements

Index

Constructors

constructor

Properties

BaseModel_T

BaseModel_T: any

Corr2DInt_T

Corr2DInt_T: Interpolator2D

Private _attachRatio

_attachRatio: Real

_basket

_basket: RelinkableHandle<Basket> = new RelinkableHandle()

Private _basketAttach

_basketAttach: Basket

Private _basketDetach

_basketDetach: Basket

_copulaTraits

_copulaTraits: any

Private _correlTS

Private _detachRatio

_detachRatio: Real

_isDisposed

_isDisposed: boolean = false

Private _localCorrelationAttach

_localCorrelationAttach: SimpleQuote

Private _localCorrelationDetach

_localCorrelationDetach: SimpleQuote

_observables

_observables: Set<Observable> = new Set()

_observers

_observers: Set<Observer> = new Set()

Private _recoveries

_recoveries: Real[]

Private _remainingNotional

_remainingNotional: Real

Private _scalarCorrelModelAttach

_scalarCorrelModelAttach: any

Private _scalarCorrelModelDetach

_scalarCorrelModelDetach: any

deepUpdate

deepUpdate: () => void

Type declaration

    • (): void
    • Returns void

defaultCorrelation

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

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

expectedRecovery

expectedRecovery: (d: Date, iName: Size, key: DefaultProbKey) => Real

Type declaration

expectedShortfall

expectedShortfall: (d: Date, percentile: Real) => Real

Type declaration

    • Parameters

      • d: Date
      • percentile: Real

      Returns Real

isDisposed

isDisposed: boolean

lossDistribution

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

Type declaration

notifyObservers

notifyObservers: () => void

Type declaration

    • (): void
    • Returns void

percentile

percentile: (d: Date, percentile: Real) => Real

Type declaration

    • Parameters

      • d: Date
      • percentile: Real

      Returns Real

probAtLeastNEvents

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

Type declaration

probOverLoss

probOverLoss: (d: Date, lossFraction: Real) => 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

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

Methods

bclmInit

expectedTrancheLoss

  • expectedTrancheLoss(d: Date): Real

resetModel

  • resetModel(): void

setupModels

  • setupModels(): void
  • Returns void

update

  • update(): void