Mean Reversion Crypto Strategy: RSI and Bollinger Bands

How to build a mean reversion crypto strategy on perps with RSI and Bollinger Bands: regime filters, tight exits, fees and honest intrabar fills.

Trigr Research8 min read
On this page
  1. What is mean reversion in crypto trading?
  2. How do RSI and Bollinger Bands measure "stretched"?
  3. Why does mean reversion need a regime filter?
  4. How should a mean reversion strategy exit?
  5. How much do fees and fills matter for mean reversion?
  6. What does an example mean reversion graph look like?
  7. How do you know whether the result is real?
  8. Next steps

TL;DR: A mean reversion crypto strategy bets that a sharp move away from a recent average will partly reverse, typically using RSI extremes or closes outside Bollinger Bands as the trigger. It only has a chance when you add a regime filter that keeps it out of strong trends, exits quickly, and survives fees and conservative fills. Build it as one trigger, one or two filters and tight risk controls, then judge it on the net result.

What is mean reversion in crypto trading?

Mean reversion is the idea that prices overshoot and then drift back toward some reference level: a moving average, a band midline, or simply where they were a few hours ago. On crypto perps, overshoots happen often. Leverage is high, liquidations force selling or buying at poor prices, and thin order books exaggerate short moves.

The trouble is that the same conditions produce trends. A dip that looks like an overreaction can be the first leg of a larger move. Mean reversion strategies therefore have a characteristic profile: a high win rate, small average wins, and occasional large losses when the market does not come back.

That profile is exactly what makes them easy to fool yourself with. A backtest full of small wins looks smooth until one regime change wipes out months of gains. Most of the work is in filters, exits and cost accounting, not in the trigger.

How do RSI and Bollinger Bands measure "stretched"?

Both indicators turn "price has moved a lot" into a number you can put a threshold on.

  • RSI (Relative Strength Index): compares recent up-closes with down-closes over a lookback, scaled from 0 to 100. Readings below 30 are conventionally called oversold, above 70 overbought.
  • Bollinger Bands: a moving average plus and minus a multiple of the rolling standard deviation, usually 20 periods and 2 standard deviations. A close below the lower band means price is unusually far below its recent mean relative to recent volatility. Investopedia's Bollinger Bands definition covers the construction.

They are related but not identical. RSI is bounded and ignores volatility level; Bollinger Bands adapt to volatility, so the same percentage drop can be "extreme" in a quiet week and ordinary in a volatile one.

Indicator Typical mean reversion condition Adapts to volatility Common failure
RSI(14) Below 30 (long) or above 70 (short) No Stays oversold for many bars in a downtrend
RSI(2 to 5) Below 10 to 15 No Fires constantly; fees dominate
Bollinger(20, 2) Close below lower band (long) Yes Band "walks" during breakouts
Bollinger(20, 2.5 to 3) Close outside a wider band Yes Few signals; results rest on a small sample

In Trigr's Studio, RSI takes a length, a comparator and a threshold (for example RSI(14) < 30), and Bollinger Bands take a length, a standard-deviation multiple and a condition (close above the upper band or below the lower band). These are states, not one-bar events: RSI below 30 can stay true for several bars in a row. With max concurrent positions set to 1, the strategy enters once and ignores the repeats while the position is open.

Why does mean reversion need a regime filter?

Without a filter, an oversold trigger buys every dip in a crash. The filter's job is to say "this market is currently ranging, so dips tend to get bought" or "the larger trend is up, so buying short-term weakness is with the trend."

Useful filter families, all available as nodes:

  • Trend strength: ADX below a threshold such as 20 to 25 suggests a range; above it, a trend.
  • Higher-timeframe trend: only take long reversions when price is above a long EMA on a coarser timeframe. This turns pure mean reversion into "buy the dip in an uptrend," which is often more robust. The guide to multi-timeframe strategies explains how to read a higher timeframe without look-ahead.
  • Volatility regime: ATR or DVOL (BTC and ETH) within a band, so you skip dead markets and chaotic ones.
  • Cross-asset context: for altcoins, require BTC not to be in a sharp decline. Alt dips during a BTC selloff often keep going.

Keep it to one or two filters. Each additional filter is a choice you could have made differently, and with enough filters any trigger can be made to look good on past data. The 10 warning signs your backtest is overfit is a useful checklist before you add a third.

How should a mean reversion strategy exit?

Exits matter more here than in trend following, because the edge, if there is one, is small and short-lived. The Trigr RISK node gives you these controls, and they combine: whichever trips first closes the position.

  • Take-profit: a modest target, often in the range of the typical reversion size for that asset and timeframe. Targets far beyond it turn the strategy into a trend bet.
  • Stop-loss: the tail-risk cap. Too tight and normal noise stops you out before the reversion; too loose and one trend day erases many wins.
  • Time stop (maxBars): if the reversion has not happened within, say, 12 to 48 bars, the premise is probably wrong. Time stops are underrated for this style.
  • Exit on signal flip: close if the opposite condition fires, useful for symmetric long and short versions.

Take-profit and stop-loss levels range from 0.2% to 50%. Because mean reversion often uses tight levels on intraday bars, both can be touched inside a single candle. How the backtest decides which came first changes results materially. Trigr replays 5-minute bars inside the candle to find the order, and if it is still ambiguous the stop wins. The article on stop-loss and take-profit in the same candle shows why optimistic engines inflate exactly this kind of strategy.

How much do fees and fills matter for mean reversion?

More than for almost any other style. A strategy that makes many trades with small average gains is highly sensitive to per-trade costs.

A rough way to think about it: if the average winning trade is 0.8% and the average loser is 1.5%, a round-trip cost of 0.1% (fees plus slippage) is a meaningful slice of every trade. Double the trade frequency with a shorter RSI length and you double the cost drag without necessarily improving the gross edge. Hyperliquid's fee schedule is the starting point for estimating that cost, and the guide to how trading fees decide whether a perp strategy works walks through the arithmetic.

Fill timing matters too. Many simple backtests fill at the close of the bar that produced the signal, which for mean reversion means buying at the exact low of a flush. Trigr fills at the next bar's open instead, which is what a real bot can actually do. For a strategy that buys sharp drops, that difference alone can turn a good-looking curve into a flat one.

What Trigr applies by default, and what you should turn on:

  • Always on: trading fees and the builder fee.
  • Opt-in (off by default): slippage as a flat number of basis points per fill, and funding from the historical 8-hour series or a flat rate. A first result is labeled gross until you add them.
  • Not modeled: order-book depth, market impact and latency. Slippage is your flat assumption, so set it conservatively for smaller assets.

Funding is usually a minor cost for short holding periods, but it is not zero, and it can be systematically against you if you tend to buy dips when longs are paying. Hyperliquid's funding documentation explains the mechanics.

What does an example mean reversion graph look like?

Here is an idea to test, not a recommendation. It trades ETH on 1H bars and uses the standard trigger, filter, signal and risk structure described in the no-code strategy builder guide.

  1. Trigger: ETH 1H close below the lower Bollinger Band (20, 2).
  2. Filter: ETH 1H RSI(14) < 30, so the band break coincides with stretched momentum.
  3. Filter: ETH 4H price above its 200 EMA, so you only buy dips in a higher-timeframe uptrend.
  4. Signal: long when all three hold.
  5. Risk: 10% size, 2x leverage, long only, max 1 concurrent position, 1.5% take-profit, 3% stop-loss, time stop at 24 bars.

Notice the asymmetry: the stop is twice the target. That is typical for mean reversion and means the win rate must exceed about 67% just to break even before costs, and more once fees are included. Write that number down before you look at the backtest; it is the bar the result has to clear.

A short version is not simply the mirror image. Crypto has spent long stretches in uptrends, so short-side reversions ("fade the pump") and long-side reversions often behave differently. Test them as separate strategies rather than setting direction to both and reading one blended number.

How do you know whether the result is real?

A standard Trigr backtest shows the equity curve, monthly returns, the full trade log and an audit trail flagging which inputs were real and which were simulated. For mean reversion, spend most of your time in the trade log:

  • Loss distribution: are losses clustered in a few trend episodes? If three trades account for most of the drawdown, check what the regime filter was doing then.
  • Time-stop exits: a high share of time-stop exits means the reversion often does not arrive. That is information, not noise.
  • Monthly returns: mean reversion that only works in a couple of range-bound months is not a strategy yet.
  • Net versus gross: rerun with slippage and funding on. If the edge disappears, it was never there.

Two honest limits to keep in mind. First, a plain backtest does not compute the Deflated Sharpe Ratio or the Probability of Backtest Overfitting; an ML optimization run reports those. Second, the shaded trailing 25% in Studio is a recent-period diagnostic, not an out-of-sample holdout. If you tuned thresholds while looking at it, it is in-sample.

To keep your trial count honest, iterate inside one strategy. Changing the RSI threshold, the band width or the stop is an experiment on the same idea, and Trigr records those as labeled experiments in the strategy's version history rather than as dozens of separate strategies. The experiments and version history guide covers the workflow.

What this means for you

You get a result that already reflects next-bar fills, fees and a conservative intrabar rule, so the version that survives is closer to what a live bot would do. Then freeze it and run it on a paper agent: paper agents fill at the current Hyperliquid price with fees deducted (no slippage or funding), which is a clean check on whether signals fire when you expect.

Backtests are not guarantees; perps are leveraged and can lose more than expected, and mean reversion in particular can suffer large losses when a range becomes a trend.

Next steps

Build the example in the strategy builder, run it once gross and once with slippage and funding, and compare. If you would rather start from existing work, browse verified strategies in the marketplace.

Frequently asked questions

Does mean reversion work in crypto?

Sometimes, in some regimes. Short-term overreactions in liquid perps often partly revert when the market is ranging, but the same rules lose badly in strong trends. A regime filter and net-of-cost testing decide whether a given version is worth trading.

What RSI settings are best for mean reversion?

There is no best setting. RSI(14) below 30 or above 70 is the textbook starting point; shorter lengths fire more often and cost more in fees. Pick one setting with a reason, test it net of costs, and treat every extra variant you try as another trial.

Should a mean reversion strategy use a stop-loss?

Usually yes, or at least a time stop. Mean reversion earns many small wins and takes occasional large losses when a dip turns into a trend. A stop or a maximum holding period caps that tail, at the cost of some trades that would have recovered.

Why does my mean reversion backtest look better than live trading?

Common causes are fills at the signal bar's close instead of the next bar, missing fees and slippage on many small trades, and optimistic intrabar assumptions when take-profit and stop-loss sit close together. Trigr fills at the next bar's open, always applies fees, and resolves ambiguous bars in favor of the stop.

Put the idea to an honest test.

Describe a strategy in plain English or from your own AI assistant, backtest it on point-in-time data, and forward-test it on paper before any real money is involved.