Signal Processing · Time–Frequency Analysis · Financial Markets

Spectral Signatures in SPY and BTC Intraday Returns

Abstract

A matched-hours comparison of SPY and BTC daily variance across four intraday frequency bands. The cross-asset gap is small and sample-limited; the durable finding is that the choice of decomposition — STFT residual or DWT approximation — moves the same gap by more than the gap itself.

Daily realized volatility on the matched-RTH panel 0.0 1.0 2.0 3.0 4.0 5.0 stress wk Apr 21Apr 25Apr 29May 3May 7May 11May 15May 19 Daily realized volatility (%) Session date SPY (mean 0.64%) BTC matched RTH (mean 1.77%)
Figure 1. Daily realized volatility on the matched-RTH panel. Within-session standard deviation of 1-minute log returns, annualized by √390. BTC realized vol averages 2.78× SPY across the 21 sessions; the stress week shading on the right marks ISO week 21 of 2026 (n = 2 stress sessions per asset). The band-share comparison sits on top of this unambiguous absolute-volatility difference.

Key results

1–5 min BTC−SPY gap
+0.16 pp
95% bootstrap CI
[−0.76, +0.90]
Paired RTH sessions
21 (1 stress week)
Cross-method |Δs|
5–32 pp

Sample. SPY + BTC/USDT 1-minute bars, 21 RTH sessions, 2026-04-21 to 2026-05-19

Headline

On a matched U.S. regular-hours panel of 21 trading days the average share of intraday variance that SPY and BTC carry below five minutes differs by +0.16 percentage points (BTC minus SPY), with a 95% date-block bootstrap interval of [−0.76, +0.90]. The central estimate is roughly 1% of the SPY 1–5 minute base share, the bootstrap distribution crosses zero on 45.9% of resamples, and a two-sample Kolmogorov–Smirnov test for the same band returns D = 0.19 with p = 0.85 uncorrected. None of the four cross-asset KS tests survives Bonferroni correction at αcorr = 0.0125.

The more durable finding is methodological. The short-time Fourier transform residual and the discrete wavelet transform approximation define the 60+ minute band so differently — one as a residual, the other as a low-pass approximation — that they disagree at the 5–32 percentage-point level on identical inputs, and their daily band-share series are negatively correlated in three of four SPY bands and two of four BTC bands. Under that lens the cross-asset spectral signature inherits the decomposition more than the data. The cross-method audit is the report's central contribution.

Methodology

Returns are computed as ri,t = log Pi,t − log Pi,t−1 on a matched-session panel keyed to America/New_York regular trading hours (09:30–16:00 local), then converted to UTC for storage. Anchoring in local time avoids daylight-savings drift that a literal UTC window would introduce. Sessions with greater than 5% missingness on either asset are dropped; on the published run none were dropped from either asset.

STFT recipe. Short-time Fourier transform with fs = 1/60 Hz, Hann taper, window length N = 30 minutes, hop h = 15 minutes (50% overlap). Four bands map to FFT bins by period: 1–5 min uses bins with T ∈ [2, 5] min; 5–15 min uses T ∈ (5, 15]; 15–60 min uses the 30-minute proxy bin; the 60+ band is defined as a residual, Vard − Σb Pb per session. The residual definition for the 60+ band is load-bearing — it absorbs the Hann taper loss at frame edges and inter-window low-frequency drift, so the 60+ band carries roughly 79% of session variance on this sample.

DWT recipe. Daubechies-4 (db4) with five levels and symmetric boundary handling. Detail coefficients D1..5 and the approximation A5 map to bands as (1–5) = D1D2, (5–15) = D3, (15–60) = D4D5, (60+) = A5. Sensitivity is reported for boundary modes symmetric (primary), periodic, and zero.

Bootstrap. Paired-day indices are resampled with replacement in contiguous blocks of length L = 5 trading days (one calendar week), with B = 2000 resamples and a fixed seed. The block construction preserves joint (SPY, BTC) daily distribution and a coarse amount of cross-day serial dependence, which is the dependence structure relevant for spectral statistics.

Stress. ISO weeks are labelled stress by the union of weekly median VIX exceeding 30 or weekly BTC realized volatility exceeding its 80th percentile over the available panel. On this run, only ISO week 21 of 2026 triggers, producing two stress sessions per asset.

Xi(τ, ω) = Σn=0..N−1 wn · ri,τ+n · exp( i ω n / N )
(1)
si,b,d = Pi,b,dΣb Pi,b′,d ,   Σb si,b,d = 1
(2)
𝕊w = 𝟙{ VIX̃w > 30 ∨ RVBTCw > Q0.8(RVBTC) }
(3)
Δ̂sb,(k) = 1n Σd ∈ 𝓑k ( sBTC,b,d sSPY,b,d ) · 100
(4)

Data and sample characterization

The raw inputs are pinned by SHA-256 in the run manifest. SPY 1-minute OHLCV comes from yfinance, scoped to the rolling 30-day window the vendor exposes; an availability probe confirmed that any request older than that is rejected with the explicit message "The requested range must be within the last 30 days," so a paid intraday vendor (Polygon, Alpaca, or IBKR) is queued as the follow-up for a longer panel. BTC/USDT 1-minute klines are pulled from the Binance public REST endpoint over a UTC-day-aligned window enclosing the SPY range, so the 24-hour BTC robustness panel covers complete calendar days. VIX daily closes from FRED label stress weeks.

The matched panel contains 21 RTH trading days. ISO-week labelling yields 1 stress week (ISO week 21 of 2026: weekly BTC realized volatility crossed its 80th percentile), producing 2 stress sessions per asset and 19 calm sessions per asset. All distributional claims are read against that sample size.

Spectral band shares are scale-free by construction. Before discussing them it is useful to anchor the comparison in absolute volatility, since the natural prior is that BTC is simply more volatile than SPY rather than spectrally distinct from it. On the matched-RTH window BTC's realized vol is 2.78× SPY's on average, with a single 4.7% session outlier on 2026-04-22 that is left in the panel. Whatever shape difference appears in the band-share comparison sits on top of an unambiguous absolute-volatility difference.

Cross-method audit

This section reports the strongest single finding in the report and is deliberately placed before the cross-asset results, because the cross-asset story cannot be read without knowing how method-dependent it is.

The 60+ band is method-dependent. The STFT residual concentrates near 79% with a tight right tail; the DWT A5 approximation spreads from roughly 0% to 85% with a mean near 50%. Identical input series. Because the four band shares sum to one by construction, a 30-percentage-point shift in the 60+ band must be redistributed across the lower-frequency bands — which is exactly what propagates into the cross-asset comparison.

Why the correlation is negative, not noisy. The negative correlation is a structural artefact of the residual construction. When a session has strong intra-window oscillation in the 5–15 minute band, the STFT captures that energy in the corresponding band power and the 60+ residual shrinks because more within-session variance has been accounted for. The DWT A5 approximation measures low-frequency energy directly, so its 60+ estimate is largely insensitive to how much energy is captured at higher levels of detail. Days that are louder in the 5–15 minute band drive the STFT 60+ down while leaving the DWT 60+ roughly unchanged, producing a ~−0.7 correlation by construction.

The +0.16 pp headline gap in Section 1 is therefore a property of the STFT 30-minute specification. Under DWT with symmetric boundary handling the same gap is −6.07 pp; under DWT with zero padding it is +0.45 pp. The qualitative conclusion of the report depends on the decomposition, and the cross-asset result that follows must be read with that caveat.

SPY · daily 60+ minute share, STFT residual vs DWT A5 approximation 0 4 9 13 17 STFT mean 79.2% DWT mean 47.2% 020406080100 Sessions Daily 60+ minute band share (%) STFT residual DWT A5 approximation
Figure 2. SPY · daily 60+ minute share, STFT residual vs DWT A5 approximation. On identical input series, the STFT residual concentrates 21 sessions into the 75–85% range (mean 79.2%) while the DWT A5 approximation spreads across the full 0–85% interval with a mean of 47.2%. The 30 pp gap in the catch-all band has to be redistributed across the lower-frequency bands.
BTC · daily 60+ minute share, STFT residual vs DWT A5 approximation 0 4 9 13 17 STFT mean 78.8% DWT mean 53.4% 020406080100 Sessions Daily 60+ minute band share (%) STFT residual DWT A5 approximation
Figure 3. BTC · daily 60+ minute share, STFT residual vs DWT A5 approximation. Same picture on BTC: STFT residual concentrates near 78.8%, DWT A5 spreads broadly with a 53.4% mean. The cross-method 60+ gap is therefore not a SPY artefact — it is structural.
STFT vs DWT cross-method disagreement per band 0 7 14 22 29 36 r=-0.36 r=-0.79 r=+0.38 r=+0.19 r=-0.29 r=+0.30 r=-0.67 r=-0.83 1–5 min5–15 min15–60 min60+ min Mean |STFT − DWT| share (pp) Frequency band SPY BTC
Figure 4. STFT vs DWT cross-method disagreement per band. Mean absolute difference in band share between the two methods (pp), with Pearson correlation of paired daily series annotated above each bar. The 1–5 and 60+ bands — the ones that drive the cross-asset headline — show the strongest negative correlations.
STFT vs DWT, 1–5 minute band, paired daily shares 0 15 30 45 60 75 90 0153045607590 DWT 1–5 min share (%) STFT 1–5 min share (%) SPY BTC
Figure 5. STFT vs DWT, 1–5 minute band, paired daily shares. The 45° line marks perfect agreement. Daily DWT 1–5 minute shares are roughly twice the STFT shares on this sample, and most paired points sit well above the diagonal. Decomposition choice is the dominant degree of freedom in the 1–5 minute band.
AssetBand|Δs| (pp)r
SPY1–5 min23.23-0.36
SPY5–15 min4.45+0.38
SPY15–60 min5.03-0.29
SPY60+ min32.16-0.67
BTC1–5 min16.65-0.79
BTC5–15 min5.48+0.19
BTC15–60 min3.65+0.30
BTC60+ min25.37-0.83
Table 1. Cross-method agreement, daily band-share series. |Δs| is the mean absolute difference in band share between STFT and DWT on identical inputs (pp); r is the Pearson correlation of the paired daily series.

Cross-asset headline

Under the primary STFT 30-minute specification all four 95% bootstrap intervals straddle zero. The 1–5 minute interval includes zero comfortably and the bootstrap distribution crosses zero on 45.9% of resamples; the 5–15 minute interval narrowly excludes zero (CI = [−0.01, +0.44]) and is the only band where the crosses-zero share is small (3.4%) — the closest the data comes to a defensible cross-asset gap on this window.

The 5–15 minute band corresponds to periods of roughly six to ten minutes, the time scale at which institutional order-flow batching (VWAP and algorithmic execution cadences) typically shows up in equity intraday variance. A speculative reading is that BTC, traded continuously across venues without that cadence, distributes mid-frequency energy slightly more evenly than SPY, which puts a small extra weight on the 5–15 minute band. The reading is speculative because the cross-asset KS test for the same band is non-significant on this sample.

Mean daily variance share by band (STFT 30-minute) 0.00 0.20 0.40 0.60 0.80 1.00 0.14 0.14 0.06 0.06 0.01 0.01 0.79 0.79 1–5 min5–15 min15–60 min60+ min Mean daily variance share Frequency band SPY BTC
Figure 6. Mean daily variance share by band (STFT 30-minute). Mean daily band shares per asset across the 21-session panel. The 60+ residual carries roughly 79% of session variance for both assets; the visible cross-asset differences are at the percentage-point level and live in the three lower bands.
BTC − SPY mean band-share gap with 95% bootstrap CI -1.20 -0.82 -0.43 -0.05 0.33 0.72 1.10 [-0.76, 0.90] [-0.01, 0.44] [-0.07, 0.14] [-1.02, 0.38] 1–5 min5–15 min15–60 min60+ min BTC − SPY gap (pp) Frequency band
Figure 7. BTC − SPY mean band-share gap with 95% bootstrap CI. Date-block bootstrap with L = 5 trading days and B = 2000 resamples. All four intervals straddle zero; the 5–15 minute interval narrowly excludes zero and is the only band where the bootstrap crosses zero on less than 5% of resamples.
BandPoint (pp)CI lowCI highCrosses zero
1–5 min+0.16-0.760.900.46
5–15 min+0.15-0.010.440.03
15–60 min+0.04-0.070.140.24
60+ min-0.35-1.020.380.21
Table 2. STFT 30-minute BTC−SPY gap with date-block bootstrap CI. L = 5 trading days, B = 2000 resamples, n = 21 paired days. "Crosses zero" is the share of bootstrap resamples whose gap has the opposite sign of the point estimate.
MethodBandDp (uncorrected)
STFT1–5 min0.1900.853
STFT5–15 min0.2380.603
STFT15–60 min0.2380.603
STFT60+ min0.2380.603
DWT1–5 min0.2860.365
DWT5–15 min0.1430.987
DWT15–60 min0.2380.603
DWT60+ min0.2380.603
Table 3. Cross-asset two-sample Kolmogorov–Smirnov tests. Daily band shares, n = 21 per asset. Bonferroni-corrected threshold across four bands is α = 0.0125. No band crosses the threshold under either decomposition.

Stress conditioning

With only two stress-session observations per asset the stress arm is read descriptively. The 1–5 minute gap widens by +0.13 pp in the stress week; the other bands move in modest opposite directions. None of the stress-vs-calm KS statistics survives Bonferroni correction (the smallest corrected p is 0.57 for the BTC 5–15 minute band). The headline of +0.16 pp is the unconditional 21-day mean; conditioning on calm sessions produces +0.15 pp and conditioning on the two stress sessions produces +0.28 pp. The full-sample value is the defensible point estimate; the calm/stress decomposition is a diagnostic.

BandCalm (pp)Stress (pp)Stress − calm (pp)
1–5 min+0.15+0.28+0.13
5–15 min+0.15+0.10-0.05
15–60 min+0.04+0.01-0.03
60+ min-0.34-0.39-0.05
Table 4. Mean BTC−SPY band-share gap conditioned on stress labelling. Primary STFT 30-min specification. Stress week is ISO week 21 of 2026; n = 2 stress sessions per asset, 19 calm sessions per asset.

Robustness

The headline gap is small. Whether one believes it depends on how stable it is across specification choices. Three sensitivity exercises sit in the cross-method audit that motivates each of them.

STFT window length. The 1–5 and 5–15 minute gaps are stable in sign and roughly stable in magnitude across 15, 30, and 60 minute windows. The 15–60 minute band is structurally zero for w = 15 because a 15-minute window cannot resolve a 30-minute period at all.

DWT boundary mode. Markedly more sensitive, and not just in magnitude: the sign of the BTC−SPY 1–5 minute gap flips between symmetric primary mode and zero mode. Under symmetric, BTC carries 6.07 pp less variance in the 1–5 minute band than SPY; under zero it carries 0.45 pp more. With roughly 390 samples per RTH session and a 5-level db4 decomposition, the symmetric boundary extension wraps the session edges into a mirrored copy whose intra-session high-frequency content spuriously inflates the D2 and (via redistribution) A5 coefficients. Zero padding does not produce that artefact at the session boundary; periodic mode produces an intermediate result.

BTC 24-hour panel. Replacing BTC's matched-RTH series with the same BTC sampled over the full 24-hour UTC day collapses the headline entirely. The 1–5 minute gap flips from +0.16 pp to −1.12 pp; the 60+ residual moves by more than 2 pp in the opposite direction. The matched-session result is therefore partly a property of the truncation: outside U.S. hours BTC carries proportionally more low-frequency variance, and the lift in the high-frequency share inside U.S. hours is a relative shift, not an absolute property of the asset.

The sensitivity matrices below test seven specifications across four bands; some entries will flip sign by chance even if no underlying signal is present. They are descriptive matrices, not a battery of independent tests.

Window (min)1–55–1515–6060+
15+0.15+0.12+0.00-0.28
30 (primary)+0.16+0.15+0.04-0.35
60+0.14+0.12+0.06-0.32
Table 5. STFT window sensitivity. Mean BTC−SPY daily band-share gap (pp) across window lengths. The 30-minute window is primary; 15- and 60-minute windows are persisted as robustness.
Boundary mode1–55–1515–6060+
symmetric (primary)-6.07+1.18-1.34+6.23
periodic-0.43-0.25+0.82-0.14
zero+0.45-0.86+0.52-0.10
Table 6. DWT boundary-mode sensitivity. Mean BTC−SPY daily band-share gap (pp) across padding modes. The sign of the 1–5 minute gap flips between the symmetric primary mode and the zero mode — the strongest specification sensitivity in the report.
BTC sampling1–55–1515–6060+
Matched (primary)+0.16+0.15+0.04-0.35
24-hour UTC-1.12-0.72-0.24+2.07
Table 7. BTC 24h vs matched-RTH BTC. Mean band-share gap relative to SPY matched-session (pp). The headline reverses sign under the 24-hour panel — the matched-session gap is partly a property of the truncation.

Intraday structure

This section uses the matched 1-minute return series directly, without spectral aggregation, to characterise the within-session variance pattern that drives the band-share decomposition. SPY shows the canonical U-shape — a morning lift, gradual decline through midday, secondary lift into the close. BTC's profile is roughly 5× higher on the same scale, declines through the day more steeply than SPY, and lacks the closing lift, consistent with a 24-hour venue spliced into U.S. hours and lacking the same end-of-day demand for liquidity.

The visible intraday non-stationarity is the direct source of the 60+ band's dominance: a falling within-session variance profile is a low-frequency component that the STFT residual absorbs and the DWT A5 represents directly.

Median squared 1-minute log-return per minute-of-day 0 10 20 30 40 09:3010:3011:3012:3013:3014:3015:30 Median squared 1-minute log-return (bps²) Minutes since RTH open (09:30 America/New_York) SPY BTC matched RTH
Figure 8. Median squared 1-minute log-return per minute-of-day. Median across all 21 RTH sessions, 5-minute rolling smoother applied. First two RTH minutes are dropped per session to remove the overnight-gap return. SPY shows the canonical U-shape with a closing lift; BTC is higher and flatter and lacks the close-of-day uptick.

Discussion and limitations

On the 21-day matched-hours panel SPY and BTC are spectrally near-indistinguishable in the daily distribution of band shares: the 1–5 minute BTC−SPY mean gap is +0.16 pp with a bootstrap CI that includes zero by a wide margin, no cross-asset KS test survives Bonferroni correction, and the sign of the gap is not preserved under plausible alternative decompositions. The methodological finding is more durable: the STFT residual and the DWT approximation define the 60+ minute band so differently that the BTC−SPY mean gap moves by 5 to 30 percentage points across decompositions on identical inputs, and the two methods disagree at exactly the bands that drive the headline.

The honest reading is narrower than the framing in the original research plan invited: matched-session SPY and BTC do not have visibly distinct spectral signatures at this sample size, and the appropriate follow-up is a longer panel from a paid intraday vendor coupled with a redefinition of the 60+ STFT band as a genuine low-pass filter so the two decompositions can be compared band-for-band without the catch-all term.

Limitations. 21 paired RTH trading days has near-zero power for a distributional test, and CIs cannot shrink below the bootstrap dispersion driven by individual-session variance. The stress arm is power-starved at one ISO week and two stress sessions per asset; multi-year history will produce a usable stress panel. BTC is sourced from one venue (Binance spot BTCUSDT); cross-venue dispersion in cryptocurrency spot is documented and a composite or alternative venue (Coinbase, Kraken) is an obvious robustness layer. The STFT/DWT 60+ disagreement is the natural next thing to fix — redefine the STFT 60+ band as a genuine low-pass filter rather than a residual so the two decompositions can be compared band-for-band. Extensions: a second asset pair (a major equity index vs. a major altcoin), a spectral coherence analysis between SPY and BTC, and the relationship between band-energy shifts and exogenous regime changes — all reuse the matched-session return panel as input.

Reproducibility. The published artifact set is keyed by a SHA-256 manifest pinning the raw 1-minute SPY and BTC snapshots, the daily VIX series, every processed band-share table (primary and sensitivity), the bootstrap distribution, the Kolmogorov–Smirnov result grid, and the cross-method audit table. Runtime environment is pinned to Python 3.11 with numpy, pandas, scipy, pywavelets, and matplotlib; the same manifest hash is produced on two consecutive runs.

Related research