Loss Distributions and Loss Quantiles
Install and import#
npm install fintech-algorithmsimport { lossDistributionsAndLossQuantiles } from "fintech-algorithms/foundations/financial-risk-and-performance-statistics/loss-distributions-and-loss-quantiles";Signature#
lossDistributionsAndLossQuantiles(input)Flips a return series into losses, sorts them, and reads off the quantile at the requested confidence by linear interpolation between neighbours.
Parameters#
| Name | Type | Notes |
|---|---|---|
input | D00Input | Reads returns and benchmark, two aligned non-empty lists of finite periodic returns, frequency, the number of periods per year, and confidence, the quantile level in the closed interval from zero to one. |
Returns#
D00Output
losses is the sign-flipped return series sorted ascending, lossQuantile is the interpolated quantile at confidence, and confidence is echoed back.
Errors#
- When
returnsorbenchmarkis absent, empty, or holds a non-finite number — throws RangeError - When
returnsandbenchmarkdiffer in length, or hold fewer than two observations — throws RangeError - When
frequencyis zero or negative — throws RangeError - When
confidenceis outside the closed interval from zero to one — throws RangeError - When
confidenceis absent, or outside the range zero to one — the engine reads it for every topic from A04 onward, including those that never use it — throws RangeError
Complexity: time O(n log n),
space O(n).
Worked example#
verified This is the worked example published in the article, replayed by the test suite on every run. The output cannot drift.
Input#
{
"returns": [0.01, -0.02, 0.015, -0.01, 0.03],
"benchmark": [0.008, -0.01, 0.012, -0.006, 0.02],
"frequency": 252,
"target": 0,
"confidence": 0.8,
"riskFree": 0.0001,
"weights": [0.6, 0.4],
"covarianceMatrix": [
[0.04, 0.01],
[0.01, 0.09]
]
}Call#
lossDistributionsAndLossQuantiles(input)Returns#
object with 2 fields: losses, lossQuantile
{
"losses": [-0.03, -0.015, -0.01, 0.01, 0.02],
"lossQuantile": 0.012000000000000002
}Diagrams#
How it works#
This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.
References#
- Expected Shortfall — Basel Framework MAR33
- Mutual Fund Performance — William F. Sharpe
- Measures of Scale — NIST/SEMATECH e-Handbook
- Historical-example decision