Docs / nablatensor-quant / com.nablatensor.credit

record

CdoTranche

A synthetic CDO tranche [attach, detach] on a homogeneous pool, priced off the PortfolioLossDistribution: the protection leg pays the change in expected tranche loss over each period, the premium leg pays a spread on the surviving (un-lost) tranche notional, and the par spread is their ratio.

Losses fall on the pool's integer default grid, so the expected tranche loss at each payment date is a single sum over that grid.

Record components

attach
double
detach
double

Methods

double width()
double expectedLossFraction(PortfolioLossDistribution loss)

Expected loss suffered by the tranche by the horizon, as a fraction of the tranche notional.

double parSpread(double[] lossAtDate, double[] paymentTimes, java.util.function.DoubleUnaryOperator discount)

Par spread of the tranche.

lossAtDate
expected portfolio-level tranche loss at each payment date (ascending)
paymentTimes
ascending payment times in years
discount
time -> risk-free discount factor
double protectionBuyerPv(double contractSpread, double[] lossAtDate, double[] paymentTimes, java.util.function.DoubleUnaryOperator discount)

PV to the protection buyer of paying contractSpread on unit tranche notional.