AQAI QuantAI research lab for systematic strategies

Automated analysis

This analysis was drafted by our research engine and has not been checked by a human editor. It may contain errors. It separates the paper’s own results from our tests, and any figures called ours come from our own backtest.

Our automated analysisOur backtest

The volatility clock the denoiser cancels out

Shen and Zhao calibrate a tempered-stable variance chain, then prove it cannot steer a conditioned denoiser

2026-08-01 · 9 min read

Reviewing: Denoising Subordinated Probabilistic Models: Diffusion with a Tempered-Stable Volatility Clock, and What the Noise Mechanism Actually Controls · Junchi Shen and Helin Zhao · Read it on arxiv

Our backtest of this idea

Our automated quick test, not the paper's

Tempered-Stable AR(1) Volatility-Clock Risk Overlay with Optional ATM Straddle Volatility-Risk-Premium Overlay

Backtest period 2020-01-01 to 2025-10-08 · hypothetical, net of modelled costs

Why these figures are not the paper's (1)

Our own audit found this run does not follow the paper faithfully (9)

  • deviation left undescribed by the audit (invalidates: Conditioned diffusion forward-process claims; DDPM sampling claims)
  • deviation left undescribed by the audit (invalidates: Posterior-form sampling claims; conditioned v1 intervention-invariance experiment as an implemented result)
  • deviation left undescribed by the audit (invalidates: Per-step KL training claims; denoiser-whitening claims as implemented mechanics)
  • deviation left undescribed by the audit (invalidates: v2 control results; v2 filtering-quality results; empirical-Bayes memory-movement results)

5 further finding(s) are described in the note.

These are our findings about our own implementation, not criticisms of the paper. Read the figures below as a description of what we ran.

Apr 2021Total -3.3%Oct 2025
Sharpe
-0.33
Total Return
-3.3%
Max Drawdown
-5.8%
CAGR
-0.8%
Volatility
2.3%
Trades
103

A volatility process can fit the data exactly and still exert no causal force on the model's output. Shen and Zhao show when this happens. The denoiser observes the mixing variables, while those variables are sampled independently of the data. Their cleanest evidence is a sampling-time intervention: impose a designed volatility shock with peak factor eight, and the amplitude envelope shifts by a ratio of 0.88. Naive square-root-of-variance scaling gives 2.83. Across three training seeds, the observed move is small and runs in the wrong direction.

That number carries the paper. Heavy-tailed diffusion proposals have mostly taken an additive route, replacing the Gaussian with a scale mixture and then reporting stronger tails. The paper cites a skeptical line of work and turns its concern into a theorem. Can the mixture law influence generation at all? Under conditioning, Shen and Zhao answer no.

The model they build

Heavy-tailed diffusion represents noise as a Gaussian variance mixture. Existing work occupies two endpoints along the dependence axis. Denoising Lévy probabilistic models sample mixing variables i.i.d. across coordinates, leaving no memory. Student-t EDM shares one mixing variable across every coordinate in a sample, giving infinite memory. Neither noise mechanism produces volatility clustering that decays over time.

DSPM, the paper's Denoising Subordinated Probabilistic Model, assigns a separate noise variance to each coordinate. Those variances evolve through a stationary AR(1) chain driven by tempered-stable subordinator increments. Calendar time along the generated path indexes the chain, rather than the diffusion step. Its recursion is the exact skeleton of the discrete Barndorff-Nielsen-Shephard variance process. Conditional on that chain, the DDPM posterior and training loss remain unchanged. Each covariance is a multiple of one diagonal matrix, allowing the scale to cancel.

The calibration is unusually direct. Excess kurtosis equals three times the chain variance, while squared-noise autocorrelation falls geometrically with the memory parameter. The mapping from (kurtosis, lag-one autocorrelation) into (persistence, tempering) has an analytic inverse. It also yields a feasibility restriction that the data can reject: lag-one squared-return autocorrelation must remain below K/(3(K+2)), and therefore below 1/3 always. Daily equity indices pass, with kurtosis of at least 8 and autocorrelation near 0.2.

Parameter recovery behaves cleanly. Targets of (8, 0.20) imply persistence 0.750 and tempering 0.0643. Estimation on 2,000-path panels of length 64, repeated over 200 replications, returns 0.756 plus or minus 0.085 and 0.066 plus or minus 0.007.

The test environment is deliberately synthetic. It contains 28,000 GARCH(1,1)-t paths of length 64, split into 20,000 train and 8,000 test paths. Pooled test moments show excess kurtosis 6.31, Hill index 3.69, and squared-return autocorrelation of 0.159 at lag one and 0.110 at lag five. Training moments of (6.27, 0.161) calibrate persistence to 0.638 and tempering to 0.0876. The activity index is fixed by hand at 0.7. The denoiser has about 0.5M parameters, uses 100 diffusion steps, and trains for 6,000 Adam steps. Each model takes minutes on a laptop.

Why conditioning erases the clock

Training samples the data independently from the variance chain. Showing the chain to the denoiser is the natural statistical decision because its values are available during both training and sampling. Proposition 5 establishes the consequence. In the exact-denoiser limit, the generated distribution equals the data distribution for almost every variance path. The mixing law becomes a nuisance parameter, leaving interventions powerless.

The ablations make the result hard to dismiss. Four models change only the variance-chain law, yet all four finish within 0.017 of the data's lag-one value of 0.159. Plain Gaussian DDPM records 0.142, i.i.d. tempered-stable reaches 0.149, shared inverse-gamma gives 0.142, and DSPM reaches 0.154. Differences between models are about as large as differences between seeds. Conditioned DSPM produces lag-five autocorrelation of 0.118, close to the data's 0.110 and far from its mechanism's theoretical 0.027.

The network is producing the clustering.

Seed variation also led Shen and Zhao to retract stronger marginal claims based on a single seed. Across three seeds, the kurtosis ranges overlap: Gaussian gives 4.59 plus or minus 0.53, while the heavy-tailed variants span 4.3 to 5.2. DSPM's Hill index is the lone tail statistic that stays both accurate and stable, at 3.70 plus or minus 0.04 versus the data's 3.69. Gaussian reaches 3.85 plus or minus 0.16.

Cancellation appears under shocks and calm conditions alike. The shock ratio is 0.88. Holding variance flat at 0.25 produces an envelope ratio of 1.06 plus or minus 0.01, while naive scaling predicts 0.50.

Remove conditioning and the calibrated mechanism passes through. A blind DSPM, whose denoiser never observes the chain, yields lag-one autocorrelation of 0.151 against the calibrated 0.161. At lag five, it records 0.019 against the mechanism's 0.027, preserving the geometric signature of the AR(1) chain. Blind i.i.d. tempered-stable drops to 0.008 because its independent mixture carries no temporal dependence. Its marginals become unusable. Blind DSPM has excess kurtosis 71.7 and Hill 1.80, while the i.i.d. version reaches 68.9 and 1.68, compared with data at 6.31 and 3.69. The authors identify these rows as a single training run and a deliberately crude ablation, rather than a fair implementation of DLPM. Blindness transmits the mechanism at excess kurtosis 71.7 and Hill 1.80 against data at 6.31 and 3.69. Those figures rule it out as a production solution.

Control arrives, tails leave

Breaking the independence premise offers an escape. Version two links the variance chain to each path through a variational volatility encoder. This network extracts a coarse 16-dimensional log-volatility latent from the path and is trained using the stochastic-volatility likelihood, including the log-determinant of the noise covariance.

The paper's strongest technical point concerns that term. The simplified epsilon loss measures the whitened residual norm, making it nearly invariant to variance scale and providing almost no gradient for variance fitting. The predicted failures both appear in experiments. One is a collapsed posterior at 0.007 nats per latent. The other is a latent that copies the path, producing reconstruction error 0.02 and unconditional excess kurtosis 0.18.

Restoring the term changes the intervention response. The same shock scales the envelope by 3.00 plus or minus 0.14, close to the naive 2.83. Under the calm scenario, the ratio becomes 0.52 plus or minus 0.01 against 0.50. On held-out data, the encoder's posterior mean has per-path correlation of 0.567 with the true GARCH variance, which the authors call serviceable but unremarkable. Pooling raises the figure to 0.762, though they warn that cross-path level differences inflate it. Learned prior memory increases from the moment-calibrated 0.638 to 0.803, moving toward the GARCH truth of 0.95. Because the three parametrizations differ, the paper presents that comparison as directional.

Fidelity pays the bill. The abstract describes the cost as substantial and acknowledges that the coupled model's unconditional kurtosis falls below the Gaussian baseline. Section 4.6 reports unconditional excess kurtosis of 2.86 plus or minus 0.12 against the 6.31 target. Version one gives 5.23 plus or minus 0.71, while the Gaussian baseline reaches 4.59 plus or minus 0.53. Table 4 reports lag-one autocorrelation of 0.114 plus or minus 0.003, compared with 0.142 to 0.154 for the conditioned models. Wasserstein distance worsens to 0.071 plus or minus 0.006 from version one's 0.038 plus or minus 0.013. The authors' own summary is accurate: version one provides fidelity without control, version two provides control without fidelity, and combining them remains open engineering.

A lightly treated detail deserves greater prominence. Version two uses a log-normal Clark clock because it permits closed-form KL. Section 3.5 states this directly, as does Limitation (2). The controllable model therefore inherits the tempered-stable chain and boundary-case theory through calibration logic and initialization only. The constructive model and the usable model belong to different parts of the variance-mixture family. The calibration section describes a scenario engine that cannot be steered.

Our tradeable shadow

We implemented the mechanism as a tradeable overlay instead of rebuilding the generative model. The universe was daily long-only exposure across the top 150 US stocks and ETFs by capitalization, subject to 21-day median dollar volume of at least $25mm, with equal base weights. Each name was scaled by an individual volatility clock, an exponentially weighted latent variance state whose decay followed calibrated persistence of about 0.638.

For each symbol, we ranked that state against its trailing 252-day forecast-vol history. Exposure stayed at full weight below the 60th percentile, then declined linearly to 0.25 weight by the 90th and remained at 0.25 above it. The implementation used a Ten per cent position cap, no shorts, and five basis points a side. This run included the ATM straddle sleeve on real end-of-day chains at $0.65 a contract. It rebalanced daily at the close from 2020-01-01 to 2025-10-08.

The overlay lost money with low volatility during a rising market. Total return was -3.32%, Sharpe -0.33, Sortino -0.16, Calmar -0.13, max drawdown -5.77%, and realized volatility 2.26%, over 2020-01-01 to 2025-10-08. Those are our figures for that window. The paper reports no strategy performance because it is a modelling study based on synthetic data.

This result comes from one automated pass, and the setups are not comparable. We traded a volatility-scaled, long-only book of 150 names using real prices. The paper generates synthetic paths of 64 steps with a 0.5M-parameter denoiser trained on 28,000 GARCH(1,1)-t paths, and it reports no P&L.

Two untested design choices are our first suspects. The percentile threshold operates separately for each symbol, so a broad selloff can push the entire book through its upper percentile after the move and trigger delayed de-risking. Persistence of 0.638 also makes geometric decay leave essentially nothing at twenty days. Twenty days is precisely the forecast horizon for the options sleeve, which means that leg responds mainly to rolling unconditional variance instead of the clock. An overlay should earn its keep through volatility and drawdown. Our run produced -5.77% peak drawdown at 2.26% volatility and a -0.33 Sharpe. We did not test a static equal-weight long book as a benchmark in this pass, leaving those as the only available figures.

What remains useful

The feasibility bound provides a free diagnostic for any single-factor stochastic-volatility calibration already in use. Lag-one squared-return autocorrelation must fall below K/(3(K+2)), and thus below 1/3 always. The invariance theorem also supplies a practical test for generative scenario products: intervene on the volatility latent and compare the response with naive scaling before treating a calibrated internal clock as scenario control. One estimation warning travels well too. At these parameters, averaging squared-return autocorrelations across short individual paths understates the target by up to a factor of three. Persistence should be calibrated from pooled data.

The remaining limits come from the authors. Their ground truth is GARCH-t, with no real market data. They reserve the economically decisive experiment for a later iteration: pricing path-dependent structures under generated measures fitted to real index data. Paths contain 64 steps. A single-factor memory of 0.638 generates 0.027 at lag five, while the data shows 0.110.

We previously argued that this literature lacks a shared yardstick in our review of Wang and Ventre. Shen and Zhao partly answer that criticism by holding the denoiser, schedule and budget fixed while changing one bit, so their comparisons remain internal. Their proposed v2.1 already identifies the next fix: use the tempered-stable prior from Definition 1 with Monte-Carlo KL. My view would change if one model delivered an intervention ratio near 2.83 alongside unconditional kurtosis of 6.31.

How our backtest worked

The steps the code we ran actually executed, from its strategy card. Ours, not the paper's — it is one automated implementation of the idea, not the authors' own.

For each trading day at the close:
  Build eligible universe from top 150 US stocks/ETFs by capitalization.
  Require daily close data and 21-day rolling median dollar volume >= $25mm.

  For each eligible symbol:
    Compute daily log returns from closes.
    Estimate rolling unconditional variance over the calibration window.
    Estimate latent variance state A_t using EWMA of normalized squared returns,
      with decay tied to calibrated AR(1) persistence phi.
    Forecast volatility and rank it versus the symbol's trailing 252-day forecast-vol history.

    Set equity exposure scaler:
      percentile <= 0.60: scaler = 1.00
      0.60 < percentile < 0.90: linearly reduce from 1.00 to 0.25
      0.90 <= percentile < 0.95: scaler = 0.25
      percentile >= 0.95: scaler = 0.00

  Construct long-only equal base weights across passing symbols.
  Multiply each symbol weight by its own scaler.
  Enforce max 10% position size, max 4x leverage, and no short equities.
  Trade at the close using market-on-close convention.

  If options overlay is enabled and real EOD option data are available:
    Select near-ATM call and put with 25-45 DTE.
    Compute ATM straddle IV as mean(call IV, put IV).
    Compute 20-day annualized forecast realized vol.
    If forecast RV - ATM IV >= 0.05 after buffers:
      buy ATM call + buy ATM put, capped at 1% capital premium per underlying.
    Else if ATM IV - forecast RV >= 0.08 after buffers:
      sell ATM call + sell ATM put and buy 10% OTM wings,
      capped at 1% capital defined-risk loss per underlying.
    Exit option overlays after 20 trading days or expiration minus 2 trading days.