🌐 Intraday Volatility Transmission Across Asset Classes
UQO Working Paper No. 6 — A Connectedness Analysis of Equities, Foreign Exchange, Commodities, and Cryptocurrencies
TL;DR — Daily realized volatility is built from 5-minute bars (2008–2026) for 10 instruments — equity futures (ES, NQ), FX (EURUSD, USDJPY, GBPUSD), commodities (GC, CL), crypto (BTC, ETH) and the VIX — and the Diebold–Yilmaz connectedness of log RV is estimated on the 2,514 trading days common to all series (2016-03 → 2026-03; VAR(4), 10-day GFEVD, residual-bootstrap 90 % intervals). Total spillover is 54.8 % [53.1, 56.9]. ES and NQ are the only robust net transmitters (+36.0 / +25.6 pp); the RV of the VIX (−20.6), crude oil (−14.2) and sterling (−13.2) are net receivers; BTC/ETH net positions are indistinguishable from zero. Crypto's exposure to traditional assets rises from < 10 % of forecast-error variance (2017, 2019) to 20–46 % (2020–2025), with the flow running from U.S. equities to crypto: in the spot-ETF era BTC is a significant net receiver (−12.4 [−20.4, −2.1]). Connectedness peaks in 2025 (71.5 %). Intraday (time stamps converted from Eastern to UTC), the U.S. cash session generates 53–63 % of equity/VIX daily variance while bitcoin's hourly profile is nearly flat (peak/trough 1.2); weekend bitcoin volatility does not predict Monday equity volatility.
📌 Status
| Item | Value |
|---|---|
| Version | 1.1 (October 2026) — revised 2026-10-17 by the editorial-board review (v1.0: May 2026) |
| SSRN | not yet submitted |
| Journal | — (realistic targets: IRFA, JIFMIM; see docs/REVIEW-REPORT.md §9) |
| Code & data | VAR/GFEVD stage fully reproducible from the committed results/daily_rv_all.csv (scripts/02_…, ≈ 1 min); intraday stage from local 1-minute bars (scripts/03_…); raw 5-minute DuckDB files not redistributed |
🎯 What this paper does
The paper measures how realized-volatility shocks travel across asset classes at the daily frequency, using realized volatility from 5-minute data rather than range- or return-based proxies, and exploits the intraday data a second time to study trading sessions. Ten instruments are followed over 2008–2026; the generalized forecast-error variance decomposition of a VAR on log realized volatility yields directional, net and total spillovers with bootstrap intervals:
RV_{i,t} = Σ_k r²_{i,t,k} (5-min) → y = ln √(252·RV) on common trading days → VAR(4), GFEVD(H = 10) → TSI, TO, FROM, NET (+ 90 % bootstrap CI)Full-sample, robustness-grid (15 specifications), rolling (200/250/500 trading days), regime (pre-COVID, COVID crash, 2022 hikes, spot-ETF era) and calendar-year decompositions are complemented by Granger tests with HAC inference, a UTC-correct hourly/session analysis (Asian / European / U.S.) and session-ordered predictive regressions between equity futures, the VIX and bitcoin.
🏆 Headline results
| Object | Estimate (v1.1) |
|---|---|
| Total spillover index, 2016-03 → 2026-03 (T = 2,514) | 54.8 % [53.1, 56.9] |
| Net spillover ES / NQ | +36.0 [29.9, 41.5] / +25.6 [19.0, 31.3] pp |
| Net spillover VIX (RV of index changes) / CL / GBPUSD | −20.6 / −14.2 / −13.2 pp (all CIs exclude 0) |
| Net spillover BTC / ETH | +1.7 [−3.3, 6.4] / −2.4 [−7.9, 2.1] pp |
| Own-shock share BTC / ETH ; BTC↔ETH | 66.7 / 64.9 % ; 27–28 % |
| Share of BTC variance from traditional assets | 6.3 % full sample ; 6.8 % (2019) → 34 % (2020) → 46 % (2025) |
| Spot-ETF era (2024-01 → 2026-03): NET BTC / ETH | −12.4 [−20.4, −2.1] / −19.5 [−27.7, −9.2] pp |
| COVID crash (T = 85, VAR(1)): NET USDJPY | +81.8 [+7.3, +135.3] pp |
| Rolling TSI (200 td): mean / min / max | 61.9 % / 50.5 % (2017-10-27) / 73.4 % (2025-09-24) |
| Granger ES → RV(VIX) | F = 19.9, HAC Wald 62.8, p < 0.001 |
| U.S.-session share of daily variance: ES / NQ / VIX | 53 / 54 / 63 % ; BTC hourly peak/trough = 1.2 |
| Weekend BTC RV → Monday ES U.S.-session RV | coef −0.04 (s.e. 0.05), not significant |
🗂 Repository layout
intraday-volatility-connectedness/
├── data/raw/README.md # 4 DuckDB 5-min databases (not committed) + 1-min bars used by 03_ (sibling WP 12)
├── scripts/
│ ├── 01_analysis.py # stage 1 (May 2026): RV construction → results/daily_rv_all.csv ; stages 3–8 superseded
│ ├── 02_connectedness_revision.py # stage 2 (Oct 2026): trading-day panel, log RV, VAR/GFEVD, bootstrap, robustness, rolling, regimes, yearly, Granger
│ └── 03_intraday_sessions.py # stage 3 (Oct 2026): ET→UTC conversion, hourly profile, session RV, session-ordered regressions
├── results/ # daily_rv_all.csv, table1_… (v1.0) ; rev_*.csv (v1.1)
├── figures/ # fig1…fig8 PNG (copied into paper/figures)
├── paper/ # main.tex + sections/ + appendix/ + tables/ (generated .tex) + references.bib → main.pdf
└── docs/ # REVIEW-REPORT.md, CHANGELOG-REVISION.md, main_pre-revision-20261017.pdf🚀 Quick start
python3 -m pip install -r requirements.txt
# optional stage 1: place the four DuckDB files in data/raw/ (or export WP6_DATA_DIR) — ≈ 10 min, ≈ 8 GB RAM
python3 scripts/01_analysis.py
# stage 2 (no raw data needed): all connectedness results, tables and figures 2–4, 6–8 — ≈ 1 min
python3 scripts/02_connectedness_revision.py
# stage 3: intraday sessions (export WP6_MINUTE_DIR=/path/to/1-min parquets) — ≈ 35 s
python3 scripts/03_intraday_sessions.py
cd paper && make # latexmk → main.pdf🗃 Data
5-minute OHLCV bars from FirstRate Data, 2008–2026, time stamps in U.S. Eastern time: continuous futures (ES, NQ, GC, CL), spot FX (EURUSD, USDJPY, GBPUSD), spot crypto (BTC, ETH, composite of exchanges) and the VIX index. Realized volatility is the daily sum of squared 5-minute log returns on Eastern-time calendar days (≥ 20 bars; returns beyond 20 sample s.d. dropped — a v1.0 choice disclosed in v1.1). The VAR panel is the set of trading days on which all ten instruments have an own RV (CBOE calendar, no forward filling). Intraday sessions use 1-minute bars of the same vendor converted to UTC. See data/raw/README.md.
🔬 Methodology
- Realized volatility per instrument and day (
01_analysis.py), log-transformed for the VAR (ADF/KPSS reported). - Diebold–Yilmaz (2012) connectedness: VAR(4) (Hannan–Quinn), generalized FEVD at H = 10, TSI / TO / FROM / NET and net pairwise spillovers; residual bootstrap (B = 500) for 90 % intervals.
- Robustness grid: levels vs log, p ∈ {1,2,3,6}, H ∈ {5,20}, weekend-inclusive crypto RV, sub-periods, exclusion of VIX / crypto.
- Rolling windows of 200 / 250 / 500 trading days; regimes (4) and calendar years with intervals.
- Granger causality (F and HAC Wald) on daily log RV.
- Sessions: hourly profile in UTC, session RV shares, session-ordered predictive regressions, weekend-BTC → Monday-ES test.
🖼 Figures & tables inventory
| Figure | Content |
|---|---|
fig1_rv_timeseries |
daily realized volatility, 10 instruments (v1.0) |
fig2_connectedness_heatmap |
full-sample GFEVD shares |
fig3_rolling_spillover |
rolling TSI, 200/250/500 trading days |
fig4_net_spillovers_regimes |
net spillovers by regime with 90 % intervals |
fig5_hourly_volatility |
hourly |
fig6_net_directional_btc_es |
rolling net spillovers BTC and ES |
fig7_network_graph |
network of net pairwise spillovers |
fig8_yearly_crypto_integration |
BTC net spillover and exposure to traditional assets by year |
Tables (paper/tables/*.tex, generated from results/rev_*.csv): RV descriptives, full connectedness with CIs, robustness grid, regimes (summary + 4 full matrices), calendar years, Granger, sessions, session-ordered regressions, weekend test, construction audit, lag selection, rolling summary.
⚠️ Limitations
- 5-minute returns beyond 20 s.d. were dropped before RV was computed (v1.0 pipeline; raw bars not available to re-run); composite crypto feed shows cross-venue price oscillations in 2017 (BTC RV > 1,000 % annualized on a few days — reproduced on the vendor's 1-minute feed).
- Continuous futures splice contracts at roll dates; roll returns are not removed.
- Linear, symmetric VAR; i.i.d. residual bootstrap (indicative intervals); 10 instruments, no fixed-income series.
- A "day" is an Eastern-time calendar day, which splits the Globex session; crypto weekend variance enters only in a robustness check.
📝 Citation
@techreport{boucher2026connectedness,
author = {Boucher, Simon-Pierre},
title = {Intraday Volatility Transmission Across Asset Classes: A Connectedness Analysis of Equities, Foreign Exchange, Commodities, and Cryptocurrencies},
institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives},
type = {Working Paper},
number = {6},
year = {2026},
month = {October},
note = {Version 1.1}
}👤 Author & contact
Simon-Pierre Boucher — Département des sciences administratives, Université du Québec en Outaouais (UQO), Gatineau, QC. 📧 simon-pierre.boucher@uqo.ca
🗒 Notes
- Revision 2026-10-17 (v1.0 → v1.1): scientific review by the editorial board — see
docs/REVIEW-REPORT.md(diagnosis, verdicts, recommended analyses not executed, publication readiness) anddocs/CHANGELOG-REVISION.md(audit trail of every correction, references verified/added/removed, re-analyses). Pre-revision state: git tagpre-revision-20261017,docs/main_pre-revision-20261017.pdf. - Main corrections: trading-day panel instead of forward-filled calendar days; log RV; bootstrap intervals; Eastern→UTC time stamps in the intraday analysis; subtitle "Fixed Income" → "Foreign Exchange" (no fixed-income instrument in the sample); bibliography converted to
references.bib(natbib/aer), 45 → 70 verified references. results/table2…table4*.csvandrolling_total_spillover.csvare the v1.0 outputs, kept for the audit; v1.1 outputs are prefixedrev_.- The original flat manuscript (
paper.tex, May 2026) is archived inRecherche-UQO/_archives/versions-mai-2026/intraday-volatility-connectedness--flat-tex-20260520/.