Quantlet: QuantLet/DELPHI_pilot · visit quantlet.com
Proof-of-concept for DELPHI (PN-IV-ID-PCE-2026-2): distribution-free joint
calibration of the (VaR, ES) pair at alpha = 2.5% via the Fissler-Ziegel
vector identification function, with an online, projection-constrained update.
DELPHI is compared with an uncalibrated rolling-Gaussian engine, VaR-only adaptive
conformal calibration and historical simulation, on BTC-USD daily log-returns
(2017-2024, btc.csv) and on a synthetic GARCH(1,1)-t series with a regime shift.
- Online, one-step-ahead (prequential). At each step the calibrated
(VaR, ES)pair is emitted before the return is observed; only then does the identification vector drive the update. There is no look-ahead and no train/test split, so there is no leakage by construction (as in Gibbs-Candes adaptive conformal inference). - Burn-in. A 250-day rolling window initialises the engine; forecasts and metrics begin after it.
- Step sizes. One learning rate per coordinate (
eta_q,eta_e), chosen once on the calibration objective (breach-rate tracking across both datasets), not on the reported head-to-head comparison; held fixed through the run, with no refit. - Table 2 metrics (VaR coverage error, FZ identification gap, FZ0 score, stress-window
deterioration) are computed prequentially over the full post-burn-in series
(BTC:
n = 2670; ~65 tail exceedances atalpha = 2.5%). - Formal identification test (
significance.py) is run on a pre-specified held-out second half (BTC:n = 1335; ~32 tail exceedances) — i.e. after the online layer has warmed up. This is the deliberately conservative sample for the p-values below.
pip install -r requirements.txt
python delphi_pilot.py # Table 2 metrics (full prequential series) + figure
python significance.py # identification test on the held-out second half
An identification backtest (Newey-West HAC Wald test of H0: E[V] = 0) rejects a
zero FZ identification gap for VaR-only calibration (chi2 = 12.7, p ~ 0.002) but
not for DELPHI (chi2 = 0.08, p ~ 0.96): DELPHI's identification gap is statistically
indistinguishable from zero while VaR-only's is not. With only ~32 held-out tail
exceedances this is a consistency check, not a powered confirmatory test —
confirmatory power is left to the pre-registered multi-asset design of the funded project.
The raw VaR-only minus DELPHI gap difference is borderline under a stationary block
bootstrap (p ~ 0.05, block-length sensitive), and the FZ0-score difference is not
significant; the mean-zero identification test is the appropriate statistic for an FZ gap.
Author: Daniel Traian Pele (danpele@ase.ro)
