Skip to content
  • Complete Pine Script source code
  • Lifetime support
  • Lifetime updates
  • 24/7 AI assistant (Limited time offer)
  • Lifetime account access
Back to Blog
Trading EducationQuant ConceptsBacktesting

Three Mean Reversion Trading Strategies, Priced at the Cost That Kills Them

By Rajeev Gupta · · 15 min read

Every page that ranks for mean reversion trading strategies will hand you an entry rule. Almost none will hand you the one number that decides whether that rule survives contact with a real order book: the cost of the round trip, measured against the size of the move the rule is actually trying to harvest. That is backwards. A design that cannot clear its own cost is dead before a single backtest runs, and the arithmetic to prove it takes about ten minutes with a pen. This piece specifies three common mean reversion designs completely enough to compare them, prices each one's breakeven cost from first principles, and ranks them by how much room they have left once a realistic cost is subtracted — which turns out to be the opposite order most ranking pages present them in.

Three Designs, Specified So They Can Be Compared

Comparing "mean reversion" strategies is nearly impossible when each source defines the trigger differently and leaves out the exit, the stop, or the deadline. According to Pineify's specification table, that is the single best thing most published writeups do — list eligibility, trigger, sizing, stop, exit and deadline side by side — and then stop, without pricing any of it. Here are three designs specified the same complete way, so the cost comparison later in this piece is comparing like against like.

Design A — Band touch. Trigger: close trades through the lower (or upper) band of a volatility envelope such as the one described on our Bollinger Bands glossary page. Filter: the prior N bars show no sustained directional trend (a simple slope filter is enough). Entry timing: next bar open, in the direction back toward the mean. Stop: a fixed multiple of the envelope's own width, placed beyond the band that was touched. Target: the middle band (the moving average the envelope is built around). Deadline: none — the position is held until the target or the stop is hit.

Design B — Oscillator extreme. Trigger: an oscillator reads an extreme value and turns back toward center for one bar (not just touches the extreme — the turn confirms the reversion has started). Filter: oscillator divergence disallowed when a higher-timeframe trend filter disagrees. Entry timing: close of the confirming bar. Stop: a fixed distance based on recent average true range. Target: the oscillator's neutral midpoint, read back onto price via the bar at which that midpoint last occurred. Deadline: a fixed bar count, after which the position exits at market regardless of price.

Design C — Z-score with a deadline. Trigger: price's z-score against its own rolling mean and standard deviation crosses a threshold such as 2.0 or 2.5. Filter: minimum rolling standard deviation, to avoid trading a nearly flat series where a z-score crossing is mostly noise. Entry timing: trigger-bar close, filled at that same close (no next-open delay — the reason this matters is covered below). Stop: z-score threshold extended by a fixed margin, e.g. 3.5. Target: z-score returns to zero. Deadline: a fixed bar count, same mechanism as Design B.

Three triggers, three stops, three targets, two of the three carrying an explicit time deadline. That is enough structure to move past "mean reversion" as a single idea and treat it as three separate decisions, each with its own cost profile.

What Each Design Is Actually Harvesting

The gross move a reversion trade is chasing should be stated as a multiple of the instrument's own recent range, not in currency — a figure in points or dollars only means something for one instrument at one price level, and it stops being useful the moment the price level changes. Design A harvests the distance from the touched band back to the middle band, which by construction scales with the envelope's own width — typically on the order of half the band width at the moment of entry. Design B harvests the distance from the oscillator's extreme reading back to its neutral zone, translated into price via recent average true range; this tends to be a smaller gross move than Design A because the oscillator confirms the turn one bar after the extreme, giving away some of the move before entry. Design C harvests the distance from the z-score threshold back to zero in standard-deviation units, converted to price by multiplying back through the rolling standard deviation used to compute the z-score itself.

Expressed this way, each design's gross move is a clean multiple of a volatility measure the trader already has on the chart. That is the number the breakeven cost gets measured against next — and it is where the three designs start to separate.

The Breakeven Cost Arithmetic

Breakeven cost per round trip is the gross move the design is harvesting, multiplied by the probability of actually reaching the target rather than the stop or the deadline, minus the cost of one round trip (commission plus the bid-ask spread plus expected slippage on both legs). If that result is at or below zero, the design has no edge left to trade, no matter how clean the win rate looks in a backtest that ignores cost. This is arithmetic, not a backtest, and our team runs it on every candidate design before a line of code is written.

Take a simple illustrative setup, labelled clearly as an assumption and not a measured result. Say a liquid instrument's "recent range" (an average true range reading) is 1.0 on whatever scale it trades. Assume a round-trip cost of 0.08 units — a stand-in for commission plus half-spread plus expected slippage on a reasonably liquid contract on a major futures venue. For a concrete reference point, the CME's E-mini S&P 500 future moves in ticks worth $12.50 each, so a two-tick round-trip cost on that specific contract prices out to $25 before any slippage is added — a number worth re-checking against the actual venue every few months, since exchange fee schedules and typical spreads do drift. Design A's gross move of roughly 0.5 units of band width leaves cost eating 16% of the harvested move before any win-rate adjustment. Design C's gross move, often 1.5 to 2.0 standard deviations converted back to the same range units, leaves cost eating closer to 4–5% of the harvested move. Design B sits in between, closer to Design A than to Design C, because its confirming bar gives away part of the move before entry even starts.

Rank these three designs by remaining headroom after cost and Design A comes out thinnest, Design C comes out thickest, and Design B is the one most likely to look fine on a backtest and then disappoint once the actual spread and slippage of a specific venue are substituted into the formula. That ordering is the opposite of how most ranking pages present the three triggers — band touches get the most airtime on a typical mean-reversion overview, oscillator turns get treated as the "confirmation-based, therefore safer" choice, and z-score deadlines get mentioned last as the more quantitative option. Priced on breakeven cost rather than on how intuitive the trigger sounds, that order reverses.

Signal Timing Against Fill Timing

A close-based trigger filled at the next bar's open is a different strategy from the same trigger filled at the trigger price itself. The gap between the two is largest exactly where these three designs operate: at short holds, where the whole edge is a handful of ticks back toward the mean. Design A and Design B as specified above both use next-bar-open fills, which is honest about execution reality but also gives back part of the gross move to whatever drift happens between the trigger bar's close and the next bar's open. Design C uses a same-close fill, which is optimistic unless the trader is actually executing against the close print (a limit order resting at the trigger level, or trading an instrument where the close is tradable). Whichever convention is chosen, it has to be fixed for all three designs before they are compared — mixing a same-close fill on one design against a next-open fill on another manufactures a cost advantage for the design that was timed more favourably, not a real one.

Why the Shortest Hold Dies First

Cost is paid per round trip. The gross move a reversion design is harvesting shrinks as the chart interval shrinks, because a 1-minute bar's typical excursion back to its own mean is smaller in absolute terms than a 1-hour bar's. Cost per round trip, meanwhile, does not shrink with the interval — the spread and the commission on a given instrument are close to fixed regardless of what chart the trader is looking at. Put a shrinking numerator over a fixed denominator and the breakeven arithmetic above gets worse every time the hold is shortened. That is why the shortest-hold version of any of these three designs is the first one to lose its edge to cost, and it is also why "it works great on the 1-minute chart" claims deserve the most scrutiny, not the least.

Averaging Down Is Not a Reversion Rule

None of the three designs above include adding to a losing position as price moves further from the mean. That is deliberate. Averaging down is a separate decision layered on top of a reversion design, and what it does is convert a bounded loss — the stop distance specified in each design — into an unbounded one, because the "stop" on the first entry stops meaning anything once a second, larger entry has been added below it. Mean reversion earned a reputation for blowing up accounts almost entirely through this layering, not through the base designs themselves. A band-touch or z-score entry with a real stop, sized to a known fraction of account equity, is a bounded-risk trade. The same entry with a martingale-style add-on behind it is not, and the two should never be discussed as the same strategy family.

Loss Shape and Stop Placement

Stop placement, not the entry trigger, decides whether the left tail of a design is bounded at all. A design that carries a deadline but no price stop — an early draft of Design B or Design C without the stop specified above — can still lose an arbitrarily large amount. Price can keep moving away from the mean right up until the deadline forces an exit. The deadline only bounds how long the trade is held, not how far it can move against the position. A design with a price stop and no deadline, conversely, is bounded in loss but can sit in a dead trade for an extended period waiting for either the stop or the target, tying up margin without producing a result. The three designs specified at the top of this piece all carry a stop; two of the three also carry a deadline. That combination — stop for loss shape, deadline for capital efficiency — is why they're specified that way here rather than with either control alone.

The Validation Order

Skipping straight to a backtest is the most common mistake in this entire topic, and it's why so much of the mean reversion content on the web amounts to a rule set with a performance chart stapled to the end. The order that actually holds up is: first, measure whether the series in question reverts at all over the lookback window being used — a trending instrument fed through a reversion rule is fighting its own distribution. Our own random walk theory indicator test is the control we run for this step, because a reversion signal that can't beat a random-walk baseline on the same data isn't measuring reversion, it's measuring noise that happens to look like it. Second, specify the rule completely, the way the three designs above are specified — trigger, filter, entry timing, stop, target, deadline, no gaps. Third, price the cost, using the breakeven arithmetic above, before writing a line of backtest code. Fourth, only then, run the test — and read the result against two more checks before trusting it: sample size and parameter stability. Our supertrend settings guide covers both checks in detail, and the same floors apply here without restating them in full. A result built on a sample of only a few dozen trades is statistical noise dressed up as an edge. A parameter whose neighbouring values — one step wider, one step narrower — all fail is a fitted artefact, not a real relationship. A rule that clears all four steps in order is worth testing seriously. A rule that skips to step four is a specification page with a chart attached, and the SERP for this keyword already has three of those.

According to Quantvero's published mean reversion strategy writeup, a cointegration-based pair design's Sharpe ratio fell from roughly 1.5 before transaction costs to roughly 0.8 after — reported as a general warning about costs, without stating which specific rule, holding period, or instrument produced either number. LuxAlgo's fading-extremes piece reports that it lists spread, commission, slippage and borrow as inputs worth modelling, and then does not quantify any of them against a stated holding period. Neither gap is a criticism of those pages so much as a demonstration of the exact problem this piece exists to fix: cost has to be attached to one fully specified rule, at one holding period, or the number floats free of any design it could actually be used to judge.

Data sources matter here too. The SEC's investor education site notes in its general guidance on trading strategies and risk that retail traders are often working from a delayed or alternative data feed relative to the venue where an order would actually fill. That detail matters disproportionately for a rule whose entire edge is a handful of ticks back toward a mean. Academic work on transaction-cost-adjusted trading rules, surveyed in research published through the National Bureau of Economic Research, consistently finds that gross-return rankings of short-horizon strategies invert once realistic costs are applied — which is the same inversion this piece walks through by hand for three specific designs rather than citing it as a general finding.

Before coding any of the three designs above, run the same measurement-first sequence against the instrument and timeframe in question. Our stress-testing checklist walks through that sequence step by step. Then compare the band-touch and oscillator approaches against a volatility-based alternative on our Keltner Channels vs Bollinger Bands breakdown. The envelope choice behind Design A changes the gross-move arithmetic above, because a Keltner channel's width responds to true range differently than a standard-deviation band does across different volatility regimes.

Frequently Asked Questions

Which of the three mean reversion designs has the most room left after transaction costs?
On the illustrative cost assumption used in this piece, the z-score design with a fixed deadline has the most headroom, because its gross move — typically 1.5 to 2.0 standard deviations converted back into price — is large relative to a round-trip cost that doesn't scale with it. The band-touch design has the least headroom, since it's harvesting roughly half the band width, a smaller move for the same fixed cost. These figures are assumptions for illustration, not measured results from a specific venue.
Why does a shorter holding period hurt mean reversion strategies more than other styles?
Transaction cost is paid once per round trip regardless of how long the position is held, while the gross move a reversion design harvests shrinks as the chart interval shrinks. A fixed cost over a shrinking move is a worse breakeven ratio every time the hold is shortened, which is why the fastest version of any reversion rule is usually the first one to lose its edge once realistic costs are applied.
Is averaging down part of a mean reversion strategy?
No. Averaging down is a separate position-sizing decision, not a feature of the reversion logic itself. Adding to a losing position as price moves further from the mean converts a bounded, stop-defined loss into an unbounded one, since the original stop no longer reflects the account's true risk once a second entry has been layered beneath it.
Should I use a stop, a time deadline, or both on a mean reversion trade?
A price stop bounds how far the position can move against you; a time deadline bounds how long capital sits in a trade that isn't working. They control different risks. A design with only a deadline and no stop can still produce a large loss by the time the deadline arrives, so for a bounded-loss design, the stop is the one of the two that can't be skipped.
How many trades are enough to trust a mean reversion backtest result?
There's no single magic number, but a result built on a sample of only a few dozen trades should be treated as noise rather than an edge. Pair the sample-size check with a neighbour check on the key parameter — if settings one step wider or narrower than the chosen value all fail, the result is a fitted artefact rather than a real, tradable relationship.
What should I check before backtesting any mean reversion rule?
Measure whether the instrument actually reverts over the lookback window first — a trending series fed through a reversion rule is fighting its own distribution. Then fully specify the rule's trigger, filter, entry timing, stop, target and deadline, then price its breakeven cost by hand. Only after those three steps does running the actual backtest tell you anything useful.

Quantzee's glossary and analytical tools are built around this same sequence — specify completely, price the cost, then test — across every indicator and rule covered on the site, including the Bollinger Bands glossary page that anchors Design A above. None of the three designs in this piece are presented as a recommendation or a promise of any particular outcome; they're a specification and a cost framework a trader can run against their own venue, instrument and fee schedule before committing a single line of backtest code.

FAQ

Frequently Asked Questions

On the illustrative cost assumption used in this piece, the z-score design with a fixed deadline has the most headroom, because its gross move — typically 1.5 to 2.0 standard deviations converted back into price — is large relative to a round-trip cost that doesn't scale with it. The band-touch design has the least headroom, since it's harvesting roughly half the band width, a smaller move for the same fixed cost. These figures are assumptions for illustration, not measured results from a specific venue.

Put It Into Practice

Try Quantzee's AI-Powered Indicators

Non-repainting signals, real-time alerts, all markets.

Get Quantzee
Rajeev Gupta, Founder & CEO of Quantzee

Written By

Rajeev Gupta

Founder & CEO, Quantzee

Rajeev Gupta is a Commerce Graduate with a Masters in Business Administration (Finance), and has been trading the markets since 1997. He previously worked with Religare Securities Limited as Head – Private Client Group until 2006, after which he started his own broking firm. He went on to found and lead Quantzee, where his focus has stayed on quantitative trading strategies — volatility dynamics, intraday price behavior, and regime-aware signal design. Every indicator in the Quantzee suite is derived from the methodology he uses in his own live trading account.