Volatility Squeeze: Timing Breakouts When Price Coils
Learn how to use a volatility squeeze to time breakout entries, measure compression with ATR or range percentile, and build the rule as a no-code bot.

What a volatility squeeze actually is
A volatility squeeze is a stretch where price compresses: daily ranges shrink, the market coils, and buyers and sellers reach a temporary truce. Volatility is mean reverting, so tight periods tend to be followed by wide ones. The squeeze does not tell you direction. It tells you that a move, when it comes, is likely to be bigger than what came before.
That distinction matters for bots. A squeeze detector is a timing filter, not an entry signal. It answers "is this a good moment to arm a breakout bot?" while a separate rule answers "which way do I take it?"

Three ways to measure compression
You do not need anything exotic. Pick one measure, define it in plain language, and stay consistent.
The range percentile approach is the most intuitive: measure the high to low span of the last 20 bars and ask where it sits relative to the last 100 readings. The ATR ratio version is smoother and adapts across instruments, which helps if the same bot runs on several symbols. Whichever you choose, express it relative to the asset's own history, never as a fixed price amount, or the rule breaks the moment volatility regime shifts. and doubles as your stop and sizing input.
A squeeze is a statement about the past being quiet, not a promise that the future will be loud. Plenty of squeezes simply continue as squeezes.
Turning the squeeze into a bot rule
The practical pattern is a two-stage condition: compression arms the bot, expansion triggers it.
- Arm: compression measure sits in its lowest quartile for a set number of bars. This is a state, not a trade.
- Define the box: record the highest high and lowest low of the compression window. These become your breakout levels.
- Trigger: a candle closes beyond the box boundary, ideally with range noticeably larger than the recent average.
- Stop: place it inside the box, often at the opposite side or an ATR multiple below entry.
- Expire: if no trigger fires within a set number of bars after arming, disarm and rebuild the box.
On algomax you describe exactly that in conversation, in your own language, and the assistant turns it into a ready-to-run bot with no code involved. If phrasing it precisely feels awkward, this guide on covers the vocabulary that translates cleanly.
Add the expiry rule. Without it, a bot keeps an ancient, stale box armed for weeks and eventually fires on a breakout of levels nobody is watching anymore.

Where squeeze bots go wrong
- Trading every squeeze. Compression is common; explosive follow-through is not. Expect a low hit rate and size accordingly with .
- Stops too tight. Squeeze entries sit right where the first shakeout happens. A stop just outside the box gets swept constantly. Anchor it to ATR measured after expansion begins, not during the quiet phase.
- Ignoring the cost of chop. Failed squeezes produce clusters of small losses plus fees. Model the fees honestly or your backtest flatters you.
- Over-tuning the thresholds. The bottom 18th percentile over 87 bars is not insight, it is curve fitting. Round numbers, then confirm on unseen data with .
- Wrong timeframe for the venue. A 15-minute squeeze on a 24/7 crypto pair behaves differently from one that straddles a stock market open with an overnight gap.
Key takeaways
- A volatility squeeze times when to look for a breakout; it never tells you direction.
- Measure compression relative to the instrument's own recent history, using range percentile, an ATR ratio, or band width.
- Build it as arm, define box, trigger on expansion, stop inside the box, expire if nothing happens.
- Expect many small losses between the few large moves, and stress the rule on out-of-sample data before going live.
Frequently asked questions
Does a volatility squeeze predict the direction of the breakout?
No. Compression only signals that volatility is likely to expand at some point. Direction has to come from a separate rule, such as which side of the range price closes beyond, or a trend filter on a higher timeframe.
How long should a squeeze last before I trade the breakout?
There is no universal number, but requiring compression to persist for several bars filters out one-off quiet candles. Test a small range of values on your instrument and timeframe rather than optimising to a single best-looking setting.
Where should the stop go on a squeeze breakout?
Most traders place it inside the compression box, often at the opposite boundary or an ATR multiple away from entry. Stops placed immediately outside the box tend to get swept by the first shakeout after expansion.
Do squeeze strategies work better in crypto or stocks?
They can work in both, but the mechanics differ. Crypto trades 24/7 so ranges build continuously, while stocks gap overnight, which can resolve a squeeze before your bot ever sees an intraday trigger.
Can I build a squeeze breakout bot without coding?
Yes. On algomax you describe the compression condition, the breakout trigger, the stop and the expiry rule in plain conversational language, and the assistant turns it into a bot you can backtest and then run through your own broker keys.