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 على الفريمات الكبيرة أو الأدوات البطيئة إذا كانت المناطق قليلة.
التنبيهات
تنبيهان متاحان: منطقة عرض جديدة، ومنطقة طلب جديدة، ويُطلقان عند تأكيد المنطقة من شمعة مغلقة على الفريم الأعلى.
ملاحظات وحدود
- المؤشر يصف بنية سعرية تكوّنت بالفعل، ولا يتنبأ بالاتجاه ولا يعطي إشارات شراء أو بيع.
- جودة المناطق تعتمد على الفريم والأداة المختارة، والإعدادات التي تناسب سوقاً لا تناسب غيره تلقائياً.
- الرموز ضعيفة السيولة أو الفريمات ذات الفجوات الواسعة قد تعطي تأكيدات اندفاع أقل.
يُنشر هذا المؤشر لأغراض تعليمية وتحليلية فقط، وليس نصيحة مالية ولا يضمن أي نتيجة. اختبر أي أداة على أدواتك وفريماتك قبل الاعتماد عليها. Indicator

Indicator

4H S/R indicator by [GANG BANG CLOSED TRADING COMMUNITY]What it does
Plots support and resistance zones derived from confirmed 4H pivots, combined with a psychological round-number grid ($100 / $50 / $25). Zones where both align are highlighted with an orange border — these are the strongest levels on the chart.
How it works
Confirmed 4H swing highs and lows are detected, then clustered: pivots closer than 0.5×ATR merge into a single zone, and the touch counter increments. Zone width is ±0.25×ATR, so zones widen in volatile markets and tighten in quiet ones.
Each zone carries a relevance score: touches (max +5), FLIP +2 (the zone acted as both support and resistance), round number inside +2 (+3 for a round hundred), fresh flip +3, minus 1 per 100 untouched 4H bars, minus 4 for a displacement break with no retest. Only the three highest-scoring zones on each side of price are drawn, which keeps the chart readable.
A break is registered only on a 4H close beyond the zone edge plus a 0.25×ATR buffer — wicks through a zone count as sweeps, not breaks. Zones that price cuts through three times in rapid succession without reacting are removed; zones with 3+ touches or a FLIP history are never deleted, only penalised.
How to use
This is a context tool, not an entry signal. It shows where a move has a reason to stall — combine it with your own entry method. Four alerts are available: support test, resistance test, zone with round number, and first retest after a role flip.
Labels
S — support (below price), R — resistance (above price), ×N — number of touches, FLIP — zone worked both ways, FRESH — role just changed, awaiting first retest, RN$ — round number inside the zone.
Notes and limitations
Zones appear only after a pivot is confirmed (about 6 4H bars), so there is a deliberate delay — in exchange, nothing repaints. Round-number steps are tuned for gold; other instruments need different values. Past level reactions do not guarantee future ones.
Settings (interface is in Russian)
Основные — Main · Круглые числа — Round numbers · Вид — Appearance · Актуальность зон — Zone relevance · Ширина зоны — Zone width · Слияние уровней — Level merging · Показывать зон сверху/снизу — Zones shown per side · Тянуть зоны от места рождения — Extend zones from origin Indicator

EVA Ai+ FVG v1.3 Fair Value Gap FVG - ICT Imbalanc🧬 EVA Ai+ Fair Value Gap — индикатор FVG, дисбаланса и ликвидности
EVA Ai+ Fair Value Gap — это автоматический FVG-индикатор для PulseWire, который находит бычьи и медвежьи зоны Fair Value Gap, показывает ценовой дисбаланс на графике и отслеживает заполнение каждой зоны в реальном времени.
Индикатор предназначен для анализа Price Action, ICT, Smart Money Concepts, ликвидности и рыночного дисбаланса. Он помогает увидеть участки, где цена прошла слишком быстро и оставила незаполненный диапазон между свечами.
🔍 Что такое FVG
Fair Value Gap — FVG представляет собой трёхсвечный ценовой дисбаланс.
🟢 Бычий FVG формируется, когда цена резко движется вверх и между предыдущими свечами остаётся незаполненный диапазон.
🔴 Медвежий FVG формируется при сильном нисходящем движении, когда между свечами остаётся незаполненная область.
Такие зоны обычно рассматриваются как области интереса для анализа возможного возврата цены, реакции, продолжения движения или заполнения дисбаланса. На PulseWire FVG обычно описывается именно как трёхсвечный imbalance, который цена впоследствии может частично или полностью заполнить.
⚙️ Что делает индикатор
✅ Автоматически обнаруживает Bullish FVG и Bearish FVG
✅ Отображает зоны Fair Value Gap непосредственно на графике
✅ Поддерживает текущий или отдельный таймфрейм поиска
✅ Продлевает активные зоны вправо
✅ Динамически уменьшает FVG по мере его заполнения ценой
✅ Не восстанавливает уже заполненную часть после отката
✅ Полностью удаляет зону после полного перекрытия
✅ Поддерживает автоматическую фильтрацию слабых дисбалансов
✅ Позволяет настраивать цвета и количество активных зон
✅ Формирует отдельные алерты для бычьего и медвежьего FVG
✅ Использует lookahead_off без переноса будущих данных в прошлое
📉 Динамическое заполнение FVG
Главная особенность EVA Ai+ FVG — Dynamic Mitigation.
Когда цена начинает входить в Fair Value Gap:
закрашенная область уменьшается вместе с заполнением;
на графике остаётся только незакрытая часть дисбаланса;
уже перекрытая область не появляется снова после отката;
после полного заполнения FVG автоматически удаляется.
Это позволяет видеть не просто исторические прямоугольники, а актуальный остаток ценового дисбаланса.
📈 Как применять бычий FVG
Бычья зона отмечается зелёным цветом.
Возможный сценарий анализа:
Определите восходящий тренд или бычью структуру рынка.
Найдите свежий Bullish Fair Value Gap.
Дождитесь возврата цены к зоне.
Следите за реакцией цены внутри незаполненной части FVG.
Используйте дополнительное подтверждение: структуру рынка, объём, уровень поддержки, свечную реакцию или импульс.
Рассматривайте противоположную границу зоны как точку отмены сценария только в рамках собственной торговой системы.
📉 Как применять медвежий FVG
Медвежья зона отмечается красным цветом.
Возможный сценарий анализа:
Определите нисходящий тренд или медвежью структуру рынка.
Найдите свежий Bearish Fair Value Gap.
Дождитесь возврата цены к зоне дисбаланса.
Оцените реакцию продавцов внутри оставшейся части FVG.
Подтвердите сценарий структурой рынка, сопротивлением, объёмом или свечной моделью.
Не используйте сам факт касания FVG как обязательную команду для входа.
🕒 Мультитаймфрейм-анализ
В настройках можно выбрать отдельный таймфрейм поиска.
Примеры применения:
FVG с 1H на графике 15m;
FVG с 4H для поиска зон на младшем таймфрейме;
FVG текущего таймфрейма для скальпинга и внутридневного анализа;
старший FVG как контекст, младший таймфрейм — для уточнения реакции.
Если поле таймфрейма оставить пустым, индикатор использует текущий таймфрейм графика.
🎯 Практические варианты использования
EVA Ai+ FVG можно применять для:
поиска зон возврата цены;
определения ценового дисбаланса;
анализа ликвидности;
поиска потенциальных зон поддержки и сопротивления;
анализа продолжения тренда;
поиска реакции после импульсного движения;
ICT и Smart Money Concepts;
Price Action;
внутридневной торговли;
скальпинга;
свинг-трейдинга;
анализа криптовалют, акций, форекса, индексов и фьючерсов.
🔔 Алерты
Доступны два типа уведомлений:
🟢 обнаружен новый Bullish Fair Value Gap;
🔴 обнаружен новый Bearish Fair Value Gap.
Алерты создаются через стандартное меню уведомлений PulseWire.
⚠️ Важно
Fair Value Gap не является самостоятельной гарантией разворота или продолжения движения. FVG следует использовать вместе с направлением тренда, рыночной структурой, ликвидностью, объёмом и управлением риском.
Индикатор является аналитическим инструментом и не представляет собой инвестиционную рекомендацию.
🧬 EVA Ai+ Fair Value Gap — FVG, Imbalance and Liquidity Indicator
EVA Ai+ Fair Value Gap is an automatic FVG indicator for PulseWire that detects bullish and bearish Fair Value Gaps, displays price imbalance zones directly on the chart, and tracks the mitigation of every active gap.
The indicator is designed for Price Action, ICT, Smart Money Concepts, liquidity analysis, market imbalance, and order-flow context. It highlights areas where price moved rapidly and left an inefficient or unfilled range between candles.
🔍 What is a Fair Value Gap?
A Fair Value Gap — FVG is a three-candle price imbalance.
🟢 A Bullish FVG appears after strong upward displacement leaves an unfilled range below the current price.
🔴 A Bearish FVG appears after strong downward displacement leaves an unfilled range above the current price.
These zones can be used as areas of interest for analyzing a potential price return, reaction, continuation, or full mitigation. PulseWire’s FVG search pages and widely followed scripts use the same core vocabulary: Fair Value Gap, imbalance, liquidity, mitigation, and three-candle structure.
⚙️ Main features
✅ Automatic Bullish FVG detection
✅ Automatic Bearish FVG detection
✅ Clear Fair Value Gap zones on the chart
✅ Current-timeframe and multi-timeframe analysis
✅ Active FVG zones extended to the right
✅ Dynamic partial mitigation
✅ Filled portions never reappear after a pullback
✅ Automatic removal after complete mitigation
✅ Optional automatic imbalance threshold
✅ Custom bullish and bearish colors
✅ Adjustable maximum number of active gaps
✅ Bullish and bearish PulseWire alerts
✅ lookahead_off calculation
📉 Dynamic FVG mitigation
The key feature of EVA Ai+ FVG is Dynamic Mitigation.
As price moves into a Fair Value Gap:
the highlighted zone contracts with the fill;
only the remaining unmitigated imbalance stays visible;
previously consumed portions do not expand again;
the complete FVG is removed after a full fill.
This provides a cleaner representation of the imbalance that is still active instead of leaving obsolete rectangles across the chart.
📈 How to use a Bullish FVG
Bullish zones are displayed in green.
A possible analysis workflow:
Identify a bullish trend or bullish market structure.
Locate a fresh Bullish Fair Value Gap.
Wait for price to return toward the imbalance.
Observe the reaction inside the remaining FVG.
Confirm the setup with market structure, volume, support, momentum, or candle reaction.
Define invalidation and risk according to your own trading plan.
📉 How to use a Bearish FVG
Bearish zones are displayed in red.
A possible analysis workflow:
Identify a bearish trend or bearish market structure.
Locate a fresh Bearish Fair Value Gap.
Wait for price to retrace into the imbalance.
Evaluate seller reaction inside the remaining FVG.
Use resistance, market structure, volume, or price-action confirmation.
Do not treat every FVG touch as an automatic entry signal.
🕒 Multi-timeframe FVG analysis
The indicator can detect Fair Value Gaps from a selected timeframe.
Examples:
display 1H FVG zones on a 15m chart;
use 4H imbalance zones as higher-timeframe context;
use chart-timeframe FVGs for intraday trading and scalping;
combine higher-timeframe liquidity zones with lower-timeframe confirmation.
Leave the timeframe field empty to use the current chart timeframe.
🎯 Common use cases
EVA Ai+ FVG can be used for:
Fair Value Gap trading;
liquidity-zone analysis;
market imbalance detection;
ICT trading concepts;
Smart Money Concepts;
Price Action;
support and resistance context;
trend-continuation analysis;
pullback and retracement analysis;
crypto trading;
forex trading;
stock trading;
futures and index analysis;
scalping, day trading, and swing trading.
🔔 PulseWire alerts
Two alert conditions are included:
🟢 New Bullish Fair Value Gap detected;
🔴 New Bearish Fair Value Gap detected.
Alerts can be configured through the standard PulseWire alert menu.
⚠️ Disclaimer
A Fair Value Gap does not guarantee a reversal, continuation, or profitable trade. FVG zones should be evaluated together with trend direction, market structure, liquidity, volume, confirmation, and risk management.
This indicator is an analytical tool and does not provide financial or investment advice. Indicator

Indicator

Optimal Trade Entry (OTE) Zone Plotter [algo_aakash]Optimal Trade Entry (OTE) Zone Plotter locates the 62%-79% institutional retracement zone of a confirmed impulsive swing and keeps only the single most relevant zone per direction on the chart, fading it through disclosed mitigation states as price interacts with it.
Problem Statement
The Optimal Trade Entry concept, retracing into the 62%-79% region of an impulsive leg before continuation, is a well-known Fibonacci convention, but most public implementations simply plot every Fibonacci level on every swing they detect. This produces charts covered in overlapping retracement boxes, most of which come from insignificant swings that carry no real weight, and gives no visual indication of which zones are still fresh, already tested, or fully invalidated.
This indicator addresses that gap by filtering which swings are allowed to generate a zone in the first place, by showing only the current zone per direction at full strength, and by changing each zone's appearance as price actually interacts with it.
Methodology
Swing highs and lows are identified with ta.pivothigh/ta.pivotlow using a user-defined Pivot Length, so every swing referenced by the script is a confirmed pivot, evaluated only after barstate.isconfirmed is true.
Consecutive pivots of the same type extend a running swing extreme; a leg is only registered when the pivot type alternates (a low following a high, or a high following a low). Each candidate leg must then clear three disclosed checks before it is allowed to create a zone: the leg's price range must reach a minimum multiple of ATR, the swing candle's own body-to-range ratio must reach a minimum threshold, and, if the Break of Structure filter is enabled, the new swing must exceed the prior swing of the same type. Legs that fail any check produce no zone, no label, and no alert.
A qualifying leg generates one OTE zone: the shaded region between the 62% and 79% retracement of that leg, with the 70.5% level drawn as a two-layer glowing midline inside it. Only one bullish and one bearish zone are ever active at a time. When a new qualifying leg forms, the previous zone of that direction is frozen in place and, if enabled, kept as a single low-opacity historical reference rather than removed outright or left overlapping the new zone.
Each active zone tracks its own mitigation state on every confirmed bar: Fresh (untouched), Touched (price has wicked into the 62%-79% region), Mitigated (a confirmed close through the 79% boundary), or Invalidated (a confirmed close back through the leg's own origin point). State can only advance forward, and the zone's fill opacity and border color update automatically at each transition, so the chart communicates a zone's condition without any additional label or panel.
Signal Workflow
Step 1 — a confirmed swing pivot alternates direction, registering a candidate leg from the prior opposite pivot to the new one.
Step 2 — the leg is checked against the Minimum Swing Size, Body Ratio, and optional Break of Structure filters; legs that fail are discarded with no chart output.
Step 3 — a qualifying leg creates a new active OTE zone (62%-79%) with its 70.5% midline, and the previous zone of the same direction is frozen and faded.
Step 4 — the active zone's state advances from Fresh to Touched as price wicks into the zone on a confirmed bar.
Step 5 — the zone advances to Mitigated on a confirmed close through the 79% boundary, or to Invalidated on a confirmed close back through the leg's origin, at which point it is greyed out.
Step 6 — each transition and each zone entry/exit can trigger its own alert, gated by the corresponding toggle in the Alerts group.
Why This Indicator Is Different
Most public OTE/Fibonacci scripts draw a zone for every detected swing regardless of its significance, leaving multiple overlapping retracement boxes on the chart at once.
This script applies a disclosed three-part quality filter (ATR-relative swing size, swing candle body ratio, optional break-of-structure confirmation) before a swing is even allowed to generate a zone.
Only one zone per direction is ever shown at full strength; the prior zone automatically fades to a quiet historical reference the moment a new qualifying swing appears, keeping the chart focused on the current opportunity.
Zone fill opacity and border color are driven entirely by a four-state mitigation engine (Fresh/Touched/Mitigated/Invalidated) computed from confirmed price action against the zone's own boundaries, so the visual state of a zone is informative rather than purely decorative.
The 70.5% equilibrium level is rendered as a two-layer glow line rather than a plain dashed line, giving the zone's mid-point a distinct, non-generic appearance.
Inputs
Swing Detection
Pivot Length
ATR Length
OTE Quality Filter
Minimum Swing Size (x ATR)
Minimum Swing Candle Body Ratio
Require Break of Structure
OTE Zone
Show Bullish OTE Zones
Show Bearish OTE Zones
Zone Extension (bars)
Show Institutional Midline (70.5%)
Fade Previous Zone on New Swing
Visual Settings
Bullish/Bearish Zone Colour
Bullish/Bearish Midline Colour
Label Size
Alerts
Alert: New OTE Zone Created
Alert: Price Entered OTE Zone
Alert: Price Left OTE Zone
Alert: OTE Zone Mitigated
Alert: OTE Zone Invalidated
Alerts
Alerts are available for:
New Bullish/Bearish OTE Zone Created
Price Entered Bullish/Bearish OTE Zone
Price Left Bullish/Bearish OTE Zone
Bullish/Bearish OTE Zone Mitigated
Bullish/Bearish OTE Zone Invalidated
Practical Usage
Treat an active, Fresh OTE zone in the direction of the prevailing structure as a region to watch for a retracement entry, not a standalone entry signal by itself.
Use the Break of Structure filter on trending instruments to restrict zones to swings that genuinely extended structure, and disable it on ranging instruments where internal swings may still be meaningful.
Raise the Minimum Swing Size and Body Ratio filters on lower timeframes or noisy instruments to reduce the number of zones generated.
Watch the zone's fill opacity as a quick visual read of its condition: a bold zone has not been tested, a lighter fill has already been touched or mitigated, and a greyed zone has been invalidated and should generally be disregarded.
Combine the Entered/Exited alerts with your own confirmation criteria (candlestick behavior, lower-timeframe structure, etc.) rather than treating zone entry alone as a trigger.
Limitations
Swing pivots require bars to form on both sides before they confirm, so every zone is inherently placed a Pivot Length number of bars after the actual swing extreme occurred.
The quality filter reduces the number of zones shown but does not evaluate or predict the outcome of any individual retracement.
Only one active zone per direction is displayed at a time; if you want to review multiple historical zones simultaneously, enable "Fade Previous Zone on New Swing" and note that only the single most recent prior zone is retained, not a full history.
As with any retracement-based tool, results will vary across instruments, timeframes, and market regimes.
Notes
This indicator is a zone-location tool intended to highlight the current, quality-filtered Optimal Trade Entry region and its mitigation state through a disclosed, rule-based process.
All swing confirmations, zone creation, mitigation-state transitions, and invalidations are evaluated on confirmed bar closes only, so no element of the script repaints once drawn.
The output is intended to support retracement-based analysis and is not a standalone buy or sell recommendation.
Indicator

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). Indicator

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 PulseWire 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. PulseWire 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 PulseWire 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. PulseWire's open-source reuse rules apply on-platform before the license terms. It is an educational charting tool and is not financial advice. Indicator

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. PulseWire 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. Indicator

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 PulseWire 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 PulseWire 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 PulseWire 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 PulseWire 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. Indicator

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. Indicator

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 PulseWire'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. Indicator

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).
Indicator

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. Indicator

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. Indicator

Indicator

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. Indicator

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 PulseWire's 500-object cap.
—
-made with passion by jackofalltrades
Indicator

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 PulseWire 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. Indicator

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.
Indicator

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. Indicator

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
Indicator

Liquidity Hunter Pro [Rehan Khanani]🎯 Liquidity Hunter Pro — Institutional Liquidity Zone Detector
Stop trading random support/resistance. This indicator finds real institutional liquidity zones where smart money operates — and tells you exactly WHEN to enter using 4 advanced reversal signals.
🔴 What are BSL and SSL Zones?
BSL (Buy-Side Liquidity) = Zones ABOVE price where stop losses of short sellers are resting. Institutions hunt these to fill their sell orders.
SSL (Sell-Side Liquidity) = Zones BELOW price where stop losses of buyers are resting. Institutions hunt these to fill their buy orders.
When price sweeps these zones and REVERSES — that is your trade opportunity.
⚡ 4 Reversal Signals Explained
🔴 ABS (Absorption) — Big players aggressively absorbed the sweep. Strongest signal. Institutions trapped the move.
🟡 EXH (Exhaustion) — Dry sweep with minimal volume. Market ran out of fuel. Reversal due to weakness, not force.
🟠 DIV (Delta Divergence) — FOMO trap. High volume entered but price failed to break. Retail trapped = reversal fuel.
🟢 REJ (Snapback Rejection) — Sweep followed by immediate strong rejection candle. Clean and easy to trade.
✨ Key Features
★★★★★ Zone Strength Score — Focus only on high-quality institutional zones. 1 to 5 stars based on volume and pivot size.
Zone Health % (Decay) — Each zone shows live health %. When health drops to 0%, zone is exhausted and sweep is likely.
Auto R:R Lines — SL and TP levels drawn automatically when signal fires. No manual drawing needed.
Premium / Discount Labels — Zones above 50% of range = Premium (sell area). Below = Discount (buy area). ICT concept made visual.
Sweep Test Counter — Tracks how many times price tested each zone. First-touch zones are strongest.
Volume Delta Inside Zones — See exactly where buying or selling pressure is concentrated across 4 quadrants inside every zone.
Live Signal Dashboard — Win % for each signal type shown on your chart in real time. Know your edge before you trade.
Built-in Alerts — Get notified when price enters or sweeps a zone. No need to watch screen all day.
👥 Who Is This For?
✅ Smart Money / ICT concept traders
✅ Forex traders (XAUUSD, EURUSD, GBPJPY and all majors)
✅ Crypto traders (BTC, ETH, altcoins)
✅ Price action traders who want volume confirmation
✅ Beginners learning institutional trading concepts
✅ Busy traders who rely on alerts
📖 How To Use
Add to chart. Set Pivot Length (default 15 works for daily/4H).
Look for zones with 3 stars or more — ignore weak zones.
Wait for price to reach the zone — do NOT enter early.
Wait for a signal label (ABS / EXH / DIV / REJ) to appear.
Use the auto-drawn SL and TP lines for your trade plan.
Check the dashboard to see which signal type performs best on your asset.
⚙️ Settings You Can Adjust
Pivot Length — Controls zone detection sensitivity
Max Zones per Side — Clean up your chart
Zone Volume Capacity — Controls how fast zone health decays
Risk:Reward Target — Default 2:1, adjust to your style
Show/Hide: Strength Stars, Premium/Discount Labels, Sweep Counter, R:R Lines, Dashboard
Indicator
