Killed at G1 · Pre-registered test

60/40 rebalancing pressure

A real flow effect from a 2025 NBER paper. Too small for an intraday trade after costs.

Markets
Nasdaq-100
Timeframe
One trade per day, 09:35 to 15:45 New York
Period
2005-03 to 2026-08
Tested
10 October 2026
Net of cost, 2005-2026
+0.002R / trade
t 0.86 on 5,396 trades
After the paper's sample
+0.006R / trade
t 0.90 on 853 trades
Close to close, no costs
+2.4 bp / day
t 3.30: the effect itself is real

Why it failed: Net t 0.86 on 5,396 trades; zero at twice the cost; flat after the paper's sample. See the scorecard

Cumulative result

R per trade (net of cost). Trade size follows the strength of the signal, so most trades risk less than 1R.

0R+5R+10R+15R2008201120142017202020232026+12.6R
Show the data as a table
YearTradesSum RMean R
2005213−0.10.000
2006251+2.3+0.009
2007251−0.5−0.002
2008253+5.5+0.022
2009252+2.9+0.012
20102520.00.000
2011252+0.6+0.002
2012250−3.7−0.015
2013252−4.8−0.019
2014252+1.8+0.007
2015252−2.1−0.008
2016252+1.6+0.006
2017251+4.6+0.019
2018251+0.2+0.001
2019252−2.2−0.009
2020253−2.2−0.009
2021251+1.1+0.004
2022251+2.5+0.010
2023250+0.5+0.002
2024251+4.4+0.018
2025249+2.8+0.011
2026155−2.8−0.018

The claim

When a 60/40 stock/bond portfolio drifts overweight in stocks, balanced and pension funds sell stocks the next day, and the opposite when underweight. The paper reports a Sharpe ratio of 1.08 before costs for 1997-2023.

Source: Harvey, Mazzoleni and Melone (2025), The Unintended Consequences of Rebalancing, NBER Working Paper 33554

What we tested

  • Signal from the paper, frozen before any market data was read: a simulated 60/40 SPY/IEF portfolio, a threshold-rebalancing leg averaged over 26 bands and a calendar leg around month ends.
  • Trade the next day in the opposite direction of the portfolio's equity overweight; size proportional to the signal strength (at most 1R).
  • Entry 09:35 New York, exit 15:45, stop 1 x daily ATR(14). No overnight positions.

Costs and fills

  • US100 CFD: the file's own bid/ask (67% of trades) or the median spread; futures: 1.25 index points per round trip.

Data

  • US100 CFD minute bid/ask, true clock
  • LSE NQ futures 2016-2026
  • SPY and IEF adjusted daily closes (signal)

The flow is real

Measured close to close without costs, the signal earns +2.4 basis points a day over 2005-2026 (t 3.30). Scrambling the signal dates destroys it (the real signal beats 200 scrambled versions, p 0.010), and the flipped signal loses money. We agree with the paper: rebalancing moves prices.

The test was registered and committed to git before any market data was read; nothing was tuned afterwards.

It is too small to trade intraday

Inside the trading day the effect is +1.37 basis points. After a CFD spread and a stop that is +0.002R a trade, t 0.86, and exactly zero at twice the cost. The years after the paper's sample (March 2023 onwards) show t 0.90. Nasdaq futures from a second vendor agree (t 1.03).

To reach t 2 at this trade size, the strategy would need +0.0054R a trade on the same 5,396 trades; it makes less than half that.

The 12-gate scorecard

3 passed · 3 failed · 6 not run or not reached. A gate is "not reached" when the strategy had already failed a veto: there is nothing left for it to test.

Is the backtest real?

Absolute veto. These gates look for bugs and physical limits, not for statistical evidence, so one failure ends the test.

  • Signal uses closes through day t, trades day t+1. The lag-0 version (look-ahead) is −0.037R, t −14.1: correctly excluded. Bar phase −3 to +3 minutes: t 0.66 to 1.10.

  • G9Adverse fillsNot reached
  • G7Engine parityNot reached

Is the edge more than luck?

G12, one pre-registered holdout, is the only statistical veto. G1 to G5 and the regime test G6 are always reported; G6 vetoes only a regime that is significantly negative. A strategy with no edge after costs never reaches G12, because there is nothing to confirm.

Can it survive a prop-firm account?

Absolute veto, for strategies meant for funded accounts. The account rules are simulated event by event, not at the end of the day.

Lesson

Real is not the same as tradeable

A t-statistic of 3 on daily close-to-close returns can be worth nothing to a trader who pays a spread, uses a stop and sleeps flat. Always measure an academic effect inside the window you can actually trade, at the venue's real cost.

Receipts

Every number on this page comes from one of these files: the test script, its saved output, the trade list and, where the test was pre-registered, the registration and its hash lock. Download them and check our work. Numbers that also appear in the chart are recomputed from the trade list when this page is built, and the build fails if they disagree.

FileKindSizeStatussha256
REBAL01_PREREG.md
prereg/REBAL01_PREREG.md
Pre-registration7 KB5 lines withheld (private strategy)3d966a080ff9
_rebal01.py
experiments/_rebal01.py
Script18 KB2 lines withheld (private strategy)34273271637e
_rebal01.out
experiments/_rebal01.out
Saved output5 KB1 line withheld (private strategy)0eee85417f1b
_rebal01_trades.csv
experiments/_rebal01_trades.csv
Trade list762 KBPrices removed (data licence)0ad8bee67063
_bar_boundary_audit_20261009.py
_bar_boundary_audit_20261009.py
Lab moduleWithheld: loads the code of the lab's private live strategy

Price data is not included: the vendors' licences do not allow it, so the scripts run only with your own copy of the data, and the trade lists show dates, direction, R and costs, not prices. Lines that refer to the lab's private live strategy are replaced by a marker; the receipts page explains the rules and lists the sha256 of every original file.

Related tests