Files
mql5/Indicators/MyIndicators/Bollinger_Bands_Pro_Documentation.md
T
2026-09-05 12:01:16 +02:00

12 KiB
Raw Blame History

John Bollinger's Bollinger Bands Pro (v3.00)

Quantitative Multi-Algorithm Moving Average & Standard Deviation Volatility Envelope Suite


1. Summary (Introduction)

Bollinger Bands Pro is an institutional-grade volatility envelope indicator based on the classical formulation developed by technical analyst John Bollinger. It establishes a dynamic, self-adjusting price channel by projecting symmetrical Standard Deviation (\sigma) bands above and below a central Moving Average baseline.

Unlike rigid percentage bands, Bollinger Bands automatically expand during volatile trend impulses and contract during low-volatility consolidations (The Squeeze). This creates an adaptive statistical framework for identifying volatility breakouts, trend-riding continuations, and mean-reverting exhaustion levels.


┌────────────────────────────────────────────────────────────────────────┐
│                     BOLLINGER BANDS ARCHITECTURE                       │
├────────────────────────────────────────────────────────────────────────┤
│  Upper Band:  Moving Average(t) + [Multiplier × StdDev(Price, P)]      │
│  Middle Band: Universal Centerline Basis (SMA/EMA/LWMA/VWMA)           │
│  Lower Band:  Moving Average(t) - [Multiplier × StdDev(Price, P)]      │
└────────────────────────────────────────────────────────────────────────┘

Key Capabilities

  • 8 Native Centerline Models: Centerline basis can utilize any moving average algorithm (SMA, EMA, SMMA, LWMA, TMA, DEMA, TEMA, and Volume-Weighted VWMA).
  • Full Volume-Weighted Support (VWMA-BB): Routes Real Volume (VOLUME_REAL) and Tick Volume (VOLUME_TICK) directly into the centerline moving average engine.
  • Unified 2026 MTF Framework: Higher-timeframe Bollinger Bands (e.g., H1 or H4) map onto lower-timeframe execution charts (M1, M5, M15) with flat, non-warping steps via DataSync_Tools.mqh.
  • Synthetic Heikin Ashi Support: Fully compatible with filtered Heikin Ashi price series via CBollingerBandsCalculator_HA composition.
  • Foundation for Squeeze Systems: Provides the primary statistical dispersion engine utilized by advanced volatility breakout systems (such as Squeeze_Pro).

2. Mathematical Foundations & Statistical Dispersion Mechanics


                         Upper Band: Middle + (Deviation · σ)
       ══════════════════════════════════════════════════════════════════ clrOliveDrab (Dot)
                         ▲ Standard Deviation Corridor (2.0σ)
                         │
       ──────────────────┼─────────────────────────────────────────────── clrOliveDrab (Solid)
                         │ Middle Centerline Basis (SMA / EMA / VWMA)
                         ▼
       ══════════════════════════════════════════════════════════════════ clrOliveDrab (Dot)
                         Lower Band: Middle - (Deviation · σ)

2.1. Centerline Moving Average Basis (\text{Middle}_t)

Given input price series P_t:

\text{Middle}_t = \mathcal{MA}\left( P, \text{Period} = P_{\text{MA}}, \text{Type} = \text{InpMAType} \right)

where standard parameters are P_{\text{MA}} = 20 and \text{InpMAType} = \text{SMA}.


2.2. Rolling Standard Deviation (\sigma_t)

Standard deviation measures the Gaussian dispersion of price around the active centerline basis over lookback window P = \text{InpPeriod}:

\sigma_t = \sqrt{\frac{1}{P} \sum_{k=0}^{P-1} \left( P_{t-k} - \text{Middle}_t \right)^2}

2.3. Dynamic Volatility Band Projections

\text{Upper Band}_t = \text{Middle}_t + (D \cdot \sigma_t) \text{Lower Band}_t = \text{Middle}_t - (D \cdot \sigma_t)

where D = \text{InpDeviation} (standard deviation multiplier, default: 2.0).


2.4. Volume-Weighted Bollinger Model (VWMA-BB)

When InpMAType = VWMA, the centerline weights prices directly by committed trade volume:

\text{Middle}_{\text{VWMA}, t} = \frac{\sum_{j=0}^{P-1} P_{t-j} \cdot V_{t-j}}{\sum_{j=0}^{P-1} V_{t-j}} \text{Upper Band}_t = \text{Middle}_{\text{VWMA}, t} + (D \cdot \sigma_t), \quad\quad \text{Lower Band}_t = \text{Middle}_{\text{VWMA}, t} - (D \cdot \sigma_t)

3. MQL5 Architecture & Engineering Standards


┌────────────────────────────────────────────────────────┐
│                MovingAverage_Engine.mqh                │
│        (Core Universal Math: 8 MA Types & VWMA)        │
└──────────────────────────┬─────────────────────────────┘
                           │ Powers Centerline Basis
                           ▼
┌────────────────────────────────────────────────────────┐
│             Bollinger_Bands_Calculator.mqh             │
│    (Rolling Standard Deviation & Volatility Engine)    │
├──────────────────────────┬─────────────────────────────┤
│   Volume Routing Layer   │   Composition Engine        │
│   • Real Volume Support  │   • CBollingerBandsCalc_HA  │
│   • Tick Volume Fallback │   • Leak-Free Destructors   │
└──────────────────────────┴─────────────────────────────┘
                           │ Outputs Middle, Upper, Lower in O(1)
                           ▼
┌────────────────────────────────────────────────────────┐
│                Bollinger_Bands_Pro.mq5                 │
│    (Unified Wrapper: Native Timeframe & MTF Engine)    │
├──────────────────────────┬─────────────────────────────┤
│   Direct Mode (O(1))     │   Synchronized MTF Pipeline │
│   • Current Timeframe    │   • DataSync_Tools Daemon   │
│   • 3 Output Plots       │   • Staircase Flat-Force    │
└──────────────────────────┴─────────────────────────────┘

  1. Modular Engine Hierarchy: CBollingerBandsCalculator embeds CMovingAverageCalculator with zero heap memory leaks and safe pointer destruction (CheckPointer).
  2. Full VWMA Volume Routing: Volume arrays (h_vol[] in MTF and volume[] in Native) are routed directly into the centerline calculation pipeline.
  3. 2026 MTF Framework with Staircase Solution:
    • Asynchronous 1-second timer daemon (OnTimerUpdate) ensures higher-timeframe data synchronization without UI lag.
    • Dynamic staircase anchor (first_bar_of_forming_htf) synchronizes all lower-timeframe sub-bars belonging to the active higher-timeframe candle.

4. Parameters Reference

Timeframe Settings

  • InpTimeframe (default: PERIOD_CURRENT): Calculation timeframe. When set to PERIOD_CURRENT, it operates in native zero-lag mode. When set to a higher timeframe (e.g., PERIOD_H1, PERIOD_D1), it activates the synchronized MTF engine.

Bollinger Bands Core Settings

  • InpPeriod (default: 20): Lookback period (P) for the moving average basis and rolling standard deviation.
  • InpDeviation (default: 2.0): Standard deviation multiplier (D) defining channel width (2.0 = 95.4\% Gaussian coverage).
  • InpMAType (default: SMA): Centerline algorithm (SMA, EMA, SMMA, LWMA, TMA, DEMA, TEMA, VWMA).
  • InpSourcePrice (default: PRICE_CLOSE_STD): Applied price source (Supports all 7 Standard and 7 Heikin Ashi modes).

Visual Settings - Centerline

  • InpColorMiddle (default: clrOliveDrab): Centerline color (Width: 2, Solid).
  • InpStyleMiddle (default: STYLE_SOLID): Line style of the centerline.
  • InpWidthMiddle (default: 2): Line thickness.

Visual Settings - Outer Bands

  • InpColorBands (default: clrOliveDrab): Color applied to Upper and Lower volatility bands.
  • InpStyleBands (default: STYLE_DOT): Line style for outer bands.
  • InpWidthBands (default: 1): Line thickness for outer bands.

5. Quantitative Trading Playbooks


┌────────────────────────────────────────────────────────────────────────┐
│                   BOLLINGER BANDS TRADING PLAYBOOKS                    │
├────────────────────────────────────────────────────────────────────────┤
│ 1. The Volatility Squeeze: Band contraction inside Keltner Channel     │
│                            identifies pre-breakout accumulation.       │
│ 2. Walking the Bands:      Candles closing outside bands with expanding│
│                            bandwidth confirm institutional markup.     │
│ 3. W-Bottom / M-Top Fades: Price retesting outer bands with momentum   │
│                            divergence signals high-reward reversals.   │
└────────────────────────────────────────────────────────────────────────┘

5.1. The Volatility Squeeze (Pre-Breakout Buildup)

  • Pre-Condition: Bollinger Bands contract sharply, narrowing the distance between Upper and Lower bands.
  • Trigger: An explosive candle close beyond the Upper Band (Long) or Lower Band (Short) accompanied by expanding bandwidth \rightarrow Enter in the direction of the breakout.

5.2. "Walking the Bands" (Trend Riding)

  • Bullish Momentum: In a powerful trend, price does not reverse upon touching the Upper Band; instead, it "walks" along the outer band as bandwidth expands.
  • Execution Rule: Maintain long positions as long as candles continue closing above the Centerline (20 SMA/EMA). Use the Centerline as a dynamic trailing stop.

5.3. Multi-Timeframe Macro Envelope Alignment

  • Attach an H1-calculated Bollinger Bands (20, 2.0σ) onto an M5 execution chart.
  • Rule: Only take M5 long pullback trades when price is trading in the upper half of the macro channel (between H1 Centerline and H1 Upper Band).

6. Indicator Buffer Map (For Developers & EA Integration)

Buffer Index Name Type Description
0 BufferUpperBand INDICATOR_DATA Upper Volatility Band (\text{Middle} + D \cdot \sigma)
1 BufferLowerBand INDICATOR_DATA Lower Volatility Band (\text{Middle} - D \cdot \sigma)
2 BufferCenterLine INDICATOR_DATA Centerline Moving Average Basis (\text{Middle})

All buffers strictly maintain non-series chronological order (ArraySetAsSeries = false), ensuring instant compatibility with Expert Advisors and scanner dashboards via iCustom().