XLE volatility-spread compression plus rising crude: forward 20-session relative performance vs SPY
The setup looked like quiet accumulation: XLE's 20-day realized volatility in the bottom quintile of its spread to SPY while Brent's 20-day return was positive. Over this sample, the forward result was the mirror image. Across 17 qualifying days, XLE lagged SPY by an average of 3.39% over the next 20 sessions and beat SPY in only 29% of cases. Non-signal days were mildly positive for XLE, leaving a gap of roughly 3.8 percentage points in the wrong direction.
The conditional mean is unlikely to be zero at conventional levels (p = 0.019), though 17 overlapping events demand caution. Compressed relative volatility during a rising crude tape looked more like the move was already priced than like quiet accumulation. The full breakdown, tests, and caveats are below.
Over the past ~3 years, when XLE's 20-day realized volatility is in the bottom quintile of its spread to SPY's 20-day realized volatility while Brent crude's 20-day return is positive, does XLE outperform SPY over the next 20 trading sessions? I expect compressed sector volatility relative to the broad market during a rising crude tape to signal accumulation rather than peak positioning, so energy equities lead SPY as the move extends.
How this was measured
Daily closes were resampled from XLE and SPY minute bars. XLE and SPY 20-day realized volatility were computed as the rolling standard deviation of close-to-close daily returns. The spread is XLE 20-day RV minus SPY 20-day RV. A signal day requires the spread to be in the bottom quintile of its trailing 252-session distribution (current day excluded) AND the prior-session Brent 20-session return to be positive, using Brent ffill plus a one-session lag for daily publication. For qualifying days, the outcome is XLE forward 20-session return minus SPY forward 20-session return. Conditional outcomes are compared against non-signal days with Welch two-sample and one-sample t-tests.
The key numbers
Reading the numbers
On the 17 days the signal fired, XLE lagged SPY by 3.39% on average over the following 20 sessions, and only 29% of those cases were positive, versus a small +0.44% average on all other days. The p-values of 0.019 and 0.010 put the odds of that gap being pure chance at roughly one to two in a hundred.
The charts
This bar chart puts the two group averages side by side: the signal bar sits below zero at -3.39% while the non-signal bar sits just above zero at +0.44%. The striking detail is that both the level and the sign run opposite to the thesis — the days meeting the compressed-volatility, rising-crude condition are the ones where XLE fell behind SPY, not the ones where it led. The gap between the bars, about 3.8 percentage points, is the entire claimed edge, and it points the wrong way. One caveat the picture can't show is sample size: the signal bar rests on just 17 days against 409 non-signal days, so the height of that left bar is far less settled than the right one.
Recent qualifying signal days
| date | xle_minus_spy_rv20_spread | q20_spread | brent_20d_ret | xle_fwd20 | spy_fwd20 | outperform |
|---|---|---|---|---|---|---|
| 2026-03-31 | -0.0001 | 0.0019 | 0.5779 | -0.0175 | 0.1037 | -0.1212 |
| 2025-11-20 | 0.0015 | 0.0017 | 0.0241 | -0.0055 | 0.0444 | -0.0499 |
| 2025-11-14 | 0.0016 | 0.0017 | 0.0174 | -0.0177 | 0.0091 | -0.0268 |
| 2025-06-03 | 0.0017 | 0.0019 | 0.0809 | 0.0482 | 0.0518 | -0.0036 |
| 2025-05-30 | 0.0012 | 0.002 | 0.0194 | 0.0598 | 0.0532 | 0.0065 |
| 2025-05-29 | 0.001 | 0.002 | 0.0262 | 0.0409 | 0.0535 | -0.0126 |
| 2025-04-02 | -0.0019 | 0.0012 | 0.0756 | -0.1107 | 0.04 | -0.1508 |
| 2025-04-01 | -0.0006 | 0.0012 | 0.0601 | -0.1411 | -0.0083 | -0.1328 |
| 2025-01-28 | 0.0011 | 0.0011 | 0.0517 | 0.0017 | -0.0318 | 0.0335 |
| 2025-01-27 | 0.0009 | 0.0011 | 0.0914 | -0.0127 | -0.0092 | -0.0036 |
| 2025-01-24 | 0.0007 | 0.0012 | 0.0742 | -0.0163 | -0.0189 | 0.0026 |
| 2025-01-23 | 0 | 0.0012 | 0.0847 | -0.0119 | -0.0182 | 0.0062 |
| 2025-01-22 | -0.0005 | 0.0012 | 0.0805 | -0.0078 | -0.0092 | 0.0013 |
| 2025-01-21 | -0.0018 | 0.0012 | 0.1348 | -0.0046 | 0.01 | -0.0146 |
| 2025-01-17 | -0.0004 | 0.0013 | 0.1089 | -0.0204 | 0.0245 | -0.0449 |
The takeaway
The signal fails, and it fails in the opposite direction from the thesis: when XLE's 20-day realized volatility sat in the bottom quintile of its spread to SPY while Brent's 20-day return was positive, XLE went on to lag SPY over the following 20 sessions. Across the 17 qualifying days, XLE minus SPY averaged -3.39% and the median was -1.26%, with XLE ahead in only 29% of cases — roughly one in three, versus the coin-flip you'd expect if the setup were meaningless. Non-signal days were mildly positive for XLE at +0.44%, so the gap between the two groups runs about -3.8 percentage points in the wrong direction. The two tests agree: the -3.39% conditional mean is unlikely to be zero (p = 0.019, about a 2-in-100 fluke), and signal days differ from non-signal days (p = 0.010, roughly 1-in-100). That's a real signal, not noise — but it rests on just 17 events with overlapping 20-day windows, so the honest read is a solid lean against the accumulation story rather than a bulletproof base rate. Practically: compressed relative volatility during a rising crude tape looked more like the energy move was already priced than like quiet accumulation, and treating it as a buy signal would have cost you relative performance. If you want to trade this, the evidence supports the reverse framing far more than the original one.
The fine print
- Only 17 signal days survive the 252-day quintile warm-up and 20-day forward window, so this is a thin sample rather than a three-year base rate.
- Signal days cluster within 20 sessions of each other, so the forward outcomes overlap and the t-tests likely understate the true variance.
- The bottom-quintile cutoff is a rolling 252-day estimate, so the threshold shifts as the energy-versus-SPX volatility regime changes.
- Nothing here nets out trading costs or turnover; this is a conditional relative-return study, not a backtest.