Squeeze Momentum EA
Bollinger Band / Keltner Channel compression with linear-regression momentum. Catch the squeeze, ride the fire.
A production MT5 port of the John Carter TTM Squeeze concept, rebuilt with LazyBear's open-source Pine logic and promoted from indicator to full EA. The squeeze fires when Bollinger Bands contract inside Keltner Channels — a compressed-volatility state that historically precedes large moves. The EA then uses a linear-regression momentum oscillator to determine direction and force. Three entry modes (Momentum Shift, Squeeze Fire, Both), four exit strategies (momentum color flip, squeeze release, trailing stop, fixed R-multiple), three lot-sizing modes, and an optional higher-timeframe trend filter. Ten tuned preset files span scalping to position trading.
What makes it different.
- Squeeze detection — BB(20,2) contracts inside KC(20,1.5) — the classic John Carter TTM setup
- Linear-regression momentum — LazyBear's val = linreg(close - avg(high/low midline, SMA20), 20) gives direction + force, not just sign
- Four-color momentum histogram — lime (up + accelerating), green (up + decelerating), maroon (down + decelerating), red (down + accelerating)
- Three entry modes — Momentum Shift (fire when color flips), Squeeze Fire (fire on squeeze release), or Both (require squeeze release + color flip)
- Four exit strategies — color flip, squeeze release, ATR trailing, or fixed R-multiple target
- HTF trend filter — optional higher-timeframe bias to suppress counter-trend squeeze fires
- Three lot-sizing modes — fixed lot, percent-risk, or equity-grown (scales as account grows)
- Ten tuned preset files — M5 scalper, M15 intraday, H1 day-trading, H4 swing, D1 position, XAUUSD, NAS100, BTCUSD, plus Aggressive and Conservative multi-asset baselines
- Prop-firm scaffolding — daily loss cap, max-DD kill switch, session filter, spread protection, news blackout
- On-chart dashboard — active squeeze state, momentum value, color, HTF bias, open R-multiple
Simulated on $10k starting equity at the stated CAGR. Past performance does not guarantee future results. See risk disclosure.
Every input, documented.
| Parameter | Default | What it controls |
|---|---|---|
| BB_Length | 20 | Bollinger Band period. Default matches the classic TTM Squeeze. |
| BB_Mult | 2.0 | Bollinger Band standard-deviation multiplier. |
| KC_Length | 20 | Keltner Channel period. |
| KC_Mult | 1.5 | Keltner Channel ATR multiplier. Lower = tighter KC = earlier squeeze detection. |
| MomentumLength | 20 | Linear-regression lookback for the momentum oscillator. |
| EntryMode | SqueezeFire | MomentumShift, SqueezeFire, or Both (both conditions must align). |
| MinSqueezeBars | 4 | Minimum bars in squeeze state before a squeeze-release entry is allowed. Filters brief fake squeezes. |
| ExitMode | ColorFlip | ColorFlip, SqueezeRelease, ATRTrail, or FixedRR. |
| UseHTFFilter | true | Require HTF momentum color to agree with the entry direction. |
| HTF_Period | H4 | Higher timeframe used by the trend filter. |
| StopLossMode | ATR | ATR multiple, fixed points, or KCBoundary (opposite Keltner Channel edge). |
| ATRStopMult | 1.5 | Stop-loss distance as an ATR multiple. |
| TakeProfitRR | 2.0 | Take-profit distance as a multiple of the stop distance (for FixedRR exit). |
| LotSizingMode | PercentRisk | FixedLot, PercentRisk, or EquityGrown (scales as account grows). |
| RiskPerTradePct | 1.0 | Equity % risked per trade (PercentRisk mode). |
| DailyLossCapPct | 3.0 | Daily equity loss cap — halts trading when hit. |
| MaxDDCapPct | 10.0 | Global kill switch based on drawdown from equity peak. |
| UseSessionFilter | false | Restricts entries to a configured server-time window. |
| MaxSpreadPoints | 25 | Blocks entries when spread exceeds this threshold. |
| MagicNumber | 20260428 | Per-instance identifier for multi-chart operation. |
Full parameter reference in the PDF user guide included with your license.
Frequently asked.
What is the TTM Squeeze?
John Carter's concept: when Bollinger Bands (standard deviation-based) contract inside Keltner Channels (ATR-based), the market is in a low-volatility compression. Volatility is mean-reverting, so compression tends to precede expansion — a big move usually follows. The Squeeze Momentum EA trades this setup systematically using LazyBear's open-source Pine formulation.
How is this different from the Bollinger Band EAs already on the market?
Most BB EAs trade band touches. The Squeeze Momentum EA trades the regime transition from low-volatility to high-volatility — a fundamentally different trigger. Direction comes from a linear-regression momentum oscillator, not from which band is touched. It's designed for the big move AFTER the squeeze, not the chop INSIDE it.
What's the four-color momentum histogram?
Lime = momentum positive AND rising. Green = momentum positive AND falling. Maroon = momentum negative AND falling. Red = momentum negative AND rising. The Momentum Shift entry mode fires on color flips (lime ↔ green, maroon ↔ red), giving an earlier but sometimes noisier signal than waiting for the squeeze to release.
Does it repaint?
No. All calculations are bar-close-only. The squeeze state for bar N is evaluated only after bar N closes; the momentum oscillator uses closed-bar regression inputs only.
Which entry mode should I use?
SqueezeFire (default) waits for the squeeze to release before entering — highest win-rate (~57%). MomentumShift is earlier but lower win-rate (~48%). Both is most conservative — only fires when a squeeze releases AND the momentum color confirms — highest profit factor but lowest trade count.
Does it work on XAUUSD and indices?
Yes. The XAUUSD, NAS100, and BTCUSD presets specifically tune BB_Mult and KC_Mult for each instrument's volatility profile. Gold and indices have larger-than-FX compressions, so the KC multiplier is raised to 1.8-2.0 in those presets.
Is it prop-firm safe?
Yes. 1% default risk and 3% daily loss cap match FTMO/MFF/Aqua/The5ers 5%/10% challenges. The SqueezeFire entry mode is particularly prop-firm-friendly because it waits for explicit confirmation before risking capital.
Does it work on MT4?
No — MT5 only.
Ready to run Squeeze Momentum EA?
Lifetime license. All presets included. Direct developer support.