Categories

Bollinger Squeeze Advanced Indicator for MT4
Bollinger Squeeze Advanced is a free MetaTrader 4 indicator that flags low-volatility squeeze conditions by comparing Bollinger Bands to a Keltner Channel, while also plotting a histogram from whichever momentum oscillator you choose. Download it free from mt4indicators.com and attach it to any chart in a separate indicator window.What Is Bollinger Squeeze Advanced?This is an…
Download the Bollinger Squeeze Advanced Indicator for MT4Bollinger Squeeze Advanced is a free MetaTrader 4 indicator that flags low-volatility squeeze conditions by comparing Bollinger Bands to a Keltner Channel, while also plotting a histogram from whichever momentum oscillator you choose. Download it free from mt4indicators.com and attach it to any chart in a separate indicator window.
What Is Bollinger Squeeze Advanced?
This is an updated build (v9) of Nick Bilak’s original Bollinger Squeeze concept, modified by Akuma99, and it works on the same core idea popularized by the well-known TTM Squeeze: when Bollinger Bands contract inside a Keltner Channel, volatility has compressed and a bigger move often follows. The indicator calculates a fixed 20-period Bollinger Bands (2.0 deviation) and compares it against a fixed 20-period Keltner Channel built from ATR with a 1.5 multiplier. When the Bollinger Bands’ width drops below the Keltner Channel’s width, that bar is flagged as being inside a squeeze.
Layered on top of that squeeze test is a selectable momentum trigger oscillator — Stochastic, CCI, RSI, MACD signal, Momentum, Williams %R, ADX or DeMarker, chosen through the triggerType input — which is plotted as a color-coded histogram in the indicator subwindow. The histogram tells you the direction and strength of momentum; the squeeze test tells you when volatility has compressed enough that a move is more likely to be coming.
Key Features
- triggerType input selects the momentum oscillator driving the histogram: 1 Stochastic, 2 CCI, 3 RSI, 4 MACD, 5 Momentum, 6 Williams %R, 7 ADX, or 8 DeMarker (the default).
- A separate period input for whichever trigger you choose (stochPeriod_trigger1, cciPeriod_trigger2, rsiPeriod_trigger3, the three MACD periods, momentumPeriod_trigger5, williamsPR_trigger6, adx_trigger7, or demarker_trigger8), so you’re not stuck with one fixed setting.
- Histogram color automatically switches to an alternate color pair whenever a bar is inside a squeeze, so squeeze bars are visually distinct from normal-volatility bars at a glance.
- An arrow prints above any bar flagged as being inside a squeeze, giving you a clear marker independent of the histogram color.
- Indicator subwindow name and level lines update automatically to match whichever trigger oscillator you’ve selected.
How to Use It
Copy bollinger-squeeze-advanced.mq4 into your MQL4/Indicators folder, restart MT4 or refresh the Navigator, and drag it into a new subwindow. Pick your triggerType first — DeMarker (8) is the default, but if you’re already a Stochastic, CCI, RSI, MACD, Momentum, Williams %R or ADX trader, switch to that number instead and set the matching period input so it lines up with what you’re used to.
Reading it combines two separate pieces of information. The histogram itself tells you momentum direction and strength exactly as the underlying oscillator would — bars above the zero line mean positive/bullish momentum on the trigger you selected, bars below mean negative/bearish. The squeeze arrow and alternate histogram color are the second, independent signal: when they appear, the Bollinger Bands have contracted inside the Keltner Channel for that bar, which is the coiled-spring condition many volatility traders watch for. A common approach is to wait for the squeeze condition to appear, compressed volatility with the arrow showing, and then use the histogram’s direction as the bias for the breakout you’re expecting once volatility expands again.
One thing to know from the code before relying on the very latest bar: the squeeze test and the trigger histogram are both recalculated on the current, still-forming bar with every incoming tick, and there’s no wait-for-the-bar-to-close gate built in. That means the arrow and color on the most recent, unclosed candle can appear, change, or disappear again before that candle actually finishes — so treat a squeeze signal on the current bar as provisional and confirm it once the bar has closed, rather than acting on it mid-candle.
Best Timeframes / Best Use Cases
Since the Bollinger/Keltner squeeze test itself is fixed (20-period, 2.0 deviation, 1.5 Keltner factor) and only the trigger oscillator and its period are adjustable, this indicator is best used on timeframes where a 20-period lookback is meaningful for the kind of moves you’re trying to catch — commonly H1 through Daily for swing-style volatility breakout trading, since that’s the range where a squeeze-and-expand cycle plays out over a reasonable holding period. It’s built specifically around identifying pre-breakout compression, so it fits volatility and breakout-focused approaches more than pure trend-following or mean-reversion styles.
Final Thoughts
Bollinger Squeeze Advanced packages a genuinely useful volatility-compression test with a flexible, multi-oscillator momentum trigger, so you’re not locked into one particular indicator’s bias while watching for a squeeze. The trade-off is that both the squeeze flag and the histogram update live on the current bar, so the most recent reading isn’t final until that candle closes — build that into how you confirm signals rather than reacting to the very first print.
- triggerType (default 8) — Selects which oscillator drives the histogram: 1 Stochastic, 2 CCI, 3 RSI, 4 MACD, 5 Momentum, 6 Williams %R, 7 ADX, 8 DeMarker (default).
- stochPeriod_trigger1 (default 14) — Period used for the Stochastic %K when triggerType = 1.
- cciPeriod_trigger2 (default 50) — Period used for CCI when triggerType = 2.
- rsiPeriod_trigger3 (default 14) — Period used for RSI when triggerType = 3.
- macd_fastEMA_trigger4 (default 12) — Fast EMA period used for MACD when triggerType = 4.
- macd_slowEMA_trigger4 (default 26) — Slow EMA period used for MACD when triggerType = 4.
- macd_macdEMA_trigger4 (default 9) — Signal line EMA period used for MACD when triggerType = 4.
- momentumPeriod_trigger5 (default 14) — Period used for Momentum when triggerType = 5.
- williamsPR_trigger6 (default 24) — Period used for Williams %R when triggerType = 6.
- adx_trigger7 (default 14) — Period used for ADX when triggerType = 7.
- demarker_trigger8 (default 13) — Period used for DeMarker when triggerType = 8, the default trigger.
FAQs About the MT4 Bollinger Squeeze Advanced Indicator for MT4
What oscillators can I use as the trigger?
Eight choices via triggerType: 1 Stochastic, 2 CCI, 3 RSI, 4 MACD, 5 Momentum, 6 Williams %R, 7 ADX, or 8 DeMarker, which is the default.
Are the Bollinger Bands and Keltner Channel settings adjustable?
No — the squeeze test itself uses fixed internal values in the code (20-period Bollinger Bands with a 2.0 deviation, and a 20-period ATR-based Keltner Channel with a 1.5 multiplier); only the trigger oscillator and its period are exposed as inputs.
Is Bollinger Squeeze Advanced non-repainting?
No. Both the squeeze test and the trigger histogram are recalculated on the current, still-forming bar with every tick, so the squeeze arrow and histogram color on the most recent candle can change before that candle closes.
What does the squeeze arrow actually mean?
It appears whenever the Bollinger Bands’ width is narrower than the Keltner Channel’s width for that bar — a volatility-compression condition similar to the well-known TTM Squeeze concept.
What's the difference between the two histogram colors?
One color pair (upB/loB) is used during normal volatility; the indicator switches to an alternate color pair (upB2/loB2) for any bar flagged as being inside a squeeze.
Who originally wrote this indicator?
The code header credits the original concept to Nick Bilak, with this v9 build modified by Akuma99.
