OpenFrame Range MapOpenFrame Range Map is an intraday opening-range framework built for traders who want more than a basic session box.
Instead of only plotting the first range of the session, this script turns that range into a structured map for the rest of the day. It measures the opening range, plots its internal levels, builds expansion targets from the completed range, tracks session VWAP, and then monitors how price behaves after the range is finished.
The default setup is based on an Asian-session workflow in UTC :
Opening Range Window: 0000-0100
Trading Session Window: 0000-0900
Both can be changed from the settings, so the script can also be adapted to London, New York, or any custom intraday session.
Why use this indicator
Many opening-range tools stop at plotting a high and a low. That is useful, but often incomplete.
This script is designed for traders who want to answer questions like:
Is today’s opening range relatively small or already stretched?
Is price accepting above the range, rejecting it, or staying trapped inside it?
Where are the next objective expansion levels once the range is complete?
Is post-range movement happening with clean session structure or not?
How is price behaving relative to the session VWAP after the opening range is established?
The goal is not to predict the future. The goal is to give intraday traders a cleaner structure for context, bias, and target mapping once the first range of the session is known.
What makes this script different
This script is not just an opening-range box.
It combines several components into one workflow:
Opening Range Structure
Range high
Range low
Midpoint
25% and 75% internal levels
Optional opening-range box
Expansion Target Ladder
0.5x
1.0x
1.5x
2.0x
optional custom multiplier
Session VWAP
A custom session VWAP that resets at the start of the selected trading session, instead of relying only on a generic daily reset
Range Quality Classification
The completed opening range is compared against confirmed daily ATR context
This helps classify the day as Compressed, Balanced, or Expanded
Post-Range Behavior Tracking
Bullish acceptance above the completed range
Bearish acceptance below the completed range
Optional first retest markers after acceptance
So the script is not only about drawing levels. It is also about helping traders read what happens after the range is built.
How it works:
During the selected Opening Range Window, the script builds the range high and range low.
While the range is forming, the dashboard shows Building.
When the window ends, the range is locked.
The script then calculates:
midpoint
quartiles
expansion targets
range size relative to confirmed daily ATR
During the selected Trading Session Window, the script monitors whether price accepts above or below the completed range.
If enabled, it also marks the first clean retest of the broken range boundary.
How to use it
A common workflow is:
Wait for the opening range to complete
Observe the range size and quality classification
Watch whether price remains inside the range or accepts outside it
Use the target ladder as objective reference levels
Use session VWAP as an extra intraday context layer
Use acceptance and retest markers as structure events, not as guaranteed outcomes
Default session logic:
The script defaults to an Asian-session intraday structure in UTC, but the sessions are fully editable.
This script works best on intraday charts.
Higher timeframes can still display the levels, but the intended use is intraday session analysis.
Important limitations
This is not a prediction engine
It does not guarantee profitable outcomes
Acceptance and retest markers are structure events, not certainty signals
Session choice matters and can significantly change behavior
Opening-range logic is most useful on intraday charts
Summary
OpenFrame Range Map is built for traders who want to turn the first part of a session into a usable framework for the rest of the day.
It helps answer:
how large the session range is
whether the day started compressed or expanded
whether price is accepting outside the range
where objective expansion levels sit
how price behaves around the session VWAP after the range is complete
That makes it more than a simple session box and more useful as a daily intraday structure map. Indicator

AG Pro ATR Compression Map [AGPro Series]AG Pro ATR Compression Map
Overview / What it does
AG Pro ATR Compression Map is a chart-first compression analysis tool designed to evaluate how organized a low-volatility phase is and how structurally developed that contraction has become.
Instead of treating every quiet market phase as equally meaningful, the script separates loose and unstable contraction from cleaner, more contained compression conditions. The goal is not to label every narrow range as important, but to provide a structured visual framework for monitoring whether a tightening phase is becoming more coherent and potentially worth closer attention.
The script is built for users who want to read compression quality directly on the chart without relying on overly complex dashboard-style presentation. It highlights active compression zones, assigns a normalized compression score, classifies the current state of contraction, and summarizes the condition through a compact on-chart panel.
This is intended as a context and monitoring tool. It does not attempt to forecast direction, guarantee expansion, or replace execution planning and risk management.
Unique Edge
The main idea behind this script is that low volatility alone is not enough.
Many consolidations look similar at first glance, but their internal structure can be very different. Some are noisy, unstable, and disorderly. Others become progressively tighter, cleaner, and more contained. AG Pro ATR Compression Map is designed to make that distinction clearer.
Its edge is not based on directional prediction. Instead, it evaluates compression quality through a blended framework that combines volatility contraction, local range tightening, internal noise behavior, and containment structure. This allows the script to differentiate between random quiet price action and more organized compression phases.
This also keeps the script distinct from tools that focus on breakout confirmation, retest quality, trend classification, or level-based pressure analysis. Here, the focus is narrower and more specific: measuring the quality of compression itself.
Methodology
The script combines four internal components into a unified compression score:
1) ATR contraction
Measures whether current ATR is compressed relative to its own baseline.
2) Range tightness
Measures whether the recent price range has narrowed compared with a broader reference window.
3) Noise evaluation
Evaluates whether the contraction phase is relatively clean or increasingly disordered. This includes internal bar behavior such as wick activity, directional flipping, and local overlap behavior.
4) Structural containment
Measures whether price is remaining contained within a tighter local area instead of drifting loosely inside a broad consolidation.
These components are normalized and combined into a 0-100 compression score.
The script then classifies the result into four stages:
• Loose
• Building
• Tight
• Mature
This stage logic is designed to help distinguish early contraction from more developed compression conditions. Higher states reflect more structured tightening, but not certainty of resolution.
What the script highlights
• Compression zone
A shaded chart area is displayed when compression conditions are active.
• Compression score
A compact label shows the current normalized compression score.
• State label
The current compression stage is shown directly on the chart.
• Mini panel
A small panel summarizes ATR state, range state, noise condition, containment quality, overall compression score, active state, and current compression window length.
Signals & Alerts
This script includes deterministic alert conditions for:
• Compression Active
Triggered when compression conditions become active according to the script's scoring logic.
• Compression Mature
Triggered when the current state reaches Mature.
• Compression State Change
Triggered when the internal compression state changes.
These alerts are designed to reflect state transitions inside the script's existing framework. They should be interpreted as analytical status changes, not as trade instructions.
Key Inputs
Main controls include:
• ATR Length
• Baseline Length
• Range Window
• Noise Window
• Containment Window
• Compression Threshold
• Mature Threshold
The script also includes display controls for zone visibility, labels, panel position, theme mode, text sizing, and label offset. Advanced options allow stricter filtering and additional sensitivity controls for wick behavior and close-overlap behavior.
How to read it
In practice, the script is most useful when users want to answer questions such as:
• Is this contraction still loose, or is it becoming more organized?
• Is the range tightening in a meaningful way, or is price simply drifting?
• Is the structure relatively clean, or is internal noise increasing?
• Has the compression developed enough to justify closer monitoring?
A higher compression score means the script is detecting tighter and more structured contraction conditions. A lower score suggests that the current quiet phase is still broad, unstable, or underdeveloped.
Best use cases
This script can be useful when monitoring:
• developing consolidations
• low-volatility phases inside broader trends
• pre-expansion observation zones
• structured pauses after directional movement
• markets where users want to distinguish clean compression from random inactivity
It is especially suited for traders who prefer chart-first context tools rather than signal-heavy overlays.
Limitations & Transparency
Compression can remain inactive for long periods, fail to resolve cleanly, or resolve without meaningful follow-through.
A high compression reading does not imply directional certainty, timing certainty, or inevitable expansion. Likewise, a low reading does not mean price cannot move sharply. The script measures structure quality inside contraction conditions. It does not measure certainty.
The output should be used as contextual information alongside price action, market structure, execution rules, and risk management.
What it does not do
This script does not:
• predict breakout direction
• guarantee expansion
• project targets
• replace trade planning
• function as a standalone entry engine
Risk Disclosure
For educational and analytical use only. Indicator

Echelon Regime Gauge [JOAT]Echelon Regime Gauge
Introduction
The Echelon Regime Gauge is an open-source market regime detection and session awareness indicator built in Pine Script v6. It classifies the current market state into one of six regimes — Trend Up, Trend Down, Range, Volatile, Squeeze, or Mixed — using a combination of SMA alignment, VWAP slope analysis, and Bollinger Band volatility metrics. On top of regime detection, the indicator provides session identification (Asian, London, New York, Kill Zones, Power Hour), volatility state tracking (Expansion, Contraction, Squeeze), R-squared trend quality measurement, historical volatility percentile, Wyckoff effort/result analysis, and an institutional activity score that colors candles by multi-factor heatmap logic.
The core question this indicator answers is: "What kind of market am I in right now?" Knowing whether the market is trending, ranging, squeezing, or volatile changes everything about how you should trade — from entry type to stop placement to position sizing. This indicator provides that context in real-time with a confidence percentage and a comprehensive HUD dashboard.
Why This Indicator Exists
Most traders apply the same strategy regardless of market conditions. A breakout strategy in a ranging market produces whipsaws. A mean-reversion strategy in a trending market produces losses. This indicator solves the context problem by providing a clear, quantified regime classification:
Regime Detection: Six distinct market states, each requiring different trading approaches. The classification uses three independent inputs — SMA alignment, VWAP slope direction, and Bollinger Band percentile — to produce a robust, multi-factor regime reading.
Regime Confidence: A 0-100 score indicating how clearly the market fits the detected regime. High confidence means the classification is strong and reliable. Low confidence suggests transitional or ambiguous conditions.
Session Awareness: Identifies the current trading session (Asian, London, New York) and highlights Kill Zones (London 2-5am, NY 7-10am) and Power Hour (3-4pm) — the periods when institutional activity is highest and moves are most significant.
Volatility State: Tracks whether volatility is in Expansion, Contraction, Squeeze, or Normal state. Squeeze conditions (Bollinger width in the bottom 10th percentile) often precede explosive moves.
Trend Quality (R-Squared): Measures how linear and clean the current trend is on a 0-1 scale. R-squared above 0.6 indicates a clean, tradeable trend. Below 0.4 indicates choppy, random price action.
Institutional Activity Score: A multi-factor score (0-100) computed from body ratio, volume ratio, R-squared, Bollinger Band position, and VWAP distance. This score drives the candle heatmap coloring.
How Regime Detection Works
The regime engine combines three independent analytical dimensions:
Dimension 1 — SMA Alignment:
The indicator calculates three Simple Moving Averages (default 20, 50, 200). When all three are aligned in order (20 > 50 > 200), the market is in bull alignment. When reversed (20 < 50 < 200), bear alignment. Any other configuration is diverged/mixed.
Dimension 2 — VWAP Slope:
The VWAP (Volume Weighted Average Price) slope is calculated over a configurable lookback and normalized by ATR to make it comparable across instruments. A normalized slope above the threshold indicates upward momentum. Below the negative threshold indicates downward momentum. Within the threshold band indicates flat/ranging conditions.
Dimension 3 — Volatility Percentile:
Bollinger Band width percentile rank over 120 bars determines volatility state. Below the 10th percentile is a squeeze. Above the configurable expansion percentile (default 75th) is expansion. ATR percentile rank provides a secondary volatility measure.
These three dimensions combine into the regime classification:
Squeeze: BB width in bottom 10th percentile — volatility compression, potential breakout imminent
Trend Up: Bull SMA alignment AND positive VWAP slope — clear directional momentum upward
Trend Down: Bear SMA alignment AND negative VWAP slope — clear directional momentum downward
Volatile: ATR in expansion percentile WITHOUT SMA alignment — high volatility but no clear trend direction
Range: Flat VWAP slope WITHOUT SMA alignment — sideways, mean-reverting conditions
Mixed: Conditions do not clearly fit any category — transitional state
Regime Confidence Calculation
Each regime has its own confidence formula based on how strongly the inputs support the classification:
Trend Up/Down: SMA alignment (40pts) + slope direction (30pts) + slope magnitude (up to 30pts)
Range: Flat slope (40pts) + no alignment (30pts) + low ATR percentile (up to 30pts)
Squeeze: Low BB percentile (70%) + low ATR percentile (30%)
Volatile: High ATR percentile (70%) + high BB percentile (30%)
Mixed: Fixed at 25 — low confidence by definition
The confidence is displayed as both a number and a visual bar (||||......) in the HUD, making it easy to assess at a glance.
Session and Time-of-Day Analysis
The indicator identifies seven session states with configurable timezone (default America/New_York):
Asia (7pm-3am): Low volatility, range-building session. Quality: Low.
London (3am-9:30am): Increasing volatility, often sets the day's direction. Quality: Medium.
London Kill Zone (2-5am): Peak London institutional activity. Quality: High.
New York (9:30am-4pm): Highest volume session for US instruments. Quality: Medium.
NY Kill Zone (7-10am): Peak NY institutional activity, overlap with London. Quality: High.
Lunch (10am-12pm): Low conviction, choppy price action. Quality: Low.
Power Hour (3-4pm): End-of-day positioning, often produces strong moves. Quality: High.
Kill Zones are highlighted with a subtle gold background tint. Lunch hours receive a dark tint as a visual warning of low-quality conditions.
Institutional Signal System
The indicator detects and labels six types of institutional events using a priority-based system with cooldowns to prevent label stacking:
P1 — BULL/BEAR CONFLUENCE (highest priority): Full alignment of SMA, VWAP slope, R-squared trend quality, regime confidence > 70, and price vs VWAP. This is the strongest possible directional signal — all factors agree.
P2 — MAJOR GOLDEN/DEATH CROSS: Mid SMA (50) crosses the Slow SMA (200). These are rare, high-impact structural events that signal major trend shifts.
P2b — GOLDEN X / DEATH X: Fast SMA (20) crosses Mid SMA (50). More frequent than major crosses but still significant structural events.
P3 — REGIME CHANGE: The regime classification changes from one state to another. Labels show the new regime name.
P4 — SQZ BREAK: Squeeze releases into expansion with price above (bull) or below (bear) the fast SMA. These are high-energy breakout events.
P5 — VWAP RECLAIM/REJECT: Price crosses above VWAP with positive slope (reclaim) or below with negative slope (rejection). VWAP is the institutional benchmark — reclaiming or losing it is significant.
P6 — DISP (Displacement, lowest priority): Large-body candles (body > 70% of range, body > 2x average) indicating aggressive institutional order flow.
Each signal checks a cooldown counter before firing. Higher-priority signals suppress lower-priority ones within the cooldown window, ensuring the chart shows only the most important signal at any given time.
Candle Heatmap Coloring
When enabled, candles are colored based on the current regime and trend quality rather than simple bull/bear direction:
Bull Aligned + Clean Trend: Bright aurora lime (bullish candles) / aurora green (bearish candles)
Bull Aligned: Aurora green / aurora teal
Bear Aligned + Clean Trend: Aurora pink / aurora purple
Bear Aligned: Aurora purple / aurora pink
Squeeze: Aurora gold / warm orange
Neutral: Ice blue / arctic blue
This coloring scheme makes it immediately obvious what regime the market is in without looking at the HUD — the entire chart changes character with the regime.
Advanced Metrics
R-Squared Trend Quality: Calculated as the square of the correlation between close price and bar_index over a configurable period. Values above 0.7 indicate a clean, linear trend. Values below 0.4 indicate choppy, non-directional price action. This metric helps distinguish between trending markets that are tradeable and trending markets that are too choppy to trade reliably.
Historical Volatility: Annualized standard deviation of log returns, displayed as a percentage with percentile ranking over 252 bars. This provides a longer-term volatility context beyond the Bollinger-based squeeze detection.
Wyckoff Effort/Result: Volume divided by range — when this ratio is high (high volume, small range), institutional absorption is occurring. The indicator detects these events and displays them in the HUD.
Regime Duration: Counts how many bars the current regime has persisted. Long-duration regimes are more established. Short-duration regimes may be transitional.
Institutional Score: A 0-100 composite from body ratio, volume ratio, R-squared, BB position extremes, and VWAP distance. Higher scores indicate more institutional-quality price action.
HUD Dashboard
The HUD displays 12 metrics with color-coded values:
Regime State with regime-specific color
Confidence score with visual bar (||||......)
VWAP Slope direction (Rising/Falling/Flat)
Volatility state with squeeze duration counter
Current Session name
Session Quality rating (High/Medium/Low)
SMA Alignment (Bull Aligned/Bear Aligned/Diverged)
R-Squared trend quality (Clean/Moderate/Choppy)
Historical Volatility with percentile classification
Regime Duration in bars
Institutional Activity Score
Input Parameters
Regime Detection:
Fast/Mid/Slow SMA: Moving average periods (default: 20/50/200)
VWAP Slope Lookback: Period for slope calculation (default: 20)
Slope Threshold: Normalized slope threshold for trend detection (default: 0.12)
Volatility:
ATR Length: Period for ATR calculation (default: 14)
Bollinger Length/Multiplier: BB parameters (default: 20/2.0)
Squeeze Lookback: Percentile rank period (default: 120)
Expansion Percentile: ATR percentile threshold for expansion (default: 75)
Sessions:
Show Session Zones: Toggle session background highlighting
Timezone: Configurable timezone (default: America/New_York)
Highlight Kill Zones: Toggle kill zone emphasis
Visual:
Regime Background: Toggle regime-adaptive background tinting
SMA Trend Ribbon: Toggle ribbon fill between fast and mid SMA
Candle Heatmap Coloring: Toggle institutional activity-based candle colors
Show Prior Day H/L: Toggle PDH/PDL reference lines
HUD Panel: Toggle with configurable position
How to Use This Indicator
Step 1: Check the Regime
Before entering any trade, check what regime the market is in. Trend Up/Down = directional strategies. Range = mean-reversion. Squeeze = wait for breakout. Volatile = reduce size or stand aside.
Step 2: Verify Confidence
A regime reading with 80+ confidence is reliable. Below 50 suggests the market is in transition — be cautious.
Step 3: Check the Session
Kill Zones and Power Hour produce the most reliable moves. Lunch hour and Asian session moves are less reliable for most instruments.
Step 4: Watch for Signals
BULL/BEAR CONFLUENCE is the highest-conviction signal — all factors agree. SQZ BREAK signals high-energy breakouts. VWAP RECLAIM/REJECT provides key level context.
Step 5: Use Trend Quality for Filtering
R-squared above 0.6 means the trend is clean and tradeable. Below 0.4 means the trend is choppy — consider waiting for cleaner conditions.
Best Practices
The regime classification is most reliable on timeframes of 5 minutes and above
Session features are most relevant for instruments with clear session structures (equities, futures, major forex)
Squeeze conditions can persist for extended periods. Do not assume a squeeze will break immediately.
Regime transitions (Mixed state) are the most dangerous periods. Consider reducing exposure during transitions.
The institutional score is a heuristic — use it as one input among many, not as a standalone signal
SMA crosses are lagging by nature. They confirm trend changes rather than predict them.
Combine this indicator with structure or momentum tools for entry timing — this indicator provides context, not entries.
Limitations
Regime detection uses lagging indicators (SMAs, BB percentile). Regime changes are confirmed after they occur, not predicted in advance.
The six-regime classification is a simplification. Real markets exist on a continuum, not in discrete states.
Session times are hardcoded for EST timezone sessions. Instruments traded primarily in other timezones may need different session definitions.
R-squared measures linearity, not direction. A perfectly linear downtrend has the same R-squared as a perfectly linear uptrend.
The institutional activity score is estimated from available data (body ratio, volume, BB position). True institutional activity detection requires order flow data not available in Pine Script.
VWAP resets daily on most instruments. Intraday VWAP slope is most meaningful for day trading timeframes.
Kill Zone highlighting assumes EST-based session times. Adjust the timezone input for your local market.
Technical Implementation
Built with Pine Script v6 using:
Three-dimensional regime classification (SMA alignment + VWAP slope + BB volatility)
Regime confidence scoring with per-regime formulas
Session detection using time() with configurable timezone
R-squared trend quality via ta.correlation()
Annualized historical volatility with percentile ranking
Wyckoff effort/result absorption detection
Multi-factor institutional activity scoring
Priority-based signal system with 6 tiers and cooldown anti-overlap
Volatility-adaptive gradient background coloring
Aurora-themed SMA ribbon with alignment-responsive colors
10 alert conditions covering regime changes, SMA crosses, absorption, and clean trend detection
Originality Statement
This indicator is original in its comprehensive regime detection and session awareness integration. While SMA alignment and Bollinger squeeze are established concepts, this indicator is justified because:
The three-dimensional regime classification (SMA + VWAP slope + BB volatility) produces a more robust state detection than any single method
Regime confidence scoring quantifies how clearly the market fits the detected state, providing actionable uncertainty information
Session awareness with quality ratings integrates time-of-day context directly into the regime framework
R-squared trend quality measurement distinguishes between clean tradeable trends and choppy non-directional trends
The priority-based signal system with 6 tiers ensures only the most important events are displayed
Candle heatmap coloring driven by regime and trend quality provides immediate visual context
The Aurora Borealis theme with volatility-adaptive background creates a dynamic visual environment that changes character with market conditions
Squeeze duration tracking and regime duration counting provide temporal context for current conditions
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. Regime detection classifies current market conditions based on historical data — it does not predict future regime changes. Markets can transition between regimes without warning. Squeeze conditions do not guarantee breakouts. Session quality ratings are generalizations that may not apply to all instruments or market conditions. Past regime patterns do not guarantee future behavior. Always use proper risk management and never risk more than you can afford to lose. The author is not responsible for any losses incurred from using this indicator.
-Made by officialjackofalltrades
Indicator

Indicator

Sessions + Prev + PDH/PDL + Killzones SuiteDescription
This indicator is designed to provide time-based and price-based market context by combining session ranges with commonly referenced prior levels into a single, unified framework.
The purpose of the script is contextual analysis, not signal generation.
What the script does
The script tracks and plots the following elements directly on the price chart:
• High and Low ranges for multiple trading sessions (Asia, London, New York morning, and New York afternoon)
• High and Low levels from the previous occurrence of each session
• Prior Day High (PDH) and Prior Day Low (PDL)
• Optional session “killzone” boxes that visually mark active session time windows
All calculations are performed using time-based session boundaries and price extrema (high/low) within those windows.
Why these components are combined
Sessions, previous session levels, and prior day levels are frequently analyzed together by discretionary traders because they represent:
• Where liquidity formed earlier in the day or previous day
• Where price previously paused, expanded, or reversed
• Natural reference points for intraday structure and range analysis
Instead of plotting these elements using multiple separate scripts, this indicator integrates them into one consistent framework so that all levels are calculated using the same timezone, session logic, and display rules.
This avoids mismatched session times, duplicate levels, or conflicting calculations that can occur when multiple scripts are used simultaneously.
How the script works (high-level)
• Each session is defined using user-selectable session times and timezone
• During a session, the script tracks the highest and lowest traded price
• When a session ends, its final high and low are stored as the “previous session” levels
• PDH and PDL are calculated using the completed trading day
• Lines and labels are anchored to the bars where levels are formed, rather than extending indefinitely
• Optional display filters allow users to show only the current trading day to reduce chart clutter
No forward-looking logic, prediction, alerts, or trade execution logic is included.
How to use it
This script is intended to be used as a visual reference tool to help traders:
• Identify session boundaries and intraday ranges
• Observe how price reacts near prior session highs and lows
• Assess where price is trading relative to PDH and PDL
• Maintain consistent session timing across different timezones
The script does not provide trade entries, exits, alerts, or performance claims.
Important notes
• This indicator does not generate buy or sell signals
• It does not predict future price movement
• It is not a trading strategy
• All decisions remain the responsibility of the user
Disclaimer
This script is provided for educational and informational purposes only.
It does not constitute financial advice. Trading involves risk, and users should apply appropriate risk management and personal judgment when using any technical tool. Indicator

Indicator

Global Session TrackerGlobal Session Tracker is a professional-grade Pine Script tool designed for "Time and Price" traders (such as those following ICT, SMC, or London Breakout strategies). It doesn't just show when a session is active; it dynamically tracks the Opening Range and flags the exact moment price breaches those boundaries.
🟢Indicator Overview
Global Session Tracker indicator acts as a visual map of the 24-hour trading cycle. By segmenting the day into Sydney, Tokyo, London, and New York, it allows traders to see how liquidity is engineered in one session and "swept" or "expanded" in the next.
Core Features
Session Candles: The indicator plots "phantom" candles over your main chart. These represent the high and low of the session from its start to the current moment.
Initial Balance (IB): The first candle of every session is marked with a label (e.g., "LON Open").
Dynamic Session Ranges: Unlike static boxes, this script uses plotcandle to create a continuous visual "ribbon" of the session's high/low boundary.
Real-Time Breakout Detection: It monitors the first bar of a session to set the initial high/low and then triggers signals if those levels are broken.
Status Labels: Floating labels on the right-hand axis provide a clean UI to identify which session is currently "Live" without cluttering the main price action.
Multi-Timezone Compatibility: Users can toggle the base timezone (UTC, EST, etc.) to align with their specific broker or local time.
Dashboard Table: A real-time HUD (Heads-Up Display) at the top right showing the Open, High, Low, and Close of only the currently active sessions.
🛠 Technical Details
Logic: "This script identifies the initial high and low of the first bar of a defined session and tracks breaches of these levels throughout the session duration."
Inputs: Explain that tz (Timezone) must match the user's preference for accurate session starts.
Visuals: * Triangles: Session Start.
1.Blue Circles: Bullish Breakout (Price > Session High).
2.Red Circles: Bearish Breakout (Price < Session Low).
Performance: "Zero-repainting logic; signals are confirmed at the close of the bar."
Inputs & Settings
Timezone: Set this to your local time or UTC to align the session hours correctly.
Session Times: Defaulted to standard institutional hours, but fully adjustable.
Show Table: Toggle the dashboard on or off.
📈 How to Use for Trading
Trading sessions provide the "context" for price action. Here are three professional ways to trade using this tool
Strategy 1: The London Breakout (The "Morning Shout")
The London session often sets the trend for the day.
Identify: Wait for the "LON Open" label.
Observe: Let the first 30–60 minutes form a range.
Trade: When you see a Blue Circle (Upside Break), look for a Long entry. If a Red Circle appears, look for a Short.
Target: The New York session open or the high/low of the previous Sydney/Tokyo range.
Strategy 2: The New York Reversal / Continuation
New York often "tests" the extremes of the London session.
Continuation: If New York opens and immediately breaks the London High (Blue Circle), the trend is strong.
Reversal: If price enters the New York session at the London High but fails to break it, look for price to return to the London Low.
Strategy 3: Using the Dashboard for Volatility
Monitor the High and Low columns in the table:
Compression: If the High and Low values for a session are very close (narrow range), it indicates a "Squeeze."
Expansion: A large gap between High and Low indicates a trending market. Professional traders often avoid entering "late" into an already massive expansion and wait for the next session to start.
Additional Strategies:
Global Session Tracker indicator is designed for Session-Based Liquidity Trading. Here are three common strategies:
Strategy A: The Initial Balance Breakout
The Concept: The high and low of the first hour (or the entire previous session) often act as support/resistance.
Trade Setup: Wait for the Blue Circle (High Break) or Red Circle (Low Break).
Execution: If London breaks the Tokyo High (Blue Circle), traders look for a "Stop Run" or a trend continuation toward the New York session.
Strategy B: The "Judas Swing" (ICT Concept)
The Concept: Price often breaks the previous session's high/low to grab liquidity before reversing.
Trade Setup: Use the breakout circles to identify when a level is breached. If a Red Circle appears (Low Break) but the candle closes back inside the range, it may indicate a "Fakeout," signaling a long entry.
Strategy C: Time-Price Alignment
The Concept: Volatility usually spikes at the "Open" shapes.
Trade Setup: Only take breakout signals that occur within 1 hour of the Triangle Up (Session Open) markers. Signals late in a session are often less reliable due to declining volume.
Indicator

VIX Range Levels (Rule of 16)VIX Range Levels — Rule of 16
What this indicator does-
This indicator uses India VIX (or any VIX-class index) to plot statistically derived expected move levels for the current trading day directly on your price chart. It draws six price levels — at 1×, 1.5×, and 2× standard deviations above and below the prior session's close — with colour-coded fills between each band.
The Rule of 16 — explained:
VIX is quoted as an annualized implied volatility, expressed as a percentage. To translate that annual figure into a single day's expected price range, we divide by the square root of the number of trading days in a year:
Daily Expected Move (%) = VIX ÷ √252 ≈ VIX ÷ 16
√252 ≈ 15.87, which practitioners conventionally round to 16 — hence the name.
Worked example:
If INDIAVIX closes at 14.40:
Daily Move = 14.40 ÷ 16 = 0.90%
On a Nifty level of 22,000, that is ±198 points for the 1σ (sigma) band.
Statistical interpretation of the bands-
The Rule of 16 assumes log-normal returns and uses a one standard deviation (1σ) framework:
Band Multiplier Probability price stays inside Inner (solid lines)1×~68%Middle (dashed)1.5×~87%Outer (dashed)2×~95%
In plain English: on any given day, price should stay within the solid lines roughly 7 out of 10 sessions, within the dashed 1.5× lines about 9 out of 10 sessions, and within the outer 2× lines about 19 out of 20 sessions — assuming markets are pricing volatility fairly.
Important caveat: These are probabilistic ranges derived from implied volatility, not guarantees. VIX measures the market's expectation of future volatility, not its certainty. On high-VIX days, ranges will be wide; on low-VIX days, they will be narrow.
How to identify potential Tops and Bottoms:
The bands are not just risk levels — they are mean-reversion anchors. Here is how experienced traders use them:
🔴 Potential Top signals-
Price tags or exceeds the 1× upper level (solid red line) on the first push of the day — especially in the opening hour. A clean touch with a rejection candle (spinning top, doji, shooting star) at this level is a high-probability fade setup.
Price reaches the 1.5× upper level intraday. Statistically, this is an outlier move. Look for volume exhaustion, a lower-high on a smaller timeframe, or a bearish divergence on RSI/MACD to confirm a reversal.
Price closes above the 2× upper level. This is a rare ~5% event. It signals either a genuine breakout (news-driven) or an extreme overextension due for a sharp snapback the following session.
🟢 Potential Bottom signals-
Price dips to the 1× lower level (solid green line) and holds — particularly if the broader market trend is up. A bullish engulfing or hammer candle at this level, especially on above-average volume, is a classic intraday reversal signal.
Price hits the 1.5× lower level with declining sell-side momentum. Watch for positive divergence on shorter timeframes or a sudden spike in buying volume as confirmation.
Price closes below the 2× lower level. Similar to the upper equivalent — either a true breakdown or an exhaustion move. Gap-up opens the following session from this zone are historically common.
Mid-line (dotted yellow — prior close)-
The prior session's close acts as the neutral axis. Price hovering above it indicates relative strength; price gravitating below it indicates weakness. Failed attempts to reclaim the mid-line after a breakdown are bearish; decisive reclaims are bullish.
Band fill colour guide-
Fill Meaning Grey (inner, 1× band) Normal expected range — most activity happens here Orange (middle, 1.5× band) Extended move — caution zone, watch for reversals Red (outer, 2× band) Extreme move — high-probability mean-reversion area
Settings:
Parameter Description Volatility Multiplier Scale all bands up or down (0.5–2.0). Use < 1.0 for low-volatility markets; > 1.0 to account for persistent trending conditions Upper / Lower Colour for resistance and support lines
Notes on data-
Levels are calculated using yesterday's closing VIX to avoid look-ahead bias (lookahead_off).
The anchor price is yesterday's close of the charted instrument. Lines start from the first bar of the current trading day so zones correctly represent today's session range.
Works on any intraday timeframe (1m, 5m, 15m, hourly).
Not meaningful on daily charts.
Best used with-
Price Action — candlestick patterns at band extremes
Volume Profile — confluence of VIX levels with high-volume nodes
RSI / MACD — divergences at band touches to confirm reversal intent
Order Flow — absorption or exhaustion at the outer bands
This indicator does not repaint. All calculations are based on confirmed prior-session data.
These are popular market calculations & are in no way meant to act as a standalone trading system, always research before investing. If you found it useful, please boost the script.Happy trading !! Indicator

Indicator

Harmonic Resonance Field [JOAT]Harmonic Resonance Field
Introduction
The Harmonic Resonance Field is an open-source overlay indicator that combines dynamic range detection, Renko-style trend tracking, harmonic frequency analysis, and magnetic field visualization into a unified system for identifying consolidation zones, trend direction, and potential reversal points. It is designed for traders who want to understand where price is within its current range, how strong the prevailing trend is, and when conditions are ripe for a breakout or mean reversion.
Built with Pine Script v6, the indicator uses custom user-defined types for Renko state management, range detection, reversal signals, harmonic bands, magnetic fields, and resonance points.
Why This Indicator Exists
Range-bound markets account for a significant portion of trading time, yet most indicators are optimized for trending conditions. This indicator fills that gap by providing:
ADX-based range detection: Automatically identifies when the market is ranging versus trending using ADX with a configurable threshold, so traders know which strategy framework to apply
Multi-style band calculation: Offers four band calculation methods (ATR, Percentage, Standard Deviation, Harmonic) so traders can choose the volatility measure that best fits their instrument
Renko trend overlay: A smoothed Renko-style trend line that filters noise and shows the dominant direction without requiring a separate Renko chart
Harmonic frequency analysis: Uses sine-wave modulation to create bands that expand and contract with market rhythm, capturing cyclical behavior that static bands miss
Magnetic field visualization: Plots dynamic attraction/repulsion levels around the mean, helping traders visualize where price is likely to gravitate
Core Components Explained
1. Range Detection Engine
The indicator uses ADX to classify market conditions. When ADX falls below the configurable threshold (default 25), the market is classified as ranging, and the indicator highlights the range boundaries. When ADX rises above the threshold, the market is trending, and the indicator shifts focus to the Renko trend line and harmonic bands.
adxSmoothed = ta.rma(dx, adxLength)
isRanging = adxSmoothed < adxThreshold
During ranging conditions, the indicator calculates the highest high and lowest low over the range lookback period and draws a dynamic range box with upper, lower, and midline levels. This gives traders clear boundaries for mean reversion strategies.
2. Harmonic Band System
The band system supports four calculation styles:
ATR: Bands based on Average True Range multiplied by a configurable factor
Percentage: Bands at a fixed percentage distance from the mean
Standard Deviation: Bollinger-style bands using standard deviation
Harmonic: Bands modulated by a sine wave that creates rhythmic expansion and contraction
The harmonic mode is unique to this indicator. It calculates a phase and amplitude based on bar position and ATR, then modulates the band width with a sine function:
harmonicPhase = math.sin(bar_index * 2 * math.pi / bandLength) * 0.5 + 0.5
harmonicAmplitude = atrVal * bandMultiplier
bandWidth = harmonicAmplitude * (0.5 + harmonicPhase * 0.5)
This creates bands that breathe with the market's natural rhythm rather than remaining static or purely reactive.
Chart showing the Harmonic Resonance Field with harmonic bands expanding and contracting around price, Renko trend line, and range detection box during a consolidation period
3. Renko Trend Engine
Rather than requiring traders to switch to a Renko chart, this indicator calculates a Renko-style trend directly on the standard candlestick chart. The brick size can be set using ATR, a fixed percentage, or a static value. The Renko state is managed as a custom type that tracks the current level, direction, and brick boundaries.
When price moves by one brick size in the trend direction, the Renko level advances. When price reverses by the configurable reversal multiplier (default 2 bricks), the trend flips. The result is a stepped trend line overlaid on the chart that filters minor fluctuations and shows only significant directional changes.
4. Magnetic Field Visualization
The magnetic field creates a set of attraction levels around the mean price. These levels represent zones where price tends to gravitate based on the configurable field strength parameter. The field is calculated using the distance from the mean and the current ATR:
Strong attraction zone: Within 0.5x ATR of the mean — price tends to consolidate here
Moderate zone: 0.5x to 1.0x ATR from the mean — normal trading range
Weak zone: Beyond 1.0x ATR — price is extended and may revert
The magnetic field lines are drawn with gradient transparency, becoming more transparent as they move away from the mean, visually communicating the decreasing "pull" of the mean at greater distances.
5. Reversal and Resonance Detection
The indicator generates two types of signals:
Reversal signals: Triggered when price reaches the outer bands with momentum showing signs of exhaustion (RSI-based or rate-of-change based). These are plotted as directional markers on the chart.
Resonance signals: Triggered when multiple conditions align — price at a band extreme, ranging market detected, and volume above average. Resonance points represent higher-conviction mean reversion opportunities.
Visual Elements
Harmonic Bands: Upper and lower bands with gradient fill between them
Renko Trend Line: Stepped line showing the dominant trend direction
Range Box: Dynamic box highlighting the current consolidation range
Magnetic Field Lines: Gradient-colored attraction levels around the mean
Reversal Markers: Directional signals at potential turning points
Resonance Points: High-confluence mean reversion signals
Candle Coloring: Optional trend-based candle coloring
Dashboard: Displays trend direction, range status, band width, Renko state, and resonance count
Input Parameters
Range Detection:
Range Lookback (default 50)
ADX Length (default 14) and ADX Threshold (default 25)
Band Settings:
Band Style: ATR, Percentage, Standard Dev, or Harmonic
Band Length (default 20) and Band Multiplier (default 2.0)
Renko Settings:
Brick Size Style: ATR, Percentage, or Static
Brick Size (default 1.0) and Reversal Multiplier (default 2)
Magnetic Field:
Field Strength (0.1-2.0, default 1.0)
Visual Settings:
Show Candle Coloring, Gradient Fill, Dashboard, Glow Effects, Pulse Effects
How to Use This Indicator
Step 1: Check the dashboard for the current market regime. If the market is ranging, focus on the range box boundaries and magnetic field levels for mean reversion setups.
Step 2: In trending conditions, follow the Renko trend line. Stay with the trend as long as the Renko direction holds. A Renko reversal (direction flip) is a significant event that suggests the trend may be changing.
Step 3: Watch for price reaching the outer harmonic bands. In ranging markets, these represent potential reversal zones. In trending markets, they may indicate overextension.
Step 4: Look for resonance signals. These combine multiple conditions (band extreme + ranging + volume) and represent the highest-conviction mean reversion setups.
Step 5: Use the magnetic field levels as dynamic support and resistance. Price tends to gravitate toward the strong attraction zone near the mean.
Close-up showing reversal markers at band extremes with resonance signals highlighted during a ranging market, with the magnetic field gradient visible around the mean
Indicator Limitations
ADX-based range detection has an inherent lag. The transition from trending to ranging (and vice versa) is identified after it has already begun.
Harmonic bands use a fixed-frequency sine wave. Real market cycles are not perfectly periodic, so the harmonic modulation is an approximation.
Renko trend calculations on a candlestick chart are a simulation. They will not match a true Renko chart exactly due to differences in bar construction.
Reversal signals at band extremes do not guarantee reversals. In strong trends, price can ride the outer band for extended periods.
The magnetic field visualization is a conceptual tool for understanding mean reversion tendency, not a precise prediction of where price will go.
Performance may be affected on very low timeframes with many visual elements enabled. Consider reducing visual effects on sub-minute charts.
Originality Statement
This indicator is original in its synthesis of range detection, harmonic frequency analysis, and magnetic field visualization. While individual components (ADX range detection, Renko trends, Bollinger-style bands) are established concepts, this indicator is justified because:
The harmonic band mode introduces sine-wave modulation to create bands that rhythmically expand and contract, a method not found in standard band indicators
The magnetic field visualization provides a novel way to represent mean reversion tendency using gradient-based attraction zones
Combining Renko trend tracking with ADX range detection on a standard chart gives traders both trend-following and mean-reversion frameworks simultaneously
Resonance detection creates a multi-factor confluence signal by combining band position, range status, and volume conditions
The four-style band system (ATR, Percentage, StdDev, Harmonic) allows traders to adapt the indicator to different instruments and market conditions
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. Range detection and band analysis are tools for understanding market structure, not guarantees of future price movement. Always use proper risk management. The author is not responsible for any losses incurred from using this indicator.
-Made with passion by officialjackofalltrades
Indicator

Range Zones AlertsRange Zones — Buy the Green, Sell the Red
Get alerted when price enters a buy zone or a sell zone.
This indicator detects the current trading range, splits it into three color-coded zones, and sends you an alert the moment price touches the zone you care about. No guessing where support and resistance are — the indicator finds them for you.
Green Zone = Buy Zone
The bottom third of the range is shaded green. This is where price has historically found support. When price drops into the green, buyers tend to step in. Set up the Bull alert and get notified the instant price touches this zone — that's your signal to start looking for a long entry.
Red Zone = Sell Zone
The top third of the range is shaded pink/red. This is where price has historically hit resistance. When price pushes into the red, sellers tend to step in. Set up the Bear alert and get notified the instant price touches this zone — that's your signal to start looking for a short entry or to take profits on longs.
Blue Zone = No Trade Zone
The middle third is shaded blue. Price is stuck between support and resistance with no clear edge in either direction. When price is in the blue, wait.
Alerts
Three options in PulseWire's alert panel:
— Bull Alert: fires when price touches the green support zone.
— Bear Alert: fires when price touches the red resistance zone.
— Both: fires on either — one alert covers everything.
A built-in cooldown (default 20 bars) prevents spam. You get one alert per zone touch, then silence until the cooldown clears. Bull and bear cooldowns are independent — a green zone alert won't block a red zone alert.
How It Works
The indicator uses pivot-based swing detection to find the most recent significant high and low. The range between them is divided into three equal horizontal zones. The zones update automatically as new swing highs and lows form. A Max Range Age setting ensures stale, outdated ranges are dropped.
Settings
— Pivot Strength: how significant the swing points need to be. Default 20. Higher = wider ranges.
— Max Range Age: how old the range can be before it's dropped. Default 300 bars.
— Alert Cooldown: bars of silence after an alert fires. Default 20.
— Zone Colors: fully customizable.
Works on any ticker, any timeframe. Add it to your chart, set up your alerts, and let the zones tell you when it's time to trade. Indicator

Prior Day Range BoxPrior Day Range Box
Prior Day Range Box plots the previous trading day’s high and low directly on the current chart and displays that range as a visual box with optional reference lines. The script pulls the prior day’s high and low from the daily timeframe, then projects those levels onto the active chart so traders can track how current price behaves around important higher-timeframe levels.
At the start of each new trading day, the indicator creates a new prior day range using the previous day’s high and low. A box can be drawn between those levels to clearly show the full prior day range, while separate horizontal lines mark the prior day high and prior day low. These levels are widely used by intraday traders as key areas for support, resistance, breakout confirmation, rejection, and liquidity interaction.
An optional midpoint line can also be displayed. This line marks the 50% level of the prior day’s range and can serve as an added reference for balance, mean reversion, or directional bias during the session.
The script also includes an optional historical lookback mode. When enabled, it can display prior day range levels from multiple past sessions, making it easier to study how price reacts to historical daily ranges over time. The number of displayed lookback days can be adjusted to fit the user’s preference.
All visual elements are customizable. Users can choose whether to show the range box, enable the midpoint, extend the prior day high and low across the chart, display historical lookback days, and adjust the colors and line width to match their chart setup.
This indicator is designed for traders who use prior day high and low levels as part of their intraday process and want a clean visual framework for tracking previous session range structure on any intraday chart. Indicator

Indicator

Indicator

Average Volatility ZonesDisplays the average volatility range directly on the chart as horizontal levels projected from the current period's open.
The indicator calculates the average candle size (High-Low or True Range) over a configurable period and timeframe (default: Daily, 20 bars), then draws upper and lower lines at that distance from the current timeframe open — showing how far price typically moves within one period.
Key features:
- Multi-timeframe support — measure volatility from any timeframe (M15 to Monthly)
- Scalable levels — optional 2x, 3x, and custom multiplier levels for extended volatility zones
- Zone mode — converts lines into shaded bands based on a percentage of the average volatility
- Automatic pip detection for forex pairs (supports 5-digit and 3-digit brokers)
- Each level is labeled with its timeframe, period, and value in pips
- Fully customizable colors, line styles, label positioning, and zone transparency
Useful for gauging intraday range potential, setting realistic targets, identifying overextended moves, and filtering entries near volatility extremes. Indicator

Indicator

[ A L P H A X ] Range Profile ProAlphaX Range Profile Pro — Volume Profile, POC, Value Area, Delta & HVN Levels
Stop guessing where price wants to go. AlphaX Range Profile Pro builds a full volume profile over any custom bar range, automatically locating the Point of Control, Value Area High, Value Area Low, and High Volume Nodes — so you always know exactly where the market has accepted the most volume and where it is likely to react next. Built for Gold, Forex, Crypto, Indices, and Futures traders on any timeframe.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔍 What This Indicator Does
Volume profile is the single most powerful tool for understanding where institutional money has been most active. AlphaX Range Profile Pro scans every candle inside your selected range, distributes volume across price bins using a body-and-wick weighted algorithm, and renders a clean horizontal volume profile directly on your chart — complete with POC, Value Area, and optional HVN lines. Every level updates in real time as new bars form.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚡ Key Features
📊 Body & Wick Weighted Volume Distribution
Most volume profile tools split volume equally across the full candle range. AlphaX Range Profile Pro uses a precise body-and-wick weighting model — up volume is assigned to bullish body segments, down volume to bearish body segments, and wick volume is split proportionally. The result is a significantly more accurate representation of where buying and selling pressure actually occurred at each price level.
🎯 Point of Control (POC)
The POC line marks the single price level with the highest traded volume in the entire range — the most accepted price by the market. It acts as a magnet for price and is one of the most reliable reaction levels in any profile. The POC is displayed as a solid line with a clearly labelled price tag and volume percentage.
📦 Value Area (VAH & VAL)
The Value Area represents the price range containing a configurable percentage of total volume (default 70%). VAH and VAL are plotted as dashed lines with labels. The Value Area fill box shades the region across your chart for instant visual reference. Price trading inside the Value Area indicates acceptance. Price outside the Value Area indicates potential for a return or a breakout continuation.
🔵🟠 Up / Down Split Display
Each profile row is rendered in two segments — blue for buy-side volume and orange for sell-side volume — showing the delta composition of every price level at a glance. Three display modes are available: Up/Down Split, Total Only, and Delta Only, so you can view the profile in whichever format suits your analysis style.
📍 High Volume Nodes (HVN)
Optional HVN lines mark the top secondary volume levels outside the POC. These are the next most traded price clusters in the range and often act as strong support, resistance, and target levels. The number of HVN lines displayed is fully configurable.
📐 Flexible Range Selection
Choose between Fixed Bars mode to profile the last N candles, or From Date/Time mode to anchor the profile to a specific session or event start. Profile width, placement, and X offset are all adjustable so the profile sits exactly where you need it on your chart.
🖥 Professional Dark Panel Design
The profile renders inside a clean dark glass panel with an accent edge, subtle backdrop, and optional highlight — keeping the profile readable without cluttering your price action. All colors are individually customisable including up volume, down volume, value area fill, panel tint, border, and accent.
📋 Stats Table
A compact on-chart stats table displays all key metrics in one place: range bar count, POC price and volume percentage, VAH and VAL, total up and down volume, and net delta. Table position is configurable to any corner of the chart.
🔔 4 Built-In Alert Conditions — Webhook Ready
Cross Above POC — price closes above the Point of Control
Cross Below POC — price closes below the Point of Control
Cross Above VAH — price closes above the Value Area High
Cross Below VAL — price closes below the Value Area Low
All alerts fire on confirmed bar close. Connect to Telegram, 3Commas, Alertatron, n8n, or any webhook automation service.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙ Settings Reference
Range
Range Mode — Fixed Bars or From Date/Time anchor
Number of Bars — how many bars back to profile (default 150)
Anchor Time — start timestamp for Date/Time mode
Max Lookback — maximum bars scanned in anchor mode
Profile
Row Size (bins) — number of horizontal price bins (default 24). Higher = more granular profile
Value Area Volume % — percentage of volume defining the Value Area (default 70%)
Display Mode — Up/Down Split, Total Only, or Delta Only
Profile Width — horizontal width of the profile in bars
Placement — Left inside chart or Right (future bars)
X Offset — fine-tune horizontal position
Levels
Shade Value Area — fills the VAH–VAL range across the chart
Show POC — toggle POC line
Show VAH / VAL — toggle Value Area lines
Show Range High / Low — toggle outer range boundary lines
Extend Lines — extend levels to the right or keep contained
Show Level Labels — toggle price labels on all levels
Show HVN Lines — toggle High Volume Node lines
HVN Count — number of HVN lines to display (1–5)
Style
Full color controls for POC, VAH, VAL, up volume, down volume, value area fill, panel background, border, accent edge, labels, and highlight tint
Line width controls for POC, VAH/VAL, HVN, and panel border
Row gap — spacing between profile bins
Stats
Stats Table — toggle the on-chart statistics panel
Table Position — Top Right, Top Left, Bottom Right, or Bottom Left
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 How to Use
Add AlphaX Range Profile Pro to any chart — default settings work well across most markets
Set your Range Mode — use Fixed Bars for a rolling profile or anchor to a specific session open
Focus on the POC first — it is the highest conviction level in the entire profile
Use VAH and VAL as your Value Area boundaries — look for rejections at VAH in downtrends and VAL in uptrends
Watch for price to leave and return to the Value Area — these are high-probability mean reversion setups
Enable HVN lines to identify secondary reaction levels within the range
Set alerts on POC and VAH/VAL crosses for automated entry triggers
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
👥 Who This Is For
🥇 Gold (XAUUSD) traders — volume profile is essential for reading institutional order flow in XAU
📈 ICT and Smart Money traders — use POC and Value Area to identify premium, discount, and equilibrium zones
📊 Volume profile traders — a clean, accurate, customisable profile built natively in Pine Script v6
📉 Forex and Index traders — works on all major pairs, US30, NAS100, SPX500, and more
🌍 Crypto traders — ideal for BTC, ETH, and high-volume altcoin analysis
🤖 Algo and bot traders — webhook-ready alerts on all key level crosses
📐 All timeframes — from M1 intraday scalping to Daily and Weekly swing analysis
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Notes
Works on all asset classes — Gold, Forex, Crypto, Futures, Indices, Stocks
Profile recalculates fully on every bar close — always current
No repainting — all levels are based on confirmed historical volume data
Pine Script v6 — built for performance and forward compatibility
All visual elements are individually toggleable
Recommended timeframes: M5, M15, M30, H1, H4, Daily
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Built for traders who trade with the market, not against it. Indicator

IPDA Ranges ProIPDA Ranges – Pro
This indicator plots Institutional Price Delivery Algorithm (IPDA) ranges based on lookback periods of 20, 40, and 60 days, as taught by ICT (Inner Circle Trader). It visualizes premium and discount zones, equilibrium levels, quadrants, and sub-quadrants to help traders identify key price areas and potential market biases.
Key Features:
- Displays IPDA ranges as boxes or lines, with customizable colors for discount, equilibrium, and premium zones.
- Optionally shades the 25%-75% mid-zone for each range.
- Supports quadrants (25% steps) and sub-quadrants with lines and labels for detailed price segmentation.
- Includes a table displaying either discount/premium status or percentage from equilibrium for each range.
- Configurable alerts for entry/exit into the mid-zone.
- Visual options include line styles, label sizes, price display on labels, and buffers for zone extension.
Settings Overview:
- IPDA Intervals: Enable/disable IPDA20, IPDA40, IPDA60; toggle quadrants, sub-quadrants, mid-zone shading, and drawing with lines vs. boxes.
- Colors and Styles: Customize colors for zones, lines, labels; select solid/dotted/dashed styles for borders and lines.
- Appearance: Adjust label and table sizes, table position, and background opacity.
- Labels: Show/hide per-range labels and include prices.
- Alerts: Enable mid-zone entry/exit alerts.
- Includes 3-Day Lookback
Usage:
Add the indicator to your chart and select the desired IPDA intervals. The ranges update dynamically based on daily highs and lows. Use the table for quick reference to current positioning (discount/premium or percentage). The mid-zone shading helps identify consolidation areas, while quadrants and sub-quadrants assist in pinpointing potential support/resistance levels.
© MadMonkTrading Indicator

Indicator

Range Finder & Profile [UAlgo]Range Finder & Profile is a structured market range detection tool that combines pivot based range discovery with an embedded volume profile. Its purpose is to identify areas where price begins to rotate inside a defined boundary, track whether that balance remains intact, and then summarize how volume was distributed inside the completed range once price finally exits it.
The script starts by using pivot highs and pivot lows to define potential horizontal boundaries. When a valid upper and lower reference exist, and price is trading inside those bounds without already breaking them, the script opens a candidate range. From that point onward, it keeps monitoring the structure bar by bar, checking whether the range survives long enough to become confirmed and whether price remains accepted inside it.
What makes this indicator especially useful is that it does not stop at simply drawing a box around consolidation. Once a range becomes confirmed, it also builds a row based internal profile of all activity inside that zone. When the range eventually breaks, the script calculates Point of Control, Value Area High, and Value Area Low, then draws a compact profile directly inside the range. This transforms a simple horizontal box into a more informative market acceptance map.
The result is a tool that can help traders study balance, distribution, and eventual expansion. It is useful for identifying clean consolidation structures, understanding where the heaviest participation occurred inside a range, and interpreting whether the breakout happened after meaningful internal acceptance or after a less developed structure.
🔹 Features
🔸 Pivot Based Range Discovery
The script uses pivot highs and pivot lows to establish potential range boundaries. This creates a structure that reacts to meaningful swing points rather than arbitrary rolling highs and lows. As a result, the detected ranges tend to reflect actual market rotation more naturally.
🔸 Clean Range Validation
A new range is only created when price is already trading inside the proposed top and bottom boundaries and when no bar in the candidate history has already closed outside those levels. This helps prevent invalid or already broken ranges from being accepted.
🔸 Overlap Protection
The script tracks where the last completed range ended and avoids creating a new one that starts inside an already closed structure. This reduces repeated overlap and keeps the chart cleaner.
🔸 Minimum Range Confirmation
Not every detected range is immediately treated as valid. The structure must survive for a minimum number of bars before it becomes confirmed. This helps filter out weak or short lived consolidations.
🔸 Embedded Volume Profile
Each confirmed range contains its own internal volume profile. The vertical height of the range is divided into configurable rows, and every bar contributes volume into the relevant price segments. This creates a compact distribution map inside the actual range boundaries.
🔸 Proportional Volume Allocation
The script does not simply drop full bar volume into a single row unless the bar has no height. Instead, when a candle spans multiple rows, its volume is distributed proportionally across the overlapped sections. This produces a more realistic representation of participation across the range.
🔸 Point of Control Detection
After the range is complete, the script finds the profile row with the highest accumulated volume. This row becomes the Point of Control, giving the user a quick view of the price area with the strongest concentration of activity.
🔸 Value Area Calculation
The script expands outward from the Point of Control and accumulates neighboring rows until the selected percentage of total range volume is reached. This produces Value Area High and Value Area Low, which highlight the area where most participation occurred.
🔸 Gradient Range Background
The active and completed range is drawn with a multi slice background gradient between the upper and lower colors. This improves readability and gives the zone a more polished visual structure.
🔸 Histogram Inside the Range
When a range is confirmed and completed, the script draws horizontal histogram bars inside the zone. Rows inside the value area use a dedicated color, while rows outside the value area use a separate profile color. This makes internal acceptance easy to read visually.
🔸 Live Active Range Updates
While the range is still active and not yet broken, the background extends forward in time with every new bar. Once the range becomes confirmed, profile and value area calculations are refreshed continuously until the breakout occurs.
🔸 Practical Market Structure Use
This makes the indicator useful for consolidation analysis, acceptance and rejection studies, and breakout context. A trader can see not only where price paused, but also how volume built inside that pause before expansion occurred.
🔹 Calculations
1) Pivot Detection for Range Anchors
float ph = ta.pivothigh(high, lengthInput, lengthInput)
float pl = ta.pivotlow(low, lengthInput, lengthInput)
if not na(ph)
recentPH := ph
recentPHIndex := bar_index
if not na(pl)
recentPL := pl
recentPLIndex := bar_index
This is the starting point of the whole script.
The code asks PulseWire to detect a pivot high and a pivot low using the selected swing length. A pivot high appears only after enough bars have formed on both sides of the swing, and the same logic applies to a pivot low. Because of that, pivots are confirmed reference points rather than instant highs or lows.
When a valid pivot high is found, the script stores two things.
The pivot price itself in recentPH
The bar index where that pivot actually occurred in recentPHIndex
The same is done for pivot lows through recentPL and recentPLIndex .
This means the script always keeps track of the latest confirmed upper swing and the latest confirmed lower swing. Those two swing references become the raw ingredients for a possible trading range.
2) Candidate Range Creation Logic
bool canCreateRange = na(activeRange) and not na(recentPH) and not na(recentPL)
if canCreateRange
float top = math.max(recentPH, recentPL)
float bot = math.min(recentPH, recentPL)
if top > bot and close <= top and close >= bot
int sIndex = math.min(recentPHIndex, recentPLIndex)
int barsBack = bar_index - sIndex
This block decides whether the script is even allowed to start a new range.
First, canCreateRange requires three conditions:
there must be no currently active range,
there must be a recent pivot high,
and there must be a recent pivot low.
If those conditions are met, the script builds a provisional upper bound and lower bound using the greater and smaller of the two pivot prices. Then it checks whether current price is actually inside that proposed range. This is important because it prevents the script from creating a range that price has already escaped.
The code also finds sIndex , which is the earlier of the two pivot bar indices. That earlier point becomes the true starting location of the range. Then barsBack measures how many bars ago the range began.
So at this stage, the script has a full candidate structure:
an upper price,
a lower price,
and a starting point in time.
3) Overlap Prevention and Broken History Check
bool isOverlapping = false
if sIndex <= lastClosedRangeEndIndex
isOverlapping := true
if not isOverlapping
bool broken = false
if barsBack > 0
for i = 0 to barsBack
if close > top or close < bot
broken := true
break
This section filters out bad candidates before a range is created.
First, the script checks whether the proposed start index falls inside or before the end of the last completed range. If it does, the new candidate is marked as overlapping and rejected. This keeps the indicator from repeatedly generating new boxes on top of old structures.
Next, even if there is no overlap, the script scans every bar from the proposed start point up to the present. It checks whether any close moved above the top boundary or below the bottom boundary. If that happened, the candidate is marked as broken.
This is a very important quality filter. It means the script does not simply connect two pivots and call that a range. It also verifies that price actually stayed accepted inside those boundaries over the full candidate history.
4) Initializing the Range Object
activeRange := RangeData.new(
startIndex = sIndex,
startTime = time ,
endIndex = bar_index,
endTime = time,
topPrice = top,
bottomPrice = bot,
isActive = true,
isConfirmed = false,
totalVolume = 0.0,
pocPrice = na, pocVolume = 0.0, pocIndex = -1, vah = na, val = na,
bgBoxes = na, histBoxes = na, pocLine = na, vahLine = na, valLine = na, pocLabel = na, vahLabel = na, valLabel = na
)
activeRange.initProfile(profileRows)
Once the script is satisfied that the candidate is valid, it creates a new RangeData object.
This object stores all important information about the range:
where it starts,
where it currently ends,
its top price,
its bottom price,
whether it is still active,
whether it is confirmed,
and all profile related values such as total volume, Point of Control, Value Area High, and Value Area Low.
Immediately after creating the object, the script calls initProfile(profileRows) . That method prepares the internal volume profile rows that will later hold the distribution data.
So this is the moment where the script moves from pure detection into active tracking.
5) Building the Internal Profile Rows
method initProfile(RangeData this, int rowsCount) =>
float step = (this.topPrice - this.bottomPrice) / rowsCount
this.profile := array.new()
for i = 0 to rowsCount - 1
float pBottom = this.bottomPrice + (i * step)
float pTop = pBottom + step
this.profile.push(ProfileRow.new(pTop, pBottom, 0.0))
This method divides the height of the range into a fixed number of rows.
First, it calculates step , which is the height of one profile row. That is simply the total range height divided by the selected number of profile rows.
Then it creates an empty profile array and fills it row by row. Each row stores:
its upper price,
its lower price,
and the total volume accumulated in that row.
At this moment, every row starts with zero volume. The profile is just an empty framework waiting to receive bar by bar contributions.
This design is important because the script is not using a prebuilt PulseWire volume profile function. It is constructing the profile manually, row by row, inside the exact range boundaries.
6) Adding Volume Into the Profile
method addVolume(RangeData this, float bHigh, float bLow, float bVol) =>
float overlapHigh = math.min(bHigh, this.topPrice)
float overlapLow = math.max(bLow, this.bottomPrice)
if bHigh == bLow and bHigh <= this.topPrice and bHigh >= this.bottomPrice
for i = 0 to this.profile.size() - 1
ProfileRow row = this.profile.get(i)
if bHigh >= row.priceBottom and bHigh <= row.priceTop
row.volumeTotal += bVol
this.totalVolume += bVol
break
else if overlapHigh > overlapLow
float overlapHeight = overlapHigh - overlapLow
float totalHeight = bHigh - bLow
float effectiveVol = totalHeight > 0 ? bVol * (overlapHeight / totalHeight) : bVol
for i = 0 to this.profile.size() - 1
ProfileRow row = this.profile.get(i)
float rowOverlapHigh = math.min(overlapHigh, row.priceTop)
float rowOverlapLow = math.max(overlapLow, row.priceBottom)
if rowOverlapHigh > rowOverlapLow
float rowOverlapHeight = rowOverlapHigh - rowOverlapLow
float rowRatio = rowOverlapHeight / overlapHeight
float addedVol = effectiveVol * rowRatio
row.volumeTotal += addedVol
this.totalVolume += addedVol
This is one of the most important calculations in the whole script.
The goal here is to take a candle and distribute its volume into the profile rows that the candle actually overlaps.
First, the script limits the candle to the range boundaries using overlapHigh and overlapLow . This ensures that only the part of the candle inside the range contributes to the profile.
Then two cases are handled.
If the candle has no height, meaning bHigh == bLow , the full volume is assigned to the single row that contains that exact price.
If the candle does have height, the script calculates how much of the candle actually overlaps the range. That overlapping height becomes the valid section for profile allocation. Then, for each profile row, the script measures how much of that valid section overlaps the row. Volume is distributed proportionally according to that overlap share.
This is much more accurate than placing the full candle volume into a single row. It means tall candles contribute volume across the price levels they truly passed through, which creates a more realistic internal distribution.
7) Filling the New Range With Historical Volume
if barsBack >= 0
for i = 0 to barsBack
float bVol = na(volume ) ? 1.0 : volume
activeRange.addVolume(high , low , bVol)
Right after a new range is created, the script goes back through all bars that belong to that range from its start until the current bar.
For each of those bars, it reads the volume and sends the bar high, bar low, and volume into addVolume .
This step is essential because it backfills the profile immediately. Without it, the range would start with an empty volume profile and would only accumulate data from future bars. Instead, the script reconstructs the whole internal history of the range as soon as the range is created.
Also notice the fallback 1.0 when volume data is missing. That ensures the script can still function on symbols where actual volume may not be available.
8) Range Confirmation and Break Detection
bool isBroken = close > activeRange.topPrice or close < activeRange.bottomPrice
if (bar_index - activeRange.startIndex) >= minRangeLen
activeRange.isConfirmed := true
Once a range is active, the script keeps evaluating two key questions on every bar.
The first question is whether the range is broken.
If the current close moves above the top or below the bottom, the range is considered finished.
The second question is whether the range has lasted long enough to be trusted.
If the number of bars since the range started is at least the user selected minimum, isConfirmed becomes true.
This creates a useful distinction between a candidate range and a confirmed range. A short structure can exist visually for a while, but it only becomes analytically meaningful after it survives long enough.
9) Live Updating While the Range Is Active
if not justCreated
float barVol = na(volume) ? 1.0 : volume
activeRange.addVolume(high, low, barVol)
if activeRange.isConfirmed
activeRange.calcValueArea(valAreaPct)
activeRange.drawProfile(colorBgTop, colorBgBot, colorProfile, colorProfileVA, colorPOC, colorVA)
else
activeRange.updateBgRight(time, colorBgTop, colorBgBot, colorBorder)
This block explains how the range evolves in real time.
If the current bar is not the same bar where the range was created, the script adds the latest candle volume into the profile. That keeps the internal distribution up to date bar by bar.
Then the script behaves differently depending on confirmation state.
If the range is already confirmed, it recalculates the value area and redraws the full profile. This means Point of Control, Value Area High, Value Area Low, and the histogram are all updated continuously as long as price remains inside the range.
If the range is not yet confirmed, the script only extends the background box to the current time. In other words, the market structure is still being monitored, but the full profile is not drawn until the range has proven itself.
10) Point of Control Discovery
float maxVol = -1.0
int pIndex = -1
for i = 0 to this.profile.size() - 1
ProfileRow row = this.profile.get(i)
if row.volumeTotal > maxVol
maxVol := row.volumeTotal
pIndex := i
this.pocIndex := pIndex
this.pocVolume := maxVol
ProfileRow pocRow = this.profile.get(pIndex)
this.pocPrice := (pocRow.priceTop + pocRow.priceBottom) / 2.0
This is the first phase inside the value area calculation.
The script scans every profile row and looks for the one with the largest accumulated volume. That row becomes the Point of Control row.
Once that row is found, the script stores:
the row index in pocIndex ,
the largest row volume in pocVolume ,
and the row midpoint price in pocPrice .
So the Point of Control is not guessed from the center of the range or from price action alone. It is derived directly from the heaviest profile row.
11) Expanding to Build the Value Area
float targetVol = this.totalVolume * (pct / 100.0)
float currentVol = maxVol
int upIndex = pIndex + 1
int downIndex = pIndex - 1
while currentVol < targetVol and (upIndex < this.profile.size() or downIndex >= 0)
float upVol = upIndex < this.profile.size() ? this.profile.get(upIndex).volumeTotal : -1.0
float downVol = downIndex >= 0 ? this.profile.get(downIndex).volumeTotal : -1.0
if upVol == -1.0 and downVol == -1.0
break
Here the script begins with the Point of Control row and tries to accumulate enough neighboring volume to reach the selected percentage of total range volume.
First, it calculates targetVol , which is the amount of total volume required for the value area. For example, if the input is 70 percent, the target is 70 percent of the full profile volume.
The process then starts from the Point of Control row. currentVol begins at the Point of Control volume itself. From there, the script looks one row up and one row down and keeps expanding until the target is reached or no more rows remain.
This is the classic logic of building a value area around the highest participation zone.
12) Choosing Whether to Expand Up or Down
bool addUp = false
if upVol > downVol
addUp := true
else if downVol > upVol
addUp := false
else
int distUp = upIndex - pIndex
int distDown = pIndex - downIndex
if distUp < distDown
addUp := true
else if distDown < distUp
addUp := false
else
addUp := true
This section decides which side should be added next to the value area.
If the row above the current zone has more volume than the row below, the script expands upward.
If the row below has more volume, it expands downward.
If both sides have the same volume, the script breaks the tie by comparing distance from the Point of Control. If distance is also equal, it defaults upward.
This matters because value area construction should not be arbitrary. It should expand toward the heaviest nearby participation first. That keeps the final value area centered around the most meaningful volume concentration.
13) Final VAH and VAL Calculation
int finalUp = math.min(upIndex - 1, this.profile.size() - 1)
int finalDown = math.max(downIndex + 1, 0)
this.vah := this.profile.get(finalUp).priceTop
this.val := this.profile.get(finalDown).priceBottom
After expansion is complete, the script converts the final upper and lower included rows into actual price boundaries.
vah becomes the top of the highest included row.
val becomes the bottom of the lowest included row.
These two values form the value area envelope, showing the price zone that contains the selected percentage of all volume traded inside the range.
So the final value area is not a fixed distance from Point of Control. It adapts to the actual row by row distribution.
14) Drawing the Gradient Range Background
method drawBg(RangeData this, color cBgTop, color cBgBot, color cBorder, int rTime) =>
if not na(this.bgBoxes)
for b in this.bgBoxes
b.delete()
this.bgBoxes := array.new()
int bgSlices = 10
float sliceStep = (this.topPrice - this.bottomPrice) / bgSlices
for i = 0 to bgSlices - 1
float bBot = this.bottomPrice + (i * sliceStep)
float bTop = bBot + sliceStep
this.bgBoxes.push(box.new(this.startTime, bTop, rTime, bBot, border_color=na, bgcolor=sliceCol, xloc=xloc.bar_time))
This method handles the visual background of the range.
Before drawing anything new, the script deletes previously drawn background boxes. Then it splits the range vertically into ten slices. Each slice receives an interpolated color between the selected bottom background color and top background color.
Finally, each slice is drawn as a time based box from the range start to the chosen right edge time.
The result is a smooth vertical color transition across the range body, which makes the zone easier to read and visually separates upper and lower sections.
15) Drawing the Histogram, POC, VAH, and VAL
if this.isConfirmed
float maxVol = this.pocVolume
if maxVol > 0
int rangeTimeWidth = math.max(rightTime - this.startTime, 1000)
int maxTimeWidth = math.round(rangeTimeWidth * 0.35)
for i = 0 to this.profile.size() - 1
ProfileRow row = this.profile.get(i)
if row.volumeTotal > 0
float widthRatio = row.volumeTotal / maxVol
int boxTimeWidth = math.round(maxTimeWidth * widthRatio)
int boxLeftTime = rightTime - boxTimeWidth
bool inVA = (row.priceTop <= this.vah and row.priceBottom >= this.val)
color finalHistCol = inVA ? histVaCol : histCol
this.histBoxes.push(box.new(boxLeftTime, t, rightTime, b, border_color=na, bgcolor=finalHistCol, xloc=xloc.bar_time))
this.pocLine := line.new(this.startTime, this.pocPrice, rightTime, this.pocPrice, color=pocCol, style=line.style_solid, width=2, xloc=xloc.bar_time)
this.vahLine := line.new(this.startTime, this.vah, rightTime, this.vah, color=vaCol, style=line.style_dashed, width=1, xloc=xloc.bar_time)
this.valLine := line.new(this.startTime, this.val, rightTime, this.val, color=vaCol, style=line.style_dashed, width=1, xloc=xloc.bar_time)
This is the drawing engine for the completed profile.
For each row with volume, the script calculates a width ratio relative to the Point of Control volume. Rows with more volume receive wider histogram boxes. Rows with less volume receive narrower boxes.
That width is converted into time space, so the histogram grows leftward from the right edge of the range. This creates a compact in range horizontal profile.
The script also checks whether each row lies inside the value area. If it does, the row uses the value area histogram color. If it does not, it uses the normal profile color. This makes the high participation area visually distinct.
Finally, the script draws three key lines across the full width of the range:
Point of Control,
Value Area High,
and Value Area Low.
These lines convert the internal profile data into easy to read structure references on the chart.
16) What Happens When the Range Breaks
if isBroken
activeRange.isActive := false
activeRange.endIndex := bar_index
activeRange.endTime := time
if not activeRange.isConfirmed
if not na(activeRange.bgBoxes)
for b in activeRange.bgBoxes
b.delete()
else
activeRange.calcValueArea(valAreaPct)
activeRange.drawProfile(colorBgTop, colorBgBot, colorProfile, colorProfileVA, colorPOC, colorVA)
lastClosedRangeEndIndex := bar_index
activeRange := na
This block defines the final lifecycle of a range.
When price closes outside the range boundaries, the active structure is terminated. The script records the ending bar and ending time, then checks whether the range had ever become confirmed.
If the range was never confirmed, its background is deleted and the structure is discarded. This prevents weak or short lived ranges from leaving unnecessary clutter.
If the range was confirmed, the script performs a final value area calculation and profile draw on the completed structure. It also stores the ending index so future ranges do not overlap with this one.
Then the active range is cleared from memory, which allows the script to start searching for the next valid structure. Indicator

Indicator

Opening Range Break (5-15-30 Min) - Wall Street RedneckOpening Range Break (5-10-15-30 Min) – Wall Street Redneck
A simple and powerful Opening Range Breakout (ORB) indicator built for intraday traders.
This tool automatically plots the Opening Range High, Low, and optional Midline based on your selected 5, 10, 15, or 30 minute range. Once the range is set, levels extend forward to help identify breakout opportunities and key reaction zones throughout the session.
Features:
Custom ORB length (5/10/15/30 minutes)
Adjustable session start & end time
ORB High, Low & Midline (custom colors + dashed option)
Optional historical session display
Built-in customizable Take Profit levels
Targets based on % of Opening Range
Adaptive or Extended display
Automatic TP labeling
Designed for breakout, momentum, and day traders who want a clean, no-clutter ORB with flexible target projection. Indicator

ORB Scalper Pro (9:30 NY)ORB Scalper Pro is a comprehensive Opening Range Breakout indicator
designed for intraday scalpers, optimized for the 9:30–10:30 AM NY
session window. Works on equities, ETFs, and futures (ES, NQ, MES, MNQ).
FEATURES
• ORB High/Low tracked live from the 9:30 opening range (configurable window)
• Visual ORB formation box with range size label
• 1× and 2× extension targets (measured move projections)
• ORB Midline for gauging breakout strength
• RTH VWAP (resets at 9:30 AM — accurate for futures)
• EMA 9 / EMA 21 trend filter
• Prior Day High / Low levels
SIGNAL TYPES
• Break signals — confirmed close above/below ORB High/Low
• Retest signals — pullback to ORB level after confirmed break
• Failed ORB / Fade signals — breakout reversal trap setups
• All signals include SL and TP levels based on ORB range multiples
SETUP GRADING (A+ / A / B / C)
Every signal is automatically scored out of 7 points:
+2 RTH VWAP alignment
+1 Volume boost (above average)
+1 Early break (before 10:00 AM)
+1 Gap direction match
+1 EMA 9/21 trend alignment
+1 Normal ORB range size
Grades: A+ = 6-7 pts | A = 4-5 | B = 2-3 | C = 0-1
SCORECARD TABLE
Compact bottom-corner table showing last signal fired, score, and grade
for both long and short — visible even on lower timeframes.
ALERTS
Six alert conditions: Break Long/Short, Retest Long/Short,
Failed ORB Long/Short.
DISCLAIMER
For educational purposes only. Does not constitute financial advice.
Trading involves substantial risk of loss. Past performance is not
indicative of future results. Indicator
