Statistical Inference · Time Series · Financial Markets

Cross-Sectional Intraday Reversal at Multiple Horizons

Abstract

A current, costed read on cross-sectional intraday reversal for a point-in-time top-500 US-equity universe, measured at 5-, 30-, and 60-minute horizons on ≈373 million Alpaca SIP minute bars. The effect is statistically real but breaks even below half a basis point of round-trip cost — and the study doubles as a reusable cross-sectional evaluation template.

Mean next-horizon return by prior-return decile -0.4 -0.2 0.0 0.2 0.4 0.6 12345678910 Mean next-h return (bps) Prior-return decile (1 = biggest losers … 10 = biggest winners) 5-min horizon30-min horizon60-min horizon
Figure 1. Mean next-horizon return by prior-return decile. Equal-weighted mean next-h return (bps) for each prior-return decile (1 = biggest prior losers, 10 = biggest prior winners), full-sample 2018–2025, baseline PIT universe. Losers out-earn winners at every horizon; the 5-minute cross-section is a clean monotone staircase, while the 30- and 60-minute middle deciles are noisier. The per-decile dispersion is a fraction of a basis point — the same tiny edge that costs erase.

Key results

30-min gross long–short (ann.)
11.3%
Break-even cost (30-min)
0.26 bps
5-min gross (ann.)
≈148%
Minute bars ingested
≈373M

Sample. Point-in-time top-500 US equities, 1-minute Alpaca SIP bars, ≈373M bars, 2018–2025

Headline

We replicate and re-measure cross-sectional intraday reversal — the tendency of recent intraday losers to out-perform recent intraday winners over the following minutes — for a point-in-time top-500 US-equity universe on 1-minute consolidated (SIP) bars over 2018–2025. The pipeline ingests ≈373 million minute bars across 529 symbols, sorts each h-aligned cross-section into deciles on the prior-h return, and measures the next-h equal-weighted decile spread for h ∈ {5, 30, 60} minutes.

The 30-minute long–short returns 11.3% annualized gross over the eight-year window. Pooling all 2,007 trading days, that edge is statistically distinguishable from zero (95% block-bootstrap interval [+1.2%, +20.7%], p ≈ 0.04) but economically negligible: it is worth only ≈0.45 bps per sort against ≈1.7× round-trip turnover, so it breaks even at only ≈0.26 bps of round-trip cost and the tradeable signal decays inside a single sort interval (no resolvable exponential half-life). At the 5-minute horizon the effect is enormous (≈148% annualized, CI [+126%, +169%]) but is essentially a bid–ask-bounce artifact concentrated at the session edges.

The result is a clean negative

Post-2018 intraday reversal in US large caps is real in sign, statistically present, and untradeable once realistic transaction costs are applied. The deliverable’s lasting value is twofold: a defensible current read on a classic effect, and a reusable cross-sectional evaluation template — point-in-time membership → decile sort → bootstrapped intervals → decay characterization → transaction-cost overlay → survivorship and microstructure sensitivities. Each component is reusable by later cross-sectional studies.

Data and universe

The headline universe is a point-in-time (PIT) monthly top-500 membership table — a continuous monthly snapshot derived from an S&P 500 historical-components source spanning 97 month-ends from 2017-12-31 through 2025-12-31. Each snapshot holds exactly 500 names with complete coverage; membership for any trading day is resolved as-of the most recent prior month-end, so no constituent change is used before it is known.

One-minute OHLCV bars come from the Alpaca SIP feed (full consolidated tape, history to 2018) for the union of all PIT members. Each symbol-day is reindexed onto the NYSE regular-session minute grid (timezone-converted to America/New_York, holidays and early closes respected); price-like columns are forward-filled at most one minute within a session, and any symbol-day with more than 5% pre-fill missingness is dropped. Per-minute log returns are computed within-session only, never crossing the overnight boundary. An earlier attempt with the Polygon free tier failed because that plan only covers ~2 recent years — a provenance lesson that drove the switch to Alpaca SIP for the full download.

Universe provenance caveat

The PIT source publishes index membership but not monthly market capitalizations, so the rank/market-cap fields are a documented rank proxy rather than an independent market-cap ranking. It controls survivorship at the membership level, but it is not a CRSP-grade market-cap universe, and the headline results inherit this proxy limitation. The earnings calendar was also unavailable for this run, so earnings-tail sensitivity is flagged rather than measured.

QuantityValue
Distinct symbols requested (union of PIT members)529
Symbol–month ingest chunks planned50,784
Chunks returning bars46,236
Chunk-level coverage91.0%
Total raw 1-minute bars ingested≈372.9M
Universe snapshots (month-ends)97
Reporting window2018-01-01 – 2025-12-31
Table 1. Ingestion footprint (real production run, vendor = Alpaca SIP). Union of all point-in-time members across the window. The ~9% of empty chunks are dominated by symbol-months in which a name was in the PIT list but not trading under that ticker, plus listing/delisting edges.

Methodology

Sign convention. We fix the primary reported metric to the reversal payoff: the next-h return of the prior-h losers (decile D1) minus that of the prior winners (D10). A positive value means recent losers subsequently out-perform recent winners.

Decile sort. For each horizon and session, sort timestamps step by h from the open plus a 15-minute open/close exclusion, requiring complete prior- and forward-h windows. At each timestamp the eligible cross-section (valid prior- and forward-returns, ≥10 names) is ranked on its prior-h log return and split into deciles with a deterministic quantile estimator; each decile’s equal-weighted forward return is measured.

Turnover and annualization. A turnover proxy tracks top/bottom-decile basket changes across consecutive sorts; we report round-trip turnover. Intraday long–short returns sum to a daily P&L and annualize at 252 days. Because each horizon fires many times per day (≈70 sorts/day at 5 min vs. ≈4 at 60 min), the 5-minute series compounds far more shots — a fact that inflates its annualized figure.

Inference, decay, and costs. Per-year and pooled full-sample 95% intervals use a 5-day block bootstrap (250 iterations, seed 1729). Decay is traced over a grid of sort-to-hold gaps g ∈ {0, 5, 10, 15, 30, 60, 120} minutes; the requested exponential half-life is reported but, as below, is not identifiable, so we lead with the non-parametric retained fraction ρ(g) = |Rrev(g)| / |Rrev(0)|. Each round-trip cost is charged against turnover and we solve for the break-even cost at which annualized net crosses zero.

Rrevτ =D1 D10 = Rtop−bot
(1)
Rnetτ = Rrevτ c104 · turnoverτ
(2)
c = 104 · Rgrossturnover
(3)

Annualized reversal by horizon

At the 5-minute horizon the gross reversal is enormous and remarkably stable — a mean of ≈148% annualized with a Sharpe of 5–10 every single year. At 30 minutes the mean drops to ≈11% with Sharpe below 1, and at 60 minutes to ≈6% with Sharpe ≈0.5 and several outright negative years. The monotone collapse of the effect from 5 to 60 minutes is the central empirical pattern, and it is the first hint that what survives at short horizons is microstructure rather than information. (The headline 11.3% is the simple average of the eight yearly figures; the day-weighted pooled mean is 11.28%.)

Year5-min ann. %5-min SR30-min ann. %30-min SR60-min ann. %60-min SR
2018155.77.658.80.93-6.5-0.78
201991.77.21-2.6-0.29-5.0-0.66
2020195.76.1622.41.2723.51.50
2021143.08.150.50.04-2.1-0.21
2022116.05.0217.71.2518.81.60
2023155.79.9926.12.27-1.4-0.16
2024162.610.509.20.855.20.68
2025166.17.168.30.5517.81.67
Mean148.37.7311.30.866.30.46
Table 2. Per-year annualized gross long–short and Sharpe by horizon. Gap = 0, baseline, point-in-time universe. Round-trip turnover is similar (~171–178%) across horizons. The bottom row is the simple mean of the eight years.

Statistical significance

The large 5-minute Sharpe ratios are overwhelmingly significant. The economically interesting 30-minute book is marginal year-by-year — its 95% bootstrap interval straddles zero in 7 of 8 years, with 2023 the lone exception — but that conflates a genuine null with small per-year samples. Pooling all 2,007 trading days resolves the question: the full-sample 30-minute effect excludes zero ([+1.2%, +20.7%], p ≈ 0.04), the 5-minute effect is hugely significant, and the 60-minute effect is not distinguishable from zero ([−2.7%, +13.9%], p ≈ 0.10). The honest statement: the 5- and 30-minute effects are real, the 60-minute effect is noise, and "real" at 30 minutes still means an annualized edge whose lower bound is barely positive.

30-minute reversal: per-year annualized return with 95% bootstrap CI -30 -15 0 15 30 45 60 2018 +8.80 2019 −2.60 2020 +22.40 2021 +0.50 2022 +17.70 2023 +26.10 2024 +9.20 2025 +8.30 Annualized 30-min long–short (%), 95% block-bootstrap CI
Figure 2. 30-minute reversal: per-year annualized return with 95% bootstrap CI. Gap = 0, baseline, PIT. The interval straddles zero in 7 of 8 years; only 2023 (highlighted) excludes zero year-by-year. Pooling the full sample is what lifts the 30-minute effect off zero.
HorizonAnn. %95% CI (%)p (approx.)Excludes 0?
5 min148.2[+126.1, +168.9]<0.01yes
30 min11.3[+1.2, +20.7]0.04yes
60 min6.2[−2.7, +13.9]0.10no
Table 3. Pooled full-sample reversal by horizon. 2018–2025, 2,007 trading days, gap = 0, baseline, PIT. Annualized point estimate, 95% block-bootstrap interval, percentile-bootstrap significance proxy, and whether the interval excludes zero.

Cross-sectional decile structure

Is the spread a smooth cross-sectional reversal or an artifact of the two extreme deciles? The hero figure plots the equal-weighted mean next-h return for each prior-return decile, averaged over every sort in 2018–2025. The 5-minute profile is cleanly monotone: subsequent return falls steadily from D1 (+0.44 bps, biggest prior losers) to D10 (−0.40 bps, biggest prior winners), the textbook reversal staircase. At 30 and 60 minutes the reversal survives mainly at the extremes (D1 highest, D10 lowest) while the middle deciles are noisy — increasingly so at 60 minutes, mirroring that horizon’s statistical insignificance. The implied D1−D10 spread reconciles exactly to the per-sort gross edge below, an independent check on the long–short construction.

Decile5-min (bps)30-min (bps)60-min (bps)
D1 (losers)0.440.310.56
D20.190.200.18
D30.120.140.08
D40.070.160.17
D50.030.130.31
D60.010.180.29
D7-0.040.120.32
D8-0.070.140.45
D9-0.140.010.15
D10 (winners)-0.40-0.14-0.07
Table 4. Mean next-horizon return by prior-return decile (bps). Full-sample 2018–2025, baseline PIT universe. D1 = biggest prior losers, D10 = biggest prior winners. The D1−D10 spread is 0.84 / 0.45 / 0.62 bps at 5 / 30 / 60 minutes.

Decay: no resolvable half-life

How fast does the edge decay as the holding window is delayed by a gap g? At the 5-minute horizon only ≈1.6% of the gap-0 edge survives a single 5-minute delay; at 30 minutes the retained fraction bounces between 6% and 56% across gaps — the trace of noise, not of a smooth relaxation. The signal is a gap-0 spike that falls to the noise floor immediately and stays there, non-monotonically.

The brief’s half-life is not identifiable on this data

The requested exponential fit |Rrev(g)| = A e−g/τ + C is run with a multi-start optimizer (so τ is a true optimum) but is flagged unstable at every horizon: the signed mean crosses zero across gaps, and the best-SSE fit collapses to a gap-0 spike below the 5-minute grid resolution, so the implied half-life is an extrapolation below the data’s own resolution and carries no information. An earlier 15.6-minute half-life was an artifact of the optimizer’s starting value and has been retracted. The defensible statement is non-parametric: the tradeable signal is gone within a single sort interval.

Retained fraction of gap-0 magnitude vs. sort-to-hold gap 0.00 0.15 0.30 0.45 0.60 0.75 0.90 1.05 0510153060120 Retained fraction of gap-0 magnitude Sort-to-hold gap (minutes) 5-min horizon30-min horizon
Figure 3. Retained fraction of gap-0 magnitude vs. sort-to-hold gap. Non-parametric decay ρ(g) = |R(g)| / |R(0)| for the 5- and 30-minute horizons, baseline PIT. The 60-minute ratio is omitted because its near-zero gap-0 magnitude makes the ratio unstable. The signal is a gap-0 spike with no smooth exponential relaxation.

Transaction costs and break-even

This is where the effect dies. The book turns over ≈1.7× per sort and fires up to ≈70 times a day, so a per-sort gross of a fraction of a basis point cannot survive any realistic spread. Even the smallest tested cost (2 bps round-trip) drags the annualized 30-minute net deeply negative; the mean break-even cost is 0.49 bps (5 min), 0.26 bps (30 min), and 0.35 bps (60 min) — all far below realistic execution costs and below the bar-based spread proxy itself. The loss is dominated by turnover × cost, not by the small, noisy gross edge.

HorizonSorts / dayGross bps / sortR/T turn. / sortBreak-even bpsNet bps / sort @2bps
5 min69.70.8441.7120.493-2.58
30 min9.90.4501.7280.260-3.01
60 min4.00.6251.7760.352-2.93
Table 5. Per-sort economics by horizon. Full-sample, baseline, PIT, gap = 0. The gross edge per sort is a fraction of a basis point while round-trip turnover is ≈1.7× each sort, so break-even is a fraction of a basis point and the net per sort is deeply negative even at 2 bps.

Robustness and sensitivities

Survivorship. Running the identical analysis on a naive "current top 500" membership changes the 30-minute mean only marginally (11.31% PIT vs. 11.50% naive). The expected teaching artifact — a large PIT-vs-naive gap — does not appear, because the PIT source is an S&P 500 component proxy that overlaps heavily with the current list and because intraday reversal is a within-cross-section microstructure effect insensitive to slow membership churn. The lesson stands but is inverted: survivorship bias is small for this effect on this universe proxy; it would re-emerge for slower, return-level factors or a true market-cap universe with more turnover.

Open/close microstructure. Including all minutes lifts the mean 5-minute annualized return to ≈217% (vs. 148% with the 15-minute exclusion) while the 30-minute mean barely moves (14.0% vs. 11.3%) — the raw 5-minute effect is materially an open/close phenomenon. Spread filter. Dropping the widest-range names cuts the 5-minute gross magnitude by 20–30% and leaves 30/60-minute numbers broadly similar, consistent with the short-horizon effect being concentrated in wider-spread names where bid–ask bounce is largest.

Minutes excluded each side5-min mean (ann. %)30-min mean (ann. %)
0 (include open/close)216.614.0
15 (headline)148.311.3
30186.611.1
Table 6. Open/close exclusion sensitivity (mean annualized %). PIT universe, gap = 0. The headline excludes the first and last 15 minutes of each session; the raw 5-minute effect is materially an open/close phenomenon, while the 30-minute mean is roughly stable.

Discussion

The results paint a coherent picture. Intraday reversal in post-2018 US large caps is statistically present and correctly signed, but its tradeable content is tiny and horizon-dependent in exactly the way a liquidity-provision / bid–ask-bounce effect should be:

  • Largest at the shortest horizon and the session edges. The 5-minute, gap-0 effect is huge in annualized terms but only ≈0.84 bps of signed mean per sort, is amplified by open/close minutes, and is concentrated in wide-spread names — the signature of quoted-spread mean-reversion rather than information-driven reversal.
  • Evaporates with a one-period gap. Skipping even 5 minutes between sorting and holding collapses the 5-minute signal to ≈1.6% of its gap-0 magnitude — what you expect if the "edge" is the bounce off the price you would have transacted at.
  • Cannot survive costs. Break-even is below 0.5 bps at every horizon, well under realistic spreads and fees, so the net strategy is deeply negative regardless of year.
  • The annualized 5-minute figures are a compounding illusion. The 5-minute book fires ≈17× more often than the 60-minute book, so a sub-basis-point per-shot edge annualizes to triple digits. This is arithmetic, not alpha — and precisely the quantity that costs erase.

The honest headline is the negative one: a well-known effect, measured cleanly on current data, is confirmed statistically real but decayed below tradeability. That is a valuable baseline — it establishes what "not worth deploying" looks like and gives any future cross-sectional candidate a costed yardstick to beat. Just as valuable as the number is the reproducible, schema-validated, point-in-time, bootstrap-and-cost-aware template that any subsequent study can reuse and that any future alpha must out-earn on a costed basis.

Related research