Most strategy content on the internet has a survivor problem: you only ever see the setups that worked. This article is the other kind. We built a 15-minute VWAP reversion strategy — the sort of thing intraday Twitter loves — backtested it in our own engine, and it lost. Then we published it in our library anyway, and deployed it to our public forward-test ledger, where it is accruing a live record as you read this.
Here’s the whole thing, including why we’d bother.
The strategy
VWAP — the volume-weighted average price of the session — is the intraday trader’s center of gravity. The reversion thesis says: when price stretches too far below VWAP too fast, it tends to snap back. Our template makes that testable:
- Universe: SPY and QQQ on 15-minute bars — the most liquid things that trade, on purpose.
- Entry:buy when a bar closes more than 0.3% below the session’s VWAP and a fast 3-period RSI is under 25 — stretched and washed out, not just drifting lower.
- Exit: sell when price closes back above VWAP — the snap-back this whole idea is named for — or on a 1% stop, or after one day in the trade, whichever comes first.
- Sizing: 50% of equity per position, max two positions — reversion trades are short and parallel opportunities are few.
Why we published a loser
Because the alternative is the industry default, and the industry default is lying by omission. Strategy vendors run a hundred ideas, publish the twelve that backtested well, and let you assume the process was selective in your favor. The only way a library of strategies is trustworthy is if losing tests stay visible — otherwise “our strategies backtest well” is a tautology, not evidence. Our results were negative; the results are on the card; the card stays up.
What went wrong — three honest suspects
Costs and friction dominate at this timescale. An intraday reversion trade tries to capture a fraction of a percent per attempt. Our simulation charges a slippage assumption on every fill, and at 15-minute frequency those charges are a headwind the strategy has to outrun before it earns anything. Many published intraday backtests quietly skip this and look great right up until real money meets a real spread.
The test window is short.Our intraday data plans cap history to roughly 60 days, so this backtest covers weeks, not decades — which is why the results block above shows the window’s actual total return instead of a fabricated annualized number (a rule this article and every template card on the site follow). A few weeks is enough to observe behavior; it is nowhere near enough to estimate an edge. That cuts both ways: it could be better than this record, or worse.
Regime dependence.Fading stretch works in ranging tape and gets steamrolled in trending tape. A strategy that is secretly a bet on “the next month looks like a range” will produce backtests that swing wildly with the window you happen to test. Short window + regime-sensitive idea is the classic recipe for results that don’t travel.
If you want to try to fix it
This is also an invitation. The template is open in the library — fork it and attack the weaknesses: “require the stretch to happen in the first two hours only,” “add a minimum-volume filter,” “exit at the midpoint instead of VWAP,” “widen the stop to 2%.” Each is one plain-English sentence in the lab. If your variant genuinely holds up, deploy it — publicly beating our published loser is exactly the kind of receipt this site exists to host.