BacktestLab Pro
Institutional Price Action • ICT & SMC Algorithmic Model

How to Trade Balanced Price Ranges (BPR): The Complete Mechanical Guide

BacktestLab Quant Team September 2026 12 min read XAUUSD / Forex / Crypto
Strategy Summary (Quick Reference)
TIME FRAME 15M / 5M Execution
PRIMARY SETUP Overlapping FVGs
HISTORICAL WIN RATE 61% - 66%
AVERAGE RR 1:2.0 to 1:3.0

Standard Fair Value Gaps (FVGs) often get violated during aggressive market sweeps. A Balanced Price Range (BPR) solves this problem by identifying where a bullish FVG and a bearish FVG directly overlap after an aggressive displacement. This overlap represents institutional balance, creating a sharp springboard for trend continuation.

1. What is a Balanced Price Range (BPR)?

In institutional order-flow mechanics, prices do not move smoothly; they oscillate between periods of liquidity collection and aggressive re-pricing (displacement). During displacement, candles leave an imbalance where only one side of the market is offered (e.g., a massive bullish green candle creates buy-side imbalance, leaving sell-side delivery void).

When price violently snaps back and displaces in the opposite direction immediately after, it creates a counter-imbalance. The intersection where both of these 3-candle imbalance windows overlap is the Balanced Price Range (BPR).

Because liquidity has been offered rapidly in both directions across that narrow price band, the market considers this zone "balanced." When price later pulls back into the BPR, it treats the boundary as dynamic support or resistance, rarely piercing beyond its 50% equilibrium level.

2. Single FVG vs. Balanced Price Range (BPR)

Feature Standard Fair Value Gap (FVG) Balanced Price Range (BPR)
Market Delivery Unilateral (Only buys or only sells offered) Bilateral (Rapid displacement in both directions)
Fill Expectation Often fills completely (100% rebalance) Tends to reject sharply at the outer edge or 50% level
False Signal Risk High during session trending runs Low; confirmed by structural shift (Market Structure Break)
Ideal Environment Continuation trends High-impact reversals following liquidity sweeps
Interactive Backtesting

Replay BPR setups on historical tick data for free.

Step candle-by-candle through Gold and EURUSD charts with zero limits.

Launch Bar Replay Free →

3. The Mechanical 4-Step BPR Trading Strategy

1

Wait for Liquidity Pool Capture

A valid BPR requires institutional incentive. Confirm that price has swept a major structural level: the Asian Session High/Low, Previous Day High/Low (PDH/PDL), or an equal high/low liquidity cluster.

2

Detect Opposing Displacements & Overlap

Observe the violent displacement candle that pierced the high, and the subsequent reversal candle that broke back into the range. Mark the exact price band where the first imbalance window and the second counter-imbalance window overlap.

3

Execution on the Mitigation Retest

Set a limit order at the nearest edge of the BPR or wait for price to touch the BPR on the 5-minute timeframe. Enter when a rejection wick forms that fails to close past the 50% midpoint (Consequent Encroachment) of the BPR.

4

Invalidation & Profit Targets

Stop Loss: Place protective stops 2 pips beyond the invalidation swing extreme that created the second displacement. If a candle body closes past the BPR boundary, exit immediately. Target: Target the opposing session liquidity pool (minimum 1:2.0 RR).

4. Algorithmic Formulation in Python & MQL5

Systematic traders who wish to automate BPR detection must mathematically evaluate consecutive three-bar sequences:

# Pseudo-logic for detecting Bearish BPR overlap in Python
def detect_bpr(bars):
    # Bullish FVG 1: Bar[i-3] High to Bar[i-1] Low
    bull_fvg_low = bars['high'].iloc[-4]
    bull_fvg_high = bars['low'].iloc[-2]

    # Bearish FVG 2 (Displacement down): Bar[i-1] High to Bar[i+1] Low
    bear_fvg_high = bars['low'].iloc[-2]
    bear_fvg_low = bars['high'].iloc[0]

    # Check for overlapping price boundary
    bpr_top = min(bull_fvg_high, bear_fvg_high)
    bpr_bottom = max(bull_fvg_low, bear_fvg_low)

    if bpr_top > bpr_bottom:
        return {'status': 'VALID_BPR', 'upper': bpr_top, 'lower': bpr_bottom}
    return None

Want to run automated algorithms based on BPR or liquidity sweeps? Explore pre-tested setups in our Community Bot Arena or export source code for MetaTrader 5 on the Production Code page.

5. How to Replay and Audit BPRs Free on BacktestLab Pro

Don't rely on cherry-picked screenshots. Use our zero-paywall simulator to verify how BPR setups hold up across different market regimes:

  1. Launch the Free Bar Replay Terminal.
  2. Load XAUUSD or EURUSD on the 15m timeframe.
  3. Use the Step Replay button to advance candles until an Asian session high/low sweep occurs followed by dual displacement.
  4. Mark the BPR bounds and track whether price mitigates the zone and respects risk parameters.

Frequently Asked Questions

What is a Balanced Price Range (BPR)?

A BPR is created when two opposite-direction Fair Value Gaps overlap during consecutive displacement waves. It forms a high-probability mitigation zone for trend continuation.

Can I trade BPRs on Gold (XAUUSD)?

Yes. Gold is one of the most liquid and volatile instruments for BPR trading because institutional participants frequently sweep session extremes before initiating rapid multi-dollar repricing moves.

Does BacktestLab Pro require a paid subscription for multi-timeframe replay?

No. BacktestLab Pro provides completely free, unlimited bar replay sessions with deep historical chart feeds and zero subscription paywalls.

Test Balanced Price Ranges on Live Historical Candles

Step through multi-year tick feeds with zero daily caps. No credit card or account creation required.