Research / Trading experiment
26/06/2026

Volume-Confirmed SPY Momentum

Volume is a proxy for conviction/information flow; the OHLC-only crowd asks whether price+volume alone is enough, and the literature on volume-confirmed…

Conclusion: Rejected

Out-of-sample Sharpe was 0.04, versus -0.35 in-sample. A bootstrap test returned p = 0.440 (not significant).

The volume filter does not sharpen the 20-day momentum signal on SPY — it guts it. The rule sits out the quiet, low-volume drift that drives most of the unconditional momentum return, and concentrates what little exposure it takes into noisier, higher-volume sessions that are more likely to be reversals.

Method

Rule / pseudocode

DATA adjusted observations for the stated instrument and horizon
RULE On SPY, daily time-series momentum signals taken only when accompanied by above-average volume produce higher risk-adjusted returns than the same signals taken unconditionally.
METHOD Instrument: SPY
FIT estimate or select parameters on each training window only
TEST apply the frozen rule to the next unseen window after stated costs
REPORT return, Sharpe, drawdown, trade count, significance and fold stability
VERDICT prefer robustness and sufficient observations over the headline return

_Volume is a proxy for conviction/information flow; the OHLC-only crowd asks whether price+volume alone is enough, and the literature on volume-confirmed momentum suggests trends accompanied by volume expansion persist longer than low-volume drifts._

Out-of-sample equity curve

Growth of $1 over the held-out test data the strategy never saw while it was being built, after 10 bps round-trip costs.

Out-of-sample performance

OOS Sharpe
0.04
Ann. return
0%
Max drawdown
-17%
Win rate
13%
p-value
0.44
not significant
WF folds +
2/5
Measured on held-out data. A high Sharpe with a non-significant p-value means the result could still be luck — read them together.

Hypothesis

On SPY, daily time-series momentum signals taken only when accompanied by above-average volume produce higher risk-adjusted returns than the same signals taken unconditionally.

Method

Instrument: SPY

Results

Out-of-sample Sharpe was 0.04, versus -0.35 in-sample. A bootstrap test returned p = 0.440 (not significant). Walk-forward Sharpe stayed positive in 2 of 5 folds. Worst out-of-sample drawdown was -17.16%.

Analysis

The corrected backtest applies the full three-part protocol — 70/30 IS/OOS chronological split, 10bps cost deduction, 5-fold walk-forward, and a demeaned block-bootstrap significance test — to SPY daily data from February 2005 through May 2026. The volume-confirmation rule entered a long position the day after 20-day price momentum was positive and same-day volume exceeded its own trailing 20-day average; otherwise it stayed flat. The strategy was in the market roughly 24% of OOS days, reflecting how rarely both filters fired simultaneously.

In-sample performance was immediately poor: IS Sharpe of -0.346, annualised return of -2.2%, and a drawdown of -34.5% over the 2005-to-2020 fitting window. This is not a case of IS overfitting followed by OOS degradation — the rule was unprofitable on data it was never even calibrated on. The OOS period (2020 to May 2026) produced a marginal Sharpe of +0.04 and a total return of just +1.8% across six and a half years. That faint positive OOS reading does not represent a reversal of the IS damage; it reflects the strategy being almost entirely out of the market, avoiding the losses it would otherwise have incurred had it fired more often.

Walk-forward validation across five folds reinforced the conclusion. The combined WF Sharpe was -0.489, and only two of five folds were positive (Sharpes of +0.13 and +0.67), while the other three ranged from -0.34 to -1.45. OOS consistency of 40% falls well below the 60% threshold required for a PROMISING verdict. The brief positive folds do not indicate a conditionally real edge — they coincide with periods where the strategy happened to be largely flat, sparing it from losses rather than generating genuine returns.

The corrected block-bootstrap significance test — which demeaned returns before resampling to enforce a true zero-edge null, correcting the prior bug that centred the null on the observed Sharpe and trivially returned p near 0.5 — returned p=0.44. This means 44% of bootstrap simulations under a genuine no-edge null produced a Sharpe at least as high as observed. There is no statistical basis to distinguish this strategy's OOS returns from random noise. The 95% null confidence interval spans -0.64 to +0.72, and the observed Sharpe of +0.075 sits squarely inside it.

Verdict: REJECTED. The volume filter does not sharpen the 20-day momentum signal on SPY — it guts it. The rule sits out the quiet, low-volume drift that drives most of the unconditional momentum return, and concentrates what little exposure it takes into noisier, higher-volume sessions that are more likely to be reversals. The IS and OOS results agree, the walk-forward folds agree, and the corrected significance test confirms there is nothing here beyond noise. If volume is to be useful on an equity index at all, the direction is more likely to be mean-reversion against high-volume days rather than confirmation of trend.

Source

Originated from discussion on r/manual.

Evidence

Walk-forward Sharpe by fold

Each fold retrains on past data then tests on the next unseen window. Staying positive across folds is the real test of an edge.

---

_Generated by labs-algo-trading. Automated research — not financial advice. Backtests overfit; treat verdicts as hypotheses._

Volume-Confirmed SPY Momentum | d/rksci