0
Price Action · INDICATOR

Imbalance Zone

The indicator finds imbalance zones (FVG) on its own across 3 consecutive candles — a price gap between the High of the first and the Low of the third candle (bullish) or the Low of the first and the High of the third (bearish). The zone is built from the 2nd candle; price returns to the boundary — that's your signal.

ATAS · .NET 7Price Action · FVG zonestouch = signal
2026-07-02T20:49:58.115537 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
Works both ways: bullish FVG (impulse up 1·2·3 → green zone from the 2nd candle → return → ▲ long) and bearish FVG (impulse down → red zone → return → ▼ short).
WHY IT MATTERS
1
Finds imbalance zones on its own

It looks at 3 consecutive candles: if there's a gap between the High of the first and the Low of the third (or the Low of the first and the High of the third), it draws a zone from the 2nd candle. You don't mark the levels by hand.

2026-07-02T20:49:58.421755 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
2
Boundary touch = signal

Price returns to the zone and touches the boundary — the trigger fires. Separately, the indicator marks candle formations (Absorption · Pin Bar · Long Wick) with markers — an independent layer for you to read.

2026-07-02T20:49:58.449650 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
3
Test before you risk money

Test mode runs the strategy over history with automatic SL/TP: profit/loss, number of trades — accounting for commission, slippage and tick value.

2026-07-02T20:49:58.467597 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
KEY FEATURES
Auto-detection of FVG zones3 consecutive candles: a gap between the High of the 1st and the Low of the 3rd (or the Low of the 1st and the High of the 3rd) → the zone forms on its own from the 2nd candle, its height filtered by Min Zone Height.
High/Low boundaries + stepsThe top and bottom of the zone are your levels for entry and stop; while price trades inside, the zone builds up steps (ClosedLevels).
Boundary touch → trigger signalThe first touch of the boundary deactivates the trigger and gives a signal; a strong break past Zone Trigger Size flips the zone into an alternate state.
3 candle patterns — a separate layerAbsorption · Pin Bar (rejection) · Long Wick (level probe) — the indicator detects and marks them independently of the zones; you read them yourself.
Bar highlighting by statusThe candle body is colored by zone status: long — green, short — red, neutral — gray.
Test mode + Telegram alertsP/L and trade stats, auto SL/TP, sending signals to a Telegram bot and logging alerts to a file.
Candle patterns — an independent marker layer (not tied to zones)
2026-07-02T20:49:58.325152 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
The indicator separately detects and marks three candle formations: Absorption (a shift in control) · Pin Bar (level rejection) · Long Wick (level probe). This is a standalone marker layer — the trader reads them directly, they aren't tied to the zones.
Three patterns — a separate layer

Absorption (a shift in control), Pin Bar (level rejection) and Long Wick (level probe) are detected and marked by the indicator independently of the zones — you read them as standalone context, not as a zone filter.

The zone's life cycle — price passes all the way through (gap filled) → the zone closes
2026-07-02T20:49:58.263988 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
Until the gap is filled, the zone is active. As soon as price passes all the way through the zone (bullish: Low ≤ zone.Low · bearish: High ≥ zone.High) — the gap is filled, the zone closes and fades to gray-blue so it won't clutter the active levels.
The zone's life cycle

Until the gap is filled, the zone is active. Price passes all the way through it (bullish: Low ≤ zone.Low · bearish: High ≥ zone.High) — the gap is closed, the zone closes and fades to gray-blue.

HOW IT WORKS
1Scans triplets of candles

Checks every 3 consecutive candles for a price gap between the outer ones: Low of the 3rd above High of the 1st (bullish) or High of the 3rd below Low of the 1st (bearish).

2Forms a zone from the 2nd candle

There's a gap and it's above Min Zone Height — draws a zone from the 2nd candle and extends it to the right: green upward, red downward.

3Boundary touch → signal

Price returns to the zone: the first touch of the boundary deactivates the trigger and gives a signal — an indigo dot.

4Pass-through → zone closed

Price passes all the way through the zone (gap filled: bullish Low ≤ zone.Low · bearish High ≥ zone.High) — the zone fades to gray-blue so it won't clutter the active levels.

2026-07-02T20:49:58.165822 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
FVG anatomy: 3 consecutive candles, a gap between the High of the 1st and the Low of the 3rd candle (Low 3 > High 1) → the zone is built from the 2nd candle; price returns into the zone (● touch) → signal.
Anatomy of an FVG zone

3 consecutive candles leave a gap between the High of the 1st and the Low of the 3rd (Low 3 > High 1); the zone is built from the 2nd candle and extends to the right. Price's return to the boundary (● touch) gives a signal.

Green zone — bullish imbalance zone — wait for a bounce / rise off the boundary
Red zone — bearish zone — wait for a bounce / drop off the boundary
● boundary touch — trigger fired → signal (the first touch deactivates the trigger)
Gray-blue zone — closed — price broke the zone against its direction
IN PRACTICE
2026-07-02T20:49:58.217452 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
Bounce off a bullish FVG zone: a triplet of candles (1·2·3) left a gap → green zone from the 2nd candle, price returned to the boundary (● trigger) → LONG signal, bars turn green, bounce up.
Bounce off a bullish FVG

A triplet of candles left a gap → green zone from the 2nd candle. Price returned to the boundary (● trigger) → LONG signal, bars turn green, bounce up.

Bounce off an FVG zone, checking against candle markers

A trader wants to enter off strong zones, but plain zones are everywhere — and wants to decide by context, not take every one.

  1. Sets the analysis period for the instrument and turns on zone display
  2. Waits for an FVG zone to form — a gap between the 1st and 3rd candles in the triplet
  3. Waits for price to return to the boundary (● touch = signal); meanwhile, watches the independent formation markers (Pin Bar / Absorption)
  4. Places the stop beyond the zone boundary, enters on the touch; test mode tallies stats over history
Result: Entry off an FVG zone with an eye on the candle context, risk capped by the zone boundary — by rules, not emotions.
SETUP & INTEGRATION
Fully configurable
Period · Map FileZones · Min Height · Trigger Size · TransparencyPatterns: Absorption · Pin Bar · Long WickStatus — bar highlighting (long/short/neutral)Breakout Offset · closed zonesTest — volume · SL/TP · commission · statsAlerts · Send to Bot (Telegram)

Zone period and height, trigger size, three candle patterns, bar highlighting by status, breakout offset, test mode with stats and alerts to a Telegram bot — tune it all to your instrument and style.

PlatformATAS (.NET 7) — indicator on the chart
Signalszones + pattern markers, alerts to a file, sending to a Telegram bot
Access3-month / yearly subscription · manual renewal
2026-07-02T20:49:58.388159 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
Test mode right on the chart: entry line, dashed SL/TP (stop red · take green) and a stats panel (trades · P/L) with a view button.
The zones build themselves — all that's left is to wait for the boundary touch.Subscription 3 mo / year, manual renewal.
★ Full bundle
SEE ALSO