Precision PushBack [MohaveTrader]WHAT PUSHBACK IS
PushBack is a support-and-resistance overlay whose levels are built from a dual Williams %R engine, paired with a rail-based trend layer that runs on its own detection. Where the source oscillator treats a %R extreme as exhaustion — a spent move likely to reverse — PushBack reads that same condition as sustained directional pressure: the side in control pushing price to an extreme.
Two terms carry the whole design. Every completed pressure run is an EVENT. An event that clears qualification earns a LEVEL. Events that do not qualify are marked, but no level is built. When an event does qualify, PushBack takes the price extreme reached by that push and stamps it as a structural zone, then carries that zone through its own lifecycle of resistance, support, reclaim and testing. The panel counts both, so how selective the current settings are running on this instrument is readable at a glance.
It is intended for traders who want structure that emerges from qualifying pressure events rather than levels drawn on a fixed schedule, with a separate trend read layered on the same chart.
WHAT'S ORIGINAL
PushBack retains the dual fast and slow %R detection from upslidedown's open-source "%R Trend Exhaustion" (credited below and in the source code) and uses it only as the raw event source. Everything built on top is original: the reinterpretation of the extreme as directional pressure; event qualification by price range and, when enabled, sustained duration; the Event Mode presets that set how selective that qualification is; event-derived zone geometry, where a zone's depth is taken from the run's own candles; the support and resistance lifecycle with reclaim and testing states; role-flip management and retirement; ATR relevance hiding; optional same-state merging; the live run ribbon; the candle coloring modes; the trend layer with its fast and structure rails, defended-level state machine and rail-assisted transitions; and the information panel. The following image illustrates upslidedown's "%R Trend Exhaustion," the open-source indicator PushBack's detection comes from. Each filled box is one %R run — red where both fast and slow %R are overbought, blue where both are oversold — with a triangle where the run ended. PushBack reads these same runs as pressure rather than exhaustion, and keeps the price extreme each one reached as a structural level. For comparison the second image renders PushBack and %R Trend Exhaustion on the same chart.
WHAT MAKES IT DIFFERENT
The structure is emergent, not scheduled. No structural zone is created without a completed qualifying pressure run, so the absence of nearby zones is itself information rather than a missing calculation.
Structure and events are kept separate. The zones are the structural layer and carry the role-based color set. The pressure marks and run ribbon are a distinct event layer in a single neutral color, held off the price and clear of the zones, so a mark is never mistaken for a directional signal.
The run ribbon reads live. It sketches in real time across the pressure run and settles into the completion triangle, so a developing run is visible on price as it happens rather than only after it ends.
The trend line is the rail, not a separate object. The plotted line is the fast adaptive rail itself rather than an average derived from it, so the drawn line and the value the engine reads are the same series and cannot disagree.
%R PRESSURE
Pressure is read from a dual fast and slow Williams %R with independent smoothing. Both periods and the threshold are fixed internally at settled values rather than exposed as inputs. A shared threshold defines the overbought condition (bullish pressure) and the oversold condition (bearish pressure), and a run is the span in which that condition holds. The single event PushBack acts on is the run's completion — the bar the condition is lost.
Not every run qualifies. A completed run must clear a size test — its price range as a multiple of ATR — and, when duration filtering is on, a duration test as well: it must have persisted for the required number of bars. Both conditions must be met, and a larger or faster move does not waive the duration requirement. An Event Mode control — Responsive, Balanced, Strict, or Manual — sets how demanding that qualification is; in Manual, the Advanced values are read instead and the duration test can be turned off to gate on range alone. The duration test is not scaled by timeframe.
ZONES
When a qualifying run completes, its price extreme seeds a zone: a bullish pressure run's high becomes resistance, a bearish pressure run's low becomes support — the rail where the push stalled. Zone depth is set at birth from the run's own candles: the mean or the median of the run's bar ranges, median by default so a single outlier bar does not distort the level. Neither method applies a multiplier, so depth comes from the same bars that produced the level and there is no width setting to tune. Depth is frozen at birth. An optional merge step, off by default, can consolidate same-state zones that overlap or fall within a configurable price gap; with it off, distinct qualified levels stay separate.
A level holds until price closes through it. A close through flips it to a reclaim, which can firm back into support or resistance as price tests and holds. Red is resistance, green is support, cyan is reclaim, yellow is testing. A level keeps flipping between roles until it reaches its Max Role Flips limit — three by default — after which it is retired rather than reclaimed again; fresh pressure re-seeds it if it matters again.
Zones persist as structural objects and can change role as price interacts with them. A zone originally created as support or resistance may later become reclaim, enter testing, and resolve back into support or resistance. Its displayed color and label represent its current state, not necessarily the state in which it originated.
Previously established zones can remain stored after the pressure event that created them has passed. A zone outside the configured ATR relevance distance is hidden rather than deleted and can reappear when price returns. Because a zone can persist through multiple state changes, a currently visible zone may have originated much earlier, in a different role, and its original completion mark may no longer be visible on the chart. A fresh reclaim is held visible for a short grace period regardless of distance. A per-side cap limits the number of native support and resistance zones retained; reclaim zones are exempt from that cap.
PRESSURE MARKS AND RUN RIBBON
A triangle marks where each run completed — a down triangle where a bullish run ended, an up triangle where a bearish run ended. The run ribbon traces the run into that completion, one bar short of the triangle. Both use a single neutral color and float off the price in ATR-scaled offset space, so side is read from triangle direction and ribbon position rather than color. They show the duration and completion of a pressure run and are not buy or sell signals. By default every completed run is marked with a triangle. A qualified event also carries a ribbon into its triangle and seeds a zone; a filtered turn — one that did not clear qualification — is marked identically but with no ribbon and no zone, so the triangle shows that an event occurred while the ribbon and zone show whether it earned a level. Show All Event Marks turns the filtered triangles on or off.
TREND LAYER
A second engine runs alongside the zones, with its own dual %R detection independent of the one above. Its pressure runs do not create zones; they set rails. A completed bullish run leaves a lower rail at its low, a completed bearish run leaves an upper rail at its high, and one of those rails is held as the defended level that owns the current trend state. A close beyond the defended level flips the campaign, but only when an opposing rail exists and price has cleared it; otherwise the campaign continues.
Two adaptive followers of the body-weighted midpoint support that state machine. The fast rail shortens its own averaging length as a bar's body sits further from it, so a displaced bar moves it most of the way in one bar. The structure rail uses the same formula with a longer base and sits inside a hysteresis channel scaled to a long-period ATR, so its direction holds through ordinary pullbacks and only turns when price crosses the far edge of that channel.
Between them these supply two transitions the defended level alone cannot make. Once a bullish event has set a campaign ceiling, a failure of the fast rail can end the campaign early at that ceiling. In the other direction, both rails turning up together can start a bullish campaign with no completed %R event at all. These rail-assisted transitions print a diamond alongside the flip triangle so they are distinguishable from a defended-level flip. A campaign entered by the rails alone carries no defended level and exits late by construction.
The plotted trend line is the fast rail, drawn in the campaign color rather than the rail's own direction, so the line's shape comes from the follower and its color from the campaign. An optional two-tier fill runs from price to the fast rail and from the fast rail out to the structure rail, each tier colored by its own source, so a disagreement between the two renders as a two-tone band. Optional sequence marks compare each completed rail event's extreme to the previous event on the same side and print HH, LH, HL or LL; these are instrumentation only and drive nothing.
CANDLE COLORS
Candles can optionally be recolored, in one of two modes.
Pressure mode carries the bar's own direction as hue and whether a %R pressure run is active as brightness, so a bearish bar inside a buying-pressure run stays a bright bearish candle and a developing push is visible on the candles themselves.
Wave mode drops bar direction and paints the campaign instead, reusing the trend line's own two colors so the candles and the line always agree. Three independent sources are then readable at once on the same bars: campaign state sets the candle's hue, an active %R pressure run sets its brightness, and the inner fill follows the fast rail's own direction. Because the fill is the only one of the three tied to the fast rail, a pullback inside a campaign renders as candle color standing against fill color, while an actual campaign flip changes the candles themselves. That is the distinction Wave exists to make. Wave draws nothing before the first campaign is established, since no trend state exists yet to color.
Both modes dim between pressure runs and brighten during them. This uses plotcandle, so native candles should be hidden in chart settings to avoid overlap. Turned off, it draws nothing and leaves the native candles untouched.
INFO PANEL
An optional corner panel reports three rows. RSI is colored relative to the current campaign rather than against fixed bands, since RSI ranges differently in an advance than in a decline; the color meaning is constant — one color when buyers hold RSI control, another when sellers do, and a neutral shade in between — while the bands themselves shift with the campaign. EVENTS counts every completed pressure run for the session. LEVELS counts how many of those earned structure, with the percentage being that earned share. That percentage largely reflects how demanding the current Event Mode is rather than a property of the instrument, so it reads as feedback on whether the mode suits what is being traded: a very low share suggests qualification is tighter than the instrument supports, and a very high one suggests it is filtering little. The panel frame carries the RSI color so the state reads from across the screen. The session count can include extended hours or regular hours only.
ALERTS
Two alert conditions are provided, one for a qualified bullish pressure event and one for a qualified bearish pressure event. Alerts fire only when a completed run clears PushBack's active qualification requirements and earns structure; filtered event marks do not alert. The trend layer does not carry its own alerts.
HOW TO READ IT
Read the zones as structure and the marks as events: every triangle is an event, and only the ones carrying a ribbon and a zone earned a level. PushBack keeps four things distinct: the pressure event is where a zone came from; price interaction is what has since happened to it; the current color and label are what the level means now; and ATR relevance decides whether it is shown at all. A currently visible zone may have originated much earlier, in a different role, than the state now displayed. Treat a blank area as the absence of currently relevant qualifying pressure structure, not a missing calculation. Use the live ribbon to watch a qualifying run develop. The completion triangle identifies where a pressure run ended; when that completion also qualifies, its ribbon remains, a structural zone is established, and the corresponding alert can fire.
The two layers are independent and can disagree. The zones and the trend campaign are computed from separate detections and neither gates the other, so a level forming against the prevailing campaign is a normal reading rather than a conflict to resolve.
LIMITATIONS
A zone is not created until its run completes, so the level is confirmed after the move that produced it, not during. The %R condition can persist for a long time in a strong trend, so a run's duration is not itself a timing signal. PushBack is most expressive on instruments that produce qualifying pressure events and is quiet on orderly price.
The trend layer's rail events carry no qualification of their own, so a very short pressure run can set a rail. Because two of its transitions are driven by the rails rather than by a completed event, the campaign can change direction with no %R event involved, and a campaign entered that way holds no defended level. Zone role changes are driven by subsequent price interaction, so a zone's displayed state reflects the bar being evaluated and changes as price develops. On very low-priced instruments a run whose bar ranges are near the minimum tick can produce a zone thin enough to render as a line rather than a band.
PushBack does not predict future prices, does not manage risk, and does not guarantee any outcome.
ATTRIBUTION AND LICENSE
PushBack's dual-period Williams %R detection is derived from the open-source "%R Trend Exhaustion" indicator by upslidedown, who is credited here and in the source code. That indicator reads the %R extreme as exhaustion; PushBack uses the same detection only as a raw event source and reinterprets the extreme as sustained directional pressure. The pressure-event qualification, the persistent zone construction and event-derived geometry, the support and resistance interpretation, the reclaim and testing lifecycle, flip management and retirement, relevance behavior, merging, the run ribbon, the candle coloring modes, the trend layer and its rails and transitions, and the price-overlay presentation are original to PushBack. PushBack is published open-source under the Mozilla Public License 2.0.
DISCLAIMER
PushBack's zones, marks and trend state are analytical structures derived from the rules described above, not recommendations to buy or sell any instrument. You remain solely responsible for every trading decision. Indicador

Supply Demand AI [PickMyTrade]Supply Demand AI asks the question every supply/demand tool skips: when price returns to a zone, does this arrival look like the ones that reversed — or like the ones that ate straight through?
Every supply/demand indicator draws the zone. None of them score the arrival. This one does. Each time price re-enters a zone, nine properties of the return are frozen before the outcome is known — approach speed, prior tap count, zone age, departure strength, base tightness, base volume, trend pressure, relative volume and zone width — and the arrival is voted on by a Lorentzian nearest-neighbour search over every similar return this chart has already resolved. The result is stated in the past tense: of the arrivals that looked like this, X% produced the configured reaction move before the zone failed.
The script also scores two doctrines stated everywhere in supply/demand teaching and measured almost nowhere: whether fresh zones genuinely outperform tapped ones on this chart, and whether heavy-volume bases genuinely outperform quiet ones. The info table reports what actually happened, not what the doctrine says should have.
――――――――――――――――――――――――――――――――――――――
🔷 WHAT IT MEASURES
🔸 Zone formation — base-and-departure, not pivot clustering A zone is born from a run of compressed candles (the base) followed by an impulsive leg away of a configurable ATR multiple within a fixed window — the Rally-Base-Drop / Drop-Base-Rally shape, detected as a sequence rather than asserted from a single bar. A pivot cluster has no departure to measure; a base-and-departure zone has three properties frozen at birth that a pivot never carries: how hard the market left, how tight the base was, and which side was trading volume while it sat there.
🔸 Zone geometry The origin block (solid segment) marks the actual base candles. The projection (lighter band) carries those prices forward to where they can be tested. The departure measure (vertical bar on the departure candle) shows the full distance the move reached — readable straight off the price scale. Freshness is written as text ("fresh" / "2 taps"), not encoded in a line style that has to be decoded.
🔸 Outcome — reaction magnitude, not hold-or-break A return that drives the configured ATR multiple back away from the zone edge before closing decisively through it = REACTED. A return that closes beyond the far edge by the break buffer = FAILED. A return that does neither inside the timeout window = STALLED and discarded from training — price sitting inside a zone is not evidence either way.
🔸 Two doctrine read-outs The info table reports the freshness edge (did untouched zones react more often than tapped ones on this chart?) and the base-volume edge (did heavy-volume bases outperform quiet ones?). Either can come back negative, and the table says so when it does.
――――――――――――――――――――――――――――――――――――――
🔷 THE LORENTZIAN NEAREST-NEIGHBOUR CLASSIFIER
🔸 Why Lorentzian, not Naive Bayes A Naive Bayes model was the obvious alternative and is the wrong tool here: it assumes the features are conditionally independent given the class. Departure strength, base tightness and zone width all describe the same underlying impulse from three angles — multiplying their densities counts one piece of evidence three times. A nearest-neighbour vote makes no independence assumption at all. It asks a narrower, more honest question: of the returns already resolved on this chart, what happened to the ones that arrived most like this one?
🔸 Distance metric Distance is Lorentzian — log(1 + |a − b|) — applied per axis and summed. Against a library of this size, plain Euclidean distance lets one outlier axis dominate; the log compresses extremes, so a return that is typical on eight features and unusual on the ninth still finds its true neighbours.
🔸 Shared library — supply and demand in one pool Every feature is written relative to the direction of the test, so a fast approach into demand and a fast approach into supply are the same event described the same way. Sharing one library across both directions doubles the effective sample count without mixing unlike distributions.
🔸 Shrinkage The neighbour vote is shrunk toward the library's own base rate. Without it, k unanimous neighbours read as a certainty the sample size cannot support. The shrinkage weight is expressed in neighbour-equivalents so it is independent of k.
🔸 Honest caveat — stated here, not buried in a tooltip The classifier learns as history replays, so loading a different amount of chart history changes how many returns have trained it and therefore the percentage shown on a zone. The zones themselves, their boundaries and which bars they appear on are unaffected. This is inherent to on-chart learning.
――――――――――――――――――――――――――――――――――――――
🔷 SIGNALS AND DISPLAY
🔸 Zone appearance Full-strength blue (demand) or orange (supply) border at or above the conviction threshold. Muted at the opposite end. Neutral while price is inside — the zone is neither reacting nor failing yet. Grey once consumed. A zone born from twice the required departure draws with a heavier border — the one property worth reading before any text.
🔸 Zone label Nearest live demand, nearest live supply, and any zone with a return open right now receive a worded label: zone type · departure in ATR · evidence grade (A–D) · tap count · classifier read. Every other zone speaks through colour alone, which caps visible labels at roughly three regardless of timeframe or zoom.
🔸 Evidence grade (A–D) Measures accumulated evidence only — departure strength (35%), base tightness (25%), resolved return count (20%), age (20%). Deliberately excludes the classifier's probability so the grade and the percentage remain two different statements: the grade says how much stands behind the zone; the percentage says how similar arrivals resolved.
🔸 Return history ticks A coloured tick inside the zone at every bar where one of its own returns resolved — blue for a reaction, orange for a failure. Renders each zone's individual track record in place so the percentage can be read against the evidence behind it.
🔸 Order flow band A band above the trend EMA while cumulative volume delta is rising, below it while delta is falling. Opacity scales with how strong that pressure is against its own recent range — a faint band means the tape is undecided; a solid band means one side is leaning on it. Context, not a signal: it says which side is pressing when price arrives at a zone.
🔸 Info table Zones on chart · returns graded · overall reaction rate · freshness edge · base-volume edge · base-flow edge · live order flow direction and z-score · nearest demand and supply with ATR distance. Reads LEARNING until the warmup sample count is met.
🔸 Alerts Four alertcondition() calls: price entered a zone · return reacted · return failed · any resolved return. Worded as observations. Recommended alert setting: Once Per Bar Close.
――――――――――――――――――――――――――――――――――――――
🔷 INPUTS
🔸 Zone Detection Base Candle Max Range (ATR ×) — a candle counts as base while its range is below this multiple. Lower = cleaner zones, fewer of them. Default 0.60. Min / Max Base Candles — fewest and most candles that form a valid base. Default 1 / 6. Departure Strength (ATR ×) — how far price must travel from the base before the base qualifies as a zone. The single most important setting. Default 1.60. Departure Window (bars) — bars allowed for the departure to reach its target. Default 5. Zone Boundaries — Wick or Body extent for the base. Wick is the conservative read. Default Wick. Minimum Zone Height (ATR ×) — floor on zone thickness, expanded symmetrically about the base midpoint. Default 0.45. ATR Period — volatility yardstick for all distances. Default 14.
🔸 Return Resolution Reaction Target (ATR ×) — how far back away from the zone counts as a REACTION. Default 1.50. Break Buffer (ATR ×) — how far beyond the far edge price must CLOSE to count as a failure. Default 0.30. Return Timeout (bars) — bars a return stays open before being discarded as STALLED. Default 20. Zone Consumed On — Wick Touch / Body Touch / 50% Fill / Full Fill. Governs retirement only; returns always measure from the first wick. Default Body Touch. Max Returns Per Zone — a zone revisited this many times behaves like a range boundary. Default 4.
🔸 Probability Engine Warmup Samples — resolved returns required before the classifier replaces the running reaction rate. Default 25. Neighbours Compared — k in the nearest-neighbour vote. Smaller = more local; larger drifts toward the library rate. Default 8. Conviction Threshold — probability at or above which a zone draws at full conviction. Default 0.62. Approach Window — bars used to measure how fast price entered the zone. Default 5. Volume Baseline — averaging window for relative volume. Default 20. Trend EMA Period — reference for the trend-pressure feature. Default 50.
🔸 Order Flow Order Flow Band — show / hide. Default on. Flow Momentum Period — lookback for the rate of change of CVD. Default 14. Flow Band Width (ATR ×) — height of the band from the EMA to its outer edge. Default 1.00. Flow Normalisation Window — z-score window so the band reads the same across instruments. Default 50.
🔸 Visual Demand / Supply / In-zone / Consumed Colours · Show Zones · Zone Labels · Return History Ticks · Keep Consumed Zones · Max Live Zones (cap on live slots; consumed zones are free) · Zones Per Side (nearest N zones above and below price) · Show Zones Within ATR × (safety ceiling) · Label Every Zone · Label Size · Zone Border Width · Zone Evidence Grade.
🔸 Display Zen Mode — hides labels and info table; zones and ticks remain. Show Info Table.
――――――――――――――――――――――――――――――――――――――
🔷 REQUIREMENTS AND LIMITATIONS
🔸 The classifier reads what this chart has seen — not a pre-trained model and not a fixed statistical table. On a chart with thin history or a symbol the market has recently repriced, the library may be small and the read thin. The sample count travels with every zone label and the table header so this is never hidden. 🔸 Loading a different amount of chart history changes how many returns have trained the classifier, which changes the percentage shown on a zone. The zones themselves are unaffected — this is inherent to on-chart instance-based learning. 🔸 Zone geometry is fixed at birth and never re-centred. No request.security() call is made anywhere. Test state advances only on barstate.isconfirmed. No future data is referenced. 🔸 The departure is measured over bars that have already closed. A zone appears on the bar its departure qualifies and never moves afterwards. 🔸 Base volume and base flow are estimated from the close-position formula — a synthetic proxy, not true bid/ask data. The classifier adapts to the noise, but the quality of the read improves on instruments with genuine intrabar price travel. 🔸 The evidence grade (A–D) and the classifier percentage are two different statements by design. Do not read either alone. 🔸 Past resolved returns are hypothetical observations — no commission, no slippage — and are not a record of trading results. This script does not issue trade instructions and nothing in it is financial advice.
――――――――――――――――――――――――――――――――――――――
Built natively in Pine Script® v6. Lorentzian k-nearest-neighbour classifier trained on-chart from resolved supply/demand returns — no external libraries, no lookahead, no repainting. Zone formation uses a base-and-departure state machine; outcome is reaction magnitude, not hold-or-break. Attribution: the Rally-Base-Drop / Drop-Base-Rally construction is long-established public technical analysis, implemented independently here. The evidence grade and drawing layer are shared with the author's own Support Resistance AI — stated here plainly rather than left for a reader to find.
Open source — Mozilla Public License 2.0. Indicador

Smart Entry Zones [StrixEDGE]█ OVERVIEW
StrixEDGE Smart Entry Zones is a multi-layered trend-following indicator that generates clearly defined trade setups with automatic Entry, Take Profit (TP 1–3), and Stop Loss (SL) levels — all plotted directly on the chart with exact prices and percentage targets.
The indicator is built on three independent analytical layers that work together to assess both timing and conviction:
• Supertrend — determines trend direction and triggers trade levels on each confirmed flip
• Fisher Transform — identifies overbought/oversold extremes for timing quality
• Chaikin Money Flow (CMF) — confirms whether volume supports the directional move
Trade levels appear the moment the Supertrend changes direction. The Fisher Transform and CMF score the quality of each setup on a scale of 1/3 to 3/3 conditions, so you always know how much confirmation backs the signal.
█ HOW IT WORKS
When the Supertrend flips from bearish to bullish, the indicator draws a LONG setup:
• Entry — at the close of the flip candle
• TP 1, TP 2, TP 3 — calculated as multiples of the risk (SL distance), based on your chosen Risk:Reward ratios
• SL — placed below entry at a distance of ATR × your chosen multiplier
When the Supertrend flips from bullish to bearish, a SHORT setup is drawn with the same structure, mirrored.
Each level displays the exact price and the percentage distance from entry (e.g., +4.12%, −2.27%), so you can instantly assess the reward-to-risk profile of every trade.
█ LIVE HIT DETECTION
The indicator tracks price in real time against active levels:
• ✓ appears on the chart when price reaches TP 1, TP 2, or TP 3
• ✕ appears when price hits the Stop Loss
• Once SL is hit, the trade is considered closed — no further TP checks
• Hit status is also reflected in the data table (✓ or ✕ next to each level)
This gives you a clear visual record of how each setup performed without leaving the chart.
█ THE THREE CONFIRMATION LAYERS
1. Supertrend (Direction)
Uses ATR-based dynamic support/resistance to define the prevailing trend. A flip in direction is the primary trigger for new trade levels. Configurable via ATR Period and Multiplier.
2. Fisher Transform (Timing)
A manually calculated oscillator that normalizes price position within its recent range and applies a logarithmic transformation to amplify extremes. When the Fisher value crosses its signal line at overbought or oversold levels, it confirms favorable entry timing. The threshold is adjustable.
3. Chaikin Money Flow (Volume)
Measures the accumulation/distribution pressure over a configurable period. Positive CMF above the threshold confirms buying pressure (for longs); negative CMF below the threshold confirms selling pressure (for shorts).
The Conditions counter in the data table shows how many of the three layers support the current setup (1/3, 2/3, or 3/3). A 3/3 reading means trend, timing, and volume are all aligned — the highest-conviction scenario.
█ SETTINGS
Core Parameters:
• Supertrend ATR Period (default: 10) — lookback for trend calculation
• Supertrend Multiplier (default: 3.0) — band width; lower = more signals, higher = fewer but stronger
• Fisher Transform Lookback (default: 10) — normalization window
• Fisher Extreme Threshold (default: 1.0) — defines overbought/oversold boundary
• CMF Period (default: 20) — volume pressure measurement window
• Minimum CMF Threshold (default: 0.05) — minimum reading for volume confirmation
Trade Levels:
• ATR Period for Levels (default: 14) — ATR used to calculate TP/SL distances
• SL Distance in ATR multiples (default: 1.5×) — how far the stop is placed
• TP1 / TP2 / TP3 Risk:Reward (defaults: 1.0 / 2.0 / 3.0) — each TP as a multiple of the SL distance
• Line Length in bars (default: 30) — how far the level lines extend on chart
• Show Trade Levels — toggle lines and labels on/off
Table Settings:
• Size (Tiny to Huge) and Position (any corner) — fully customizable
• Show/Hide toggle
█ DATA TABLE
A dark-header Style A panel displays all key metrics at a glance:
• Trend direction and current Fisher/CMF readings
• Conditions score (1/3, 2/3, or 3/3)
• Active trade direction (LONG ▲ or SHORT ▼)
• Entry price, TP 1–3 with percentage targets, and SL with percentage risk
• Live hit status: ✓ next to reached TPs, ✕ next to triggered SL
█ NOTES
• No repainting — all signals are based on confirmed bar closes. The Supertrend flip and Fisher Transform are calculated on closed data only.
• The Fisher Transform is manually implemented (not a built-in function) to ensure full transparency and consistency.
• This indicator is an analytical tool, not financial advice. Always use proper risk management and confirm setups with your own analysis.
█ ALERTS
Two built-in alert conditions:
• Supertrend Long — fires when Supertrend flips bullish
• Supertrend Short — fires when Supertrend flips bearish
Set alerts on any timeframe to receive notifications when new trade setups appear. Indicador

Reaction Weighted Support Resistance [Pineify]Reaction Weighted Support Resistance
Overview
Builds ATR-scaled support and resistance zones from confirmed swing pivots. Opacity encodes decayed completed reactions and bounded relative-volume context. It organizes chart evidence without forecasting price or performance.
Problem Definition
A common baseline draws one line per pivot and adds strength for every return. It scores shallow drift and decisive rejection equally, while old tests can dominate after conditions change. The map becomes crowded, and counts do not explain what happened after contact. The required invariant is a bounded set of areas weighted by subsequent displacement, participation context, and recency without assuming repetition.
Design Rationale
Confirmed pivots replace immediate extrema; zones begin at confirmation, not at the earlier swing bar. ATR width replaces fixed ticks, but geometry is frozen from known volatility. Nearby same-side zones merge only under a height cap. Touch count was rejected: entry opens a finite window, favorable movement is normalized by touch-time ATR, and bounded volume adjusts credibility without claiming directional flow. Decay fades stale reactions. The tradeoff is lag in exchange for auditable path memory.
Key Features
Confirmed pivot zones with ATR geometry.
Completed reaction scoring, volume context, and half-life decay.
Width-limited merging and bounded zone capacity.
Close invalidation, strength opacity, optional visuals, dashboard, and alerts.
How It Works
The engine reads chart OHLC, ATR, and average volume. Confirmed pivot lows create support and highs create resistance. Width is a fraction of pivot-time ATR; signals are not shifted backward.
A same-side candidate merges only below the height limit. Its center is score-weighted, so weak evidence cannot freely drag an established zone. Otherwise it is added; capacity removes the weakest.
A completed entry after cooldown stores ATR and bounded volume credibility, then tracks the best favorable extreme. Support measures upward displacement; resistance measures downward displacement. The result is floored at zero, ATR-normalized, capped, and volume-weighted. Missing volume uses a neutral fallback.
Each completed bar applies half-life decay; a saturating transform maps score to opacity. A close beyond the zone and ATR buffer invalidates it. Warm-up needs ATR, optional volume average, and pivot confirmation. Unclosed bars do not mutate state or fire alerts.
How Multiple Indicators Work Together
The components form one chain: pivots supply location, ATR supplies scale, the path window separates reaction from touch, volume changes confidence, decay tests recency, and invalidation bounds life. Without the window this becomes touch counting; without decay old history dominates; without ATR markets lose comparable units. The boxes expose the combined state rather than stacking unrelated signals.
Trading Ideas and Insights
Compare areas instead of assuming they will hold. Opaque support means prior completed visits produced larger, more recent upward reactions under this model; resistance is symmetric. Observe approach, overlap, departure, and confirmed failure. Entry alerts focus review above the strength threshold, while invalidation ends stored context. They do not define direction, size, execution, return, or reversal probability.
Unique Aspects
Each touch creates a bounded episode whose later displacement, touch-time volatility, volume credibility, and age update one state. Merging is score-weighted and width-limited. Teal and rose encode role, opacity encodes strength, amber marks failure, and the dashboard exposes scores and evaluated touches. This is an independent implementation; retrieved descriptions defined only the baseline, and no source code was reused.
How to Use
Choose pivot lengths for the intended swing horizon.
Set width and merge limits so boxes remain useful areas.
Read opacity with score and evaluated touches; faint zones have little evidence.
Use alerts as review prompts with separate execution and risk rules.
Review several market regimes before using the context.
Customization
Short pivot windows create more candidates; long windows are selective and slower. Width and merge controls set geometry. The evaluation window favors immediate or slower reactions. Half-life controls memory, not signal speed. The invalidation buffer sets tolerated close penetration. Volume length changes its baseline; alert strength changes qualification. Secondary markers, bar colors, and dashboard can be disabled.
Assumptions and Limitations
Pivots are delayed. ATR gaps can distort geometry. Forex or synthetic feeds may supply tick volume or no usable series, so fallback removes participation discrimination. Favorable extremes summarize path outcome, not order flow, causality, liquidity, or execution. Results depend on settings; capacity can evict weak areas. Close invalidation can lag gaps, while intrabar penetration is insufficient. The model does not predict bounces, trade, model costs, or establish profitability. Non-standard and illiquid charts need separate review.
Conclusion
Prominence depends on completed, volatility-normalized reactions, bounded volume context, and recency. Evidence fades, geometry stays controlled, and confirmed invalidation ends the zone. Historical reaction remains inspectable context, not certainty.
Indicador

Sattam Supply | DemandSATTAM Supply | Demand Zones (Multi-Timeframe)
OVERVIEW
This indicator maps supply and demand zones from a timeframe you choose and draws them on your current chart. Instead of marking every swing point, it only accepts a swing that is followed by a genuine displacement move away from that level, measured against volatility (ATR). The goal is a chart with a small number of meaningful zones rather than dozens of overlapping boxes. Zones are drawn as boxes with a 50% midline, extended to the right until price invalidates them.
HOW A ZONE IS CREATED
A zone is created in two stages.
1) Pivot detection
The script looks for a pivot high (for supply) or a pivot low (for demand) on the selected timeframe. A pivot needs "Pivot Length" bars on each side to confirm, so the swing is a completed structural turning point and not a temporary extreme.
2) Displacement confirmation
A confirmed pivot is not enough on its own. After the pivot confirms, the script watches the next few bars ("Displacement Window") for a decisive close away from the level:
- Supply: a close below the pivot candle's low by more than ATR(14) x displacement factor
- Demand: a close above the pivot candle's high by more than ATR(14) x displacement factor
The ATR value used is the one captured at the pivot bar itself, so the confirmation threshold reflects the volatility that existed when the level formed, not the volatility at the moment of the breakout. If no qualifying close appears inside the window, the pivot is discarded and no zone is drawn.
The displacement factor is derived from the "Sensitivity" input: max(0.10, 1.15 - Sensitivity x 0.10). Higher sensitivity means a smaller required move, which produces more zones. Lower sensitivity demands a stronger reaction and produces fewer, more selective zones.
ZONE BOUNDARIES
Each zone is anchored at the pivot candle's own time, so the box starts where the level actually formed.
- Supply: the top is the pivot high, the bottom is the pivot candle's body top, min(open, close).
- Demand: the bottom is the pivot low, the top is the pivot candle's body bottom, max(open, close).
If that body-to-wick distance is unusually thin, the height is expanded to a volatility-based minimum (ATR at the pivot x width factor) so the zone stays usable on quiet candles. The "Width" input scales that minimum.
ZONE MANAGEMENT
Overlap filter: a new zone is rejected if it overlaps an existing zone by more than 45% of the smaller zone's height, or if it forms close in time with a nearly identical midpoint. This prevents clusters of near-duplicate boxes around the same level.
Zone limit: "Max Zones Per Side" caps how many supply and demand zones stay on the chart. When the limit is reached, the oldest zone is removed.
Invalidation: with "Hide Invalidated Zones" enabled, a supply zone is deleted after a close above its top and a demand zone after a close below its bottom. Disable it to keep broken zones visible for context.
Extension: active zones extend to the right by "Zones Offset" bars of the current chart so they stay visible ahead of price.
REPAINTING
Zones are committed only from closed bars of the selected timeframe. When a new higher-timeframe bar opens, the script reads the signal produced by the bar that just closed, and request.security is called with lookahead_off. A zone that has been drawn will not move or disappear on a later refresh, and no zone appears from a still-forming higher-timeframe bar.
Because of this, a zone always appears with a delay of at least "Pivot Length" bars plus the displacement bars on the selected timeframe. That delay is inherent to pivot-based confirmation.
SETTINGS
Source
- Timeframe: the timeframe the zones are calculated from (default 4H). Leave empty to use the chart timeframe.
- Pivot Length: bars required on each side of a swing for it to count as a pivot.
- Sensitivity: 1 to 10. Higher values loosen the displacement filter and allow more zones.
- Displacement Window: how many bars after a pivot confirms the script keeps waiting for a displacement close before discarding the pivot.
Zones
- Width: scales the volatility-based minimum zone thickness.
- Zones Offset: how far zones extend to the right.
- Max Zones Per Side: maximum simultaneous supply and demand zones.
- Hide Invalidated Zones: remove zones after price closes through them.
Style : fill and border colors for supply and demand, plus midline style (dashed, dotted, solid).
Timeframe Label : an on-chart label showing which timeframe the zones come from, with position, size and color options.
HOW TO USE IT
Set the Timeframe higher than your chart timeframe, for example 4H zones on a 15m chart, so you keep a structural reference while working on a lower timeframe. Zones mark areas where an imbalance formed and price left the level quickly. They are areas of interest for observing price behaviour, not signals in themselves.
Reduce Sensitivity and raise Pivot Length on noisy or lower timeframes if too many zones appear. Raise Sensitivity on higher timeframes or slow instruments if too few appear.
ALERTS
Two alert conditions are available: New Supply Zone and New Demand Zone. Both fire when a zone is confirmed from a closed higher-timeframe bar.
NOTES AND LIMITATIONS
- The indicator describes structure that has already formed. It does not predict direction and produces no buy or sell signals.
- Zone quality depends on the selected timeframe and instrument. Settings that work on one market will not automatically suit another.
- Very illiquid symbols or timeframes with wide gaps may produce fewer valid displacement confirmations.
This script is published for educational and analytical purposes only. It is not financial advice and does not guarantee any result. Always test any tool on your own instruments and timeframes before relying on it.
مؤشر مناطق العرض والطلب - متعدد الفريمات
نظرة عامة
يرسم المؤشر مناطق العرض والطلب من فريم تختاره أنت ويعرضها على الشارت الحالي. بدلاً من تعليم كل قمة وقاع، لا يقبل المؤشر السوينق إلا إذا تبعته حركة اندفاع حقيقية بعيداً عن المستوى، تُقاس نسبةً إلى تذبذب السوق عبر ATR. الهدف شارت فيه عدد قليل من المناطق المهمة بدل عشرات الصناديق المتداخلة. تُرسم المنطقة على شكل صندوق مع خط منتصف عند 50% ويمتد لليمين حتى يُبطله السعر.
كيف تتكوّن المنطقة
المرحلة الأولى: البحث عن قمة بيفوت للعرض أو قاع بيفوت للطلب على الفريم المختار. يحتاج البيفوت إلى عدد الشموع المحدد في Pivot Length على كل جانب حتى يتأكد، حتى يكون نقطة انعكاس بنيوية مكتملة لا مجرد طرف مؤقت.
المرحلة الثانية: البيفوت وحده لا يكفي. بعد تأكده يراقب المؤشر الشموع التالية خلال Displacement Window بحثاً عن إغلاق حاسم بعيداً عن المستوى:
- العرض: إغلاق أسفل قاع شمعة البيفوت بمسافة أكبر من ATR(14) مضروباً في معامل الاندفاع.
- الطلب: إغلاق أعلى قمة شمعة البيفوت بمسافة أكبر من ATR(14) مضروباً في معامل الاندفاع.
قيمة ATR المستخدمة هي القيمة المسجّلة عند شمعة البيفوت نفسها، أي أن حد التأكيد يعكس التذبذب الذي كان قائماً وقت تكوّن المستوى لا وقت الاختراق. وإذا لم يظهر إغلاق مؤهّل داخل النافذة يُلغى البيفوت ولا تُرسم منطقة.
معامل الاندفاع مشتق من إدخال Sensitivity بالمعادلة: max(0.10, 1.15 - Sensitivity x 0.10). كلما ارتفعت الحساسية قلّت المسافة المطلوبة وزاد عدد المناطق، وكلما انخفضت تطلّب المؤشر رد فعل أقوى وأعطى مناطق أقل وأكثر انتقائية.
حدود المنطقة
المنطقة مثبّتة على وقت شمعة البيفوت نفسها، فيبدأ الصندوق من حيث تكوّن المستوى فعلاً.
- العرض: القمة هي قمة البيفوت، والقاع هو أعلى جسم الشمعة أي min(open, close).
- الطلب: القاع هو قاع البيفوت، والقمة هي أسفل جسم الشمعة أي max(open, close).
وإذا كانت هذه المسافة رفيعة بشكل غير معتاد يُوسَّع الارتفاع إلى حد أدنى مبني على ATR عند البيفوت مضروباً في معامل العرض، حتى تبقى المنطقة قابلة للاستخدام على الشموع الهادئة. ويتحكم إدخال Width في هذا الحد الأدنى.
إدارة المناطق
فلتر التداخل: تُرفض أي منطقة جديدة تتداخل مع منطقة قائمة بأكثر من 45% من ارتفاع الأصغر بينهما، أو تتكوّن قريباً منها زمنياً بمنتصف شبه مطابق. هذا يمنع تراكم صناديق شبه مكررة حول المستوى نفسه.
حد المناطق: يحدّد Max Zones Per Side أقصى عدد للمناطق على كل جهة، وتُحذف الأقدم عند تجاوز الحد.
الإبطال: مع تفعيل Hide Invalidated Zones تُحذف منطقة العرض بعد إغلاق فوق قمتها، ومنطقة الطلب بعد إغلاق تحت قاعها. ويمكن تعطيله للإبقاء على المناطق المكسورة كسياق.
الامتداد: تمتد المناطق النشطة لليمين بمقدار Zones Offset من شموع الشارت الحالي لتبقى ظاهرة أمام السعر.
إعادة الرسم
تُعتمد المناطق من الشموع المغلقة فقط على الفريم المختار. عند فتح شمعة جديدة على الفريم الأعلى يقرأ المؤشر الإشارة الناتجة عن الشمعة التي أُغلقت للتو، وتُستدعى request.security بخيار lookahead_off. لذلك المنطقة بعد ظهورها لا تتحرك ولا تختفي عند التحديث، ولا تظهر أي منطقة من شمعة لم تُغلق بعد.
ونتيجة لذلك تظهر المنطقة متأخرة بمقدار شموع البيفوت زائد شموع الاندفاع على الفريم المختار، وهو تأخير ملازم لأي تأكيد مبني على البيفوت.
الإعدادات
المصدر
- Timeframe: الفريم الذي تُحسب منه المناطق، والافتراضي 4 ساعات. اتركه فارغاً لاستخدام فريم الشارت.
- Pivot Length: عدد الشموع المطلوبة على كل جانب لاعتماد البيفوت.
- Sensitivity: من 1 إلى 10، والقيم الأعلى تخفف فلتر الاندفاع وتسمح بمناطق أكثر.
- Displacement Window: عدد الشموع التي يواصل المؤشر خلالها انتظار إغلاق الاندفاع بعد تأكد البيفوت قبل إلغائه.
المناطق
- Width: يتحكم في الحد الأدنى لسماكة المنطقة المبني على التذبذب.
- Zones Offset: مدى امتداد المناطق لليمين.
- Max Zones Per Side: أقصى عدد متزامن لمناطق العرض والطلب.
- Hide Invalidated Zones: حذف المناطق بعد إغلاق السعر خلالها.
الستايل: ألوان التعبئة والحدود للعرض والطلب، ونمط خط المنتصف متقطع أو منقّط أو متصل.
مؤشر الفريم: لوحة صغيرة على الشارت تبيّن الفريم الذي جاءت منه المناطق، مع خيارات الموضع والحجم واللون.
طريقة الاستخدام
اجعل الفريم في الإعدادات أعلى من فريم الشارت، مثل مناطق 4 ساعات على شارت 15 دقيقة، لتحتفظ بمرجع بنيوي وأنت تعمل على فريم أصغر. المناطق تعلّم أماكن تكوّن اختلال في التوازن غادر السعر مستواها بسرعة، وهي مناطق اهتمام لمراقبة سلوك السعر لا إشارات بحد ذاتها.
خفّض Sensitivity وارفع Pivot Length على الفريمات الصغيرة أو الأسواق المزعجة إذا ظهرت مناطق كثيرة، وارفع Sensitivity على الفريمات الكبيرة أو الأدوات البطيئة إذا كانت المناطق قليلة.
التنبيهات
تنبيهان متاحان: منطقة عرض جديدة، ومنطقة طلب جديدة، ويُطلقان عند تأكيد المنطقة من شمعة مغلقة على الفريم الأعلى.
ملاحظات وحدود
- المؤشر يصف بنية سعرية تكوّنت بالفعل، ولا يتنبأ بالاتجاه ولا يعطي إشارات شراء أو بيع.
- جودة المناطق تعتمد على الفريم والأداة المختارة، والإعدادات التي تناسب سوقاً لا تناسب غيره تلقائياً.
- الرموز ضعيفة السيولة أو الفريمات ذات الفجوات الواسعة قد تعطي تأكيدات اندفاع أقل.
يُنشر هذا المؤشر لأغراض تعليمية وتحليلية فقط، وليس نصيحة مالية ولا يضمن أي نتيجة. اختبر أي أداة على أدواتك وفريماتك قبل الاعتماد عليها. Indicador

Precision Bedrock [MohaveTrader]Precision Bedrock is an open-source market structure indicator that combines adaptive trend rails, structural equilibrium, rail-sourced support and resistance zones, and contextual reversal warnings into a single framework. Rather than accumulating historical levels, Bedrock continuously maintains the structure that remains relevant to current price action.
━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY BEDROCK IS DIFFERENT
━━━━━━━━━━━━━━━━━━━━━━━━━━
Most support/resistance tools draw a level and leave it there. The market moves; the level does not, and the chart slowly fills with lines that no longer matter.
Bedrock treats market structure as something living. Zones are born from rail extremes and confirmed by price rejection. They move through a defined lifecycle that includes testing, confirmation, merging, role reversal, and eventual retirement as the market evolves. The result is a chart focused on the structural levels that remain relevant as price evolves.
━━━━━━━━━━━━━━━━━━━━━━━━━━
THE RAIL & EQUILIBRIUM ENGINE
━━━━━━━━━━━━━━━━━━━━━━━━━━
Upper and lower rails track the recent extremes over a lookback that adapts to your chart's timeframe. They define the channel the zones are sourced from and the directional context the reversal logic reads against, running under the hood rather than as a plotted line.
Between the rails sits the equilibrium: a smoothed, adaptive midline that reads where price is balancing within the channel. It is the reference the reversal logic measures turns against — a curl or slope shift in the equilibrium is often where building pressure first shows up.
━━━━━━━━━━━━━━━━━━━━━━━━━━
STRUCTURAL ZONES
━━━━━━━━━━━━━━━━━━━━━━━━━━
Zones are sourced from the rails, not from raw pivots. A rail printing a new extreme arms a candidate; a close-based pullback of a configurable ATR distance away from that extreme commits it into a zone, keeping zones anchored to structure the market actually stepped away from. Each zone is an ATR-width band — the rail extreme is the outer edge, extending inward toward price — so the level has the thickness real reactions occur across.
Every zone moves through a lifecycle:
• Active — a confirmed level, drawn as Support or Resistance.
• Testing — price has entered the band; the label reads Testing until the test resolves.
• Confirmed hold — after a set number of consecutive closes back outside the inner edge, the test counts and the level's respected-touch strength increases.
• Broken — a confirmed close beyond the outer edge, or price walking far past and staying away, retires the level.
• Role reversal — a broken level can flip its role in place (support becomes resistance, or the reverse) a limited number of times, rather than spawning a duplicate.
Overlapping same-side zones collapse into a single structural area, reducing duplicate levels and chart clutter. Distant zones are hidden but retained, reappearing if price returns; a per-side cap and a broken-level fade keep the chart clean. Labels show the role and mid price (for example, "Support 6.04"), and an optional Full Zone History mode lengthens each box back to where the level first formed. All zone logic runs on confirmed bars and draws at the live edge — historical levels do not repaint.
━━━━━━━━━━━━━━━━━━━━━━━━━━
REVERSAL WARNING DOTS
━━━━━━━━━━━━━━━━━━━━━━━━━━
A reversal warning dot marks a bar where pressure is building against the current trend near a rail extreme. It appears only when several conditions align on the same bar: the trend is intact and not already changing, price is on the appropriate side of the equilibrium, price is near the relevant rail, either the equilibrium is turning or the bar itself is a rejection, and a weighted reversal score clears its threshold. A cooldown prevents clusters on the same swing. The score blends multiple structural and momentum components, so no single feature alone fires a dot.
A dot is an early, contextual warning, not a trade signal. It flags that a turn is being pressured; it does not confirm one. Each dot's tooltip prints its reversal score and the rail-break level a close beyond which would confirm the turn.
━━━━━━━━━━━━━━━━━━━━━━━━━━
CANDLE COLORING
━━━━━━━━━━━━━━━━━━━━━━━━━━
Optional candle coloring displays bullish bars in green and bearish bars in red, to keep the chart readable against the zone bands and dots. It is a simple directional recolor and encodes no state. For the cleanest display, hide the chart’s native candle body, border, and wick colors when this option is enabled.
━━━━━━━━━━━━━━━━━━━━━━━━━━
CHOP SUPPRESSION
━━━━━━━━━━━━━━━━━━━━━━━━━━
An optional filter, off by default, suppresses reversal dots when momentum is unusually weak or the momentum state is changing repeatedly. It remains optional because quiet or thin markets can still produce legitimate reversal pressure.
━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE IT
━━━━━━━━━━━━━━━━━━━━━━━━━━
Bedrock is context and structure for your own methodology, not a signal service:
• Read the zones as a map of where price may react, and plan your own entries, stops, and scale-outs around them.
• Use the rails and equilibrium for directional context as price approaches a zone.
• Treat a reversal warning dot as an early heads-up to tighten attention on an open position — remembering that a dot is a warning, not a confirmed turn.
• Watch how a level's touch history and lifecycle develop to gauge which zones have earned respect on your instrument.
Alert conditions are included for bullish and bearish reversal warnings, carrying the ticker and timeframe.
Bedrock pairs naturally with tools that add a different lens on the same price — volume profile, VWAP, and momentum or market-structure tools. It does not predict prices or guarantee outcomes: its zones and warnings are analytical structures, not recommendations to buy or sell. You remain solely responsible for every trading decision.
━━━━━━━━━━━━━━━━━━━━━━━━━━
CREDITS & LICENSE
━━━━━━━━━━━━━━━━━━━━━━━━━━
Precision Bedrock is released under the Mozilla Public License 2.0.
The adaptive trend rail, equilibrium, and reversal framework is derived from Adaptive Trend Rails by NICK789, used under the MPL 2.0. Original framework © NICK789.
Structural zones, lifecycle management, reversal scoring, candle coloring, and other Bedrock-specific functionality are original work by MohaveTrader. The momentum-state component of the reversal score is adapted from the author's open-source Precision Price Gamma (PGamma). Indicador

Pivot Matrix + Zones [AFD]Overview
Pivot Matrix + Zones brings up to three independently configured pivot systems into one coordinated overlay. It combines exact pivot ladders, standard Central Pivot Range (CPR), ATR- or tick-scaled reaction zones, formula-aware cross-pack confluence, retained untested levels, a compact context dashboard, and seven bar-close alert conditions.
Each pack can use a different formula and anchor, allowing combinations such as Daily Traditional, Daily Camarilla, and Weekly Fibonacci to be compared without merging their identities.
The script is designed for descriptive market context. It does not produce trade recommendations, forecasts, performance statistics, or automated orders.
What makes it different
The script's original contribution is its identity-aware coordination of the three packs rather than a simple stack of pivot lines. Each pack has its own formula, anchor, tier ceiling, formula-pivot and CPR visibility, labels, R/S color, and line style. One shared lifecycle model freezes reaction width at origin, carries formula and anchor provenance into retained levels and alerts, and keeps dashboard and drawing state aligned.
Confluence requires overlapping reaction zones from at least two distinct enabled packs. Multiple levels or historical origins from only one pack do not create confluence, and duplicate canonical levels do not inflate the displayed pack count. Exact formula-and-anchor duplicates are marked inactive instead of drawing the same configuration twice.
The implementation and lifecycle logic are original. The named pivot methods use standard published calculations identified below; no third-party indicator source code is reused.
Pivot formulas and anchors
The three packs can use Traditional, Floor Pivots, Fibonacci, Woodie, Classic, DM, Camarilla, Frank Dilernia, Shadow Trader, or ACD Method calculations. Traditional, Fibonacci, Woodie, Classic, DM, and Camarilla use the formulas documented for TradingView Pivot Points Standard. Floor Pivots uses the standard prior-period high, low, and close ladder through R3/S3; those levels match Traditional through the third tier, while Traditional retains its additional R4/R5 extensions.
Available anchors are Auto, Daily, Weekly, Monthly, Quarterly, and Yearly. Auto uses Daily pivots on chart resolutions through 15 minutes, Weekly pivots above 15 minutes and below one day, and Monthly pivots on daily-or-higher charts.
Each formula stops at its documented native tier. The Through Rn/Sn controls do not create unsupported extension levels. Camarilla calculations use the standard R/S equations and display H/L aliases alongside those names.
Data and session handling
Use daily-based values to request anchor data from the selected symbol context. Exchange default, RTH, and ETH choices are available. For futures, ETH uses the exchange-default electronic context, while RTH uses the named subsession entered in the settings. The default futures RTH name is us_regular, but valid names are symbol-specific.
On intraday charts, turning daily-based values off builds anchor values from the chart feed. This may reflect a visible session more closely, but Quarterly or Yearly anchors can have insufficient intraday history. On daily-or-higher charts, the script continues to use daily-based anchor data.
Most formulas use completed prior-anchor values. Woodie also uses the fixed open of the active anchor. The optional developing next CPR uses the active anchor's changing high, low, and close; it is visually separated and never enters confluence, retained history, or alerts.
CPR and reaction zones
CPR always uses the standard floor-pivot calculation from the completed period's high, low, and close. Its chart labels identify the center as PP, the lower Bottom Central boundary as Lower (BC), and the upper Top Central boundary as Upper (TC). This CPR pivot remains separate from a formula pivot when methods such as Woodie or DM produce a different value.
Reaction zones are symmetric bands around exact pivot prices. Their half-width can use confirmed Daily ATR, completed anchor ATR, or a fixed number of minimum ticks. The width is frozen when an anchor's geometry is created, so an existing zone does not drift as ATR changes inside that anchor. The exact pivot remains the center line; the surrounding fill is a configurable context band.
How to read the chart
Exact center lines are the calculated PP, resistance, support, or CPR levels. Soft surrounding fills show the configured interaction distance; they are not additional pivot levels or predictive outputs.
By default, formula PP lines and matching fills are yellow, Pack A R/S lines and fills are blue, and CPR boundaries and the central range are purple. Active labels identify Formula + Level, while CPR labels distinguish PP, Lower (BC), and Upper (TC). Price text is optional and hidden by default.
Confluence and retained levels
When eligible reaction zones from at least two distinct packs overlap, the script merges the overlap transitively into a confluence band. Each label names the unique contributing formulas and then shows the number of distinct packs represented, such as Traditional + Fibonacci x2. Enable confluence is the master control and is on by default. Turning it off removes confluence zones and labels and suppresses Confluence Touch events while the pivot packs, dashboard, retained-level lifecycle, and other alerts continue. When enabled, confluence color, text color, and projection change the display only, not the overlap or alert identity.
At an anchor rollover, eligible pivot zones that were not touched during their active period can be retained as Untested. A later confirmed wick overlap changes the record to TESTED, freezes and fades its drawing for 20 chart bars, and removes it afterward. Retained drawings are off by default, but lifecycle tracking, dashboard counts, confluence eligibility, and fill alerts continue while the drawings are hidden.
Dashboard
The compact dashboard shows only enabled packs with their selected pivot formula and any non-active status. It then classifies the two-period CPR relationship, reports whether the active-anchor open is above, below, or inside CPR, and shows the nearest retained untested level with the live count across all packs. CPR context follows the first enabled pack in A/B/C order.
Display controls
Active geometry can end at a finite current-bar offset, at the anchor end, or extend right. Confluence has its own finite current-bar, finite label-offset, and extend-right choices. Show confluence only hides non-confluence drawings while confluence is enabled; turning the master control off restores the normal layers. Calculations, the dashboard, lifecycle processing, and all enabled alerts continue.
Formula PP, CPR, labels, displayed prices, label size, line width, reaction shading, tier depth, and retained-level styling can be adjusted independently. Formula PP lines and fills default to yellow, Pack A R/S lines and fills default to blue, and CPR boundaries and the central range default to purple. The Inputs tab follows a numbered workflow and dims controls that do not apply without disabling calculations that still use their state. Prices are hidden by default, and chart labels identify formula and level without A/B/C prefixes; dashboard and alert provenance retain pack identity. Duplicate formula-and-anchor pack configurations are rejected rather than drawn twice.
Suggested setup workflow
Configure Pack A as the primary context, then enable Pack B or C when a second formula, anchor, or both are needed for comparison. Choose the highest native R/S tier, session basis, reaction-width method, and projection for the chart being reviewed. Use the dashboard and labels for identity, Show confluence only to isolate cross-pack overlaps, and retained-level drawings when the untested lifecycle should remain visible.
Create alerts only after the symbol, timeframe, sessions, pack settings, and reaction-width inputs are finalized, because those chart settings define the levels and events being monitored.
Alerts
Seven fixed conditions are available: Active Level Touch, Cross Up, Cross Down, CPR Enter, CPR Exit, Untested Level Filled, and Confluence Touch. Events confirm at chart-bar close. Optional dynamic messages aggregate supported events from the same confirmed bar and include available pack, formula, anchor, level, origin, and price context. TradingView running alerts retain the script inputs saved when they were created, so delete and recreate an alert after changing Enable confluence or another input.
Limitations
Pivot values and rollover timing depend on the selected symbol, data feed, anchor, session context, and available history. Daily and intraday feeds can differ because of extended hours, futures settlements, and feed construction. An invalid futures subsession name can fall back to the exchange default, so confirm the requested name in Inputs and compare the resulting pivots with the intended session.
Reaction zones and confluence visualize proximity; they do not predict a response. Untested means the configured zone was not touched during its tracked active period; it does not imply that price must revisit or react to it.
Use a standard time-based chart when evaluating touches, crosses, and alerts because those events use the chart's OHLC bars. Alerts still depend on TradingView alert creation, chart settings, feed updates, and bar-close processing.
The script keeps bounded histories of up to 30 live untested levels and 20 fading tested markers, with older retained records removed as those limits are reached. Confluence display is capped at 20 zones.
This is a public open-source Pine Script v6 indicator with a Mozilla Public License 2.0 source header. TradingView's open-source reuse rules apply on-platform before the license terms. It is an educational charting tool and is not financial advice. Indicador

Market Structure + Swing Levels [AFD]Market Structure + Swing Levels organizes confirmed swing highs and
swing lows into configurable price Zones. Its default ATR mode sizes each
individual Zone from volatility at the Swing origin Bar; Tick, Point, and
Currency modes provide fixed-distance alternatives. It then describes
confirmed continuation Breaks, direction-changing Shifts, and the initial
direction assignment without trade instructions or predictive claims.
## Publication and license
- Publication type: Open-source.
- Pine version: 6.
- License: Mozilla Public License 2.0 (MPL 2.0).
- The open-source publication setting, this description, and the MPL 2.0
notice in the Pine source header must remain aligned.
The source is available for inspection and modification under MPL 2.0. This
summary identifies the applicable license; the notice in the Pine source
header remains the authoritative license reference.
## Capabilities
- Confirms Swing Highs and Swing Lows using the same selected strength on both
sides of the candidate Bar.
- Shows classifications by default: `H`, `HH`, `EH`, and `LH` for highs, and
`L`, `HL`, `EL`, and `LL` for lows.
- Builds ATR-, Tick-, Point-, or Currency-width Zones around confirmed Swings.
- Merges transitively overlapping same-side Zones into exact-union clusters.
- Evaluates Structure on confirmed Bars using selectable Close or Body
clearance.
- Lets Zone breaks use that Structure rule or an inclusive High/Low Touch of
the far edge.
- Retains broken Zones by default with configurable memory and color.
- Reports current direction, latest Structure event, active Zones, and
nearest-Zone distance in the Dashboard.
- Provides four fixed Structure alert conditions plus an optional combined
dynamic alert that can include Zone breaks.
## How to use it
1. Select a Preset Profile or choose Custom and set Swing Strength. The default
Swing profile uses a strength of 7 Bars on each side.
2. Choose the Zone Width Mode and width appropriate for the chart.
3. Choose how Structure confirms a clearance. Close is the default; Body
requires both the Open and Close to clear the reference.
4. Zone Break Basis follows the Structure rule by default. Touch (High/Low)
instead breaks a Zone when the wick reaches or passes its far edge.
5. Swing High and Swing Low Zone labels start at the oldest Swing Origin
represented by each Zone. Select Right Edge when current-Bar alignment is
preferred.
6. Swing High and Swing Low text have separate color controls. Both default to
white and also color the matching Swing classification labels. Zone Age,
Break, Shift, and Dashboard text also start white.
7. The Dashboard starts with all five rows visible. Disable nearest-Zone
distance when only Direction, Last Event, and Zone counts are needed.
8. Show Broken Zones starts on with a 20-Bar memory. Turn it off for an
active-Zones-only chart.
9. Zone Age starts off. When enabled, its unit starts in Days.
## How to interpret Zone cluster counts
The `×N` suffix is a cluster membership count. `Swing High ×3` means three
confirmed Swing High Zones are represented by that merged cluster.
It does not mean price tested one exact price three times. Zones merge when
their price bands overlap or meet at an edge. Merging is transitive, so one
connected Zone can bridge two other Zones even when those outer Zones do not
directly overlap each other. The displayed cluster preserves the full union of
those connected bands, and `×N` reports how many confirmed Swing Zones
contributed to it.
## Broken Zones
Show Broken Zones is the explicit on/off control:
- On by default — the Zone freezes at its break-confirmation Bar, changes to
Broken Zone Color, and remains visible for the selected Broken Zone Memory.
- Off — a Zone is deleted as soon as it breaks.
- Up to 20 broken Zones are retained. If more accumulate before their memory
expires, the oldest retained Zone is removed first.
This display choice does not change how Zone breaks are detected and does not
change alert behavior.
## Limitations and evidence
- Swings require the selected number of Bars on both sides, so confirmation
occurs after the origin Bar.
- ATR Zone width uses volatility from the Swing origin Bar.
- Currency-width mode creates no Zone when the symbol does not provide a valid
Point Value.
- Active Zones are capped at 40 per side. When the cap is reached, the oldest
active Zone on that side is removed first.
- Hours and Days shown for Zone Age are timeframe-based approximations and do
not correct for session gaps.
- Cluster membership describes connected Zone bands, not repeated reactions at
one exact price.
- Repository checks pass for the working source. TradingView compilation and
runtime verification of the latest working source have not yet been
recorded.
- This indicator is educational chart context and does not provide trade
instructions. Indicador

FVG Confluence [AFD]This Pine Script v6 overlay documents confirmed fair-value gaps (FVGs), optional order blocks (OBs), and overlap evidence from two selected higher timeframes. Its main output is a confluence band whose label identifies the two source timeframes and zone types when two same-direction zones overlap by a configurable amount.
This is a descriptive chart tool. It records what the source zones have done, how they overlap, and how price has interacted with them. It does not provide trade instructions, manage positions, or forecast an outcome.
────────── 1. Overview ──────────
The script has three related layers:
- Chart FVGs: three-candle fair-value gaps detected on the chart timeframe.
- Optional Order Blocks: the last opposite candle identified before a confirmed swing break.
- MTF Confluence: an overlap between source zones from Compare timeframe 1 and Compare timeframe 2.
By default, MTF confluence bands and labels showing their source timeframes and zone types are visible. Raw higher-timeframe source boxes are hidden by default and can be shown per timeframe with a choice of FVGs, Order Blocks, or both. Standalone chart FVG boxes and chart OB boxes are off by default; each appears when its respective Enable FVGs or Enable Order Blocks setting is turned on.
────────── 2. How FVGs are detected ──────────
A bullish chart FVG is recorded when the current confirmed bar's low is above the high from two bars earlier. A bearish FVG is the inverse. The Minimum gap filter removes gaps smaller than the selected ATR multiple or tick distance. The default filter is 0.05 ATR.
The same gap test is evaluated in each selected higher-timeframe context. Higher-timeframe events are admitted once per source origin time, which prevents the same source event from producing duplicate records on the chart.
────────── 3. FVG lifecycle ──────────
Each FVG keeps its original boundaries and tracks penetration using the selected Mitigation / fill rule:
- FRESH - price has not touched or entered the gap.
- TESTED - price has touched or entered the gap but has not reached its 50% midpoint.
- MITIGATED - price has reached the 50% midpoint but has not fully traversed the gap.
- FILLED - price has fully traversed the gap. Filled chart FVGs are removed unless Keep filled FVGs is enabled.
Wick mode uses the candle range for penetration and state changes. Close mode requires the candle close to reach the relevant boundary. The rule is applied consistently to chart FVGs, chart order blocks, and higher-timeframe FVG source zones. Higher-timeframe OB sources track penetration with the same FRESH → TESTED → MITIGATED lifecycle as chart OBs, so raw HTF OB labels show state and fill percentage. A higher-timeframe zone (FVG or OB) that is fully traversed becomes FILLED: it stays tracked internally, is hidden by default, can be revealed per timeframe with the Show 100% filled zones settings, and never feeds confluence.
A boundary touch counts as TESTED, while the fill percentage measures penetration through the original zone. A boundary-only test can therefore still display 0% Filled until price advances farther into the zone.
Shrink on partial fill changes only the displayed near edge of a chart FVG. The original boundaries and 50% midpoint remain available for fill measurement and lifecycle identity. Order Blocks have their own OB partial fill setting (off by default) that shrinks OB boxes the same way. Breaker blocks restart measurement from the near edge in the new direction.
The FVG Labels settings can show the percentage filled and, optionally, the FVG lifecycle state. Labels can be placed inside the box or to its right, with user-selected offset, size, and text color.
────────── 4. Order blocks ──────────
When enabled, the script confirms swing points using Swing strength and searches the configured OB candle lookback for the last opposite candle before a confirmed break. It records bullish and bearish blocks separately and limits the retained count per side.
OBs use the same Wick or Close interaction basis as FVGs. They can move from FRESH to TESTED and MITIGATED. If Show breakers is enabled, a block that is crossed changes direction and becomes a BREAKER with a new penetration measurement. If breakers are disabled, the crossed block is removed. When OB partial fill is enabled, OB boxes shrink their near edge inward as confirmed penetration advances, and breaker blocks restart measurement from the near edge in the new direction.
Chart OB detection, retention, and drawing are controlled together in the Order Blocks settings and are off by default.
────────── 5. MTF confluence ──────────
Confluence uses only the two selected comparison timeframes. The chart timeframe is not a confluence source. Both comparison timeframes must be strictly higher than the chart timeframe and must be different from each other. If either timeframe is invalid, or either source is disabled, the corresponding confluence path is not active.
The script compares source zones by:
1. Direction - bullish zones pair only with bullish zones, and bearish zones pair only with bearish zones.
2. Original geometry - qualification uses the original source boundaries, not a partially shrunk display edge.
3. Minimum overlap - the positive overlap must meet the configured threshold, measured as a multiple of the confirmed TF1 timeframe ATR and subject to a minimum tick. Using a fixed-timeframe ATR keeps band qualification stable when the chart timeframe changes.
4. Source details - a band retains both source origins, source timeframes, source types, and its own formation time.
The source HTF calculation uses shifted, completed higher-timeframe values and confirms pivot-based events before admission. This avoids using a developing higher-timeframe event, but it introduces confirmation delay. A source zone may therefore appear after the originating higher-timeframe movement rather than during it.
Raw HTF FVGs / OBs can be shown separately for inspection, with a per-timeframe choice of FVGs, Order Blocks, or both. The type selection is display-only; all raw zones still feed confluence. Each timeframe has its own raw partial fill setting (TF1 raw partial fill and TF2 raw partial fill) that shrinks the near edge of that timeframe's raw zone boxes (both FVGs and OBs) as penetration advances, and its own Show 100% filled zones setting (off by default) that keeps fully traversed raw zones visible. Raw HTF labels show state and fill percentage for all zone kinds. Confluence is FVG-only by default. If Include Order Blocks in confluence is enabled, same-direction FVG/OB, OB/FVG, and OB/OB overlaps can also qualify. Any band containing an OB is labeled STATIC because it does not have the pure FVG/FVG fill cycle.
────────── 6. Reading confluence bands ──────────
The band color describes overlap density, not a rating:
- One active overlap - the single-overlap color.
- Two active overlaps - the two-overlap color.
- Three or more active overlaps - the dense-overlap color.
Density counts active same-direction confluence records that share positive price overlap and are currently visible under the state and filled-band filters. Changing those visibility filters can therefore change a displayed band's density color. Density does not measure historical performance, reliability, or the future behavior of a level.
For pure FVG/FVG bands, Confluence partial fill can shrink the displayed band as confirmed penetration advances. Confluence fill % label reports penetration through the original overlap. The fill percentage is descriptive and is not a forecast.
Confluence labels can show:
- Source timeframes and source types.
- The number of overlapping active bands.
- Fill percentage for pure FVG/FVG bands on its own label line.
- FRESH, TESTED, PARTIAL, FILLED, or STATIC state, shown together with age on one horizontal metadata line.
- Age in chart bars or HH:MM:SS.
- Visits and breaks in the tooltip.
Fresh, Tested, Partial, and Filled visibility can be controlled independently. Filled confluence bands are hidden by default. Nearby labels are grouped onto a shared horizontal row and spaced by a configurable number of chart bars; this changes label placement only and does not change the bands.
────────── 7. Alerts ──────────
The script exposes two confirmed-bar alert conditions for chart-timeframe detections:
- FVG formed - a new confirmed chart-timeframe FVG.
- Order Block formed - a new confirmed chart-timeframe order block.
There are no built-in alerts for confluence formation, fills, mitigation, state changes, or position management. You can create TradingView alerts from the two available conditions.
────────── 8. Settings and defaults ──────────
FVG Drawings controls chart FVG detection, drawing, per-side retention, Wick or Close measurement, ATR or tick filtering, partial display shrink, filled-zone retention, lifecycle display, and bullish/bearish colors.
FVG Labels controls fill percentage, position, right-side offset, text size, and label color.
Order Blocks controls OB detection, drawing, per-side retention, swing strength, candle lookback, breaker behavior, partial fill, and colors.
MTF Confluence controls the MTF master enable, the two comparison timeframes, source inclusion, raw HTF visibility, and — independently per timeframe — raw zone types (FVGs, Order Blocks, or both), raw partial fill, filled-zone visibility, and source color. It also controls HTF retention, HTF lookback days, and raw labels. The default comparison pair is 30 minutes and 60 minutes.
Confluence Evidence controls partial fill, fill labels, OB-containing overlap inclusion, minimum overlap, maximum retained bands, source-detail labels, filled-band visibility, overlap colors, state and age display, label collision spacing, age format, and state filters.
Visuals controls the confluence label size.
────────── 9. How to use ──────────
1. Start on a time-based chart timeframe below both comparison timeframes. The default 30-minute and 60-minute pair is intended to be used from a lower chart timeframe such as 15 minutes.
2. Leave both comparison source checkboxes enabled when you want TF1 × TF2 confluence. Selecting the same comparison timeframe twice does not create a valid pair.
3. Use the default FVG-only mode when you want all bands to have the FVG lifecycle and fill measurement. Enable OB inclusion only when STATIC FVG/OB, OB/FVG, or OB/OB overlap evidence is useful to your analysis.
4. Use Wick or Close consistently with how you want penetration measured. Close mode ignores wick-only penetration for state and fill progression.
5. Turn on raw HTF zones, or enable chart FVGs/OBs in their own settings sections, only when you need to inspect those layers. They are intentionally hidden in the default chart view.
6. Use the state, age, fill, density, and source details to understand what produced a band and how price has interacted with it. Do not treat color density as a score.
────────── 10. What this script does not do ──────────
- It is not a strategy and does not provide backtests, win rates, performance statistics, or position sizing.
- It does not place orders, manage risk, or generate trade instructions.
- It does not use the chart timeframe as a confluence source.
- It does not create confluence from opposite-direction zones.
- It does not guarantee that every historical FVG or OB remains visible. Source retention, HTF lookback, state filters, filled-band visibility, and TradingView drawing limits can remove or hide records.
- It does not eliminate higher-timeframe confirmation delay. A valid setting can show no band when no recent confirmed source pair qualifies.
- It does not claim that every chart, symbol, session, or timeframe will produce the same number of zones. ATR, tick size, available history, market hours, and price behavior affect detection.
────────── 11. Limitations and developing values ──────────
Lifecycle mutations, HTF source admission, confluence identity, fill measurement, and state changes are gated on confirmed bars. Boxes and labels are redrawn on the last chart bar so their right edge, text, colors, and collision layout reflect the current view. This means the display can update while the underlying lifecycle remains confirmation-gated.
Changing the chart timeframe or either comparison timeframe clears the prior MTF context and rebuilds it from confirmed source history. The selected comparison timeframes must be higher than the new chart timeframe. If the new context has no retained qualifying source pair, the confluence view can be empty until confirmed source events are available. Band qualification uses the confirmed TF1 timeframe ATR, so the same source pairs qualify regardless of the chart timeframe. In the Wick basis, fill percentages and lifecycle states are chart-timeframe independent; in the Close basis, penetration follows chart-bar closes, so fill percentages and states can legitimately differ between chart timeframes.
The script is capped by TradingView drawing limits and by its own retention settings. Chart and higher-timeframe zone arrays prune older records according to their configured limits. The confluence maximum is a retained-record capacity: when a new qualifying pair arrives beyond the cap, the oldest record is removed first. A crowded chart can therefore show fewer drawings than the underlying detection logic considered. Higher-timeframe records are also limited by the HTF lookback-days and max-zones-per-HTF/type settings.
The implementation is confirmation-gated, but this description does not make an absolute non-repainting claim. Verify the current publication on TradingView with the intended symbols, timeframes, input changes, reload behavior, and Bar Replay before relying on its historical appearance.
────────── 12. Originality ──────────
FVGs, order blocks, pivots, ATR filters, and multi-timeframe analysis are established market-analysis concepts. The implementation focus here is showing which two source zones created each overlap and tracking its lifecycle: each confluence band preserves the source records that formed it, keeps immutable original overlap geometry, separates display-only partial fill from band identity, and exposes state, age, fill, visit, break, source, and overlap-density information instead of hiding them inside an unexplained composite value.
The source is open for inspection under the MPL 2.0 license. The calculations and visual labels are intended to be read as a record of price interaction, not as a promise about what happens next.
────────── 13. Disclaimer ──────────
For educational and informational purposes only. Not financial advice. Past chart behavior does not predict future results. Indicador

Supply & Demand Zones Liquidity & Stop Hunt [LunqFX]Supply and demand zones are where price reacts — but most indicators draw every swing as a box and leave you to guess which one matters. Liquidity Zones ranks them: it marks the key supply and demand zones, scores each one by how much liquidity it holds, and shows whether it is still fresh — so you know which level to trade and which to ignore.
❶ WHAT EACH ZONE SHOWS
Every zone is a coloured block — magenta = SUPPLY (sellers, above), teal = DEMAND (buyers, below) — and carries three readings that are original to this script:
LIQ SCORE (0–100) — how much volume traded inside the zone versus the strongest zone on the chart. 100 = the heaviest zone (the real magnet); a low score = a thin, weak level.
VOLUME ▲ / ▼ — the up-volume vs down-volume that built the zone: did buyers or sellers do the work inside it.
FRESH / TESTED N× — FRESH = price has not returned yet (strongest reaction expected); TESTED N× = already retested N times, weaker each time.
❷ HOW TO TRADE IT
1 — Read the BIAS in the panel. ▲ BUY-SIDE = favour longs, ▼ SELL-SIDE = favour shorts. Trade with it, not against it.
2 — Pick a zone with a HIGH LIQ Score (70+). Low-score zones are thin and unreliable — skip them.
3 — Prefer FRESH zones. A FRESH high-LIQ zone is the highest-probability reaction. A many-times-TESTED zone is more likely to break than hold.
4 — Wait for price to return to that zone. The bright edge line is your reference level.
5 — Enter on the reaction: LONG — bias BUY-SIDE, price drops into a FRESH teal DEMAND zone, LIQ 80, Volume ▲ (buyers dominant). Long on the reaction, stop below the zone, target the next supply zone above. SHORT — bias SELL-SIDE, price rallies into a FRESH magenta SUPPLY zone, LIQ 76, Volume ▼ (sellers dominant). Short on the reaction, stop above the zone, target the next demand zone below.
❸ WHAT TO AVOID
Trading low-LIQ zones — they hold little liquidity. Fading a zone whose Volume split disagrees with its side (e.g. a supply zone built on heavy up-volume) — the level is weak. Chasing a many-times-TESTED zone expecting a clean bounce.
Works on any symbol and timeframe — forex, gold (XAUUSD), indices, crypto and stocks — intraday and higher timeframes alike.
❹ DASHBOARD
The panel lists every zone with its price, LIQ Score, FRESH/TESTED status and side (BUY/SELL), plus a LIQ-weighted overall bias — the full picture at a glance. Optional neon candles can be turned off to keep your own style.
❺ HOW IT WORKS
1 — Swing highs and lows are found from confirmed pivots (closed bars — no repainting). Each swing high opens a supply zone, each swing low a demand zone. 2 — Each zone is a block centred on the swing, its height scaled to ATR so it fits the instrument's volatility. 3 — For every zone the script measures the volume traded inside it, the up/down-volume split, and how many separate times price entered it. 4 — LIQ Score = the zone's volume ÷ the strongest zone's volume, scaled 0–100. 5 — The bias is weighted by LIQ Score, so one heavy zone counts for more than several thin ones — an honest read of whether liquidity leans buy or sell.
No repainting
Zones are built only from confirmed pivots and rendered on the last bar over a fixed lookback. A zone that appears in a screenshot is a zone that was there live — history is never recalculated.
This indicator is an educational market-analysis tool, not financial advice. Zone strength and past reactions describe historical behavior and do not guarantee future results. Always confirm with your own analysis and manage risk. Indicador

EonMetrics MTF Supply & Demand ZonesMTF SUPPLY & DEMAND ZONES
What it does
A "supply and demand zone" is a small area on the chart where price paused quietly for a few candles, and was then immediately followed by one strong, decisive candle that shot away from it in one direction. That quiet pause is where this indicator draws its zone — the idea being that this is where a large amount of buying or selling built up right before the big move, so price is likely to react again if it ever comes back to that exact area.
The key part of this tool is that it does this search across up to six different timeframes at the same time — your current chart's timeframe plus up to five higher ones (like 15-minute, 1-hour, 4-hour, Daily) — and draws all of them directly onto the chart you're actually looking at. This means if you trade on a 5-minute chart, you can still see a major 4-hour or Daily zone approaching, without ever switching your chart away from the 5-minute view.
How to actually use it (step by step)
Watch price as it approaches a colored box. Green boxes are "demand" zones (expect a possible bounce upward). Red boxes are "supply" zones (expect a possible bounce downward).
Pay more attention to boxes tagged with a bigger timeframe (like "4H" or "D") — these represent more significant, longer-term levels than a box tagged "5m" or "15m".
When price actually returns into a box, a small "R" letter appears — that's your cue that a retest is happening right now, worth watching closely for a reaction.
If a box's tag shows more than one timeframe at once (for example "15m, 1H"), it means multiple timeframes agree on almost the exact same price level — generally a stronger, more meaningful zone than one confirmed by only a single timeframe.
If a box gets fully broken through (depending on your settings, either by a wick or by a candle closing past its far edge), that zone has failed and should no longer be trusted — either it disappears from the chart or stays visible dimmed out, depending on your setting.
Every setting explained
Detection group
Sensitivity — controls how strong and sudden the "breakout candle" must be before its pause area counts as a zone. Lower numbers require a much stronger candle (fewer zones, but stronger ones); higher numbers accept weaker candles (more zones, more frequent but less significant).
Min Base Candles — the minimum number of small pause candles required right before the strong candle for it to count as a real zone. A higher number demands a proper, visible pause; a lower number (like 1) also accepts a zone built from just a single quiet candle.
Max Base Candles — how far back the script is allowed to look for pause candles. This mostly just prevents extremely long pauses from creating unusually oversized zones.
Base Candle Max Size (x impulse) — how small each pause candle must be compared to the strong breakout candle to actually count as "part of the pause." Lower values demand a very obvious size difference between the quiet candles and the big one.
Zone Size Multiplier — makes every drawn zone box slightly bigger or smaller than its natural measured size, without changing where it's centered.
Min Zone Height (x ATR) — throws out zones that are too thin/flat to be meaningful (basically just noise). Raise this if you keep seeing tiny, unhelpful zones.
Max Zone Height (x ATR) — throws out zones that are too tall — a pause that large usually isn't really a tight pause, just a wide sideways range, and produces low-quality zones.
Timeframes group
Six on/off + timeframe pairs — turn each timeframe slot on or off, and pick which timeframe it should scan. Leaving a timeframe box empty means "use whatever timeframe my chart is currently on."
Zone Behavior group
Retest Trigger — decide what counts as price "returning" to a zone: any wick poking into it ("Wick" — earliest, most sensitive), or a full candle close inside it ("Close" — stricter, fewer false signals).
Zone Invalidation — decide what counts as a zone being broken/failed: a candle closing all the way through the far edge ("Close" — recommended, survives brief stop-hunt wicks), or any wick trading through it ("Wick" — kills the zone immediately, more sensitive).
Skip Overlapping Zones — when a new zone from one timeframe lands on almost the same price as an existing zone from another timeframe, this merges them into a single box (showing both timeframe tags) instead of drawing two overlapping duplicates.
Overlap Threshold — how much two zones need to overlap before they're considered "the same level" and merged together. Lower values merge more aggressively; higher values keep each timeframe's version separate more often.
Max Active Zones per Timeframe — the maximum number of zones from a single timeframe kept on the chart at once (the oldest one is dropped once you go over this). Since several timeframes can be active at once, the total on-screen count adds up across all of them.
Keep Broken Zones on Chart — when turned on, a zone that fails stays visible but dimmed with a dashed border (useful for reviewing which levels didn't hold). When off, failed zones are removed immediately.
Zone Display Range (x ATR) — temporarily hides zones that are currently very far away from price, just to reduce clutter. Hidden zones keep working in the background and reappear automatically once price gets close again. Set to 0 to always show every zone regardless of distance.
Style group
Supply / Demand — the fill colors for red (supply) and green (demand) zones.
Show Timeframe Label — prints which timeframe each zone came from directly inside the box.
Show Zone Mid-Line — adds a dotted line through the exact middle of every zone, sometimes used as a more precise reaction point.
Show Retest Markers — turns the small "R" touch-markers on or off.
Alerts group
New Zone / Zone Retest / Zone Break — turn each alert type on or off individually. In TradingView's own "Create Alert" window, choose "Any alert() function call" to receive the full, detailed messages (direction, timeframe, exact prices) for all of them at once. Indicador

Median Point of ControlMedian Point of Control calculates and displays the median OHLC4 price for customizable time periods, along with percentage-based upper and lower bands. It provides a statistical reference framework for identifying potential support, resistance, and mean-reversion zones.
What It Does
This indicator computes the median of all OHLC4 values within a defined period and plots three horizontal levels:
Median Line — The statistical middle price of the period
Upper Band — Median + user-defined percentage
Lower Band — Median - user-defined percentage
The current period's levels update dynamically as new bars form. Completed periods are preserved as historical reference lines.
Why Median Instead of Average?
The median is the "middle" value when all prices are sorted. Unlike the mean (average), the median is resistant to outliers — a single extreme wick or price spike won't distort the level. This makes it more representative of typical price action during the period.
Two Calculation Modes
Timeframe Mode Define periods using standard timeframes: 4H, Daily, Weekly, Monthly, etc. The indicator automatically detects when each period begins and ends.
Bars Mode Define periods by a fixed number of bars (e.g., every 50 bars, every 100 bars). Useful for non-time-based analysis or custom period lengths that don't align with standard timeframes.
Settings
Calculation Mode: Choose between Timeframe or Bars
Timeframe: Period length when using Timeframe mode
Bars: Number of bars per period when using Bars mode
Band Distance (%): Percentage offset for upper/lower bands from median
Line Colors: Customize colors for median, upper, and lower bands
Line Width: Thickness of the plotted lines
Historical Transparency: Opacity of completed period lines
Max Historical Periods: Number of past periods to display
How To Use
Identify the range: The upper and lower bands create a price envelope based on the period's median. When price approaches these levels, watch for reactions.
Mean reversion reference: The median line represents the "fair value" of the period. Price tends to oscillate around this level.
Breakout detection: If price breaks and holds beyond a band, it may signal trend continuation rather than reversion.
Multi-timeframe analysis: Use Daily median on intraday charts to see where price stands relative to the day's statistical center.
Important Notes
This indicator does not predict price direction. It provides statistical reference levels only.
The current period's median updates with each new bar — this is expected behavior, not repainting.
Historical period lines are fixed once their period closes.
For best results, use on liquid instruments (stocks, forex majors, major crypto pairs).
Indicador

Rejection Block Matrix [ZOM]Rejection Block Matrix maps supply and demand rejection blocks from failed swing sweeps and confirmed pivot wick rejection.
What it shows:
- Demand and supply blocks built from wick/body rejection structure
- Failed high/low sweep blocks for tape-reading style reversal context
- Tested and broken block state tracking, with broken context hidden by default to reduce clutter
- Reclaim/rejection marks when price retests a live block
- A compact dashboard showing visible demand/supply blocks, tested count, latest source, bias, and quality
How I use it:
The blocks are structure zones, not automatic entries. I use them to see where price rejected prior liquidity, then watch how later candles behave when they revisit those blocks. It is especially useful on liquid intraday markets such as ES, NQ, crypto, and major FX pairs.
Open-source script. Educational tool only; not financial advice. Indicador

Liquidity Void Zone Map [ZOM]Liquidity Void Zone Map is a clean imbalance and fair-value-gap style zone mapper built to highlight where displacement left thin liquidity behind.
What it shows:
- Bull and bear liquidity void bands built from three-candle imbalance geometry
- Capped zone height so the bands stay readable instead of becoming huge slabs
- Active, tapped, and broken-state tracking
- Reclaim/rejection retest marks when price revisits a void with directional confirmation
- A compact dashboard showing active bull/bear zones, tapped count, broken count, state, and best quality score
How I use it:
The bands are context, not standalone entries. I look for price to return into a void, then watch the reclaim/rejection behavior around the band while considering trend, volatility, and broader market structure. It is designed for ES/NQ/crypto/forex intraday structure reads, but it can be adapted to other liquid markets.
Open-source script. Educational tool only; not financial advice. Indicador

Indicador

Liquidity Vault [Dojo La Nuit]Liquidity Vault maps resting liquidity on your chart as clean horizontal levels and tracks what happens to them — without any buy/sell signals or predictions. It is a pure visualization tool for traders who read price around liquidity.
HOW IT WORKS
The script detects swing pivots and clusters nearby highs (and nearby lows) into single liquidity zones using an ATR-based tolerance, so the levels travel across instruments without re-tuning. Each zone gets a strength score from 0 to 100 built from three factors:
• Touches — how many times price reacted at the level
• Freshness — recent levels score higher and decay over time (configurable half-life)
• Volume — relative volume that accumulated at the level
HOW TO READ IT
• Red lines = sell-side liquidity (resting above price)
• Green lines = buy-side liquidity (resting below price)
• Opacity = strength: the stronger the zone, the more solid the line
• Dimmed, dotted lines = zones that have already been swept (price wicked through the level). They are kept as context, not removed.
SETTINGS
• Zone Detection — adaptive or fixed pivot length, clustering tolerance, lookback, max live zones
• Zone Strength — minimum score to display, freshness half-life, volume weighting on/off
• Visuals — theme (auto/dark/light), strength-based intensity, keep swept zones, line width
• Colors — fully customizable buy-side / sell-side colors
NOTES
Strength is shown through line opacity by design, to keep the chart minimal. Zones are recalculated on confirmed bars. This tool highlights where liquidity rests and when it gets taken — it does not generate entries, targets or signals.
This indicator is for educational and analytical purposes only. It is not financial advice. Always do your own research and manage your own risk.
─────────────────────────
🌙 LIQUIDITY VAULT — Dojo La Nuit
Liquidity Vault mostra la liquidità presente sul grafico come livelli orizzontali puliti e ne traccia l'evoluzione, senza segnali di acquisto/vendita e senza previsioni. È uno strumento puramente visivo per chi opera attorno alla liquidità.
COME FUNZIONA
Lo script individua i pivot di mercato e raggruppa i massimi (e i minimi) vicini in un'unica zona di liquidità tramite una tolleranza basata sull'ATR, così i livelli funzionano su strumenti diversi senza dover ritoccare i parametri. A ogni zona viene assegnato un punteggio di forza da 0 a 100, calcolato su tre fattori:
• Tocchi — quante volte il prezzo ha reagito al livello
• Freschezza — i livelli recenti pesano di più e si attenuano nel tempo (half-life configurabile)
• Volume — il volume relativo accumulato sul livello
COME SI LEGGE
• Linee rosse = liquidità sell-side (sopra il prezzo)
• Linee verdi = liquidità buy-side (sotto il prezzo)
• Opacità = forza: più la zona è forte, più la linea è piena
• Linee attenuate e puntinate = zone già spazzate (il prezzo ha bucato il livello con un'ombra). Restano come contesto, non vengono rimosse.
IMPOSTAZIONI
• Rilevamento zone — pivot adattivo o fisso, tolleranza di clustering, lookback, numero massimo di zone attive
• Forza zone — punteggio minimo da mostrare, half-life della freschezza, peso del volume on/off
• Visual — tema (auto/scuro/chiaro), intensità in base alla forza, mantieni zone spazzate, spessore linea
• Colori — colori buy-side / sell-side completamente personalizzabili
NOTE
La forza è rappresentata tramite l'opacità della linea, per scelta, per mantenere il grafico minimale. Le zone vengono ricalcolate sulle barre confermate. Lo strumento evidenzia dove si trova la liquidità e quando viene presa: non genera entrate, target o segnali.
Questo indicatore è a scopo puramente didattico e di analisi. Non è consulenza finanziaria. Fai sempre le tue valutazioni e gestisci il tuo rischio. Indicador

Smart SR Zones [JOAT]SMART SR ZONES
Support / resistance done properly. Most public SR scripts paint a horizontal line at every pivot, which produces wallpaper, not analysis. Smart SR Zones does the opposite — pivots are first detected with a volatility-aware engine, then clustered into zones, then scored by volume and touches, then filtered by spacing and distance. What ends up on the chart is the small handful of levels that actually matter for the current market state.
Pivot detection — preset-driven
A single Strength Preset selects the personality of the pivot engine:
Scalp — 4 left / 2 right, 0.4× ATR clustering tolerance, 4-bar minimum spacing. For 1–5m charts.
Local — 6 / 4, 0.5×, 8-bar. Tight zones from recent structure.
Swing — 15 / 8, 0.9×, 20-bar. The balanced default.
Major — 35 / 15, 1.4×, 50-bar. Wide macro zones.
Custom — every parameter is exposed for manual tuning.
The preset abstraction means you do not need to refit anything across timeframes — pick the read you want and the engine does the rest.
Clustering, not stacking
When two pivots fall within Cluster Tolerance × ATR of each other they are merged into a single zone, with the box span widened to cover both extremes. This is the difference between a "level" and a "zone": a level pretends price is precise, a zone respects the fact that liquidity sits in a band. The cluster tolerance is ATR-relative so the same setting works across symbols.
Touch counting, properly gated
A pivot must contribute to a cluster from a minimum bar spacing (preset-driven). Without this filter a chop within a zone gets counted as ten separate touches and inflates the strength score. With it, a zone earns its touch count from genuinely independent visits.
Volume-weighted strength + star rating
Each cluster accumulates the bar volume at every contributing pivot. The aggregate is converted to a 1–3 star rating relative to the strongest zone currently on the chart, and is shown in the zone label alongside the touch count. Zones can optionally be coloured by volume share so the visually loudest box is the one carrying the most demonstrated activity.
Zone of Interest (ZOI) — the headline filter
A zone earns the ZOI badge when all of these are true at the same time:
It has met the minimum-touches threshold (so it is real structure).
Its volume share is above the ZOI volume threshold (so it is meaningfully active).
It has not been touched recently — at least ZOI Quiet bars since the most-recent touch.
In other words, a ZOI is a high-quality level that the market is conspicuously not testing — and these are usually the next levels that matter. The ZOI gets a bright burlywood border with an optional animated pulse so it visually separates from the rest of the SR stack.
Distance hiding
A "Hide zones farther than %" input drops anything whose centre price is too far from current — so when you scroll into history the chart does not get cluttered with macro zones from another era. Set to 0 to keep everything visible.
Broken zones and dropped zones
Two optional historical layers:
Broken — zones that were physically closed through. Renders in a desaturated palette so you can see where structure failed without confusing it for active level.
Dropped — zones that were removed not by a break but by reorganisation, because newer / stronger pivots reshuffled the cluster set.
Both are off by default so a working chart stays clean.
Optional signal layer
Three small markers (all off by default) for traders who want execution hints rather than just structure:
Successful test — circle on bars that touched an active zone and rejected.
Retest — diamond when price returns to a broken zone from the opposite side, inside a configurable window.
Zone reaction — small diamond on a touch-with-hold, plus a text label on physical break events.
A configurable cooldown prevents back-to-back markers from the same zone.
Dashboard
A compact diagnostic table, positionable to any of nine corners, monospaced. Shows nearest support / resistance with distance, current ZOI status, active zone count per side, and the preset in use. A compact mode hides descriptions for narrow layouts.
Alerts
A single high-signal alert is exposed: Zone of Interest activation — fires on the first bar a zone qualifies as a ZOI. The other layers are visual diagnostics, not alert-grade; this is intentional, because the ZOI rule is the strongest filter in the script and is what you actually want to be notified about.
How to read it
Look at the chart and ignore everything except the ZOI-tagged zones and the stars. The stars tell you which historical levels have the most demonstrated activity; the ZOI badge tells you which of those have been deliberately avoided recently. The intersection — a star-rated ZOI close to price — is the cleanest level read this script can produce. Use the volume score and the touch count as a tiebreaker when multiple ZOIs are in play.
Suggested settings
Default Swing preset works well from 1H through 1D on liquid futures, FX, and crypto. Drop to Local for intraday execution and Scalp for tape-reading on minute charts. Major is for weekly / monthly macro reads. The ZOI volume threshold (70%) is intentionally strict — drop it to 50–60% if you want more frequent ZOI candidates.
Originality / what's reused
The vocabulary (pivot, cluster, touch count, broken zone, retest) is public-domain market-structure language. The implementation — the preset-driven engine, the ATR-clustering, the volume-weighted star rating, the ZOI rule (touches + volume share + quiet-period), the dropped-zone reorganisation logic, and the volume-share intensity colouring — is JOAT-original and tuned together as a single system. No third-party code reused.
Open source
Published open-source under the default Mozilla Public License 2.0. The source is fully documented inline — every helper is sectioned, every input has a tooltip, and the structural layers are separable so you can learn from any specific piece. Forks welcome with credit.
Limitations
SR is structural context, not a signal generator. Smart SR Zones does not print buy / sell labels — it prints zones, ratings, and a single high-quality ZOI alert. On extremely illiquid instruments the volume-share rankings will be noisy and the ZOI rule will fire less often; that is the right behaviour. Zones beyond the Pivot Memory horizon are dropped to stay under TradingView's 500-object cap.
—
-made with passion by jackofalltrades
Indicador

Structure Break Chain (SBC) [SharpStrat]Structure Break Chain (SBC)
Every trader has been there. You're in a trade, the trend looks healthy, and then suddenly price flips on you. You had no warning. You held too long. The trend was already breaking down you just couldn't see it clearly enough.
That's exactly what Structure Break Chain was built to solve.
SBC is a market structure tracking tool that reads how price is actually moving swing by swing, break by break and builds a real-time picture of trend health. Not with a smoothed line or a lagging oscillator, but by watching the raw structure of the market, the sequence of higher highs and lower lows that every trend is made of.
What is a Break of Structure (BOS)?
In any uptrend, price makes a series of higher highs. Every time price closes above a previous swing high, that's a Break of Structure confirmation that the bull trend is still alive and continuing. In a downtrend, it's the opposite: price keeps breaking below previous swing lows.
SBC detects every single one of these breaks automatically and marks them on your chart with a labeled arrow green for bullish, red for bearish. No manual drawing. No guessing.
What is a CHoCH (Change of Character)?
A CHoCH fires when price breaks structure in the opposite direction to the current trend for the first time. In a bull trend, that means price has just broken below a prior swing low. That single event doesn't confirm a full reversal but it's the earliest possible warning that something has changed in the market's behavior.
Most indicators won't catch this until several bars later. SBC marks it the moment it happens, in yellow so it stands out from the regular BOS signals as shown in the image below.
The Chain Counter
Here's what makes SBC different from a standard structure indicator.
Every time a BOS happens in the same direction without interruption, the chain count goes up by 1. When a CHoCH happens, the chain resets to 1 and starts counting in the new direction.
A chain of 4 means price has broken structure 4 times in a row in the same direction. That's a mature, committed trend. A chain of 1 after a CHoCH means the new trend is unproven and fragile you should be cautious about entries.
A live label on the right edge of your chart shows the current chain count in real time as shown in image above. It updates every bar.
Break Quality Score
When price barely scrapes past a swing level by a few ticks on low momentum, that's a very different signal from a strong, high-volume candle closing well beyond the level.
SBC scores every break as STRONG, NORMAL, or WEAK based on two factors:
How far price closed beyond the broken level (relative to ATR)
How large and decisive the breaking candle's body was
STRONG breaks have brighter, more vivid label colors. WEAK breaks are dimmed and semi-transparent as shown in image below. This lets you visually filter the breaks that matter from the noise.
Failed BOS
Sometimes price breaks a level, you get excited, and then it immediately reverses back inside. That's a trap and it's one of the most common ways retail traders get hurt.
SBC watches every confirmed break for the next 1-3 bars (adjustable). If price closes back inside the broken level within that window, the indicator marks it as a FAILED break in purple as shown in image above. This is your earliest possible warning that the breakout wasn't real, often appearing few bars before the CHoCH confirms the reversal.
Using Failed BOS + CHoCH together gives you two layers of confirmation before you act on a potential trend change.
Pullback Entry Zones
After every confirmed BOS, SBC draws a semi-transparent box between the broken level and the previous swing reference as shown in image below. This is the area where price is most likely to pull back before continuing in the trend direction, the optimal entry zone.
The box extends forward by a user defined number of bars and disappears automatically when a new BOS or CHoCH occurs.
Multi-Timeframe Overlay
You can optionally enable a higher timeframe (HTF) structure overlay. When turned on, SBC also tracks BOS and CHoCH events from your chosen higher timeframe and plots them directly on your current chart as dimmed labels as shown in image above, so you always know what the bigger picture is doing.
Note: HTF labels are designed to appear only once per HTF bar, not on every sub-bar. So on a 15-minute chart with a 1-hour HTF, you'll see the HTF label appear once on the first 15-minute candle of that hour not repeated across all four candles.
The dashboard also shows whether your current timeframe trend and the HTF trend are aligned or in conflict. Trading a bull BOS on the 15-minute chart while the 1-hour is bearish is a generally riskier than when both are pointing in same direction.
The Dashboard Panel
A compact information table sits in the corner of your chart (position is adjustable). It shows everything at a glance without you having to read the price action:
Current trend direction (Bullish / Bearish / Neutral)
Live chain count
Quality of the last break (STRONG / NORMAL / WEAK)
HTF direction and alignment status
HTF chain count
Maximum chain ever recorded on this chart
Average chain length across all completed trends
Total BOS count
Total CHoCH count
The chain count in the table turns yellow when it reaches your milestone number (customizable in settings) a visual nudge that the trend is mature.
How to use SBC
Wait for a CHoCH, this is your signal that the previous trend is over and a new one may be starting. Don't trade it immediately.
Watch the first BOS in the new direction if it's STRONG quality, that's confirmation the new trend has real momentum behind it.
Look for a pullback into the entry zone, the green or red dashed box SBC draws is your optimal entry area.
Check the chain count, if you're entering at chain count 1 you're probably early. If you're entering at 6 or 7 the trend is probably mature and a reversal is likely so adjust your expectations accordingly.
Check HTF alignment, if both your timeframe and the higher timeframe are showing the same direction, the trade has more conviction behind it.
Watch for Failed BOS and CHoCH these are your exit warnings. A Failed BOS followed by a CHoCH is a reliable signal to close or tighten your stop.
Settings guide
Structure settings
Pivot Length - how many bars left and right are needed to confirm a swing high or low. Higher values = fewer but cleaner pivots.
BOS Confirmation - "Close" waits for a candle to close beyond the level (safer, recommended). "High/Low" triggers on the wick (faster but noisier).
Failed BOS Window - how many bars after a break to watch for failure.
Show Swing Lines - draws dashed horizontal lines at each detected pivot.
Show Pullback Entry Zones - draws the dashed box after each BOS.
Zone Extend Right - how far the zone box extends to the right in bars.
Shade Trend Background - adds a background color based on current trend direction.
Visual settings
Full color customization for Bull, Bear, CHoCH, Failed BOS, and Swing Lines.
Toggle quality labels, chain bubble, and dashboard panel on/off.
Choose dashboard position (Top Right / Top Left / Bottom Right / Bottom Left).
Adjust label size.
Multi-timeframe settings
Enable or disable HTF overlay.
Choose any HTF timeframe.
Adjust HTF label transparency.
Why this is better than basic Structure break indicators
Most structure indicators on TradingView detect BOS and CHoCH but stop there. SBC adds three things:
A chain counter that tracks consecutive structural breaks turning raw signals into a measure of trend maturity and health over time.
A break quality scoring system that grades every break on two factors so you aren't chasing noise.
A Failed BOS detector that watches the confirmed break for the next few bars and warns you before the CHoCH even happens giving you a head start that most traders don't have.
Note - Works on all markets and timeframes. Stocks, forex, crypto, indices, futures etc, if it has candles SBC probably works on it. The pivot length and ATR based quality scoring adapt automatically to the volatility of whatever asset you apply it to. Indicador

Exhaustion Zones (Momentum Episodes) [HermesCore]WHAT THIS INDICATOR DOES
Exhaustion Zones (Momentum Episodes) watches RSI, the Relative Strength Index, a standard momentum gauge that runs from 0 to 100. When it closes beyond a threshold (70 high, 30 low by default), a saturation episode begins. While the episode lasts I track two things: the most extreme price it prints, and the highest or lowest RSI it reaches. The moment RSI closes back inside, the episode is over and one event fires.
That event leaves a zone on the chart. Not an arbitrary band: the zone is the wick of the bar that printed the episode extreme. That wick is the exact range where the last buyers or sellers ran out. The question this script keeps asking is simple: where did price stand when the fuel ran out, and does that place get respected afterwards?
Every zone gets a 0 to 6 quality score at birth, and from then on the script counts what happens: held or broken, per grade, with sample sizes shown.
WHY IT IS DIFFERENT
Most overbought and oversold tools mark the moment and move on. An arrow prints at RSI 70 and nobody ever counts what happened next. My rules are:
- An episode is one event, not a stream of signals. RSI can sit above 70 for thirty bars; that is still one episode, one zone. The state machine needs no cooldown tricks because episodes are naturally separate: RSI has to leave and come back.
- The zone is price structure, not decoration. It spans the wick of the episode-extreme bar, padded to a minimum thickness when the wick is thin, rejected entirely when a single mega-candle would paint an unusable block (the dashboard counts those rejections too).
- The score never changes after birth. It is built only from facts known the moment the episode ends.
- Every zone resolves and every resolution is counted. Held versus broken, per grade, with n. If grade A zones hold no better than grade C zones on your chart, the dashboard will tell you so.
- Everything updates on confirmed bars only. An episode cannot start, peak or end within a forming candle. No intrabar flicker, no repainting events.
HOW TO READ THE CHART
- Zone box: red above price (exhaustion high, resistance), green below (exhaustion low, support). A label like "Exh High A S:5 RSI:77" reads: exhaustion high, grade A, score 5, the episode peaked at RSI 77.
- The saturated inner band at the extreme side is the core: the final half ATR (Average True Range, a standard volatility measure) of the wick, where the move was most exhausted. The fainter remainder is the rest of the wick.
- The vivid one-candle stripe inside the zone marks the exact bar that printed the extreme.
- Gold color with a soft glow: the grade is A or S. Those are the premium zones.
- Thicker border: the zone was touched, price came back to it at least once.
- Faint grey boxes without text: resolved history. A slightly stronger outline means the zone held, a weaker one means it broke. History whispers, it does not shout.
- Zones farther than 6 ATR from price render dimmed, so your eye goes to what is in play.
THE SCORE
- Saturation depth: peak RSI reached 80 or beyond (20 or below for lows), +2. Just past the threshold, +1.
- Climax volume: the extreme bar traded above its own volume average, +1.
- Fast fade: RSI closed back inside within 5 bars of its peak, a fast rejection, +1.
- Episode divergence: price printed a more extreme level than the previous episode while peak RSI stayed less extreme, +1. Compared episode to episode, and stated as such.
- Wick quality: the rejection wick of the extreme bar is at least 45 percent of its body, +1.
Grades: S (6), A (5), B (4), C (3), D (0 to 2). The strength filter is off by default: episodes are scarce enough to show them all and let the grade speak. Turn it on if you only want premium zones.
HELD VERSUS BROKEN
A zone is broken when price closes beyond its far edge. A zone is held when it survives to its maximum age (400 bars by default) without that happening. Every resolved zone lands in the per-grade statistics: "18% held 32 / 149 (n=181)" reads as 32 held, 149 broken, 181 judged in total.
Be aware what the definition means: held is a strict standard. Surviving 400 bars unbroken is a long time, so the absolute percentages run low by design. What matters is the ordering. On my charts S grades hold clearly better than A and B, which hold better than C. That ordering is the evidence that the score measures something real, and your own dashboard will show you whether it does on your market.
DASHBOARD
RSI now with its state. Episode now: when a saturation episode is live you see its running extreme and peak RSI update bar by bar, so you watch the zone being born. Active zone count per side. Five grade rows with held percentage, raw counts and n. Lifetime events per side plus total touches. Guard rejects, the oversized zones that were refused. Heat bars are proportional.
HOW I USE IT
This script is deliberately timeframe agnostic: an RSI episode means the same thing on every chart, only the rhythm changes.
- 4H is where I read regime. Episodes are scarce there and the zones land on swing highs and lows you would have marked by hand. An A or S exhaustion high on 4H is a place I expect sellers to defend.
- 1H is the middle ground: more events, still clean structure.
- 15m is the execution and evidence frame. Episodes are frequent, so the statistics build n fast, and I use the zones as intraday reaction levels. Expect more mediocre grades here; the dashboard shows you exactly how mediocre.
My core read is the combination of grade and first touch. A fresh A or S zone that gets its first touch is the highest quality moment this script produces: price returning to the exact range where the last push died, while the statistics tell me how often that place held in the past. A D zone breaking is not a surprise, it is the base rate.
SETTINGS THAT MATTER
- Saturation Level High and Low (70/30): the episode thresholds. Widen to 75/25 for fewer, heavier episodes.
- Deep Saturation Level (80): the line between +1 and +2 for depth.
- Zone Max Age (400 bars): the held standard. Lower it and held becomes easier to earn; the statistics will recalculate accordingly. Neither setting is the truth, they answer different questions.
- Min Zone Thickness (0.25 ATR) and Max Zone Height (3.0 ATR): the zone sanity guards.
- Broken Zones Become: greyed history or deleted. Your choice of how loud the past is.
- Show Exhaustion Core, Highlight Extreme Candle, Focus Fade: the visual layers, all styling only, all on by default.
ALERTS
New Exhaustion High Zone, New Exhaustion Low Zone, Exhaustion High First Touch, Exhaustion Low First Touch, Exhaustion Zone Broken, New A/S Exhaustion Zone. Touch alerts fire on the first touch only.
CALCULATION DETAILS
- All state changes happen on confirmed bars. Episodes start, extend and end on closes only.
- RSI length 14 on close by default. The episode tracks the running price extreme and RSI peak; both freeze the moment the episode ends.
- The zone spans from the episode extreme to the body edge of the extreme bar, padded to the minimum thickness, rejected above the height cap.
- Divergence needs a previous episode on the same side to compare against, so the first episode per side can never score that point.
- The statistics are computed from the bars your chart loads, so they differ per timeframe and per symbol. Neither is wrong, they measure different samples.
HONEST LIMITATIONS
- The statistics describe the past. They tell you how often these zones held on the loaded history, not what the next one will do.
- Held is defined as surviving the maximum age. That is a strict standard and it keeps the absolute percentages modest. Read the ordering between grades, not the raw numbers, and recalibrate the age to your own horizon.
- Scores on a fresh chart need history: volume averages and the previous episode for divergence take time to fill in.
- RSI is calculated on the chart's candles. On Heikin Ashi, Renko or other synthetic chart types the closes are not real prices and every result is distorted. Use standard candles.
- A zone is a place where exhaustion happened, not a guarantee of reversal. Strong trends break exhaustion zones routinely; that is exactly what the broken counts are there to show you.
ORIGINALITY
Overbought and oversold are as old as RSI itself. The episode state machine, the wick-anchored zone construction, the 0 to 6 scoring, the held versus broken accounting per grade and the visual language are my own work, built from scratch in Pine v6. Every number on the dashboard is recomputable from the rules in this description.
Questions and suggestions are welcome in the comments. Enjoy.
Indicador

Strong Rejection Zones | ProjectSyndicateSTRONG REJECTION ZONES
Strong Rejection Zones marks the prices where the market keeps getting pushed back, and grades every one of them so you can tell at a glance which levels are worth respecting and which are likely to fold. It scans for three independent signatures of rejection — swing pivots, dominant rejection wicks, and volume spikes — folds overlapping hits at the same price into a single zone, and assigns each zone a live 0–10 power score built only from measurable level quality. Heavily-confirmed zones are drawn bold and solid; thin, one-off levels stay faint. An on-chart leaderboard ranks every live zone, so the whole support-and-resistance map is readable in one look.
🎯 0–10 POWER SCORE
Each zone earns a live grade from four weighted, sign-stable factors:
Confluence — how many separate detections stack at the level, with diminishing returns so one isolated touch never scores high on its own.
Diversity — a level confirmed by pivots AND wicks AND volume outranks one confirmed a single way.
Detection strength — volume versus its baseline, wick dominance, and range expansion on the candle that formed the level.
Recency — recently defended levels rank above stale ones, with a configurable decay.
ELITE (9–10) is intentionally hard to reach: in practice it takes all three footprint types lining up on a strong, fresh, well-confirmed level — so the grade reflects real edge, not decoration. All four weights are adjustable.
🏷️ IN-ZONE LABELS
Every graded zone carries a tag above the band — side (BULL / BEAR), tier, the X/10 score, a star rating, the confluence count (×N detections), and live distance from price in both percent and pips. The tag is pinned to the zone's right edge and grows inward, so it never hangs off the box.
🧲 CONFLUENCE MERGING
Same-side detections that land within the cluster tolerance are folded into one zone and raise its grade, instead of littering the chart with a separate line for every swing. One graded level per pool.
🥇 ELITE HIGHLIGHT
The top tier is rendered in a brighter shade of its side colour with a heavy accent border, so the levels that matter jump out before you read a single number. Tier ladder: FAINT → WEAK → MEDIUM → STRONG → ELITE.
🎨 STRENGTH-SHADED FILL
Fill opacity tracks the score — strong zones print solid, weak ones stay faint — so relative importance is visible without reading any text.
📊 RANKED DASHBOARD
A leaderboard sorts active zones by power and shows rank, side, tier, exact price, score with stars, and distance + direction from price (▲ above / ▼ below). Choose any of four corners, four text sizes (Tiny → Large), and how many rows to show. A header line summarises how many ELITE / STRONG / active zones are live.
📍 ORIGIN-ANCHORED ZONES
Each zone is drawn from the bar where its level first formed and extended to the right. It stays anchored to that price — it does not drift or re-center as new detections arrive, so the band always sits on the price action that created it.
🔒 STABLE, LOCK-IN ZONES
Zones are built only on confirmed bars and updated in place. A zone keeps its grade, tier and position once it is drawn; it only changes state when price genuinely breaches it (by close or by wick — your choice), at which point it either clears or stays on as a faded broken level.
🧹 CLEAN-UP FILTERS
Hide any zone under a chosen power score, enforce a minimum separation between same-side zones, and suppress zones forming right on top of current price.
🔔 NATIVE ALERTS
Dedicated alerts for an ELITE cluster forming, a STRONG cluster forming, a zone being breached, fresh bullish and bearish detections, and price approaching a STRONG or an ELITE zone.
🔧 FULLY ADJUSTABLE
Detection toggles and sensitivity (pivot length, wick-dominance ratio, volume-spike multiple, baseline length); clustering tolerance and minimum separation; zone geometry (ATR length, height, max active zones, right-extension); the four score weights plus confluence-for-full-credit, decay length and decay floor; score and distance filters, breach method (close or wick), and keep-or-clear on breach; the full colour theme (bull, bear, broken, accent), fill-opacity range and ELITE border width; label size and which scores get labelled; dashboard position, rows and text size; and alert thresholds.
🚀 Works on gold (XAUUSD), silver, forex, crypto and indices, on any timeframe.
────────────────────────
HOW TO TRADE IT — TWO APPROACHES
The score chooses the playbook. High-grade zones tend to hold and reverse; thin zones tend to give way. So treat them differently.
FADE THE ZONE — reversion (STRONG / ELITE, score ≥ 7)
Use when price is approaching a high-grade zone — the most-confirmed levels, and statistically the most likely to react.
Wait for price to tap the zone (the dashboard distance shows it closing in).
Look for a wick into the band and a close back outside it.
Enter on the rejection back out of the zone.
Stop just past the far edge — a sustained close through it means the level failed.
Target the next zone on the dashboard, then the nearest strong zone on the opposite side.
TRADE THE BREAK — continuation (WEAK / MEDIUM, or once a strong zone breaches)
Use on thin, single-type or stale levels — the ones most likely to break.
Wait for a decisive close through the zone on expanding volume, not a single wick.
The zone switching to a broken state is your confirmation it is a real break, not a stop-hunt.
Enter with the break beyond the zone, or on a retest of the broken level.
Stop back inside the broken zone.
Target the next zone in that direction.
Rule of thumb: high-grade → expect a reaction, fade the tap. Low-grade on volume → expect follow-through, trade the break.
────────────────────────
⚠️ This tool highlights high-probability rejection levels and frames fade-versus-break scenarios. It is NOT a standalone buy/sell signal. Always combine it with your own strategy, price-action analysis and risk management to confirm setups. Past statistical behaviour does not guarantee future results. Indicador

Momentum Saturation Zones [JOAT]Momentum Saturation Zones
Introduction
Momentum Saturation Zones is an open-source indicator that detects when momentum has reached an extreme and then begins pulling back, marks the price level where that extreme occurred as a zone, and tracks the zone's structural validity until price either respects or invalidates it. The premise is that momentum peaks and troughs at significant price levels leave structural imprints — areas where the market demonstrated conviction — that subsequently act as reference points for support or resistance.
The key differentiator from a simple overbought/oversold indicator is the composite strength scoring: a zone is only created when a configurable minimum score is reached, incorporating the momentum extreme level, the magnitude of the pullback, volume at the peak bar, and whether a divergence is present.
Core Concepts
1. Multi-Source Momentum
The momentum signal is selectable from five sources: RSI, Rate of Change (normalized), MFI, Stochastic RSI, or a composite average of all four. The composite mode averages RSI, normalized ROC, MFI, and StochRSI into a single signal, reducing single-indicator noise while retaining each component's contribution:
float momSeries = (rsiRaw + rocNorm + mfiRaw + stochD) / 4.0
2. Adaptive Pullback Detection
The saturation trigger fires when momentum has pulled back from a rolling peak by more than a configurable percentage threshold. The threshold is adaptive — scaled by the current ATR relative to its 50-bar average. In high-volatility regimes the required pullback is larger; in low-volatility regimes it is smaller. This prevents premature triggers in noisy markets and late triggers in calm ones.
3. Composite Strength Scoring (0-100)
Each potential zone is scored before creation. The score combines four components: how extreme the momentum peak was (0-40 points), how far beyond the threshold the pullback reached (0-20 points), the volume ratio at the peak bar relative to average (0-20 points), and whether momentum divergence is present (0-20 points). Only zones meeting the minimum score gate are created:
float extrem = math.max(0.0, math.min(40.0, (peakAbsMom - 50.0) * 40.0 / 50.0))
float pbScore = math.max(0.0, math.min(20.0, (actualPb - adaptPct) * 2.0 + 10.0))
float volScore = math.max(0.0, math.min(20.0, (volRatio - 1.0) * 20.0))
float divScore = bearDiv and i_useDiv ? 20.0 : 0.0
4. Zone Anchor Logic
Bear resistance zones are anchored at the candle high of the peak bar with the zone extending upward by one ATR multiple — the bottom edge sits exactly at the candle high so price must reach up to touch the zone. Bull support zones are anchored at the candle low of the trough bar with the zone extending downward — the top edge sits at the candle low so price must come back down to touch it.
5. Zone Lifecycle and Touch Counting
Each zone tracks how many times price has returned to it (touch counter displayed in the label). When price closes beyond the invalidation offset, the zone is deleted entirely — no ghost boxes remain. A proximity check before creation prevents duplicate zones from stacking at the same price level.
Features
Five momentum sources: RSI, ROC, MFI, StochRSI, or Composite average
Adaptive pullback threshold: ATR-normalized trigger scaled to current volatility regime
Composite strength scoring (0-100): Extremity, pullback depth, volume, and divergence components
ATR-anchored zones: Three-layer gradient zones (outer, mid, core) with center line
Proper candle anchoring: Resistance bottoms at candle high; support tops at candle low
Touch counting: Zone labels update each time price retests the zone
Proximity deduplication: No duplicate zones within 1.5 ATR of same-side existing zones
Clean invalidation: Zones deleted entirely on invalidation — no ghost boxes
Divergence detection: Momentum divergence contributes bonus points to strength score
Candle coloring: Candles tinted when price is inside or within 0.5 ATR of a valid zone
Dashboard: Momentum value, pullback threshold, volatility regime, active zone count, and directional strength scores
Input Parameters
Momentum Configuration:
Momentum Source: RSI, ROC, MFI, StochRSI, or Composite (default: Composite)
Momentum Length: Period for all momentum calculations (default: 14)
Peak Lookback Bars: Rolling window for peak/trough detection (default: 50)
Saturation Trigger:
Adaptive ATR Threshold toggle (default: on)
Pullback % from Peak: Required pullback to trigger (default: 10%)
RSI Overbought/Oversold: Absolute extreme levels for gate (default: 70/30)
Cooldown Bars: Minimum bars between zone creation events (default: 10)
Zone Settings:
Max Active Zones: Simultaneous zone cap (default: 4)
ATR Length: ATR period for zone sizing (default: 14)
Zone Width (x ATR): Zone height as ATR multiple (default: 1.0)
Invalidation Offset %: Margin beyond zone for invalidation trigger (default: 0.3%)
How to Use This Indicator
Step 1: Read the Zone Strength
Zones display their strength score (0-100) in the label. Higher-scoring zones represent confluences of multiple factors and are historically more likely to produce price reactions.
Step 2: Use Touch Count for Context
A zone touched twice and holding is more significant than a freshly-created zone. A zone touched three or more times that eventually breaks is exhausted — expect the break to accelerate.
Step 3: Watch for Candle Color Changes Near Zones
The candle coloring activates when price enters the zone or comes within 0.5 ATR of it. This provides a passive alert that price is approaching a structural reference.
Indicator Limitations
Momentum peaks do not always coincide with price extremes — the zone is placed at the price of the peak momentum bar, which may differ from the highest/lowest price in the lookback
In strongly trending markets, zones on the trend side may be repeatedly invalidated as trend continues
The strength score is a composite heuristic, not a backtested predictor of zone success rate
Originality Statement
The composite strength scoring system — combining momentum extremity, pullback depth, volume, and divergence into a single 0-100 gate — applied to zone creation is the original analytical contribution. The proper candle-edge anchoring (resistance bottom at candle high, support top at candle low), proximity deduplication, and clean deletion on invalidation are implementation details not present in most published support/resistance zone indicators.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Momentum saturation zones are historical reference levels and do not predict future price reactions. Trading involves substantial risk of loss.
-Made with passion by jackofalltrades
Indicador

Indicador

Indicador
