
The strict mean-reversion play — BUY only when the price is at the lower Bollinger band AND the RSI confirms oversold. Two conditions, fewer false signals.
BB+RSI combines two of the most-used technical indicators into a single mean-reversion strategy. The idea: when both signals agree, the setup is much stronger than either alone.
Entry (BUY) requires BOTH conditions simultaneously:
If only one is true — for example, price drops to the lower band but RSI is at 50 — no trade. Both must agree.
Exit (SELL) requires EITHER condition:
Whichever comes first triggers the SELL. This asymmetric design — strict on entry, generous on exit — reflects classical mean-reversion intuition: you want high conviction to enter, but you want to lock in profits quickly when either reversal signal fires.
Compared to plain RSI/OB-OS: Same RSI logic on the SELL side, but the BUY requires the additional lower-band touch. Result: BB+RSI takes fewer trades than RSI/OB-OS, but each trade has stronger conviction. On daily crypto charts, expect roughly 30-50% fewer trades than RSI/OB-OS with similar default params.
| Name | Default | Range | Description |
|---|---|---|---|
| BB Period | 20 | 5–100 | Number of candles for the Bollinger Bands moving average + std dev. Default 20 — Bollinger's canonical value. |
| BB Std Dev | 2 | 0.5–5 | Standard-deviation multiplier for upper/lower bands. Default 2.0. |
| RSI Period | 14 | 2–100 | Number of candles for the RSI calculation. Default 14 — Wilder's original value. |
| RSI Oversold | 30 | 1–49 | RSI threshold below which momentum is considered oversold. Lower = stricter (fewer trades). |
| RSI Overbought | 70 | 51–99 | RSI threshold above which momentum is considered overbought. Higher = exits get triggered later. |
The pre-baked mini-backtest is refreshed daily — check back soon or start a live run in the Arena.
Run in Arena →// Indicators
middle = SMA(close, bb_period)
std = stddev(close, bb_period)
upper = middle + bb_std * std
lower = middle - bb_std * std
rsi = RSI(close, rsi_period)
// Entry — BOTH conditions required
if close <= lower and rsi < rsi_oversold and position.is_flat:
BUY
// Exit — EITHER condition triggers
if (close >= upper or rsi > rsi_overbought) and position.is_long:
SELLRSI/OB-OS uses *only* RSI to make decisions — BUY when RSI < oversold, SELL when RSI > overbought. BB+RSI adds the requirement that the price must also be at the lower Bollinger band to trigger a BUY. Result: BB+RSI takes fewer trades but each has higher conviction. The RSI side of the SELL is identical between both — they both exit on RSI overbought. Useful comparison: on a quietly drifting market where RSI never reaches extreme values, RSI/OB-OS may not trade at all. BB+RSI in the same market also won't trade. But on a sharp dip where RSI briefly hits 28 without the price reaching the lower band (e.g. a short panic that bounces immediately), RSI/OB-OS would BUY, BB+RSI wouldn't — saving you from the bounce-fail trade.
Classical mean-reversion theory: you want **high conviction** to enter (so you wait for two confirming signals), but you want to **lock in profits fast** when the bounce happens (so any one signal is enough to exit). The asymmetry isn't arbitrary — it reflects the asymmetry of the trade: a mean-reversion BUY pays off when the bounce happens, so once it does, you take the gain rather than waiting for both conditions to align on the exit. An alternative design — symmetric AND on both — would be more conservative but typically gives worse Sharpe because exits would lag and let profits give back. We use the standard asymmetric form; you can simulate the symmetric variant by manually setting RSI overbought = 99 (effectively disabling the RSI exit), which makes the exit pure 'close >= upper band'.
**Strong directional trends with persistent oversold.** BTC in mid-2022 spent months below the lower BB with RSI under 30 — BB+RSI would have bought multiple times during the descent, each time stopping out at the next bounce-then-fail. Same for individual altcoins in death-spirals. Mitigation: combine BB+RSI with the **200 WMA filter** or **Bullmarket Gauge** filter in the platform. Both block entries when the long-term trend is bearish — so BB+RSI only fires when the broader regime is bullish AND the local mean-reversion conditions align. This drops false-knife-catches dramatically at the cost of skipping some real reversal bottoms.
The textbook RSI strategy — buy when oversold (RSI < 30), sell when overbought (RSI > 70). Best in sideways markets.
Compression precedes expansion — wait for the Bollinger bands to squeeze tight, then ride the breakout. John Bollinger's classic volatility-cycle play.
A momentum signal that triggers when the RSI crosses its own moving average — combining oversold detection with trend confirmation.
Check out our Strategy Insights Reports — pre-baked deep-dives with historical results, comparisons, and market context.