Disclaimer: This article is for educational and informational purposes only. It does not constitute financial or investment advice. Trading forex and CFDs carries significant risk of loss. Past performance of any strategy — including backtests — does not guarantee future results. Never trade with money you cannot afford to lose.
What Is This Strategy?
The Bollinger Stoch Session Scalper is a session-gated, mean-reversion scalping strategy built around three classic technical indicators working in confluence: Bollinger Bands (a volatility envelope plotted a set number of standard deviations above and below a moving average), the Relative Strength Index (RSI) (a momentum oscillator that measures whether recent moves are overextended), and the Stochastic oscillator (a momentum tool comparing a bar's close to its recent high-low range). Rather than chase trends, the strategy is designed to fade short-term price stretches — that is, it looks for moments when price has pushed too far, too fast, and may be about to snap back toward its average.
Mean-reversion trading rests on a simple observation: on lower timeframes, price frequently over-extends past its normal volatility range and then reverts to the mean. This strategy attempts to identify those over-extensions and position for the reversion. The catch — and the reason the strategy stacks three separate conditions — is that a genuine trend can look identical to an over-extension in its early stages. Requiring Bollinger, RSI, and Stochastic to agree is an attempt to filter out those trend legs, which are the classic failure mode of any fade system.
As a learning tool, the Bollinger Stoch Session Scalper is well suited to traders who want to study how multiple indicators can be combined into a single confluence-based rule set, how volatility (via the Average True Range) can drive adaptive stop and target placement, and how a time-of-day filter can shape a system's behavior. It is an analysis framework for understanding mean reversion — not a shortcut, and not a promise of any particular outcome.
How It Works
The strategy evaluates its entry rules once per closed bar on the selected timeframe, while trade management runs on every price tick. Here is what the strategy signals and how it manages a position:
- Session gate (entries only): New trades are only considered during a configurable liquid-session window defined in UTC hours (default 07:00–20:00). Low-liquidity hours tend to produce false pierces of the bands, so entries are suppressed outside the window. Importantly, the session filter applies to opening trades only — an open position is still managed around the clock.
- Long entry — all four must align on the closed bar:
- The bar's close is at or below the lower Bollinger Band (price has stretched down past its envelope).
- RSI reads below the oversold threshold (momentum is already exhausted).
- Stochastic %K is below the oversold level (the oscillator is deep in oversold territory).
- %K is above %D, meaning the Stochastic is turning back up — the snap-back may already be underway.
- Short entry — the mirror image:
- The close is at or above the upper Bollinger Band.
- RSI is above the overbought threshold.
- Stochastic %K is above the overbought level.
- %K is below %D, indicating the oscillator is rolling back down.
- One position at a time: The strategy holds a single position per magic number — it does not stack or average into trades, consistent with a disciplined scalping approach.
- Stop-loss logic: On entry, the stop is placed a fixed multiple of ATR (Average True Range, a measure of recent volatility) away from the fill price. Because the stop is volatility-based, it automatically widens in fast markets and tightens in quiet ones.
- Take-profit logic: The target is likewise set a multiple of ATR from entry. With the default settings (1.5× ATR stop and 2.0× ATR target), the initial structure aims for a reward larger than the risk on each trade.
- Smart trailing stop: Once price has traveled a configurable multiple of ATR in the trade's favor, the stop begins to ratchet — it moves a set ATR distance behind price and never loosens. A trivial-change filter (a small ATR-based epsilon) prevents constant micro-adjustments. This converts a winning scalp into a protected position that can continue to run while its downside is progressively reduced.

Strategy Parameters
| Parameter | Default | Min | Max | Description |
|---|---|---|---|---|
| BandPeriod | 20 | 10 | 50 | Number of bars in the Bollinger Bands moving average (the mean line). |
| BandDeviations | 2.0 | 1.0 | 3.0 | How many standard deviations the outer bands sit from the mean. |
| RsiPeriod | 14 | 5 | 30 | Lookback length for the RSI momentum oscillator. |
| RsiOversold | 35 | 10 | 45 | RSI level below which momentum is treated as oversold (long filter). |
| RsiOverbought | 65 | 55 | 90 | RSI level above which momentum is treated as overbought (short filter). |
| StochKPeriod | 14 | 5 | 30 | Lookback for the Stochastic %K (raw) calculation. |
| StochDPeriod | 3 | 2 | 10 | Smoothing period for %D (a moving average of %K). |
| StochOversold | 25 | 5 | 45 | Stochastic level marking oversold territory (long filter). |
| StochOverbought | 75 | 55 | 95 | Stochastic level marking overbought territory (short filter). |
| AtrPeriod | 14 | 5 | 30 | Lookback for the ATR used to size stops, targets, and the trail. |
| AtrStopMult | 1.5 | 0.5 | 4.0 | Stop-loss distance as a multiple of ATR. |
| AtrTpMult | 2.0 | 0.5 | 5.0 | Take-profit distance as a multiple of ATR. |
| TrailStartMult | 1.0 | 0.3 | 3.0 | Profit (in ATR) required before the trailing stop arms. |
| TrailMult | 1.0 | 0.3 | 3.0 | Distance (in ATR) the trailing stop keeps behind price. |
| SessionStartUtc | 7 | 0 | 23 | Hour (UTC) the trading session opens for new entries. |
| SessionEndUtc | 20 | 0 | 23 | Hour (UTC) the trading session closes for new entries. |
| Lots | 0.10 | 0.01 | 1.0 | Fixed trade volume in lots. |

Recommended Chart Settings
The Bollinger Stoch Session Scalper was designed with lower-timeframe forex scalping in mind — specifically the M5 or M15 charts on a liquid major pair such as EUR/USD. The default session window (07:00–20:00 UTC) roughly spans the London and New York sessions, when spreads on the majors are typically tightest and price action is more orderly. The strategy reads whatever timeframe is selected at run time, so it can be studied on other timeframes and instruments, but its logic and defaults are tuned for the low-timeframe FX context.
Keep in mind that behavior will vary considerably across different symbols, brokers, spreads, and market conditions. A setting that looks reasonable on one pair or in one volatility regime may behave quite differently on another. Treat the defaults as a starting point for study, not a finished configuration.
How to Install on MetaTrader 5
- Download the .ex5 file from the link below
- Copy it to your MT5
MQL5\Expertsfolder - Restart MetaTrader 5 or refresh the Navigator panel
- Drag the EA onto a chart matching the recommended symbol and timeframe
- Configure the input parameters and enable Algo Trading
What to Consider Before Using This EA
Strengths of the approach. Requiring three independent indicators to agree is a deliberate attempt to reduce false signals — a single indicator crossing a threshold is far easier to trigger than Bollinger, RSI, and Stochastic all aligning at once. The volatility-adaptive stops and targets mean the strategy sizes its risk to current conditions rather than using fixed pip distances, and the session filter reflects a well-established idea that liquidity varies by time of day. The ratcheting trailing stop is a sensible way to protect open profit without capping upside prematurely.
Known limitations. Mean-reversion systems share a characteristic weakness: they are structurally positioned against the immediate move, so during a strong, sustained trend the strategy can be repeatedly stopped out as price presses through the bands without reverting. The triple-confluence filter reduces but cannot eliminate this. Because it is a scalper trading relatively small ATR-based targets, the strategy is also sensitive to spread and commission — transaction costs consume a larger share of each trade's potential move on lower timeframes. Fast news events can produce slippage that widens the effective loss beyond the intended ATR stop.
Where it may underperform. Choppy, low-volatility ranges can generate frequent small signals, while strong directional breakouts can produce a run of losing fades. Results are also highly dependent on the broker's spread, execution quality, and server time relative to the UTC session window. None of these observations should be read as a prediction; they are simply the conditions any user should understand and test for themselves.
Risk Management Tips
- Size positions conservatively. A common educational guideline is to risk no more than 1–2% of account equity on any single trade. Set your lot size so that a full ATR stop-loss stays within that limit for your account.
- Start on a demo account. Run the strategy on a demo or paper account first to observe how it behaves in live conditions, including how spreads and execution affect a scalping system, before committing any real capital.
- Understand drawdown. Every strategy experiences losing streaks. Study the depth and duration of drawdown you would need to tolerate, and ask whether it fits your risk temperament and account size.
- Account for costs. On low timeframes, spread and commission matter. Factor realistic costs into any evaluation rather than assuming friction-free fills.
- Never over-leverage. Leverage magnifies losses as readily as gains. Keep leverage modest and avoid risking money you cannot afford to lose.
- Review and adjust. Markets evolve. Periodically re-examine whether the parameters and session window still suit current conditions, and treat any configuration as provisional.
Risk Warning
Trading foreign exchange, CFDs, and other leveraged financial instruments involves substantial risk of loss and is not suitable for all investors. The strategies and tools discussed on this page are provided for educational purposes only and do not constitute financial advice, investment recommendations, or solicitation to trade. Always consult a qualified financial adviser before making trading decisions. Past backtest performance is not indicative of future results.
Downloads
- Expert Advisor: BollingerStochSessionScalper.ex5 (3 downloads)
- Source Code: BollingerStochSessionScalper.mq5 (3 downloads)
- Documentation: BollingerStochSessionScalper.pdf (3 downloads)