Scanning ES, NQ and Gold Futures for Squeezes
Ask around for a TTM Squeeze scanner and you'll find plenty — for stocks. Futures traders are mostly told to keep a chart grid open in ThinkorSwim or TradingView and eyeball it. That's not because futures traders don't want squeeze scanning; ES and NQ are arguably the best squeeze instruments on the board, with deep liquidity and clean volatility cycles. The gap exists because futures data is genuinely harder to scan correctly, in two specific ways: the session never really ends, and the contract you're charting periodically ceases to exist.
This guide walks through both problems and how a scanner has to handle them. If you want the squeeze fundamentals first, start with What Is the TTM Squeeze?
The instruments
| Symbol | Contract | Exchange | Roll cycle |
|---|---|---|---|
| ES | E-mini S&P 500 | CME Globex | Quarterly (Mar / Jun / Sep / Dec) |
| NQ | E-mini Nasdaq-100 | CME Globex | Quarterly (Mar / Jun / Sep / Dec) |
| GC | Gold | COMEX (CME Group) | Active months roughly every other month |
Problem one: the 23-hour session
CME Globex trades from Sunday evening to Friday evening with only a one-hour maintenance halt each day (5–6 PM ET). Compared with a 6.5-hour stock session, that changes squeeze scanning in several concrete ways:
- Intraday indicator windows mean something different. Twenty hourly bars on AAPL span about three trading days; twenty hourly bars on ES span less than one. A "60-minute squeeze" on a future is a much shorter-lived event in calendar terms, and it can form and fire entirely overnight while you sleep.
- Overnight compression is a recurring setup. Futures routinely coil through the quiet Asian and European hours and release around US data or the cash open. A scanner that only updates during US regular hours misses the build-up entirely — by the open, the interesting part already happened.
- Daily bars close at a different time. A futures "day" ends at 5 PM ET (the Globex maintenance break), not 4 PM with the stock market. A scanner has to track stock and futures bar boundaries independently or its daily and weekly cells will be perpetually half-wrong for one asset class. The Pulse schedules stock and futures fetches on their own clocks for exactly this reason.
Problem two: the roll, and how it silently corrupts your bands
This is the one that bites people who never see it coming. A futures contract expires. The ES June contract and the ES September contract are different instruments that trade simultaneously at different prices — the gap between them (carry, dividends, rates) is routinely several points on ES and can be tens of dollars on gold.
To chart "ES" as one long history, data vendors stitch contracts into a continuous contract: June's bars up to the roll date, September's bars after. Done naively — just splicing the two series — this leaves a price jump at every quarterly roll that never happened in any tradable market. Nobody bought the high side of that gap. It is a pure data artifact.
Now recall what the squeeze is made of. Every input is a 20-bar rolling window:
- Bollinger Bands use the standard deviation of the last 20 closes. Push one artificial 10-point jump into that window and the deviation balloons — the bands blow wide open for the next 20 bars.
- Keltner Channels use the average True Range of the last 20 bars. True Range explicitly includes the gap from the prior close, so the roll gap inflates ATR for 20 bars too — but by a different amount than it inflates the standard deviation.
- The squeeze condition is BB-inside-KC on both sides. With both envelopes distorted by different amounts, the comparison becomes meaningless: squeezes that were building get "fired" by phantom volatility, and false squeeze states appear as the distortion decays out of the window.
- The damage isn't confined to the squeeze. The 8/21/50/200 EMAs each bend toward a price that never traded — the 200 EMA carries the error for months of bars. SuperTrend, built on ATR, can flip direction off the artifact. The momentum histogram's regression input jumps. On a composite scanner, one bad seam poisons every component at once.
The honest trade-off: back-adjusted history is no longer a record of literal past price levels, so very old support/resistance levels drift slightly from what a raw chart shows. For indicator computation that trade is overwhelmingly worth it — a phantom 10-point candle is a far bigger lie than a 10-point level shift on bars from two years ago.
What to look for on a futures squeeze board
With clean data, futures squeeze scanning works like it does anywhere else — see the multi-timeframe guide for the general method. A few futures-specific patterns worth knowing:
- Pre-data compression. ES and NQ frequently build 15-minute and hourly squeezes in the hours before CPI, FOMC and jobs numbers. The fire direction after the release is fast and often trends for the session. (It is also where stops get destroyed — energy, not direction, remember.)
- Index/gold divergence. ES and NQ compress and fire together more often than not; GC marches to its own drummer (real rates, dollar). A board where the indices are green and gold is red is normal, not a signal error.
- Check the board before the US open. Because futures trade overnight, the 4-hour and hourly cells at 9 AM already encode the overnight session — a context read stock traders simply don't get from their own charts.
Why we built this into The Pulse
The Pulse scans stocks and CME futures side by side on the same board — to our knowledge, the only squeeze heatmap that does. It runs in the browser, so there's no ThinkorSwim installation or scripting required, the futures history is roll-adjusted before the math runs, and futures bars update around their own 23-hour clock rather than the stock session. ES is included in the free tier, so you can watch a real futures squeeze cycle end-to-end without paying anything.
Watch ES squeeze cycles live — free
The free tier includes ES across all seven timeframes, roll-adjusted, updating around the clock. NQ and GC are on the full board.
Open the free heatmapFurther reading
For informational purposes only. Not financial advice. Trading involves substantial risk of loss. Futures trading in particular can result in losses exceeding your initial investment.