Fractal Support and Resistance Zones EngineFractal Support and Resistance Zones Engine is a market structure tool built to convert confirmed fractal pivots into filtered support, resistance, and S/R flip zones.
The main reason this script was created is practical rather than theoretical. Fractal highs and lows are already a familiar market structure concept, but many fractal-based tools become difficult to use once they start filling the chart with too many overlapping levels. When every pivot is treated as equally important, the result is often visual clutter, weak prioritization, and little help in deciding which areas still matter around current price.
This script was written to make that process more usable. Instead of simply marking fractal pivots, it manages them as zones with a lifecycle. It filters oversized zones, ignores zones that are too far from current price, merges overlapping structure, tracks repeated interaction, handles role reversal behavior, removes weak or aging zones, and then selects only the strongest visible candidates for display.
Why this indicator exists
This script does not claim to introduce a new theory of support and resistance. Its purpose is to provide a more structured implementation of a familiar concept.
The problem it tries to solve is straightforward:
raw fractal levels can accumulate too quickly,
overlapping levels can make the chart harder to read,
old or weak zones can remain on screen longer than they are useful,
and many simple fractal tools do not do much after the initial pivot is detected.
This indicator was built to address those issues by treating zones as dynamic objects instead of static drawings. Once a zone is created, it is managed over time based on interaction, break behavior, age, visibility ranking, and proximity to price.
That is the main reason the script was written. It is not meant to replace all support and resistance methods. It is meant to make fractal-based structure more organized and more practical to work with.
What the indicator does
The script detects confirmed fractal highs and lows using left and right pivot bars.
A confirmed pivot high can create a resistance zone.
A confirmed pivot low can create a support zone.
There is also an optional developing zone mode. When enabled, the script can show provisional zones before full pivot confirmation. These are intentionally temporary and may disappear if price invalidates them before confirmation.
After a zone is created, the script does not simply leave it untouched. It keeps evaluating that zone and updates its status over time.
The script can display three structural categories:
Resistance zones
Support zones
S/R flip zones, when a previously broken zone changes role
How the script works
The engine begins with fractal pivot detection.
For resistance, the zone is built from the pivot high area.
For support, the zone is built from the pivot low area.
From there, several control layers are applied:
1) ATR-based size control
Zone height is capped by an ATR multiple so unusually large candle ranges do not create oversized zones that dominate the chart. This helps keep zones more comparable and visually usable.
2) Minimum significance and maximum distance filtering
A new zone must still meet a minimum size requirement relative to ATR, and it must remain within the configured distance from current price. This prevents the script from storing zones that are either too small to matter or too far away to be useful in the current context.
3) Overlap and merge logic
If a newly detected zone overlaps with an existing one, the script does not always draw another separate zone. When the roles match, it can reinforce and blend the existing zone rather than duplicating structure. This is one of the main anti-clutter mechanisms in the script.
4) Touch tracking
Zones gain interaction history when price returns to them from outside and touches them again. This interaction history later contributes to ranking and lifecycle decisions. A zone that has been respected multiple times is treated differently from a fresh zone that has never been retested.
5) Break and S/R flip handling
When price breaks beyond a zone by a configurable ATR-based threshold, the script can treat that as a structural break. If retest confirmation is enabled, the zone does not immediately change role. Instead, it enters a waiting state and only flips after the retest condition is satisfied. If retest confirmation is disabled, the role change happens immediately on the break condition. This gives the user a choice between faster reaction and stricter confirmation.
6) Flip count and removal behavior
Zones are not allowed to survive forever in the same way. The script tracks flip count and interaction history. If a zone has already flipped multiple times, it can eventually be removed instead of continuing to recycle indefinitely. This prevents heavily reused or degraded structure from staying on the chart forever.
7) Age-based pruning
Zones are also removed as they get older. Stronger zones can survive longer because the lifespan is adjusted by interaction and flip history, but aging still matters. This helps the chart focus more on structure that is still relevant.
8) Spatially aware pool management
The script keeps a limited zone pool depending on the selected performance mode. When the internal pool gets too large, weaker zones are evicted using a score that considers relevance and local crowding. In practice, this means the engine is not only adding zones, but also actively managing what deserves to stay in memory.
9) Visibility ranking
The script scores zones using interaction history, flip history, distance from current price, and age. It then selects only the top visible resistance, support, and flip zones rather than showing everything at once. This is a key part of the workflow because the script is designed to prioritize readability, not maximum historical coverage.
What makes it different from simpler fractal indicators
The main difference is not the use of fractals themselves. Fractals are well known. The difference is what happens after the fractal is detected.
Many simpler scripts stop at the first step: they identify the pivot and draw a level or box.
This script continues beyond that step by adding:
zone size control,
distance filtering,
overlap management,
touch-based reinforcement,
optional retest-confirmed flips,
flip counting,
age-aware removal,
spatial eviction when the zone pool becomes crowded,
and visibility ranking so only the strongest nearby zones are shown.
That combination is the real distinguishing feature of the script.
It is not just a fractal marker. It is a fractal-based zone management engine.
Was this script really necessary?
In the strictest sense, the underlying market idea is not new. Fractal pivots, support, resistance, and role reversal are all established concepts.
So if the question is whether this script introduces a brand-new trading theory, the honest answer is no.
But that is not the reason it exists.
The reason it exists is that there is practical value in taking a familiar concept and implementing it in a cleaner, more selective, and more manageable way. A trader who already uses fractal structure may not need another script that simply draws more levels. What may still be useful is a script that helps reduce clutter, maintain zone quality, and keep attention on the strongest nearby structure.
That is the point of this indicator.
So the honest answer is:
it was not necessary as a new theory,
but it can be useful as a more organized implementation of fractal-based support and resistance.
That is the real justification for the script.
Inputs and behavior
The script includes a small set of controls that shape how selective or lightweight the engine becomes.
Strategy changes how strict the filtering logic is. Conservative settings keep fewer zones and require stricter behavior. Aggressive settings allow more zones and looser filtering.
Performance controls how many zones can be tracked internally. Lighter modes reduce tracking load, while fuller modes allow broader detection.
Top Resistance Zones, Top Support Zones, and Top S/R Flip Zones limit how many ranked zones are actually shown.
Pivot Left Bars and Pivot Right Bars control fractal confirmation.
Max Zone Height (ATR) caps zone height.
Merge Sensitivity changes how aggressively nearby zones are combined.
Max Age controls the base lifespan of zones before age pruning removes them.
Require Retest for Flip changes whether role reversal happens immediately after a qualified break or waits for a retest.
Show Developing Zones enables early provisional zones before full confirmation. Because these are not fully confirmed yet, they may disappear.
Left Extension, Box Length, labels, colors, and the optional info panel control the visual presentation.
Alerts and chart workflow
The script provides alerts for:
new resistance zones,
new support zones,
S/R flips,
and zone breaks.
A practical workflow is to use the indicator to monitor the strongest nearby structural zones, then combine those zones with your own trend analysis, execution criteria, risk plan, or broader market context.
Important notes
This is a structural analysis tool. It does not predict price, guarantee reversals, or guarantee trade outcomes.
Confirmed fractal pivots appear only after the required right-side confirmation bars exist, so confirmed zones naturally appear with that built-in confirmation delay. If developing zones are enabled, the script may show temporary structure earlier, but those developing zones can disappear if price invalidates them before full confirmation.
Because of that, this indicator is best used as a framework for organizing price structure rather than as a standalone trade system.
Indicator

