Atualizado
Eye Squeeze Breakout [EyeAlgo]

Eye Squeeze Breakout turns every volatility squeeze into a complete, measurable setup: it draws the compression box while price coils, fixes a direction bias before the release, plans the breakout trade (Entry, SL, TP1–TP3) and then records what actually happened, so you can see on your own symbol how often squeezes on that chart followed through.

█ OVERVIEW
Quiet markets often come before larger moves, but not every quiet period breaks out, and not every breakout follows through. This indicator is built to answer three practical questions:
▸ Is the market compressed right now, and how deep is the compression?
▸ If price breaks out of this range, where would the entry, stop and targets be?
▸ On this symbol and timeframe, how did past squeezes actually play out?
█ WHAT MAKES IT ORIGINAL
▸ Own compression measure (Eye Compression). It does not use Bollinger or Keltner bands. It compares current volatility with the symbol's own normal volatility, so the same settings adapt to gold, indices, forex or crypto.
▸ Own momentum line (Eye Drive). Distance of the close from its EMA (Length input, default 20), divided by ATR and lightly smoothed. Above zero buyers lead, below zero sellers lead. It is used for the breakout side and the release bias.
▸ Frozen squeeze box. The range of the squeeze is locked when the squeeze ends, so the breakout level never moves after the fact.
▸ Release bias decided before the breakout. The bias is fixed on the last squeeze bar, then measured against the first close outside the box.
▸ Full trade plan and self-tracking. Every breakout is simulated with partial exits, and the dashboard reports TP1/TP2/TP3 rates, full stops, fakeouts and average result in R.
▸ Filter lab. For six quality factors it shows the average result with and without that factor on your chart, so you can decide which filters help on your instrument instead of guessing.
█ HOW IT WORKS
1. Eye Compression
Two ratios are averaged: the average true range of the last 20 bars divided by its own 100-bar average, and the standard deviation of closes over 20 bars divided by its own 100-bar average. A reading of 1.0 means normal volatility, 0.5 means half of normal. Default levels: Low ≤ 0.85, Mid ≤ 0.70, High ≤ 0.55. A squeeze starts at the selected level (Mid by default) and must last at least 6 bars.
2. The squeeze box
While the squeeze is on, a box tracks the high and low of the range. The box color shows the deepest level reached (Low / Mid / High). When compression returns above the level, the box is frozen and armed for 10 bars. After release the box turns green or red on a taken breakout, dotted on a filtered-out one, and grey if no breakout comes within the window.
3. Release bias
On the last squeeze bar four votes are combined: Eye Drive side, Eye Drive slope, close versus the middle of the box, and the higher-timeframe EMA trend. The result (▲, ▼ or neutral) is printed above or below the box.
4. Breakout and trade plan
A breakout is a bar that closes outside the frozen box with Eye Drive on the same side. Entry is the breakout close (or a limit at the box edge in Retest mode). The stop is at the middle of the box by default, with a minimum of 0.5 ATR. TP1, TP2 and TP3 sit at 1R, 2R and 3R.
5. Result tracking
Each trade exits one third at each target. A stop that is hit first ends the trade. A trade still open after 60 bars is closed at the market. The result label (for example "TP3 ✓ +2.00R", "Stop after TP1 -0.33R", "Stop after TP2 +0.67R" or "Stop -1.00R") is printed on the chart and added to the dashboard statistics.

█ RESEARCH BEHIND THE DEFAULTS
Default settings (higher-TF trend filter on, 4H), dashboard row "Avg result · taken trades", measured on the full chart history available on 25 Oct 2026. Average result per trade in R, number of trades in brackets. These are in-sample numbers before spread and commission, shown so you can see the spread of outcomes across markets. They are not a performance expectation.
▸ NIFTY 50 — 15m +0.38R (51) · 30m +0.37R (44) · 1H +0.24R (52)
▸ BANKNIFTY — 15m −0.11R (51) · 30m +0.06R (49) · 1H +0.35R (57)
▸ GBPUSD — 15m +0.06R (64) · 30m +0.15R (83) · 1H +0.31R (55)
▸ EURUSD — 30m +0.20R (84) · 1H −0.13R (66)
▸ XAUUSD — 15m +0.17R (66) · 30m +0.11R (56) · 1H +0.11R (52)
▸ XAGUSD — 15m +0.06R (66) · 30m +0.05R (42) · 1H +0.02R (58)
▸ BTCUSD — 15m +0.06R (59) · 30m +0.18R (74) · 1H +0.03R (85)
▸ ETHUSD — 15m +0.08R (58) · 30m +0.18R (83) · 1H +0.01R (93)
▸ RELIANCE — 15m −0.04R (58) · 30m +0.13R (45) · 1H +0.16R (60)
▸ NAS100 — 15m +0.13R (72) · 30m +0.12R (80) · 1H −0.35R (57)
▸ SPX500 — 15m −0.05R (69) · 30m +0.07R (81) · 1H −0.07R (69)
▸ USOIL — 15m −0.04R (71) · 30m +0.13R (68) · 1H −0.30R (51)
▸ AAPL — 15m −0.09R (73) · 30m −0.24R (53) · 1H −0.05R (46)
Results differ a lot between markets and timeframes, and several are negative. Test the settings and timeframe on your own instrument with the dashboard and the Filter lab before relying on any signal.

█ HOW TO USE
1. Add the indicator and let the chart load enough history (at least a few hundred bars).
2. Watch the Status and Compression rows. A box on the chart means a squeeze is building. Violet = High, amber = Mid, sky blue = Low.
3. When the squeeze releases, note the bias label. "Bias ▲" with a long breakout is the cleaner case. A breakout against the bias is allowed but marked in the stats.
4. On a breakout the plan appears: Entry, SL, TP1, TP2, TP3 with prices. The star score (for example ★4/6) shows how many of the six quality factors the breakout meets. The maximum drops to 5 or 4 when the higher-TF trend or volume cannot be measured on the chart.
5. Check the dashboard and Filter lab for your symbol. If a factor clearly improves results with enough trades on both sides, tick it under "Quality filters".
Example (long): a High squeeze forms below resistance, the bias prints ▲, price closes above the box with Eye Drive positive and the higher-timeframe trend up. The plan shows the stop at the middle of the box and targets at 1R, 2R and 3R above the entry.
Example (short): the same in reverse. A close below the box with negative Eye Drive and a down-trending higher timeframe.

█ DASHBOARD
▸ Status, Compression (× normal), Drive, Release bias, Open trade, active Filters
▸ Squeezes found, Breakout rate, Trades taken (with filtered-out count)
▸ Reached TP1 / TP2 / TP3, Full stop (before TP1), Time exit (no TP1), Fakeout rate
▸ Avg result for taken trades and for all signals (before the higher-TF trend and quality filters)
▸ Long / Short TP1, TP1 by max depth, Bias → first exit side, TP1 with / against bias
▸ Filter lab: average R with and without each factor (higher-TF trend, High depth, release bias, strong candle, volume expansion, tight box). It shows "n/a" when a factor cannot be measured on the chart (for example no volume data). Green only appears when both sides have at least 20 trades.
▸ Squeeze state and Eye Drive direction on three higher timeframes (default 1H, 4H, D)
Rows with a count in brackets show their sample size. TP, stop, time-exit and fakeout rates use the Trades taken count as their base, so check it before trusting a percentage.
█ SETTINGS
Squeeze — Length, Baseline length (bars), Compression ≤ Low / Mid / High, Squeeze counts from level, Min squeeze bars, Breakout window (bars after release).
Breakout filters — Require drive agreement (breakout side), Trade only with higher-TF trend (on by default, 4H), Higher-TF trend timeframe, Higher-TF EMA length, Signals only inside session, Session (exchange time).
Quality filters (tick to require) — High squeeze depth only, Breakout with release bias, Strong breakout candle · body ≥ (also needs the close at least 0.1 ATR beyond the box), Volume expansion (× 20-bar average), Tight box (height ≤ × ATR). All are off by default and measured in the Filter lab.
Trade plan — Entry (Breakout close / Retest of box edge), Retest window (bars), Stop loss at (Box middle / Box opposite side / ATR), ATR stop multiplier (ATR mode), Min stop distance (× ATR), TP1 / TP2 / TP3 (R), Move stop to entry after TP1 (off by default), Fakeout check (bars), Max bars in trade.
Visuals — boxes, bias labels, trade plan, result labels, filtered-out marks, background tint, setups kept on chart, colors.
Dashboard — show / compact mode, position, text size, multi-timeframe rows and their timeframes.
█ ALERTS
▸ Squeeze started (selected level) · Low / Mid / High level reached · Squeeze ready (min bars reached) · Squeeze released
▸ Breakout Long / Breakout Short (passes filters) · TP1 reached · Stop hit (before TP1) · Fakeout
▸ Bullish drive fading · Bearish drive fading
For alerts that include direction, entry, SL, TP1–TP3, retest fills and the release bias, create an alert with the condition "Any alert() function call". All alerts fire once per bar close.
█ IMPORTANT NOTES & LIMITATIONS
▸ Signals, boxes and statistics are calculated on confirmed bars only and do not repaint. The dashboard rows Status, Compression, Drive, Release bias (while a squeeze is on) and Open trade, plus the background tint, follow the live bar and can change until it closes.
▸ The trade simulation is a simplification. Targets fill exactly at their price. When a bar touches both the stop and a target, the stop is assumed first (with "Move stop to entry after TP1" on, TP1 is assumed before the entry stop). A gap through the stop fills at the open and can lose more than 1R. Retest entries fill at the box edge even if price gaps past it. No spread, slippage or commission is included.
▸ Statistics depend on how much history the chart loads and change as new bars arrive. Small samples (under ~30 trades) are not reliable.
▸ Eye Compression is a volatility ratio, not order flow, and the release bias is a reading of current conditions, not a forecast.
▸ Choppy markets produce fakeouts. The Fakeout rate row shows how often price closed back inside the box within 3 bars of entry (Fakeout check) and before TP1 (in Retest mode at least 0.1 ATR inside).
▸ Only the most recent setups are kept on the chart (30 by default) because of TradingView drawing limits. Statistics still cover the full history.
▸ This is an analysis tool. It does not place trades.
────────────────
█ DISCLAIMER
This script is for educational and informational purposes only and is not financial advice. All figures shown are historical, in-sample and before trading costs. Past results do not guarantee future results. Always do your own testing and use proper risk management.
This is an open-source script. Feel free to study and learn from it; republishing is subject to TradingView's House Rules.
█ OVERVIEW
Quiet markets often come before larger moves, but not every quiet period breaks out, and not every breakout follows through. This indicator is built to answer three practical questions:
▸ Is the market compressed right now, and how deep is the compression?
▸ If price breaks out of this range, where would the entry, stop and targets be?
▸ On this symbol and timeframe, how did past squeezes actually play out?
█ WHAT MAKES IT ORIGINAL
▸ Own compression measure (Eye Compression). It does not use Bollinger or Keltner bands. It compares current volatility with the symbol's own normal volatility, so the same settings adapt to gold, indices, forex or crypto.
▸ Own momentum line (Eye Drive). Distance of the close from its EMA (Length input, default 20), divided by ATR and lightly smoothed. Above zero buyers lead, below zero sellers lead. It is used for the breakout side and the release bias.
▸ Frozen squeeze box. The range of the squeeze is locked when the squeeze ends, so the breakout level never moves after the fact.
▸ Release bias decided before the breakout. The bias is fixed on the last squeeze bar, then measured against the first close outside the box.
▸ Full trade plan and self-tracking. Every breakout is simulated with partial exits, and the dashboard reports TP1/TP2/TP3 rates, full stops, fakeouts and average result in R.
▸ Filter lab. For six quality factors it shows the average result with and without that factor on your chart, so you can decide which filters help on your instrument instead of guessing.
█ HOW IT WORKS
1. Eye Compression
Two ratios are averaged: the average true range of the last 20 bars divided by its own 100-bar average, and the standard deviation of closes over 20 bars divided by its own 100-bar average. A reading of 1.0 means normal volatility, 0.5 means half of normal. Default levels: Low ≤ 0.85, Mid ≤ 0.70, High ≤ 0.55. A squeeze starts at the selected level (Mid by default) and must last at least 6 bars.
2. The squeeze box
While the squeeze is on, a box tracks the high and low of the range. The box color shows the deepest level reached (Low / Mid / High). When compression returns above the level, the box is frozen and armed for 10 bars. After release the box turns green or red on a taken breakout, dotted on a filtered-out one, and grey if no breakout comes within the window.
3. Release bias
On the last squeeze bar four votes are combined: Eye Drive side, Eye Drive slope, close versus the middle of the box, and the higher-timeframe EMA trend. The result (▲, ▼ or neutral) is printed above or below the box.
4. Breakout and trade plan
A breakout is a bar that closes outside the frozen box with Eye Drive on the same side. Entry is the breakout close (or a limit at the box edge in Retest mode). The stop is at the middle of the box by default, with a minimum of 0.5 ATR. TP1, TP2 and TP3 sit at 1R, 2R and 3R.
5. Result tracking
Each trade exits one third at each target. A stop that is hit first ends the trade. A trade still open after 60 bars is closed at the market. The result label (for example "TP3 ✓ +2.00R", "Stop after TP1 -0.33R", "Stop after TP2 +0.67R" or "Stop -1.00R") is printed on the chart and added to the dashboard statistics.
█ RESEARCH BEHIND THE DEFAULTS
Default settings (higher-TF trend filter on, 4H), dashboard row "Avg result · taken trades", measured on the full chart history available on 25 Oct 2026. Average result per trade in R, number of trades in brackets. These are in-sample numbers before spread and commission, shown so you can see the spread of outcomes across markets. They are not a performance expectation.
▸ NIFTY 50 — 15m +0.38R (51) · 30m +0.37R (44) · 1H +0.24R (52)
▸ BANKNIFTY — 15m −0.11R (51) · 30m +0.06R (49) · 1H +0.35R (57)
▸ GBPUSD — 15m +0.06R (64) · 30m +0.15R (83) · 1H +0.31R (55)
▸ EURUSD — 30m +0.20R (84) · 1H −0.13R (66)
▸ XAUUSD — 15m +0.17R (66) · 30m +0.11R (56) · 1H +0.11R (52)
▸ XAGUSD — 15m +0.06R (66) · 30m +0.05R (42) · 1H +0.02R (58)
▸ BTCUSD — 15m +0.06R (59) · 30m +0.18R (74) · 1H +0.03R (85)
▸ ETHUSD — 15m +0.08R (58) · 30m +0.18R (83) · 1H +0.01R (93)
▸ RELIANCE — 15m −0.04R (58) · 30m +0.13R (45) · 1H +0.16R (60)
▸ NAS100 — 15m +0.13R (72) · 30m +0.12R (80) · 1H −0.35R (57)
▸ SPX500 — 15m −0.05R (69) · 30m +0.07R (81) · 1H −0.07R (69)
▸ USOIL — 15m −0.04R (71) · 30m +0.13R (68) · 1H −0.30R (51)
▸ AAPL — 15m −0.09R (73) · 30m −0.24R (53) · 1H −0.05R (46)
Results differ a lot between markets and timeframes, and several are negative. Test the settings and timeframe on your own instrument with the dashboard and the Filter lab before relying on any signal.
█ HOW TO USE
1. Add the indicator and let the chart load enough history (at least a few hundred bars).
2. Watch the Status and Compression rows. A box on the chart means a squeeze is building. Violet = High, amber = Mid, sky blue = Low.
3. When the squeeze releases, note the bias label. "Bias ▲" with a long breakout is the cleaner case. A breakout against the bias is allowed but marked in the stats.
4. On a breakout the plan appears: Entry, SL, TP1, TP2, TP3 with prices. The star score (for example ★4/6) shows how many of the six quality factors the breakout meets. The maximum drops to 5 or 4 when the higher-TF trend or volume cannot be measured on the chart.
5. Check the dashboard and Filter lab for your symbol. If a factor clearly improves results with enough trades on both sides, tick it under "Quality filters".
Example (long): a High squeeze forms below resistance, the bias prints ▲, price closes above the box with Eye Drive positive and the higher-timeframe trend up. The plan shows the stop at the middle of the box and targets at 1R, 2R and 3R above the entry.
Example (short): the same in reverse. A close below the box with negative Eye Drive and a down-trending higher timeframe.
█ DASHBOARD
▸ Status, Compression (× normal), Drive, Release bias, Open trade, active Filters
▸ Squeezes found, Breakout rate, Trades taken (with filtered-out count)
▸ Reached TP1 / TP2 / TP3, Full stop (before TP1), Time exit (no TP1), Fakeout rate
▸ Avg result for taken trades and for all signals (before the higher-TF trend and quality filters)
▸ Long / Short TP1, TP1 by max depth, Bias → first exit side, TP1 with / against bias
▸ Filter lab: average R with and without each factor (higher-TF trend, High depth, release bias, strong candle, volume expansion, tight box). It shows "n/a" when a factor cannot be measured on the chart (for example no volume data). Green only appears when both sides have at least 20 trades.
▸ Squeeze state and Eye Drive direction on three higher timeframes (default 1H, 4H, D)
Rows with a count in brackets show their sample size. TP, stop, time-exit and fakeout rates use the Trades taken count as their base, so check it before trusting a percentage.
█ SETTINGS
Squeeze — Length, Baseline length (bars), Compression ≤ Low / Mid / High, Squeeze counts from level, Min squeeze bars, Breakout window (bars after release).
Breakout filters — Require drive agreement (breakout side), Trade only with higher-TF trend (on by default, 4H), Higher-TF trend timeframe, Higher-TF EMA length, Signals only inside session, Session (exchange time).
Quality filters (tick to require) — High squeeze depth only, Breakout with release bias, Strong breakout candle · body ≥ (also needs the close at least 0.1 ATR beyond the box), Volume expansion (× 20-bar average), Tight box (height ≤ × ATR). All are off by default and measured in the Filter lab.
Trade plan — Entry (Breakout close / Retest of box edge), Retest window (bars), Stop loss at (Box middle / Box opposite side / ATR), ATR stop multiplier (ATR mode), Min stop distance (× ATR), TP1 / TP2 / TP3 (R), Move stop to entry after TP1 (off by default), Fakeout check (bars), Max bars in trade.
Visuals — boxes, bias labels, trade plan, result labels, filtered-out marks, background tint, setups kept on chart, colors.
Dashboard — show / compact mode, position, text size, multi-timeframe rows and their timeframes.
█ ALERTS
▸ Squeeze started (selected level) · Low / Mid / High level reached · Squeeze ready (min bars reached) · Squeeze released
▸ Breakout Long / Breakout Short (passes filters) · TP1 reached · Stop hit (before TP1) · Fakeout
▸ Bullish drive fading · Bearish drive fading
For alerts that include direction, entry, SL, TP1–TP3, retest fills and the release bias, create an alert with the condition "Any alert() function call". All alerts fire once per bar close.
█ IMPORTANT NOTES & LIMITATIONS
▸ Signals, boxes and statistics are calculated on confirmed bars only and do not repaint. The dashboard rows Status, Compression, Drive, Release bias (while a squeeze is on) and Open trade, plus the background tint, follow the live bar and can change until it closes.
▸ The trade simulation is a simplification. Targets fill exactly at their price. When a bar touches both the stop and a target, the stop is assumed first (with "Move stop to entry after TP1" on, TP1 is assumed before the entry stop). A gap through the stop fills at the open and can lose more than 1R. Retest entries fill at the box edge even if price gaps past it. No spread, slippage or commission is included.
▸ Statistics depend on how much history the chart loads and change as new bars arrive. Small samples (under ~30 trades) are not reliable.
▸ Eye Compression is a volatility ratio, not order flow, and the release bias is a reading of current conditions, not a forecast.
▸ Choppy markets produce fakeouts. The Fakeout rate row shows how often price closed back inside the box within 3 bars of entry (Fakeout check) and before TP1 (in Retest mode at least 0.1 ATR inside).
▸ Only the most recent setups are kept on the chart (30 by default) because of TradingView drawing limits. Statistics still cover the full history.
▸ This is an analysis tool. It does not place trades.
────────────────
█ DISCLAIMER
This script is for educational and informational purposes only and is not financial advice. All figures shown are historical, in-sample and before trading costs. Past results do not guarantee future results. Always do your own testing and use proper risk management.
This is an open-source script. Feel free to study and learn from it; republishing is subject to TradingView's House Rules.
Notas de Lançamento
Chart preview updated to NIFTY 50 · 15m (default settings).Small fix: on charts where the higher-TF trend timeframe is lower than the chart timeframe (for example D or W charts), the trend request now uses the chart timeframe. The trend filter is still switched off in that case, so results do not change.
USOIL 30m example with default settings: +0.13R over 68 taken trades (in-sample, before spread and commission). See the research table in the description for all tested symbols.
Aviso legal
As informações e publicações não se destinam a ser, e não constituem, conselhos ou recomendações financeiras, de investimento, comerciais ou de outro tipo fornecidos ou endossados pela TradingView. Leia mais nos Termos de Uso.
Aviso legal
As informações e publicações não se destinam a ser, e não constituem, conselhos ou recomendações financeiras, de investimento, comerciais ou de outro tipo fornecidos ou endossados pela TradingView. Leia mais nos Termos de Uso.