Docs Download
Home / Docs / Configurations / Bollinger Bands Trading Strategy Guide

Bollinger Bands Trading Strategy Guide

Overview

Bollinger Bands are volatility-based technical indicators that consist of three lines:

  • Middle Band: Simple Moving Average (SMA)
  • Upper Band: SMA + (Standard Deviation × Multiplier)
  • Lower Band: SMA - (Standard Deviation × Multiplier)

This guide covers three signal strategies: Touch, Breakout, and Squeeze.

Signal Types Explained

1. BB Touch Signals (Mean Reversion)

Philosophy: Price tends to revert to the mean after touching extreme bands.

  • BB_BUY: Price touches or gets very close to the lower band
    • Interpretation: Oversold condition, potential bounce upward
    • Entry: When price is within bb_touch_threshold of lower band
  • BB_SELL: Price touches or gets very close to the upper band
    • Interpretation: Overbought condition, potential pullback
    • Entry: When price is within bb_touch_threshold of upper band

Best For: Range-bound markets, low volatility periods

2. BB Breakout Signals (Momentum Continuation)

Philosophy: Strong moves that break through bands indicate momentum continuation.

  • BUY: Price breaks above upper band by threshold
    • Interpretation: Strong bullish momentum, trend continuation
    • Entry: When price exceeds upper band by bb_breakout_threshold
  • SELL: Price breaks below lower band by threshold
    • Interpretation: Strong bearish momentum, trend continuation
    • Entry: When price falls below lower band by bb_breakout_threshold

Best For: Trending markets, high momentum moves

3. BB Squeeze Signals (Volatility Contraction)

Philosophy: Low volatility periods (narrow bands) precede explosive moves.

  • PUMP: Bands contract then price breaks upward
    • Interpretation: Volatility compression followed by bullish breakout
    • Entry: When band width < bb_squeeze_width_threshold then upward breakout
  • CRASH: Bands contract then price breaks downward
    • Interpretation: Volatility compression followed by bearish breakdown
    • Entry: When band width < bb_squeeze_width_threshold then downward breakdown

Best For: Anticipating major moves, volatility trading

Configuration Parameters

Core Settings

# Signal Enablement
enable_bb_touch_signal: true      # Mean reversion strategy
enable_bb_breakout_signal: true   # Momentum continuation strategy
enable_bb_squeeze_signal: false   # Volatility breakout strategy

# Bollinger Band Parameters
bb_period: 20                     # Lookback period for SMA
bb_deviation: 2.0                 # Standard deviation multiplier

# Threshold Settings
bb_touch_threshold: 0.001         # 0.1% distance for touch signal
bb_breakout_threshold: 1.01       # 1% beyond band for breakout
bb_squeeze_width_threshold: 0.02  # 2% band width for squeeze

# Broadcast Signals
supported_volatility_action: ["BUY", "SELL", "PUMP", "CRASH"]
supported_volatility_action_broadcast: 
  ["BUY", "SELL", "PUMP", "CRASH", "BB_SELL", "BB_BUY"]

Parameter Definitions

Parameter Description Standard Value Range
bb_period Number of candles for moving average 20 10-50
bb_deviation Standard deviation multiplier 2.0 1.5-3.0
bb_touch_threshold Distance to band for touch signal 0.001 (0.1%) 0.0005-0.01
bb_breakout_threshold Beyond band for breakout 1.01 (1%) 1.005-1.05
bb_squeeze_width_threshold Band width % for squeeze 0.02 (2%) 0.01-0.05

Optimized Settings by Trading Style

Scalp Trading (Quick In/Out, High Frequency)

Timeframes: 1m, 3m, 5m
Strategy Focus: Touch signals + tight thresholds

# Scalping Configuration
bb_period: 15                      # Faster response
bb_deviation: 1.8                  # Tighter bands (more signals)
bb_touch_threshold: 0.0005         # 0.05% - very tight
bb_breakout_threshold: 1.005       # 0.5% - catch quick moves
bb_squeeze_width_threshold: 0.015  # 1.5% - frequent squeezes

enable_bb_touch_signal: true       # Primary strategy
enable_bb_breakout_signal: true    # Secondary for momentum scalps
enable_bb_squeeze_signal: false    # Too slow for scalping

# Recommended Broadcast
supported_volatility_action: ["BB_BUY", "BB_SELL"]

Rationale:

  • Shorter periods catch rapid price movements
  • Tighter bands generate more signals
  • Focus on mean reversion in ranging markets
  • Ignore squeezes (too slow for scalp timeframes)

Day Trading (Intraday, Multiple Positions)

Timeframes: 5m, 15m, 30m
Strategy Focus: Balanced touch + breakout signals

# Day Trading Configuration
bb_period: 20                      # Standard period
bb_deviation: 2.0                  # Standard bands
bb_touch_threshold: 0.001          # 0.1% - moderate
bb_breakout_threshold: 1.01        # 1% - standard
bb_squeeze_width_threshold: 0.02   # 2% - standard

enable_bb_touch_signal: true       # Range-bound trades
enable_bb_breakout_signal: true    # Trend-following trades
enable_bb_squeeze_signal: true     # Capture volatility expansions

# Recommended Broadcast
supported_volatility_action: ["BUY", "SELL", "BB_BUY", "BB_SELL", "PUMP"]

Rationale:

  • Standard settings work well for intraday volatility
  • Enable all signal types for diverse opportunities
  • Balance between noise filtering and signal generation
  • Squeezes valuable for catching intraday breakouts

Swing Trading (Multi-Day Holds)

Timeframes: 1h, 2h, 6h
Strategy Focus: Breakout signals + wider bands

# Swing Trading Configuration
bb_period: 20                      # Standard period
bb_deviation: 2.2                  # Slightly wider bands
bb_touch_threshold: 0.002          # 0.2% - looser
bb_breakout_threshold: 1.015       # 1.5% - stronger confirmation
bb_squeeze_width_threshold: 0.025  # 2.5% - meaningful squeezes

enable_bb_touch_signal: true       # Lower priority
enable_bb_breakout_signal: true    # Primary strategy
enable_bb_squeeze_signal: true     # High priority

# Recommended Broadcast
supported_volatility_action: ["BUY", "SELL", "PUMP", "CRASH"]

Rationale:

  • Wider bands reduce noise on higher timeframes
  • Breakouts more reliable for multi-day trends
  • Squeezes excellent for catching multi-day moves
  • Touch signals less relevant (fewer false signals needed)

Long-Term Trading (Position/Investment)

Timeframes: 6h, 1d
Strategy Focus: Squeeze signals + major breakouts

# Long-Term Trading Configuration
bb_period: 25                      # Longer period (1 month on daily)
bb_deviation: 2.5                  # Wide bands (major moves only)
bb_touch_threshold: 0.005          # 0.5% - very loose
bb_breakout_threshold: 1.02        # 2% - strong confirmation
bb_squeeze_width_threshold: 0.03   # 3% - significant compression

enable_bb_touch_signal: false      # Ignore touches
enable_bb_breakout_signal: true    # Major trends only
enable_bb_squeeze_signal: true     # Primary strategy

# Recommended Broadcast
supported_volatility_action: ["PUMP", "CRASH", "BUY", "SELL"]

Rationale:

  • Longer periods smooth out short-term volatility
  • Wide bands filter out noise, capture major moves
  • Squeezes predict major trend changes
  • Touch signals unreliable on long timeframes

Timeframe-Specific Configurations

Ultra-Fast Scalping (1m, 3m)

bb_period: 12
bb_deviation: 1.5
bb_touch_threshold: 0.0003
bb_breakout_threshold: 1.003
enable_bb_touch_signal: true
enable_bb_breakout_signal: true
enable_bb_squeeze_signal: false

Use Case: High-frequency trading, capturing micro-moves

Standard Scalping (5m)

bb_period: 15
bb_deviation: 1.8
bb_touch_threshold: 0.0005
bb_breakout_threshold: 1.005
enable_bb_touch_signal: true
enable_bb_breakout_signal: true
enable_bb_squeeze_signal: false

Use Case: Active scalping with more breathing room

Active Day Trading (15m, 30m)

bb_period: 20
bb_deviation: 2.0
bb_touch_threshold: 0.001
bb_breakout_threshold: 1.01
enable_bb_touch_signal: true
enable_bb_breakout_signal: true
enable_bb_squeeze_signal: true

Use Case: Standard intraday trading, 3-10 trades/day

Swing Trading (1h, 2h)

bb_period: 20
bb_deviation: 2.2
bb_touch_threshold: 0.002
bb_breakout_threshold: 1.015
enable_bb_touch_signal: true
enable_bb_breakout_signal: true
enable_bb_squeeze_signal: true

Use Case: Multi-day positions, trending markets

Extended Swing (6h)

bb_period: 24
bb_deviation: 2.3
bb_touch_threshold: 0.003
bb_breakout_threshold: 1.018
enable_bb_touch_signal: false
enable_bb_breakout_signal: true
enable_bb_squeeze_signal: true

Use Case: Week-long positions, major moves

Position Trading (1d)

bb_period: 25
bb_deviation: 2.5
bb_touch_threshold: 0.005
bb_breakout_threshold: 1.02
enable_bb_touch_signal: false
enable_bb_breakout_signal: true
enable_bb_squeeze_signal: true

Use Case: Month-long positions, major trend changes

Volatility Action Signals

Signal Priority Matrix

Trading Style Primary Signals Secondary Signals Broadcast All
Scalp BB_BUY, BB_SELL BUY, SELL No
Day Trade BUY, SELL, BB_BUY, BB_SELL PUMP, CRASH Yes
Swing BUY, SELL, PUMP BB_BUY, BB_SELL, CRASH Yes
Long-Term PUMP, CRASH BUY, SELL No

Broadcast Configuration

Aggressive (All Signals)

supported_volatility_action_broadcast: 
  ["BUY", "SELL", "PUMP", "CRASH", "BB_SELL", "BB_BUY"]

Conservative (Major Signals Only)

supported_volatility_action_broadcast: 
  ["BUY", "SELL", "PUMP", "CRASH"]

Touch Signals Only

supported_volatility_action_broadcast: 
  ["BB_SELL", "BB_BUY"]

Best Practices

1. Market Condition Adaptation

Ranging Market (Low volatility)

  • Enable: enable_bb_touch_signal: true
  • Disable: enable_bb_breakout_signal: false
  • Settings: Standard deviation 2.0, tight thresholds

Trending Market (High momentum)

  • Enable: enable_bb_breakout_signal: true
  • Disable: enable_bb_touch_signal: false
  • Settings: Standard deviation 2.2-2.5, wider thresholds

Pre-Breakout (Consolidation)

  • Enable: enable_bb_squeeze_signal: true
  • Settings: Lower squeeze threshold (0.015-0.02)

2. Risk Management

Strategy Stop Loss Take Profit Risk:Reward
Touch Signal Middle band Opposite band 1:2
Breakout Signal Entry band 2× band width 1:3
Squeeze Signal Below/above squeeze 3× band width 1:4

Example (Touch Signal):

  • Entry: Lower band touch (BB_BUY)
  • Stop: Below lower band (1% below)
  • Target: Middle band or upper band
  • Risk: 1%, Reward: 2-4%

3. Combining Multiple Timeframes

Top-Down Analysis:

  1. Daily (1d): Identify overall trend and major squeeze zones
  2. 4-Hour (6h): Confirm trend direction and intermediate breakouts
  3. 1-Hour (1h): Find entry signals (touch/breakout)
  4. 15-Minute (15m): Precise entry timing

Rule: Only take signals aligned with higher timeframe trend.

4. False Signal Reduction

Filters to Add:

  • Volume confirmation: Breakouts need high volume
  • RSI confirmation: BB_BUY + RSI < 30, BB_SELL + RSI > 70
  • Trend filter: Only trade in direction of 50-period MA
  • Time filter: Avoid low liquidity hours

Example Logic:

BB_BUY Signal = True IF:
  - Price within 0.1% of lower band AND
  - RSI < 35 AND
  - Volume > 20-period average

5. Optimization Guidelines

Backtesting Steps:

  1. Start with standard settings (Period: 20, Dev: 2.0)
  2. Test on 3-6 months of historical data
  3. Adjust one parameter at a time
  4. Optimize for your specific instrument (crypto, forex, stocks)
  5. Forward test for 1 month before live trading

Key Metrics:

  • Win rate > 50% for mean reversion
  • Win rate > 40% for breakouts (larger wins)
  • Profit factor > 1.5
  • Maximum drawdown < 15%

6. Common Mistakes to Avoid

Don't: Trade all signals blindly
Do: Filter by trend and volume

Don't: Use same settings for all timeframes
Do: Adjust parameters per timeframe

Don't: Ignore overall market trend
Do: Align with higher timeframe direction

Don't: Over-optimize on historical data
Do: Keep settings robust and simple

Don't: Trade during low liquidity
Do: Focus on active market hours

Quick Reference Table

Timeframe Style Period Deviation Touch Threshold Breakout Threshold Squeeze Priority Signals
1m Scalp 12 1.5 0.0003 1.003 Off BB_BUY/SELL
3m Scalp 15 1.8 0.0005 1.005 Off BB_BUY/SELL
5m Scalp 15 1.8 0.0005 1.005 Off BB_BUY/SELL
15m Day 20 2.0 0.001 1.01 On ALL
30m Day 20 2.0 0.001 1.01 On ALL
1h Swing 20 2.2 0.002 1.015 On BUY/SELL/PUMP
2h Swing 20 2.2 0.002 1.015 On BUY/SELL/PUMP
6h Swing+ 24 2.3 0.003 1.018 On PUMP/CRASH
1d Position 25 2.5 0.005 1.02 On PUMP/CRASH

Example Configuration Files

config_scalp.yaml

# 5-Minute Scalping
bb_period: 15
bb_deviation: 1.8
bb_touch_threshold: 0.0005
bb_breakout_threshold: 1.005
bb_squeeze_width_threshold: 0.015
enable_bb_touch_signal: true
enable_bb_breakout_signal: true
enable_bb_squeeze_signal: false
supported_volatility_action: ["BB_BUY", "BB_SELL"]
supported_volatility_action_broadcast: ["BB_BUY", "BB_SELL"]

config_day.yaml

# 15-Minute Day Trading
bb_period: 20
bb_deviation: 2.0
bb_touch_threshold: 0.001
bb_breakout_threshold: 1.01
bb_squeeze_width_threshold: 0.02
enable_bb_touch_signal: true
enable_bb_breakout_signal: true
enable_bb_squeeze_signal: true
supported_volatility_action: ["BUY", "SELL", "BB_BUY", "BB_SELL", "PUMP"]
supported_volatility_action_broadcast: ["BUY", "SELL", "PUMP", "CRASH", "BB_SELL", "BB_BUY"]

config_swing.yaml

# 1-Hour Swing Trading
bb_period: 20
bb_deviation: 2.2
bb_touch_threshold: 0.002
bb_breakout_threshold: 1.015
bb_squeeze_width_threshold: 0.025
enable_bb_touch_signal: true
enable_bb_breakout_signal: true
enable_bb_squeeze_signal: true
supported_volatility_action: ["BUY", "SELL", "PUMP", "CRASH"]
supported_volatility_action_broadcast: ["BUY", "SELL", "PUMP", "CRASH"]

config_position.yaml

# Daily Position Trading
bb_period: 25
bb_deviation: 2.5
bb_touch_threshold: 0.005
bb_breakout_threshold: 1.02
bb_squeeze_width_threshold: 0.03
enable_bb_touch_signal: false
enable_bb_breakout_signal: true
enable_bb_squeeze_signal: true
supported_volatility_action: ["PUMP", "CRASH", "BUY", "SELL"]
supported_volatility_action_broadcast: ["PUMP", "CRASH"]

Conclusion

Bollinger Bands are versatile indicators that work across all timeframes when properly configured. Key takeaways:

  1. Match settings to trading style: Tighter for scalping, wider for long-term
  2. Choose right signal type: Touch for ranging, breakout for trending, squeeze for volatility
  3. Combine with other indicators: Volume, RSI, trend filters
  4. Backtest thoroughly: Optimize for your specific market and timeframe
  5. Manage risk: Always use stop losses and position sizing

Start with standard settings, then gradually optimize based on your results. Good luck trading!

Ready to trade? Download MagicTradeBot free and test in paper mode before going live.