Realized volatility compresses a day of intraday price movement into one number. A classical realized-variance measure simply adds squared five-minute returns. Chan and Chan keep those bar-level primitives, but let a small neural network decide which bars receive more weight for the downstream forecast.
That is a clean middle ground between a fixed econometric statistic and an opaque end-to-end representation. It also changes what the daily number means. Positive weights with mean one are easy to interpret, but they preserve only the average weight—not the original sum of volatility contributions.
Keep the primitive, learn the allocation
For realized variance, each primitive is the square of a within-bar open-to-close return. The paper also studies bipower variation and the Garman–Klass range estimator. In every case, the classical raw realized measure is the unweighted sum. The neural version changes only the allocation across bars.
The score network sees candlestick shape, cyclical UTC time, a local volatility contrast, and completed-day summaries. It emits one score per bar. A softmax converts those scores into positive weights, then multiplies by the number of bars so their arithmetic mean is one.
def mean_one_weights(scores, temperature=1.0):
scaled = [score / temperature for score in scores]
maximum = max(scaled)
exps = [math.exp(score - maximum) for score in scaled]
total = sum(exps)
return [len(scores) * value / total for value in exps]The tested TypeScript version above drives the figures; Python and C++ are line-for-line translations. No stochastic data are needed for these illustrations.
The total moves with weight–primitive alignment
Consider two primitive contributions, 1 and 4. The paper's normalization can produce weights 0.50 and 1.50, which still average to one. The raw sum is 5.0, while the learned sum is 6.5. Nothing is numerically wrong: the larger bar was deliberately up-weighted.
KL regularization limits—but does not erase—the departure
The paper penalizes Kullback–Leibler divergence from uniform weights. Its proposition bounds the absolute change by three ingredients: the number of bars, the within-day range of primitive contributions, and the square root of half the KL divergence. In the two-bar example, KL is 0.131; the exact departure is 1.50and the certified upper bound is 1.53.
The paired forecasting result is broad
QLIKE is a volatility-forecast loss based on the ratio between observed and forecast variance; lower is better. On six cryptocurrencies, the neural aggregation improved QLIKE in all 54 paired comparisons. Mean gains were 7.23%, 8.15%, and 9.22% for the single-factor (SF), heterogeneous autoregressive (HAR), and MIDAS forecasting heads.
| Asset | Selected RRM | Selected NRM | QLIKE gain |
|---|---|---|---|
| BTC | 0.301 | 0.278 | 7.6% |
| ETH | 0.272 | 0.260 | 4.4% |
| SOL | 0.253 | 0.246 | 2.8% |
| BNB | 0.348 | 0.342 | 1.7% |
| XRP | 0.560 | 0.541 | 3.4% |
| DOGE | 0.648 | 0.579 | 10.6% |
| Mean | 0.397 | 0.374 | 5.8% |
What to probe next
First, test whether one frozen aggregation transfers across forecasting heads and assets. If the learned daily series changes whenever the downstream model changes, its bar-level attribution is local to that objective rather than a market-wide measurement statement.
Next, report the scale ratio, KL divergence, and proposition bound beside forecast loss on every test day; extend the evidence beyond 24/7 crypto into markets with sessions, overnight gaps, volume, and order-book information. The score network can be explored conceptually on the neural-network page, while the paper's nonlinear benchmark connects naturally to XGBoost.
References
- Chan, B. S. F. and Chan, J. S. K. (2026). Neural Realized Measures: Forecast-Supervised Intraday Aggregation for Volatility Forecasting. ICAIF 2026
- Andersen, T. G., Bollerslev, T., Diebold, F. X., and Labys, P. (2003). Modeling and Forecasting Realized Volatility. Econometrica 71(2)
- Corsi, F. (2009). A Simple Approximate Long-Memory Model of Realized Volatility. Journal of Financial Econometrics 7(2)