GEX Levels for NQ/NDX/QQQ Gamma ExposureDESCRIPTION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A professional framework for Gamma Exposure analysis on NASDAQ-100 instruments.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHAT THIS INDICATOR DOES
This indicator visualizes key strategic levels derived from Gamma Exposure (GEX) analysis — the zones where dealer hedging flows create measurable support and resistance.
What you see:
- Call Walls — resistance zones where dealers hedge against upside
- Put Walls — support zones where dealers hedge against downside
- Zero Gamma — the structural pivot between mean-reversion and trend
- Expected Move bands — statistical range boundaries
- GEX Histogram — gamma distribution profile directly on chart
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WORKS OUT OF THE BOX
The indicator ships with pre-loaded 5DTE weekly GEX levels — add it to your chart and you'll see levels immediately. No setup, no copy/paste needed. We refresh the built-in data every week.
If you have access to more frequent data (0DTE, intraday), paste it into the GEX Data field in settings — your data always takes priority. Clear the field to fall back to the built-in weekly levels.
Pre-loaded PDH/PDL reflect the session at time of update. Fresh daily structure levels require pasting updated data.
Daily 0DTE data updates available soon via invite-only version — DM for early access.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
KEY FEATURES
▸ Ticker Switcher
Select NQ, NDX, or QQQ directly in settings.
Data converts automatically (NQ-NDX spread: 40 pts, QQQ ≈ NDX/40).
One script, three instruments.
▸ GEX Profile Histogram
See gamma distribution as horizontal bars on your chart.
Instantly spot where positioning clusters.
▸ Color Themes
Choose between Boreal, Classic, or Lady Trader palettes.
▸ Level Toggles
Show/hide level groups independently:
GEX Levels | System Levels | Structure Levels
▸ Rich Tooltips
Hover for details: GEX values, Call/Put ratio, Hold/Break probabilities.
▸ Flip Detection
When price crosses a level, it automatically updates role and style (solid → dashed).
▸ GEX Threshold Filter
Hide weak levels below a minimum magnitude to focus on significant zones.
▸ Smart Level Distribution
Levels are equally split above/below spot, with closest levels always protected from max limit.
▸ Alert System
Get notified when price crosses key GEX levels. Alerts are pre-configured for the built-in 5DTE levels.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO READ THE LEVELS
Each line represents a zone where price reaction is statistically probable:
- Thick solid lines = level not yet crossed
- Dashed lines = level flipped (price crossed through)
- Cyan/Teal or Green = potential support (Put Walls)
- Pink/Red = potential resistance (Call Walls)
- Gray = structural levels (Zero Gamma, Vol Bands, PDH/PDL)
The indicator shows structure, not predictions.
Use it to identify where the market is likely to react — not which direction it will go.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PRO TIP: CONFLUENCE
This tool is most powerful when combined with your own analysis.
Highest-probability setups occur when GEX levels align with:
Price action zones (support/resistance, order blocks)
Volume Profile (HVN/LVN, VWAP)
Technical structure (prior highs/lows, trend lines)
One level alone is information. Confluence is edge.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DISCLAIMER
This tool is for informational and educational purposes only.
It does not constitute financial advice. Trading involves significant risk.
Past structure does not guarantee future behavior.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DATA FORMAT REFERENCE (for DIY users)
The GEX Data input field accepts a formatted string: L:levels|P:profile
— L: section = level lines on the chart
— P: section = GEX profile bars (horizontal histogram)
— Separated by |P:
LEVELS (L: section):
strike,type,label,tooltip,magnitude — separated by semicolons
— strike: price in NQ terms (integer)
— type: CW (Call Wall), PW (Put Wall), ZG (Zero Gamma), MP (Max Pain), EH/EL (Expected Move), VH/VL (Vol Bands), PDH/PDL/PWH/PWL (Structure)
— label: display name
— tooltip: hover text (use ~ for line breaks)
— magnitude: GEX in millions (0 for non-GEX levels)
PROFILE (P: section):
strike,score,sign — separated by semicolons
— score: -10 to 10
— sign: 1 = call-dominant, -1 = put-dominant
DIY workflow:
— Get a delayed options chain (any broker or public data provider)
— Filter to target expiry
— For each strike: Gamma via Black-Scholes, then GEX = Gamma × OI × 100 × Spot²
— Rank by magnitude, normalize scores 0-10
— Paste into Settings → GEX Data
Latest Levels Update 2026-03-08 - 5DTE Exp Indikator

Indikator

EdgeGate Premarket Breakout LevelsOverview
EdgeGate™ Premarket Breakout Levels is designed for traders who use a premarket breakout strategy and want a simple way to visualize the key levels that often drive early-session momentum.
The indicator automatically plots:
Premarket High
Premarket Low
Previous New York Session High
Previous New York Session Low
These levels help traders quickly identify potential breakout zones, liquidity areas, and key intraday structure without needing to manually mark sessions each day.
What the Indicator Shows
Premarket High / Low
During the premarket session (default 04:00–09:30 ET), the indicator continuously tracks the session range and plots:
Premarket High
Premarket Low
Once the premarket session closes, these levels become fixed and extend across the trading day.
These levels are commonly used by traders watching for premarket breakout setups after the opening bell.
Previous NY Session High / Low
The indicator also plots the previous regular New York session range (09:30–16:00 ET):
Prev NY High
Prev NY Low
These levels often act as important areas of:
support and resistance
liquidity sweeps
breakout continuation or rejection zones
How Traders Use These Levels
Traders using a premarket breakout strategy typically watch for:
Price consolidating below Premarket High before a breakout
Momentum moves through Premarket Low for downside continuation
Reactions at Previous NY Session High or Low
Liquidity sweeps before trend continuation
This indicator helps keep those reference levels clearly visible throughout the trading session.
Customization
Users can customize:
Premarket session times
Line colors
Line styles (solid, dashed, dotted)
Line thickness
This allows the levels to be styled to match individual chart layouts.
🟣 About EdgeGate™
EdgeGate™ builds tools around one principle:
Structure. Liquidity. Execution.
We focus on developing precision-based session and liquidity frameworks designed for intraday traders who care about context, not clutter.
This is Version 1.0.0 of the EdgeGate™ public toolkit — released free to the TradingView community.
More session tools and execution-focused models coming soon.
🟣 Version
EdgeGate™ Premarket Breakout Levels
Version: 1.0.0
Release Type: Initial Public Release
Status: Stable
Build Philosophy: Clean session structure only
Included in v1.0.0
Premarket High / Low tracking (ET)
Previous NY Session High / Low tracking (ET)
Live Premarket High / Low plotting during premarket
Locked Premarket levels after session close
Previous NY session High / Low displayed on current chart
Customizable line colors, widths, and styles
Session-based level framework designed for premarket breakout traders
🟣 Release Standard (EdgeGate™ Framework)
All EdgeGate™ public tools will follow a structured release format:
Version number
Release type (Major / Minor / Patch)
Documented feature set
Defined behavioral philosophy
Transparent future roadmap
🆓 Open Source
This script is released free and open-source for the community.
You’re welcome to modify, improve, and build upon it respectfully.
⚠️ Disclaimer
For educational purposes only.
Not financial advice. Indikator

NIFTY 5-STAR Buy/Sell Indicator | Entry, SL & TargetsThis indicator is designed to identify high-probability intraday trading opportunities by combining trend confirmation, volume strength, and strict filtering rules.
It generates Strong BUY and Strong SELL signals only when multiple market conditions align.
The goal is to help traders take disciplined trades with predefined risk and target levels.
Core Strategy Logic
A signal is generated only when price aligns with four key trend indicators simultaneously.
The system checks:
EMA 21 – Short-term trend direction
VWAP – Institutional average traded price
VWMA 20 – Volume-weighted momentum confirmation
Supertrend – Trend direction and dynamic stop loss level
A signal appears only when price is positioned on the same side of all these indicators.
Buy Signal Conditions
A Strong BUY signal is generated when:
Price is above EMA 21
Price is above VWAP
Price is above VWMA 20
Price is above Supertrend
3-minute volume is greater than the minimum volume threshold
This indicates strong bullish momentum supported by market participation.
Sell Signal Conditions
A Strong SELL signal appears when:
Price is below EMA 21
Price is below VWAP
Price is below VWMA 20
Price is below Supertrend
3-minute volume is above the minimum threshold
This confirms strong bearish momentum.
Time-Based Trade Filter
Signals are allowed only during active market hours:
9:31 AM – 3:00 PM
This avoids:
opening volatility
illiquid late-session trades
One Signal Per Day Rule
The system generates only one signal per day.
Once a BUY or SELL signal appears, the indicator will not generate another signal on the same trading day.
This helps prevent overtrading and noise.
Stop Loss Logic
The Supertrend line acts as the Stop Loss.
On the chart:
Yellow Line = Stop Loss
This makes the stop loss dynamic and trend-based.
Target Logic
Targets are calculated based on the distance between entry price and stop loss.
Target formula:
Target = Entry ± Risk
Where:
Risk = | Entry − Supertrend |
On the chart:
Orange Line = Target
Risk-Reward Ratio
The strategy currently targets:
Risk : Reward = 1 : 1
Example:
Entry = 24,600
Stop Loss = 24,560
Risk = 40 points
Target = 24,640
Reward = 40 points
Best Use Case
This indicator works best for:
Intraday index trading
Momentum continuation setups
NIFTY / BANKNIFTY futures
3-minute to 15-minute charts
Trading Philosophy
The idea behind this system is simple:
Trade only when trend, momentum, and volume align.
Instead of chasing random moves, the indicator waits for strong conditions and provides:
Entry signal
Stop loss level
Target level
This creates a complete structured trade plan on the chart. Indikator

Indikator

Indikator

Indikator

Quadruple EMA with Support and Resistance# EMA Trend + Support & Resistance Strategy
## Overview
A clean, rule-based trading strategy designed for the **Daily timeframe**. It uses four Exponential Moving Averages (EMA 20, 50, 100, 200) as a trend filter combined with dynamic Support & Resistance levels to identify high-probability breakout and breakdown setups.
The logic is intentionally simple — no indicators stacked on indicators, no complex filters. Just price, trend direction, and key levels.
---
## How It Works
### Entry — Long (CE / Buy)
A long entry is triggered when:
- Price closes **above all four EMAs** (20, 50, 100, 200) — confirming strong bullish trend alignment
- Price **breaks above the previous bar's high** — confirming momentum and breakout
### Entry — Short (PE / Sell)
A short entry is triggered when:
- Price closes **below all four EMAs** (20, 50, 100, 200) — confirming strong bearish trend alignment
- Price **breaks below the previous bar's low** — confirming momentum and breakdown
### Exit Logic
- **Stop Loss** — set at the previous bar's low (for longs) or previous bar's high (for shorts)
- **Target** — calculated using the configurable Risk:Reward Ratio (default 3:1)
- **EMA-based dynamic exit** — if price closes below EMA 20 or EMA 50 (for longs), or above EMA 20 or EMA 50 (for shorts), the stop is tightened to force an exit on the next bar, protecting open profit
- **Optional Trailing Stop Loss** — activates after a defined profit % is reached, then trails at a set % distance from the peak
---
## Indicators on Chart
| Line | Color | Meaning |
|------|-------|---------|
| EMA 20 | Yellow | Fast trend / momentum |
| EMA 50 | Blue | Mid-term trend |
| EMA 100 | White | Medium-long trend support |
| EMA 200 | Green | Long-term trend direction |
| Resistance | Orange dots | Swing high levels |
| Support | Blue dots | Swing low levels |
| ▲ Green arrow | Below bar | Long (CE) entry signal |
| ▼ Red arrow | Above bar | Short (PE) entry signal |
---
## Settings
| Input | Default | Description |
|-------|---------|-------------|
| Risk Reward Ratio | 3.0 | Target = Entry + (RR × Risk) |
| Show Support/Resistance | On | Toggle S/R level plots |
| Swing Detection Bars | 20 | Lookback bars for pivot detection |
| One Trade Per Day | On | Limits to one CE and one PE per day |
| Use Trailing Stop Loss | Off | Enable trailing SL after activation |
| Trailing Activation % | 1.0% | Profit % before trailing SL kicks in |
| Trailing Distance % | 0.5% | Distance the trailing SL follows from peak |
---
## Best Used On
- **Timeframe:** Daily (recommended), Weekly
- **Instruments:** Stocks, Indices, ETFs
- Works well on trending instruments where EMA stacking is meaningful
---
## Notes
- This strategy does **not** use candle body filters, volume filters, or session time windows — keeping it universally applicable across timeframes and instruments
- One trade per direction per day is enforced by default to avoid overtrading
- Both CE (long) and PE (short) trades cannot be open simultaneously
---
⚠️ **Disclaimer:** This strategy is for educational and backtesting purposes only. Past performance does not guarantee future results. This is not financial advice. Always do your own research and consult a qualified financial advisor before making any trading decisions. Strategi

20,50,100, 200 EMA with support and resistance
Overview
A clean, rule-based trading strategy designed for the **Daily timeframe**. It uses four Exponential Moving Averages (EMA 20, 50, 100, 200) as a trend filter combined with dynamic Support & Resistance levels to identify high-probability breakout and breakdown setups.
The logic is intentionally simple — no indicators stacked on indicators, no complex filters. Just price, trend direction, and key levels.
How It Works
Entry — Long (CE / Buy)
A long entry is triggered when:
- Price closes **above all four EMAs** (20, 50, 100, 200) — confirming strong bullish trend alignment
- Price **breaks above the previous bar's high** — confirming momentum and breakout
Entry — Short (PE / Sell)
A short entry is triggered when:
- Price closes **below all four EMAs** (20, 50, 100, 200) — confirming strong bearish trend alignment
- Price **breaks below the previous bar's low** — confirming momentum and breakdown
Exit Logic
- Stop Loss — set at the previous bar's low (for longs) or previous bar's high (for shorts)
- Target — calculated using the configurable Risk: Reward Ratio (default 3:1)
- EMA-based dynamic exit — if price closes below EMA 20 or EMA 50 (for longs), or above EMA 20 or EMA 50 (for shorts), the stop is tightened to force an exit on the next bar, protecting open profit
- Optional Trailing Stop Loss — activates after a defined profit % is reached, then trails at a set % distance from the peak
Indicators on Chart
| Line | Color | Meaning |
|------|-------|---------|
| EMA 20 | Yellow | Fast trend / momentum |
| EMA 50 | Blue | Mid-term trend |
| EMA 100 | White | Medium-long trend support |
| EMA 200 | Green | Long-term trend direction |
| Resistance | Orange dots | Swing high levels |
| Support | Blue dots | Swing low levels |
| ▲ Green arrow | Below bar | Long (CE) entry signal |
| ▼ Red arrow | Above bar | Short (PE) entry signal |
---
Settings
| Input | Default | Description |
|-------|---------|-------------|
| Risk Reward Ratio | 3.0 | Target = Entry + (RR × Risk) |
| Show Support/Resistance | On | Toggle S/R level plots |
| Swing Detection Bars | 20 | Lookback bars for pivot detection |
| One Trade Per Day | On | Limits to one CE and one PE per day |
| Use Trailing Stop Loss | Off | Enable trailing SL after activation |
| Trailing Activation % | 1.0% | Profit % before trailing SL kicks in |
| Trailing Distance % | 0.5% | Distance the trailing SL follows from peak |
---
Best Used On
- **Timeframe:** Daily (recommended), Weekly
- **Instruments:** Stocks, Indices, ETFs
- Works well on trending instruments where EMA stacking is meaningful
---
Notes
- This strategy does **not** use candle body filters, volume filters, or session time windows — keeping it universally applicable across timeframes and instruments
- One trade per direction per day is enforced by default to avoid overtrading
- Both CE (long) and PE (short) trades cannot be open simultaneously
---
⚠️ **Disclaimer:** This strategy is for educational and backtesting purposes only. Past performance does not guarantee future results. This is not financial advice. Always do your own research and consult a qualified financial advisor before making any trading decisions. Strategi

Snap Pressure OscillatorSnap Pressure Oscillator (SPO)
The Snap Pressure Oscillator (SPO) is a support-and-resistance pressure indicator designed to help traders visualize when nearby levels may be weakening before a potential expansion move.
Instead of measuring momentum alone, SPO evaluates how price behaves around recently confirmed pivot levels. The indicator analyzes repeated tests, wick probes, reaction strength, close location, volatility compression, and relative volume to estimate whether resistance above price or support below price is losing strength.
This produces two independent pressure scores:
• Bullish Pressure | suggests resistance may be weakening
• Bearish Pressure | suggests support may be weakening
A Net Pressure line shows the balance between the two.
The goal of SPO is not to predict breakouts by itself, but to help traders monitor when a market is transitioning from repeated testing into possible expansion conditions.
Key Concepts
Watch Zone
When pressure rises above the Watch level, the indicator signals that conditions around a level are becoming active and worth monitoring.
Snap-Ready Zone
When pressure moves into the Snap-Ready zone, the probability of a directional expansion increases if price confirms the move.
Pulse Signals
Pulse markers highlight moments when pressure first enters the Snap-Ready zone.
Divergence Warnings
If pressure rises but price momentum disagrees (via RSI slope), the indicator will show a divergence warning. This may suggest a potential false breakout or breakdown.
Signal Modes
The Signal Mode input adjusts how easily pressure builds.
Aggressive
Earlier signals with faster reaction to level tests.
Balanced
Default configuration designed for most trading styles.
Conservative
Requires stronger pressure and more confirmation before signals appear.
How to Use the Indicator
SPO is most effective when used alongside price structure and key levels rather than as a standalone signal generator.
Bullish Example 1 – Resistance Break Confirmation
Look for:
• Bullish pressure above the Snap-Ready level
• Bullish pressure greater than bearish pressure
• Price closing above the active resistance level
Interpretation:
Repeated testing may have weakened the resistance zone, allowing price to expand upward.
Possible approach:
Some traders watch for either the breakout itself or a small pullback after the break.
Bullish Example 2 – Early Pressure Build
Look for:
• Bullish pressure above the Watch level
• Rising bullish pressure while bearish pressure remains low
• Price repeatedly testing resistance with smaller rejections
Interpretation:
This may suggest the market is building pressure beneath resistance before a possible breakout.
Possible approach:
Traders may mark the resistance level and prepare for a breakout attempt rather than entering immediately.
Bearish Example 1 – Support Breakdown Confirmation
Look for:
• Bearish pressure above the Snap-Ready level
• Bearish pressure stronger than bullish pressure
• Price closing below the active support level
Interpretation:
Repeated tests may have weakened the support zone, increasing the chance of downward expansion.
Possible approach:
Some traders wait for the breakdown confirmation or a retest of the failed support area.
Bearish Example 2 – Early Breakdown Pressure
Look for:
• Bearish pressure rising above the Watch level
• Bearish pressure increasing while bullish pressure fades
• Price repeatedly testing support with weaker bounces
Interpretation:
This may indicate the market is leaning on support before a potential breakdown.
Possible approach:
Traders may monitor the level closely and wait for confirmation before acting.
Practical Notes
SPO works best in markets where price respects structure and levels. In highly choppy conditions, pressure can build without leading to a sustained move.
Like any technical tool, the indicator should be used alongside price action, risk management, and broader market context. Indikator

Dynamic Support & Resistance [UAlgo]Dynamic Support & Resistance is a pivot driven structure indicator that detects recurring reaction prices and converts them into live support and resistance zones. The script does not treat every pivot as an isolated event. Instead, it groups nearby pivots into shared price areas, counts how many times the market has respected each area, and only promotes a level visually once it reaches the required minimum number of touches.
This creates a cleaner and more practical market structure map. When price reacts again near an existing zone, the level is updated rather than duplicated. As a result, the plotted areas represent repeated interaction and growing structural significance instead of a large collection of disconnected swing points.
Each active level is displayed as a channel centered on the level price. The size of that channel is based on the user selected tolerance percentage, so every level is shown as a reaction zone rather than a single exact line only. A center line and a text label are also added, which makes the structure easier to read in live chart conditions.
The script also includes a clear invalidation model. Support becomes invalid when price closes meaningfully below the zone by more than the selected break threshold. Resistance follows the opposite logic. Once invalidated, the level is removed from the active structure map, which keeps the chart focused on areas that are still relevant.
This makes the indicator useful for traders who want a simple but adaptive framework for mapping horizontal support and resistance. It works well for identifying repeated reaction zones, tracking the growth of structural importance through multiple touches, and recognizing when a level has finally lost validity.
🔹 Features
🔸 Pivot Based Structure Detection
The script starts from confirmed pivot highs and pivot lows. This means support and resistance zones are built from meaningful swing points rather than from arbitrary rolling highs and lows. As a result, the detected levels are more closely aligned with actual market turning areas.
🔸 Level Clustering Instead of Raw Pivot Plotting
A newly detected pivot is not always turned into a brand new level. The script first checks whether that pivot belongs to an existing active zone within the allowed tolerance. If it does, the existing level is updated. If it does not, a new level is created. This prevents unnecessary duplication and keeps the structure map organized.
🔸 Touch Counting and Strength Filtering
Every level tracks how many times price has reacted around it. A zone becomes visually important only after it reaches the required minimum number of touches. This helps filter out weak one time reactions and highlights price areas that have shown repeated acceptance or rejection.
🔸 Adaptive Reaction Zones
Each level is displayed as a channel rather than as a single price only. The channel width is calculated from the level price and the selected tolerance percentage. This makes the plotted area more realistic because support and resistance usually behave as zones rather than exact ticks.
🔸 Dynamic Price Recentering
When a new pivot is assigned to an existing level, the script updates the level price using an average based on the previous stored price and the new pivot. This gradually shifts the zone toward the center of actual reaction activity, which makes the level more representative over time.
🔸 Separate Support and Resistance Maps
Support and resistance are stored independently in their own arrays. This allows the script to manage bullish and bearish reaction zones separately while preserving clean logic for visualization, touch counting, invalidation, and cleanup.
🔸 Live Visual Rendering
Once a level becomes strong enough, the script draws:
a reaction channel,
a center line,
and a label showing the role and price.
This produces a chart friendly display that is easy to interpret during live trading or post analysis.
🔸 Invalidation by Closing Break
Levels are not removed by random intrabar noise alone. Instead, support is invalidated only when closing price moves below the level by more than the selected break percentage, and resistance is invalidated only when closing price moves above it by more than that threshold. This helps reduce premature removals.
🔸 Automatic Cleanup
Broken levels are removed from the active arrays after invalidation. This keeps the script efficient and prevents the internal structure store from filling with irrelevant levels.
🔸 Label Position Refresh
On the last bar, active labels are shifted slightly forward so they remain readable and do not sit directly on top of current candles. This small detail improves chart presentation significantly.
🔹 Calculations
1) Pivot Detection
float ph = ta.pivothigh(high, pivotLen, pivotLen)
float pl = ta.pivotlow(low, pivotLen, pivotLen)
int pIdx = bar_index - pivotLen
if not na(ph)
resistances.processPoint(ph, -1, pIdx)
if not na(pl)
supports.processPoint(pl, 1, pIdx)
This is the starting point of the script.
The code uses ta.pivothigh and ta.pivotlow to detect confirmed swing highs and swing lows. Because pivots are only confirmed after pivotLen bars on both sides, the actual pivot bar is not the current bar. That is why the script calculates:
pIdx = bar_index - pivotLen
This gives the real bar index where the pivot occurred.
Then the pivot is passed into the correct structure map:
pivot highs go into the resistance array,
pivot lows go into the support array.
So at this stage, the script is transforming raw swing points into candidate support or resistance events.
2) Grouping New Pivots Into Existing Levels
method processPoint(array levels, float price, int role, int idx) =>
bool found = false
for in levels
if lvl.active
float tolerance = lvl.price * zonePct
if math.abs(price - lvl.price) <= tolerance
lvl.price := (lvl.price * lvl.count + price) / (lvl.count + 1)
lvl.count += 1
lvl.updateVisuals()
found := true
break
if not found
SRLevel newLvl = SRLevel.new(price, 1, role, true, na, na, na, idx)
levels.push(newLvl)
This method decides whether a new pivot should strengthen an existing level or create a completely new one.
For every active level in the relevant array, the script calculates a tolerance band:
tolerance = lvl.price * zonePct
Then it checks whether the new pivot price is close enough to that level:
math.abs(price - lvl.price) <= tolerance
If the pivot falls inside the allowed zone, the script treats it as another touch of the same structure. It then updates the stored level price using an average weighted by the existing touch count:
lvl.price := (lvl.price * lvl.count + price) / (lvl.count + 1)
This is important. The level does not stay frozen forever. It gradually recenters as more pivots are absorbed into it. At the same time, the touch count increases, which strengthens the zone statistically.
If no active level is close enough, the script creates a fresh support or resistance level with an initial count of one.
So this method is the core clustering engine of the whole indicator.
3) Minimum Touch Logic and Zone Construction
method updateVisuals(SRLevel this) =>
if this.active and this.count >= minStrength
color c = this.role == 1 ? colSup : colRes
float tolerance = this.price * zonePct
float top = this.price + tolerance
float bot = this.price - tolerance
This is the first visual gate.
A level is drawn only if two conditions are true:
the level must still be active,
and its touch count must be greater than or equal to the minimum strength input.
That means weak single touch levels can exist internally, but they are not shown until they prove themselves.
Once the level qualifies, the script calculates the channel boundaries around the center price:
top = this.price + tolerance
bot = this.price - tolerance
So the plotted zone is always centered on the current level price and expands above and below it by the selected tolerance percentage.
This is what turns the raw pivot cluster into an actual support or resistance zone.
4) Drawing the Channel, Center Line, and Label
if na(this.bx)
this.bx := box.new(
left=this.start_idx,
top=top,
right=bar_index,
bottom=bot,
border_color=color.new(c, 0),
border_style=line.style_dotted,
bgcolor=color.new(c, 80),
extend=extend.right
)
else
this.bx.set_top(top)
this.bx.set_bottom(bot)
if na(this.ln)
this.ln := line.new(
x1=this.start_idx,
y1=this.price,
x2=bar_index,
y2=this.price,
color=c,
width=1,
extend=extend.right
)
else
this.ln.set_y1(this.price)
this.ln.set_y2(this.price)
Once a level is strong enough, the script renders its visual structure.
The box represents the full support or resistance channel from the starting pivot index to the current bar, and it is extended to the right so the zone remains visible into future bars.
The line is drawn exactly at the stored level price, which serves as the center of the zone. Because the price can shift slightly over time as new pivots are absorbed, the center line is updated dynamically as well.
So visually, each confirmed level contains:
a shaded reaction area,
a center reference line,
and an ongoing extension into the future.
This gives the user both a zone view and a central price reference at the same time.
5) Text Label Calculation
string txt = str.format("{0} - {1,number,#.##}", this.role == 1 ? "Support" : "Resistance", this.price)
if na(this.lbl)
this.lbl := label.new(
x=bar_index,
y=this.price,
text=txt,
style=label.style_label_left,
color=color.new(color.black, 100),
textcolor=colTxt,
size=size.small
)
else
this.lbl.set_xy(bar_index, this.price)
this.lbl.set_text(txt)
This snippet builds and updates the text label for each visible level.
The label text is generated from the level role and the current averaged level price. So if the level belongs to the bullish structure map, the label shows Support and the current price. If it belongs to the bearish structure map, it shows Resistance and the current price.
The label is then either created or updated at the latest bar.
This means the label always reflects the most current state of the zone instead of staying attached to an outdated price.
6) Invalidation Logic
method checkInvalidation(array levels, float currentPrice) =>
for in levels
if lvl.active
float threshold = lvl.price * breakPct
bool broken = false
if lvl.role == 1
if currentPrice < lvl.price - threshold
broken := true
else
if currentPrice > lvl.price + threshold
broken := true
if broken
lvl.active := false
lvl.updateVisuals()
This method decides when a level should stop being considered valid.
For every active level, the script calculates a break threshold based on the level price and the selected invalidation percentage:
threshold = lvl.price * breakPct
Then it applies directional logic.
For support:
price must close below the level by more than the threshold.
For resistance:
price must close above the level by more than the threshold.
This is important because it means the script does not remove zones on a tiny touch or minor overshoot. A meaningful closing break is required.
When that break happens, the level is marked inactive and its visuals are refreshed so the box, line, and label are deleted.
7) Visual Removal of Broken Levels
else if not this.active
if not na(this.bx)
this.bx.delete()
this.bx := na
if not na(this.ln)
this.ln.delete()
this.ln := na
if not na(this.lbl)
this.lbl.delete()
this.lbl := na
This is the part of updateVisuals that handles invalidated levels.
Once a level is no longer active, the script deletes all visual objects associated with it:
the channel box,
the center line,
and the text label.
This keeps the chart focused on only those support and resistance zones that are still valid. It also prevents broken levels from continuing to influence the user visually after the market has already moved through them.
8) Cleanup of Inactive Objects From Memory
method cleanup(array levels) =>
int n = levels.size()
if n > 0
for i = n - 1 to 0
SRLevel lvl = levels.get(i)
if not lvl.active
levels.remove(i)
Deleting a level visually is only one part of the process. The script also removes inactive levels from the calculation arrays.
This reverse loop is important because removing array elements while looping forward can shift indices and create logic errors. By iterating from the end toward zero, the script safely removes inactive items.
This keeps the internal storage efficient and prevents the structure engine from wasting time checking already broken zones on future bars.
9) Last Bar Label Position Update
if barstate.islast
for lvl in supports
if lvl.active and not na(lvl.lbl)
lvl.lbl.set_x(bar_index + 5)
for lvl in resistances
if lvl.active and not na(lvl.lbl)
lvl.lbl.set_x(bar_index + 5)
This small block improves readability on the chart.
On the last visible bar, the script shifts active labels slightly to the right of the current candle. That creates a cleaner presentation and reduces overlap between labels and price bars.
Although this does not change the structural logic of the indicator, it improves usability in live analysis and makes the levels easier to read at a glance.
10) Full Execution Flow
if not na(ph)
resistances.processPoint(ph, -1, pIdx)
if not na(pl)
supports.processPoint(pl, 1, pIdx)
supports.checkInvalidation(close)
resistances.checkInvalidation(close)
supports.cleanup()
resistances.cleanup()
This compact block summarizes how the script behaves on every bar.
First, it checks whether a new pivot high or pivot low has been confirmed.
Second, it sends that pivot into the correct level array.
Third, it checks whether any active support or resistance has been invalidated by the current closing price.
Finally, it removes inactive levels from memory.
So the script is constantly cycling through four steps:
detect,
cluster,
invalidate,
clean.
That is why the indicator remains dynamic. It is always updating the active structure map as the market evolves. Indikator

Zig Zag Liquidity Pools & Sweeps by Capitan-TradingZig Zag Liquidity Pools & Sweeps
Many traders focus only on price movement, but price alone often hides an important part of the story.
Markets constantly move between areas of liquidity .
These are zones where stop orders and pending orders accumulate around previous highs and lows.
When these levels are taken, the event is commonly known as a liquidity sweep .
Understanding where these pools exist – and when they are removed from the market – can help traders better interpret market structure and reactions .
This indicator is designed to visually map liquidity pools and highlight sweep events using a clean Zig Zag-based structure.
Instead of manually searching for equal highs or equal lows, the script automatically detects relevant pivot levels and projects them forward as potential liquidity targets.
What problem does this tool solve?
Many traders struggle with identifying:
• Where liquidity is resting
• When that liquidity has been swept
• How price reacts after a liquidity event
Manually tracking these areas across multiple swings can be time-consuming and inconsistent.
This indicator simplifies the process by providing a clear visual framework for observing liquidity .
How the indicator works
The script combines three visual components:
Zig Zag Structure Engine
A Zig Zag structure helps define the most relevant market swings , filtering minor noise and highlighting meaningful pivots.
These pivots act as reference points for identifying potential liquidity zones .
Liquidity Pools
When a significant pivot high or low forms, the indicator projects a horizontal liquidity line .
These lines extend forward until the market interacts with them.
Traders can use these levels as reference zones where stop liquidity may exist .
Liquidity Sweeps
When price trades through one of these liquidity levels, the indicator marks the event with an X , signaling that the liquidity pool has been swept .
This helps quickly identify areas where the market has removed liquidity before potentially continuing or reversing .
Clean Chart Tip
For an even clearer analysis, you may occasionally hide the price candles and observe only the liquidity structure drawn by the indicator.
On TradingView this can be done easily:
Click the three dots next to the asset name and temporarily hide the price series.
This allows you to observe only:
• Zig Zag structure
• Liquidity pools
• Sweep events
Removing the candles can create a much cleaner visual map of liquidity movements .
You can re-enable the candles anytime to reconnect the liquidity structure with price action.
Typical use cases
Traders often use liquidity mapping to observe:
• Potential stop-run areas
• Structural liquidity sweeps
• Liquidity grabs during consolidation
• Interaction between structure and liquidity
This indicator provides a clean visual representation of these dynamics .
Important
This script is designed as a visual market analysis tool .
It does not provide financial advice and should be used alongside proper market understanding, risk management, and independent analysis .
VERSIONE ITALIANA
Zig Zag Liquidity Pools & Sweeps
Molti trader si concentrano esclusivamente sul movimento del prezzo, ma il prezzo da solo spesso nasconde una parte importante della storia.
I mercati si muovono continuamente tra zone di liquidità .
Si tratta di aree in cui si accumulano stop loss e ordini pendenti attorno ai massimi e minimi precedenti.
Quando questi livelli vengono colpiti, l’evento viene comunemente chiamato liquidity sweep .
Comprendere dove si trovano queste zone – e quando vengono rimosse dal mercato – aiuta a interpretare meglio la struttura e le reazioni del prezzo .
Questo indicatore è progettato per mappare visivamente le liquidity pools e identificare gli sweep utilizzando una struttura basata sullo Zig Zag.
Lo script rileva automaticamente i pivot più rilevanti e li proietta nel futuro come possibili target di liquidità.
Quale problema risolve questo strumento?
Molti trader hanno difficoltà nell’identificare:
• Dove si trova la liquidità
• Quando questa liquidità viene presa dal mercato
• Come reagisce il prezzo dopo uno sweep
Monitorare manualmente queste aree su più swing può essere complesso e poco coerente.
Questo indicatore offre una rappresentazione visiva chiara delle zone di liquidità .
Come funziona l’indicatore
Lo script combina tre componenti principali:
Struttura Zig Zag
La struttura Zig Zag aiuta a identificare gli swing più rilevanti del mercato , filtrando il rumore minore.
Questi pivot diventano i riferimenti per individuare possibili zone di liquidità .
Liquidity Pools
Quando si forma un pivot significativo, l’indicatore traccia una linea orizzontale di liquidità .
Queste linee vengono estese fino a quando il prezzo non interagisce con esse.
I trader possono usarle come zone dove potrebbero trovarsi stop e ordini pendenti .
Liquidity Sweeps
Quando il prezzo supera uno di questi livelli, l’indicatore segna l’evento con una X , indicando che la liquidità è stata presa dal mercato .
Questo permette di individuare rapidamente le aree in cui il mercato rimuove liquidità prima di continuare o invertire il movimento.
Suggerimento per un grafico più pulito
Per una lettura ancora più chiara è possibile nascondere temporaneamente le candele del prezzo.
Su TradingView basta cliccare sui tre puntini accanto al nome dell’asset e nascondere la serie del prezzo.
In questo modo potrai osservare solo:
• Struttura Zig Zag
• Liquidity pools
• Sweep di liquidità
Senza il rumore delle candele il grafico diventa una mappa visiva molto pulita della liquidità di mercato .
Importante
Questo script è uno strumento di analisi tecnica visiva .
Non rappresenta consiglio finanziario e dovrebbe essere utilizzato insieme a una corretta gestione del rischio e comprensione del mercato . Indikator

Session Anchor RangeThe Session Anchor Range highlights the full wick-to-wick range of the first 15-minute candle of the New York session.
This first candle often acts as a reference point for liquidity and early session positioning, helping traders quickly identify potential bias, support, resistance, and breakout opportunities throughout the trading day.
The indicator automatically draws a rectangle covering the high and low of the first NY 15-minute candle, creating a clear visual range that can be used as a decision zone.
How to Use It:
1️⃣ Breakout Bias
One of the most common ways to use this tool is to determine market bias once price breaks out of the range.
• Break above the range → Bullish bias
• Break below the range → Bearish bias
When combined with structure, volume, or higher timeframe analysis, these breakouts can provide strong confluence for directional trades.
2️⃣ Intraday Support & Resistance
While price remains inside the range, the boundaries can behave as dynamic levels.
• Top of the range → potential resistance
• Bottom of the range → potential support
Traders often watch for rejections, liquidity sweeps, or consolidation around these edges.
3️⃣ Liquidity & Expansion
The first 15 minutes of the New York session frequently establish early liquidity zones.
A clean breakout from the range can signal volatility expansion and momentum entering the market.
This can help traders anticipate trend continuation or session direction.
Tips for Best Results
• Works best on lower timeframes (1m–15m)
• Combine with market structure or trend analysis
• Watch for false breakouts and liquidity sweeps around the edges
• Use with other confluence tools such as VWAP, value areas, or order flow
Customization
The indicator allows you to customize:
• Rectangle border color
• Fill color and transparency
• Border thickness
• Session behavior Indikator

Indikator

Indikator

Indikator

Vantage Liquidity EdgeABOUT
Vantage Liquidity Edge is an intraday positioning indicator that integrates dynamic level projections with liquidity sweep detection for a complete market structure overview. It uses kinetic energy, volume entropy, and price cycles to create adaptive support and resistance levels based on golden ratio expansions, overlaid with echo zones from confirmed liquidity sweeps that adjust with retests. A key feature is the resonance amplitude calculation, which combines signed kinetic energy (0.5 * volume * velocity²) with entropy-scaled volatility and dominant cycle rhythm.
Levels lock at market open, providing real-time trend and level probabilities alongside decaying liquidity echoes that strengthen visually with market interaction.
Bullish Trading Methods:
Demand Zone Entry: Enter long on a Vantage "BULL" bias (close above Pivot, Trend Prob >65%) at a LEM bull echo zone retest, confirmed by increasing opacity. Target the next R1/R2 level, with stop below the echo low.
Expansion Breakout: Buy breaks above R1 on high R2/R3 Level Prob (e.g., "R3 75%") during early expansion, supported by LEM sweeps below. Trail stops to Pivot.
Bearish Trading Methods:
Supply Zone Short: Short on a Vantage "BEAR" bias (close below Pivot, low Trend Prob <35%) at a retested LEM bear echo zone rejection, using opacity for confirmation. Target S1/S2, with stop above the echo high.
Fade Weakness: Short failures at R levels on "S3 XX%" Level Prob in choppy sessions, aligned with fresh LEM supply echoes. Use ATR targets to S zones, monitoring Pivot bias flips.
Indikator

Pressure Zone Analyzer [JOAT]Pressure Zone Analyzer
Introduction
The Pressure Zone Analyzer is an advanced open-source support/resistance indicator that combines dynamic pivot-based zone detection, Fibonacci level analysis, institutional level tracking, zone strength scoring, and multi-timeframe analysis into a comprehensive pressure zone intelligence system. This indicator helps traders identify where significant buying and selling pressure exists, where institutional levels act as magnets for price, and which zones have the highest probability of holding.
Unlike basic support/resistance indicators that draw static horizontal lines, this analyzer dynamically tracks pressure zones based on pivot points, calculates zone strength using volume, touches, and age, integrates Fibonacci golden zone analysis, monitors institutional weekly/daily levels, and provides real-time position assessment. The indicator is designed for traders who understand that not all support/resistance levels are equal and that zone quality determines trading success.
Why This Indicator Exists
This indicator addresses the challenge of identifying high-quality support and resistance zones in real-time. Markets respect some levels and ignore others. By systematically analyzing zone characteristics, this indicator reveals:
Dynamic Pressure Zones: Identifies support and resistance zones based on pivot points with automatic updates
Zone Strength Scoring: Calculates zone quality (0-100%) using volume, touch count, and age
Fibonacci Integration: Tracks key Fibonacci levels (23.6%, 38.2%, 50%, 61.8%, 78.6%) and golden zone (50-61.8%)
Institutional Levels: Monitors weekly and daily highs/lows that act as institutional reference points
Premium/Discount Zones: Identifies institutional buying zones (discount 0-30%) and selling zones (premium 70-100%)
Multi-Timeframe Analysis: Tracks higher timeframe levels for additional confluence
Position Assessment: Provides real-time analysis of price position relative to all zones
Each component provides different zone intelligence. Pivot-based zones show where price reversed, strength scoring shows zone quality, Fibonacci shows mathematical levels, institutional levels show reference points, premium/discount shows institutional bias, and position assessment shows current market context. Together, they create a comprehensive pressure zone system.
Core Components Explained
1. Dynamic Pivot-Based Zone Detection
Pressure zones are identified using pivot highs and lows:
float pivotHigh = ta.pivothigh(high, pivotLength, pivotLength)
float pivotLow = ta.pivotlow(low, pivotLength, pivotLength)
When a pivot high is detected, a resistance zone is created:
if not na(pivotHigh) and barstate.isconfirmed
PressureZone newZone = PressureZone.new()
newZone.zoneLine := line.new(bar_index - pivotLength, pivotHigh, bar_index + 50, pivotHigh,
color=resistanceColor, width=2, extend=extend.right)
newZone.price := pivotHigh
newZone.startBar := bar_index - pivotLength
newZone.zoneType := "resistance"
newZone.volumeAtZone := volume
Similarly for support zones with pivot lows. Zones are stored in arrays and automatically managed (old zones are removed when maximum count is reached).
Zone thickness is calculated as a percentage of price:
calcZoneThickness(float price, float thicknessPercent) =>
float thickness = price * (thicknessPercent / 100)
Default thickness is 0.5% of price, creating a zone rather than a single line. This accounts for the fact that support/resistance is a zone, not a precise price level.
2. Zone Strength Scoring System
Zone strength is calculated using three weighted components:
calcZoneStrength(int touches, float volAtZone, int age, float volWeight, float touchWeight, float ageWeight) =>
// Volume score (0-1)
float avgVolume = ta.sma(volume, 50)
float volScore = avgVolume > 0 ? math.min(volAtZone / avgVolume, 3.0) / 3.0 : 0.5
// Touch score (0-1)
float touchScore = math.min(touches / 5.0, 1.0)
// Age score (0-1) - newer zones score higher
float ageScore = math.max(1.0 - (age / 500.0), 0.0)
// Weighted combination
float strength = (volScore * volWeight) + (touchScore * touchWeight) + (ageScore * ageWeight)
Default weights:
Volume Weight: 40% - Higher volume at zone formation indicates institutional interest
Touch Weight: 30% - More touches indicate stronger zone
Age Weight: 30% - Newer zones are more relevant than old zones
Strength interpretation:
> 70%: Strong zone - high probability of holding
50-70%: Moderate zone - decent probability of holding
< 50%: Weak zone - lower probability of holding
The indicator tracks touches in real-time:
for zone in resistanceZones
if inZone(high, zone.price, thickness)
zone.touches += 1
zone.volumeAtZone := math.max(zone.volumeAtZone, volume)
Each touch increases zone strength, and high-volume touches increase it further.
3. Fibonacci Level Analysis
Fibonacci levels are calculated based on recent swing range:
calcFibLevels(float high, float low) =>
float priceRange = high - low
float fib236 = low + (priceRange * 0.236)
float fib382 = low + (priceRange * 0.382)
float fib500 = low + (priceRange * 0.500)
float fib618 = low + (priceRange * 0.618)
float fib786 = low + (priceRange * 0.786)
The indicator focuses on key levels:
50% (0.5): Equilibrium level - often acts as support/resistance
61.8% (0.618): Golden ratio - strongest Fibonacci level
Golden Zone is calculated as the area between 50% and 61.8%:
calcGoldenZone(float high, float low) =>
float priceRange = high - low
float goldenTop = low + (priceRange * 0.618)
float goldenBottom = low + (priceRange * 0.5)
The golden zone represents optimal entry area with best risk:reward ratio. Entries in the golden zone allow tight stops below 50% with targets at swing high.
4. Institutional Level Tracking
The indicator monitors key institutional reference levels:
Weekly High/Low:
float lastWeekHigh = request.security(syminfo.tickerid, "W", high ,
barmerge.gaps_off, barmerge.lookahead_off)
float lastWeekLow = request.security(syminfo.tickerid, "W", low ,
barmerge.gaps_off, barmerge.lookahead_off)
Daily High/Low:
float yesterdayHigh = request.security(syminfo.tickerid, "D", high ,
barmerge.gaps_off, barmerge.lookahead_off)
float yesterdayLow = request.security(syminfo.tickerid, "D", low ,
barmerge.gaps_off, barmerge.lookahead_off)
These levels act as magnets for price because:
Institutional algorithms reference these levels for order placement
Retail traders watch these levels for breakouts/breakdowns
Options and futures contracts often reference these levels
Previous day/week ranges provide context for current price action
5. Premium/Discount Zone System
Based on weekly range, the indicator calculates institutional bias zones:
float weekRange = lastWeekHigh - lastWeekLow
// Premium Zone (70-100% of range) - Institutional selling zone
float premiumTop = lastWeekHigh
float premiumBot = lastWeekLow + (weekRange * 0.7)
// Discount Zone (0-30% of range) - Institutional buying zone
float discountTop = lastWeekLow + (weekRange * 0.3)
float discountBot = lastWeekLow
// Golden Zone (50-61.8% of range) - Optimal entry zone
float goldenTop = lastWeekLow + (weekRange * 0.618)
float goldenBot = lastWeekLow + (weekRange * 0.5)
Trading logic:
In Discount Zone: Look for long entries - institutions are likely buying
In Premium Zone: Look for short entries - institutions are likely selling
In Golden Zone: Optimal risk:reward for entries in direction of trend
Between Zones: Neutral area - wait for price to reach discount or premium
This concept is based on institutional order flow: institutions buy in discount zones (value area) and sell in premium zones (overvalued area).
6. Multi-Timeframe Level Analysis
The indicator tracks higher timeframe levels for additional confluence:
float htfHigh = request.security(syminfo.tickerid, htfTimeframe, high ,
barmerge.gaps_off, barmerge.lookahead_off)
float htfLow = request.security(syminfo.tickerid, htfTimeframe, low ,
barmerge.gaps_off, barmerge.lookahead_off)
HTF timeframe is customizable (default: Daily). When current timeframe zones align with HTF levels, confluence increases zone strength.
7. Real-Time Position Assessment
The indicator continuously assesses price position:
// Check if in golden zone
bool inGoldenZone = close >= goldenBottom and close <= goldenTop
// Check if near resistance
bool nearResistance = false
for zone in resistanceZones
if inZone(close, zone.price, thickness * 2)
nearResistance := true
// Check if near support
bool nearSupport = false
for zone in supportZones
if inZone(close, zone.price, thickness * 2)
nearSupport := true
Position status:
AT RESISTANCE: Price near strong resistance zone - consider shorts or exits
AT SUPPORT: Price near strong support zone - consider longs or exits
GOLDEN ZONE: Price in optimal entry area - look for entries in trend direction
NEUTRAL: Price not near any significant zones - wait for better positioning
Visual Elements
Pressure Zone Lines: Horizontal lines showing resistance (red) and support (green) zones
Zone Strength Boxes: Filled boxes showing only strongest zones (strength > 60%) with strength percentage
Fibonacci Lines: Key Fibonacci levels (50% and 61.8%) with distinct colors
Golden Zone Fill: Shaded area between 50% and 61.8% Fibonacci levels
Institutional Lines: Weekly high/low (purple, thick) and Daily high/low (yellow, medium)
HTF Lines: Higher timeframe high/low (cyan) for additional confluence
Premium/Discount Fills: Shaded zones showing premium (red), discount (green), and golden (orange) areas
Position Markers: Visual alerts when price enters golden zone or approaches strong zones
Comprehensive Table: Dashboard showing top 2 resistance zones, top 2 support zones, institutional levels, Fibonacci levels, and current position status
Input Parameters
Pressure Zone Settings:
Zone Detection Length: Period for swing range calculation (default: 50, range: 20-200)
Pivot Length: Period for pivot detection (default: 10, range: 5-50)
Max Zones: Maximum zones to display (default: 8, range: 4-20)
Zone Thickness Percent: Zone width as percentage of price (default: 0.5%, range: 0.1-2.0%)
Fibonacci Settings:
Show Fibonacci Levels: Toggle Fib lines (default: enabled)
Show Golden Zone: Toggle golden zone fill (default: enabled)
Institutional Levels:
Show Last Week High/Low: Toggle weekly levels (default: enabled)
Show Yesterday High/Low: Toggle daily levels (default: enabled)
Strength Scoring:
Show Zone Strength: Toggle strength boxes (default: enabled)
Volume Weight: Weight for volume component (default: 0.4, range: 0.0-1.0)
Touch Weight: Weight for touch component (default: 0.3, range: 0.0-1.0)
Age Weight: Weight for age component (default: 0.3, range: 0.0-1.0)
Multi-Timeframe:
HTF Timeframe: Higher timeframe for level tracking (default: Daily)
Show HTF Levels: Toggle HTF lines (default: enabled)
Colors:
All colors are fully customizable including resistance, support, Fibonacci, golden zone, HTF levels, and institutional levels.
How to Use This Indicator
Step 1: Identify Strongest Zones
Look at the table to see top 2 resistance and support zones with strength percentages. Focus on zones with strength > 70%.
Step 2: Check Institutional Levels
Monitor weekly and daily highs/lows. These act as magnets for price and often provide strong support/resistance.
Step 3: Assess Premium/Discount Position
Determine if price is in premium zone (look for shorts), discount zone (look for longs), or golden zone (optimal entries).
Step 4: Look for Fibonacci Confluence
When pressure zones align with Fibonacci levels (especially 50% and 61.8%), zone strength increases significantly.
Step 5: Monitor Position Status
Check the table's position row. "AT RESISTANCE" or "AT SUPPORT" signals potential reversal or bounce areas.
Step 6: Wait for Zone Tests
Don't chase price. Wait for price to return to strong zones before entering. The best entries occur when price tests a zone and shows rejection.
Step 7: Use HTF Confluence
When current timeframe zones align with HTF levels, probability of zone holding increases. Look for these high-confluence areas.
Best Practices
Use on 15-minute to 4-hour timeframes for optimal zone clarity
Focus on zones with strength > 70% - these have highest probability of holding
Multiple touches increase zone strength - zones that held before are likely to hold again
Golden zone entries offer best risk:reward - tight stops with large targets
Premium/discount zones work best in trending markets
Weekly levels are stronger than daily levels - prioritize weekly when they conflict
Wait for price to reach zones - don't anticipate, react
Look for volume confirmation when zones are tested - high volume rejections are strongest
Combine with price action - zones show where, price action shows when
HTF confluence significantly increases zone strength - prioritize these areas
Indicator Limitations
Zones don't always hold - even strong zones can break during major news or trend changes
Zone strength is relative to recent history - not absolute
Pivot-based detection requires sufficient price history - may not work on newly listed instruments
Maximum zone limits (8 default) mean some valid zones may not be displayed
Zone thickness is a percentage - may be too wide or narrow for some instruments
Premium/discount zones are relative to weekly range - not absolute value areas
Fibonacci levels are based on recent swing - may not align with longer-term structure
The indicator shows zones, not direction - requires trader interpretation
Works best on liquid instruments with clear support/resistance behavior
Zone strength scoring is a guide, not a guarantee - strong zones can still fail
Technical Implementation
Built with Pine Script v6 using:
Custom type definition for PressureZone with strength tracking
Array-based storage for resistance and support zones
Pivot-based zone detection with confirmation
Multi-component zone strength scoring
Touch and volume tracking for each zone
Fibonacci level calculations
Golden zone identification
Multi-timeframe security requests for institutional levels
Premium/discount zone calculations based on weekly range
Real-time position assessment
Dynamic table with 13 rows showing all metrics
Overlap prevention for visual clarity
Automatic zone cleanup when maximum count is reached
The code is fully open-source and can be modified to suit individual trading styles and preferences.
Originality Statement
This indicator is original in its comprehensive pressure zone analysis. While individual components (pivot-based S/R, Fibonacci, institutional levels) are established concepts, this indicator is justified because:
It synthesizes five distinct zone analysis methodologies into a unified system
Zone strength scoring combines volume, touches, and age with customizable weights
Automatic zone management prevents clutter while highlighting strongest zones
Integration of Fibonacci golden zone with pivot-based zones
Premium/discount zone system based on institutional order flow concepts
Multi-timeframe level tracking for confluence analysis
Real-time position assessment provides actionable trading context
Comprehensive table shows all metrics simultaneously for holistic analysis
Overlap prevention ensures clean charts without sacrificing information
Each component contributes unique zone intelligence: pivot zones show where price reversed, strength scoring shows zone quality, Fibonacci shows mathematical levels, institutional levels show reference points, premium/discount shows institutional bias, HTF levels show confluence, and position assessment shows current context. The indicator's value lies in presenting these complementary perspectives simultaneously with quantitative strength scoring and intelligent display management.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss and is not suitable for all investors.
Pressure zone analysis is a tool for identifying potential support and resistance areas, not a crystal ball for predicting future price movement. Strong zones, high strength scores, and institutional levels do not guarantee profitable trades. Past zone behavior does not guarantee future zone behavior. Market conditions change, and strategies that worked historically may not work in the future.
The zones and levels displayed are mathematical calculations based on current market data, not predictions of future price movement. High-strength zones can break, golden zone entries can fail, and institutional levels can be violated. Users must conduct their own analysis and risk assessment before making trading decisions.
Always use proper risk management, including stop losses and position sizing appropriate for your account size and risk tolerance. Never risk more than you can afford to lose. Consider consulting with a qualified financial advisor before making investment decisions.
The author is not responsible for any losses incurred from using this indicator. Users assume full responsibility for all trading decisions made using this tool.
-Made with passion by officialjackofalltrades Indikator

Nadaraya-Watson Dynamic Envelopes [identityKa]Welcome to another premium-grade, free-to-use trading tool developed by identityKa.
The Nadaraya-Watson Dynamic Envelopes is a highly advanced, visually smooth overlay indicator designed to capture dynamic support and resistance zones. Instead of relying on traditional, jagged moving averages, this indicator utilizes a Gaussian-inspired smoothing technique (via an optimized ALMA mathematical engine) to wrap the price action in a flowing, highly responsive channel.
Whether you are a day trader looking for mean-reversion setups or a swing trader identifying macro tops and bottoms, this indicator provides crystal-clear visual guidance without cluttering your chart.
🔥 Key Features:
Dynamic Smoothing Engine: Creates non-jagged, flowing upper (resistance) and lower (support) bands that adapt to market volatility.
Mean Reversion Signals: Prints distinct triangle shapes (Red for Bearish, Green for Bullish) when the price action sharply interacts with the outer envelopes, highlighting high-probability reversal zones.
Smart HUD Dashboard: Includes a clean, fully customizable on-chart dashboard that displays the current engine status, price position relative to the midline, and a real-time AI Suggestion (LONG, SHORT, or Dangerous) based on the algorithmic state.
100% Customizable: Every aspect of the indicator, from bandwidth smoothness and multipliers to theme colors (featuring the signature identityKa neon palette) and dashboard positioning, can be adjusted in the settings menu.
💡 How to Trade with It:
Mean Reversion: Look for bullish (green) triangle signals when the price touches or pierces the lower green envelope for potential long entries. Conversely, look for bearish (red) triangle signals at the upper red envelope for short entries.
Trend Continuation: In strong trending markets, the midline (white) often acts as dynamic support/resistance.
Pro Tip: This indicator works best when combined with a primary trend filter (such as our Alpha SuperTrend Signal). Avoid taking reversal signals against a very strong macroeconomic trend unless confirmed by other Price Action concepts.
⚙️ Settings & Alerts:
The script comes with built-in alert conditions for both Support Bounces (Bullish) and Resistance Rejections (Bearish), allowing you to automate your workflow. All settings are globally accessible in English.
Elevate your chart quality. Trade with precision. Trade with identityKa. Indikator

Gamma Exposure Levels [BackQuant]Gamma Exposure Levels
This indicator allows you to paste Gamma Exposure (GEX) level data directly into a text input on TradingView, automatically parsing the values and plotting them as labeled horizontal lines on your chart. It is designed for traders who use options-derived gamma exposure data as part of their technical analysis and want a fast, visual way to overlay those key price levels onto any chart and timeframe.
Rather than manually drawing lines for each level, this script reads a structured block of GEX output text, extracts every relevant dollar value, and draws color-coded, labeled levels across your chart. If two or more levels share the same price, their labels are automatically merged (for example, "Max Pain / Call Res $75,000") so the chart stays clean and readable.
What is Gamma Exposure (GEX)?
Gamma Exposure refers to the aggregate gamma held by options market makers (dealers) at each strike price. Gamma measures how much a dealer's delta (directional hedge) changes as the underlying price moves. When dealers hold large gamma positions, they must continuously hedge by buying or selling the underlying asset, which can either dampen or amplify price movement depending on the sign of that gamma.
When dealers are long gamma (positive GEX), they hedge against the prevailing trend: buying dips and selling rallies. This creates a stabilizing, mean-reverting effect around high-gamma strikes, making those levels act like magnets or support/resistance zones.
When dealers are short gamma (negative GEX), they hedge in the same direction as the move: selling into drops and buying into rallies. This amplifies volatility and can cause sharp, directional moves once a key gamma level breaks.
Understanding where these gamma levels sit gives traders a structural map of where options market makers are likely to add liquidity or accelerate a move.
How to Use This Indicator
Add the indicator to your chart.
Open the indicator settings and find the "Data Input" group at the top.
Paste your full GEX levels output into the text area. The indicator expects a structured text format (see the example format below).
The indicator will automatically parse all dollar values from the text and plot them as horizontal lines with labels.
Use the toggle checkboxes next to each level type to show or hide individual levels.
Customize colors, line style, line width, label size, label offset, and label position from the settings panel.
Expected Input Format
The indicator parses structured GEX output text. Below is an example of the expected format. Copy and paste a block like this directly into the text area input in the indicator settings:
GEX Levels - 04/03/2026, 12:17:19
All-Expiry Levels:
HVL: $72,000 +$1,841 (+2.62%)
Call Resistance: $75,000 +$4,841 (+6.90%)
Put Support: $60,000 $-10,159 (-14.48%)
0DTE Levels:
0DTE HVL: $68,000 $-2,159 (-3.08%)
0DTE Call: $71,000 +$841 (+1.20%)
0DTE Put: $66,000 $-4,159 (-5.93%)
Advanced:
Zero Gamma: $71,819 +$1,660 (+2.37%)
Max Pain: $74,000 +$3,841 (+5.47%)
Expected Move: $64,238 to $76,081
Flip Zones (All): $67,500
All-Expiry GEX Top 10 (by |gamma|):
1. $60,000 $-10,159 (-14.48%) | GEX: -20,711,741.86
2. $75,000 +$4,841 (+6.90%) | GEX: 18,876,578.2
3. $72,000 +$1,841 (+2.62%) | GEX: 17,530,960.01
4. $70,000 $-159 (-0.23%) | GEX: 17,494,795.02
5. $74,000 +$3,841 (+5.47%) | GEX: 13,573,146.08
6. $73,000 +$2,841 (+4.05%) | GEX: 10,380,107.7
7. $69,000 $-1,159 (-1.65%) | GEX: 10,341,883.98
8. $80,000 +$9,841 (+14.03%) | GEX: 8,636,674.83
9. $71,000 +$841 (+1.20%) | GEX: 7,962,084.65
10. $65,000 $-5,159 (-7.35%) | GEX: -7,257,124.01
0DTE GEX Top 10 (by |gamma|):
1. $69,500 $-659 (-0.94%) | GEX: 3,659,702.74
2. $70,500 +$341 (+0.49%) | GEX: 1,152,595.15
3. $69,000 $-1,159 (-1.65%) | GEX: 703,339.82
4. $72,000 +$1,841 (+2.62%) | GEX: 697,625.91
5. $73,000 +$2,841 (+4.05%) | GEX: 419,096.08
6. $68,000 $-2,159 (-3.08%) | GEX: 294,575.89
7. $74,000 +$3,841 (+5.47%) | GEX: 281,083.42
8. $75,000 +$4,841 (+6.90%) | GEX: 183,191.05
9. $66,000 $-4,159 (-5.93%) | GEX: -172,470.38
10. $68,500 $-1,659 (-2.37%) | GEX: 167,135.87
The indicator only extracts the dollar values from this text. The percentage changes, GEX magnitude values, and other metadata are informational context in the source data but are not plotted by this script.
Level Definitions
Below is a detailed explanation of every level this indicator can parse and plot. These are grouped the same way they appear in the indicator settings.
All-Expiry Levels
These levels are derived from gamma exposure aggregated across all option expiration dates.
HVL (High Volume Level) - The price with the highest total gamma exposure across all expirations. This is the strike where dealers hold the most aggregate gamma and therefore where hedging activity is most concentrated. Price tends to gravitate toward the HVL in positive gamma environments because dealer hedging creates a mean-reverting effect around this level. Think of it as the "center of gravity" for options-driven price action.
Call Resistance - The price level where call-side gamma creates overhead resistance. At this strike, the concentration of call gamma means that as price rises toward it, dealers who are long those calls must sell the underlying to stay delta-neutral. This selling pressure acts as a ceiling, making it harder for price to push through. Breaks above call resistance can signal a shift in positioning or the start of a gamma squeeze.
Put Support - The price level where put-side gamma creates downside support. At this strike, the concentration of put gamma means that as price falls toward it, dealers must buy the underlying to hedge. This buying pressure acts as a floor, cushioning the decline. A break below put support can accelerate selling as dealers flip from buying to selling, potentially triggering a sharp move lower.
0DTE Levels
These levels are derived exclusively from same-day (zero days to expiration) options. Because 0DTE options have extremely high gamma due to their proximity to expiration, they can dominate intraday price action even when their notional size is smaller than longer-dated positions.
0DTE HVL - The same-day high volume level. This is the intraday gamma center of gravity derived solely from options expiring today. It represents the strike where 0DTE dealer hedging is most concentrated and where intraday gamma polarity can flip. Particularly relevant for intraday traders, as 0DTE gamma effects intensify throughout the trading session and peak in the final hours before expiration.
0DTE Call - Same-day call resistance. The intraday ceiling created by 0DTE call gamma. Dealer hedging against these expiring calls creates selling pressure as price approaches this level. Because 0DTE gamma decays rapidly, this level can shift during the session and its strength increases as expiration approaches.
0DTE Put - Same-day put support. The intraday floor created by 0DTE put gamma. Dealer hedging against expiring puts creates buying pressure at this level. Like the 0DTE call level, its influence grows as the trading day progresses and gamma effects intensify near the close.
Advanced Levels
These levels provide additional structural context beyond the core support, resistance, and HVL framework.
Zero Gamma - The precise price where cumulative gamma across all strikes and expirations equals zero. This is one of the most important structural levels in gamma analysis. Above the Zero Gamma level, dealers are net long gamma and their hedging stabilizes price (buying dips, selling rallies). Below it, dealers are net short gamma and their hedging amplifies moves (selling into drops, buying into rallies). Crossing the Zero Gamma level often marks a regime change in how the market behaves, shifting from mean-reversion to trend-following dynamics.
Max Pain - The strike price at which the total value of all outstanding options (both calls and puts) would be minimized if the underlying expired at that price. In other words, it is the price where option holders collectively lose the most money. Max Pain theory suggests that there is a gravitational pull toward this level as expiration approaches, driven by dealers and market makers who benefit from options expiring worthless. It is most relevant in the final days before a major expiration.
Expected Move - The 1-sigma (one standard deviation) expected price range, plotted as two levels: Expected Move Upper and Expected Move Lower. This range represents the statistically expected boundaries of price movement based on current implied volatility. Roughly 68% of the time, price is expected to remain within this range. These levels help traders gauge whether the current price action is within normal bounds or represents an unusual move. A break beyond the expected move range can signal a volatility event or a shift in market regime.
Flip Zones - All price levels where gamma polarity changes sign. At these strikes, dealer hedging behavior transitions from stabilizing (long gamma) to destabilizing (short gamma) or vice versa. Flip zones act as transition boundaries. When price crosses a flip zone, the nature of dealer activity changes, which can lead to shifts in volatility, momentum, and the tendency for price to mean-revert or trend. Multiple flip zones in a narrow range can create a "no man's land" where positioning is mixed and price action becomes choppy.
GEX Top 10
The GEX Top 10 are the ten strike prices with the highest absolute gamma exposure, ranked by the magnitude of their gamma (|gamma|). These represent the strikes where dealer hedging activity is most significant, regardless of whether the gamma is positive (call-dominated, stabilizing) or negative (put-dominated, destabilizing).
The indicator provides a dropdown selector with five options for the GEX Top 10:
None - Do not plot any GEX Top 10 levels.
0DTE - Plot the Top 10 from same-day (0DTE) options only. Best for intraday analysis.
All Expiries - Plot the Top 10 from all expiration dates combined. Best for swing or multi-day analysis.
0DTE 1-5 - Plot only the top 5 from 0DTE options. Useful for reducing chart clutter while keeping the most significant intraday levels.
All Expiries 1-5 - Plot only the top 5 from all expiration dates. Useful for a cleaner multi-day view.
Each of the 10 GEX levels (GEX #1 through GEX #10) has its own individual toggle and color picker, so you can show or hide any specific rank and assign distinct colors to differentiate them.
Overlap Handling
It is common for multiple GEX levels to land on the same price. For example, Max Pain and Call Resistance might both be at $75,000, or a GEX Top 10 strike might coincide with the HVL. Rather than drawing overlapping lines and labels that clutter the chart, this indicator automatically detects when two or more levels share the same price (within a $0.50 tolerance). When a match is found, only one line is drawn at that price and the labels are merged with a "/" separator.
For example, if Max Pain is $75,000 and Call Resistance is also $75,000, the chart will show a single line labeled:
Max Pain / Call Res 75000
This keeps the chart clean and makes it immediately obvious when multiple structural levels converge at the same price, which often signals a particularly significant level.
Customization Options
The indicator provides extensive customization through its settings panel:
Per-Level Controls
Each level type has its own color picker and show/hide toggle on the same line.
GEX Top 10 levels (#1 through #10) each have individual color pickers and toggles.
A dropdown selector lets you choose which GEX Top 10 dataset to plot (0DTE, All Expiries, top 5 only, or none).
Line Style
Line Width: 1 to 4 pixels.
Line Style: Solid, Dashed, or Dotted.
Extend Lines: Both directions, Right only, Left only, or None.
Label Settings
Label Size: Tiny, Small, Normal, Large, or Huge.
Label Offset: Position the labels any number of bars to the right or left of the current bar (-200 to 500).
Label Side: Place labels on the Right or Left side of the chart.
Every toggle and input has a descriptive tooltip that appears on hover, explaining what the level represents and how it is used.
How the Parsing Works
The script uses Pine Script v6 string functions to scan the pasted text for known keywords (such as "HVL:", "Call Resistance:", "0DTE Call:", "Zero Gamma:", "Expected Move:", "Flip Zones:", etc.). For each keyword found, it locates the next "$" character and extracts the numeric value that follows, correctly handling both comma-separated thousands (e.g., $72,000) and decimal values (e.g., $71,819.50).
For the Expected Move, it parses both the lower and upper bounds from the "to" separator (e.g., "$64,238 to $76,081").
For Flip Zones, it scans for every "$" on the line and extracts each value, correctly distinguishing thousands-separator commas from delimiter commas between multiple zone values.
For the GEX Top 10 sections, it identifies the section header ("All-Expiry GEX Top 10" or "0DTE GEX Top 10") and parses the first dollar value from each numbered line, stopping when it hits a new section header or separator.
The indicator only draws on the last bar and uses a delete-and-redraw system to ensure that only one clean set of lines and labels exists at any time. Old drawings are removed before new ones are created on each update.
Important Notes
This indicator does not generate or calculate GEX data. It is a visualization tool that plots externally sourced gamma exposure levels onto your TradingView chart.
The indicator requires you to paste GEX data in the expected structured text format. If the text area is empty, nothing will be plotted.
GEX data is a snapshot in time. Options positioning changes throughout the trading day as new trades are opened and closed. Levels should be updated periodically for the most accurate representation of current dealer positioning.
GEX levels are not guaranteed support or resistance. They represent areas where dealer hedging activity is concentrated, which can influence price behavior but does not determine it. Always use GEX data as one component of a broader analysis framework.
Indikator

Indikator

Malaysian SnR Levels [UAlgo]Malaysian SnR Levels is a structure based support and resistance overlay that automatically plots three level types on the chart:
A-Levels, which act as resistance
V-Levels, which act as support
Gap Levels, which mark qualifying candle to candle price gaps
The script is built for traders who want clean horizontal reference levels that stay active until price decisively crosses through them. Instead of drawing every pivot forever, the indicator manages each level as a stateful object with freshness and activity tracking. A newly created level begins as fresh , becomes unfresh after its first wick interaction, and remains active until price fully crosses through it. Once broken, the level stops extending and is archived on the chart.
A major strength of this implementation is its optional multi timeframe workflow. You can leave the timeframe input empty to detect levels on the current chart, or select a higher timeframe to project higher timeframe A, V, and Gap levels onto a lower timeframe execution chart. This makes the script useful for both local chart structure and top down level mapping.
The result is a practical support and resistance engine focused on:
Pivot based resistance and support
Gap based structural levels
Fresh versus unfresh state tracking
Automatic break detection
Optional MTF level projection
🔹 Features
🔸 1) Automatic A-Levels and V-Levels
The script detects pivot highs and pivot lows and converts them into horizontal support and resistance levels:
A-Levels come from confirmed pivot highs and behave as resistance
V-Levels come from confirmed pivot lows and behave as support
These are built from pivot calculations on close , not on raw high and low extremes, which gives the levels a close based structural character.
🔸 2) Automatic Gap Levels
In addition to pivots, the script detects directional gap style levels when two consecutive candles move in the same direction and the open to prior close gap exceeds a minimum tick distance.
Bullish gap logic creates a gap level at the previous close.
Bearish gap logic also creates a gap level at the previous close.
This gives the indicator a third structural layer beyond classic pivot based support and resistance.
🔸 3) Fresh and Unfresh State Tracking
Every new level starts as fresh . A fresh level is considered untouched. Once price interacts with the level by wick, it becomes unfresh :
The line style changes to dashed
The width becomes thinner
The color shifts to the unfresh color theme
This helps traders quickly distinguish untouched levels from levels that have already been tested.
🔸 4) Active Until Full Break
A level stays active until price crosses through it. Once broken, the level:
Stops extending
Fixes its endpoint at the break time
Keeps the historical line visible
Stops updating as an active level
This is useful because old levels remain visible for review, while current active levels continue projecting forward.
🔸 5) Multi Timeframe Detection (Optional)
The script supports a selectable detection timeframe:
Leave it empty to use the current chart timeframe
Set it to a higher timeframe to project higher timeframe levels onto the current chart
This is especially useful when traders want to execute on a lower timeframe while respecting higher timeframe structure.
🔸 6) Minimum Gap Filter in Ticks
Gap levels are filtered by a configurable minimum distance in ticks. This avoids plotting tiny micro gaps and helps keep only more meaningful dislocations.
🔸 7) Duplicate Level Protection
Before adding a new level, the script checks whether an active level already exists near the same price. If another active level is within a small tick range, the new one is skipped.
This reduces clutter and prevents nearly identical levels from stacking on top of each other.
🔸 8) Separate Visibility Controls
Users can independently choose whether to display:
A-Levels
V-Levels
Gap Levels
This makes the tool adaptable for different workflows, such as only plotting pivot levels or only monitoring gap structure.
🔸 9) Full Visual Customization
The script provides separate color controls for:
Fresh A-Levels
Unfresh A-Levels
Fresh V-Levels
Unfresh V-Levels
Fresh Gap Levels
Unfresh Gap Levels
It also allows customization of:
Fresh line width
Unfresh line width
Label size
This makes it easy to fit the indicator into different chart styles.
🔸 10) Label Projection to the Right
Each active level includes a compact label showing its type:
A
V
Gap
The label is automatically pushed several time steps to the right of current price so it stays readable and aligned with the level.
🔸 11) Automatic Level Count Management
The script keeps the number of stored levels under control using a maximum active limit. When capacity is exceeded, it tries to remove an older inactive level first.
This helps maintain chart cleanliness and stay within TradingView object limits.
🔹 Calculations
1) Pivot Based A-Level and V-Level Detection
The script calculates pivots using close, not high or low:
float ph = ta.pivothigh(close, pivotLength, pivotLength)
float pl = ta.pivotlow(close, pivotLength, pivotLength)
Interpretation:
A-Level = confirmed close based pivot high
V-Level = confirmed close based pivot low
Because pivot confirmation requires bars on both sides, the level time is aligned to the true pivot bar using:
int ph_t = not na(ph) ? time : na
int pl_t = not na(pl) ? time : na
2) Gap Level Detection Logic
The script defines bullish and bearish gap conditions using consecutive candles in the same direction plus a minimum gap size measured in ticks.
Bullish gap:
bool bullishGap = prevBullish and isBullish and (open - close ) >= syminfo.mintick * minGapTicks
Bearish gap:
bool bearishGap = prevBearish and isBearish and (close - open) >= syminfo.mintick * minGapTicks
If either condition is true, the gap level is set at:
gap_price := close
So the reference price for the gap level is the previous candle’s close.
3) Multi Timeframe Data Selection
The script computes levels in a helper function and can either use:
Local chart data directly
Or higher timeframe data through request.security
= request.security(...)
If the timeframe input is empty, local values are used. Otherwise, the security values are used:
float ph = tf == "" ? loc_ph : sec_ph
This gives flexible MTF projection while keeping one consistent logic engine.
4) New Level Event Detection
To prevent the same pivot or gap from being added multiple times, the script checks whether the timestamp of the detected event changed:
bool new_ph = not na(ph_t) and ph_t != nz(ph_t )
bool new_pl = not na(pl_t) and pl_t != nz(pl_t )
bool new_gap = not na(gap_t) and gap_t != nz(gap_t )
This is an important implementation detail because it avoids a common Pine issue where na != na can propagate as na and block reliable detection.
5) Level Creation and Duplicate Protection
Before a new level is added, the script checks existing active levels and rejects duplicates that are too close:
if lvl.isActive and math.abs(lvl.price - p) < syminfo.mintick * 10
exists := true
This means levels within 10 ticks of an existing active level are treated as duplicates and not added.
6) Level Initialization
When a level is created, it starts as:
Fresh = true
Active = true
A line is drawn from the source time and extended to the right:
line.new(st, p, st + timeStep, p, xloc=xloc.bar_time, color=c, width=lineWidthFresh, extend=extend.right)
A label is also created and placed several time steps to the right:
label.new(cur_time + timeStep * 5, p, t, ...)
This keeps the label visually separated from the current candle.
7) Fresh to Unfresh Transition Logic
A level becomes unfresh when price first touches it by wick while the level is still active.
For A-Levels:
touchedWick := h >= this.price
For V-Levels:
touchedWick := l <= this.price
For Gap levels:
touchedWick := h >= this.price and l <= this.price
Once touched:
The level remains active
isFresh becomes false
The line becomes dashed
The width changes to the unfresh width
The line and label colors switch to the unfresh palette
This means a wick touch weakens the level visually, but does not break it.
8) Break / Deactivation Logic
A level becomes inactive only when price crosses through it, not merely when it is touched.
Cross up condition:
bool crossedUp = (o <= this.price and c > this.price) or (c_prev < this.price and c > this.price)
Cross down condition:
bool crossedDown = (o >= this.price and c < this.price) or (c_prev > this.price and c < this.price)
If either is true:
this.isActive := false
this.lvlLine.set_x2(curTime)
this.lvlLine.set_extend(extend.none)
this.lvlLabel.set_x(curTime)
Interpretation:
The level stops projecting and is fixed at the break time.
9) Time Step Handling
The script uses the current bar’s time distance to position and extend labels:
int timeStep = bar_index > 0 ? time - time : 60000
This is important because the script uses xloc.bar_time , so horizontal positioning is time based rather than bar index based.
10) Maximum Level Management
When the array exceeds the user defined maximum, the script tries to remove an inactive level first:
if this.size() > maxLevels
int removeIdx = 0
for i = 0 to this.size() - 1
SnRLevel lvl = this.get(i)
if not lvl.isActive
removeIdx := i
break
Then it deletes that level’s line and label.
Important implementation note:
If no inactive level is found, removeIdx remains 0, so the oldest level in the array is removed.
11) A-Level, V-Level, and Gap Interpretation
In this script:
A-Levels are close based pivot highs and function like resistance
V-Levels are close based pivot lows and function like support
Gap Levels are prior close reference levels from qualifying directional gaps
All three share the same lifecycle framework:
Fresh
Unfresh after wick touch
Inactive after a full cross through Indikator

Quantum Dynamic Mitigation Zones v1Quantum Dynamic Mitigation Zones - Institutional Order Flow Support/Resistance
Overview
Traditional Support and Resistance lines rely on lagging historical pivots. The Quantum Dynamic Mitigation Zones indicator brings true institutional order flow to your charts. It scans for massive, statistically significant volume anomalies (Whale executions) and draws rigid Supply and Demand zones forward in time. Most importantly, it visually simulates order book "Mitigation"—as price wicks back into these zones, the boxes physically shrink, showing you exactly how much institutional liquidity has been "eaten" before the level finally breaks.
Key Highlights
• Anomaly Detection: Scans the current timeframe for extreme volume spikes (e.g., 300%+ above the moving average) to identify where institutional money stepped in.
• Dynamic Mitigation Engine: As future price action retraces into a drawn zone, the script permanently erases the portion of the box that price touched.
• Visual Liquidity: Instead of guessing if a level is still strong, you can literally see if the box is wide and heavily defended, or if it has been reduced to a thin sliver about to break.
How to Trade It
When an anomaly zone is first created, do not chase the breakout. Wait for price to naturally retrace back to the box. If the price taps the edge of the box and rejects strongly, buy/sell the bounce. If price begins heavily "eating" into the box, narrowing its size, assume the institutional defense is depleted and prepare to trade the continuation breakout through the zone.
⚠️ DISCLAIMER: STRICTLY FOR EDUCATIONAL PURPOSES
The information, scripts, and concepts provided in this publication are for educational and informational purposes only and do not constitute financial, investment, or trading advice. Trading in financial markets (including Forex, Crypto, Stocks, and Commodities) carries a high level of risk and may not be suitable for all investors. You could lose some or all of your initial investment. Past performance is not indicative of future results. Always conduct your own due diligence, backtest any strategy thoroughly, and consult with a certified financial advisor before making any trading decisions. By using this script, you acknowledge that you are solely responsible for your own trading actions and outcomes.
Indikator
