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!

📎 Related Topics