Market Structure BOS, CHoCH, HH HL LH LL & Trend Health [LunqFX]Market structure is the skeleton of every trend: a series of higher highs and higher lows, or lower highs and lower lows, until a break says the trend has changed. This indicator maps that skeleton automatically — labelling every swing as HH, HL, LH or LL, drawing each Break of Structure (BOS) and Change of Character (CHoCH) — and adds one thing no other structure tool has: it tells you the trend is failing BEFORE the structure actually breaks.
❶ THE STRUCTURE MAP
▸ SWING LABELS — every confirmed swing point is labelled HH (higher high), HL (higher low), LH (lower high) or LL (lower low). The sequence of those four labels IS the trend, and having it on the chart removes the guesswork from reading price action.
▸ BOS — Break of Structure. Price closes through the last swing level in the direction of the trend: the trend is continuing. Drawn as a dashed line from the broken level with a BOS label.
▸ CHoCH — Change of Character. Price closes through the last swing level against the trend: the trend has flipped. Drawn as a solid, highlighted line — this is the reversal signal smart-money traders wait for.
▸ STRUCTURE CANDLES — the candles themselves are coloured by the structural trend, not by whether each bar closed up or down. Green means the market structure is bullish, violet means bearish, so the regime is obvious at a single glance. Their brightness fades as Trend Health falls.
❷ TREND HEALTH 0–100 — THE EARLY WARNING
Every other structure tool tells you a trend has ended after CHoCH prints. By then the move is already gone. Trend Health measures the two things that decay before every structure break:
▸ EXPANSION — in a healthy trend each new extreme clears the previous one by at least as much as the last leg did. When new highs barely exceed the old ones, the trend is running out of fuel.
▸ RETRACEMENT — in a healthy trend pullbacks stay shallow. When each pullback eats deeper into the previous leg, control is shifting to the other side.
Both are measured on the live leg, normalised by ATR so the score behaves the same on any symbol and timeframe, and blended into a single 0–100 reading. When it drops below your threshold the dashboard flags WEAKENING — while the trend is still technically intact. That is the warning CHoCH cannot give you, because CHoCH is confirmation, not anticipation.
❸ THE STRUCTURE TAPE
Instead of a table of numbers, the dashboard shows a timeline of the last five structure events, oldest to newest: BOS ▲ · BOS ▲ · CHoCH ▼ · BOS ▼. Reading the sequence tells you instantly whether the market is trending cleanly (a run of BOS in one direction) or chopping (CHoCH flipping back and forth) — context you cannot get from a single label on the chart.
❹ HOW TO TRADE IT
1 — Establish the bias from MARKET STRUCTURE in the panel. Bullish structure = look for longs, bearish = look for shorts. Do not fight it.
2 — Use BOS as continuation. A BOS in the direction of your bias confirms the trend is intact; the broken level often becomes support or resistance on the retest.
3 — Use CHoCH as the reversal trigger. A CHoCH against the prevailing trend is the earliest confirmed signal that structure has flipped. Wait for it before trading a reversal.
4 — Use TREND HEALTH for timing and risk. Health above 65 with a run of BOS on the tape = a clean trend, hold your position and trail. Health falling into WEAKENING = tighten stops, take partials, and stop adding — the structure is decaying and a CHoCH becomes more likely.
5 — Read the tape for market state. Several BOS in a row = trending market, trade continuations. Alternating CHoCH = choppy market, stand aside or trade the range instead.
❺ HOW IT WORKS
Swing points come from confirmed pivots, so a swing only exists once the bars on both sides of it have closed. The most recent swing high and swing low become the active structure levels. When a bar CLOSES beyond one of them (a wick-based mode is available), the break is registered: in the direction of the current trend it is a BOS, against it a CHoCH, and the trend state flips. Trend Health compares the size of the current expansion leg with the previous one in ATR units, and the depth of the latest pullback against the leg it retraced, then blends them 60/40 into the 0–100 score. Immediately after a CHoCH there is no second leg to compare yet, so the panel honestly reports NEW TREND instead of a misleading health reading.
Works on every symbol and timeframe — forex, gold, indices, crypto and stocks — because every threshold is either structural or ATR-normalised, with nothing to configure per market.
SETTINGS — swing length (how major a swing must be), break on close or wick, the health threshold that flags weakening, swing labels and BOS/CHoCH lines on/off, number of events kept, structure candles on/off, and dashboard position.
ALERTS — BOS up, BOS down, CHoCH up, CHoCH down, and Structure Weakening (the early warning).
NON-REPAINTING — swings are built from confirmed pivots and every break is validated on bar close. A label or line that has printed never moves or disappears.
Every component here describes the same object — the market's structure — at a different resolution: the swings build it, BOS and CHoCH break it, Trend Health measures its condition, and the tape is its history. That is why they belong in one tool rather than five.
This indicator is an educational market-analysis tool, not financial advice. Trend Health describes the current structure's condition and does not predict future prices. Always confirm with your own analysis and manage your risk.
Pre-publish checklist Indicator

Echo Vector## Echo Vector
### Overview
Echo Vector is an open-source chart-analysis overlay that combines relative-volume candle classification, moving-average context, confirmed price structure, liquidity references, imbalance zones, trading sessions and higher-timeframe reference levels.
The purpose of the script is to organize several related areas of chart analysis within one configurable workflow:
- relative volume and candle behaviour;
- trend and volatility context;
- confirmed swing structure;
- liquidity references and mitigated zones;
- Fair Value Gaps and Balanced Price Ranges;
- daily, weekly and session-based reference levels;
- optional analytical condition markers;
- simplified historical condition-outcome statistics.
Echo Vector does not predict future price movement. Its colours, zones, lines and markers show when the configured analytical conditions have been detected. They should not be treated as automatic instructions to enter or exit a position.
### Open-source attribution
Echo Vector is an independent derivative that retains and adapts portions of the open-source Traders Reality MT4 Sessions framework and functionality associated with the Traders_Reality_Lib.
The original source credits:
- TradersReality;
- plasmapug;
- infernix;
- peshocore;
- xtech5192.
Retained or adapted areas include selected relative-volume vector-candle concepts, EMA references, market-session timing, daylight-saving handling, daily pivot calculations, M-level calculations, Psy-level concepts and selected daily and weekly reference levels.
This publication is not affiliated with, endorsed by or presented as an official TradersReality or Pattern Watchers publication.
The source is published under the Mozilla Public License 2.0.
This implementation expands the framework with additional liquidity-level management, volume-confirmed pivot zones, market-structure states, Fair Value Gap and Balanced Price Range processing, configurable condition markers, mitigation handling, Fibonacci references, timeframe presets and historical condition-outcome tables.
### What the script measures
Echo Vector examines how candle direction, candle range, candle body size and reported volume relate to their recent historical averages.
The script also examines:
- price position relative to several moving averages;
- confirmed pivot highs and lows;
- breaks of confirmed internal and external structure;
- price interaction with previously identified levels and zones;
- three-candle price imbalances;
- overlap between opposing imbalance zones;
- distance from statistical and moving-average references;
- session location and daily or weekly reference levels.
The individual modules measure different characteristics. A high-volume candle describes participation, while a structure break describes price progression. A liquidity level describes a previous pivot reference, while an FVG describes an imbalance between three candles.
No single component confirms the meaning of another component automatically.
### Relative-volume candle classification
The vector-candle engine compares current volume with a recent volume average.
It also calculates a volume-spread value by multiplying candle range by volume and comparing that value with recent bars.
The principal candle states are:
- Echo Pulse: volume exceeds the configured moderate relative-volume threshold.
- Echo Surge: volume exceeds the stronger threshold or the volume-spread value reaches the recent comparison extreme.
- Echo Peak: volume reaches the configured extreme relative-volume threshold.
- Blow-off condition: a bullish candle combines unusually high volume, an unusually large body and extension above an EMA-based deviation reference.
- Exhaustion condition: a bearish candle combines unusually high volume, an unusually large body and extension below the corresponding deviation reference.
These classifications describe unusual candle and volume relationships. They do not prove accumulation, distribution, institutional activity or an imminent reversal.
An Echo Cascade marker can appear when qualifying volume states occur for the selected number of consecutive bars.
### Moving averages and cloud
The script displays five configurable moving-average references representing fast, medium, baseline, long-term and very-long-term context.
The baseline average is also used as the centre of a volatility cloud. Cloud width is calculated from price standard deviation and can be adjusted with the multiplier and divisor settings.
When dynamic colouring is enabled, selected moving averages change colour according to price position relative to the baseline average.
Moving averages are delayed calculations based on historical prices. They do not identify exact support or resistance and can react slowly after abrupt market changes.
### Liquidity reference levels
The LQ module converts confirmed pivot highs and lows into horizontal reference levels.
- A level above a confirmed pivot high represents a possible high-side liquidity reference.
- A level below a confirmed pivot low represents a possible low-side liquidity reference.
The lines remain active until they are touched, hidden under the selected mitigation rule or removed because the maximum number of retained levels has been reached.
These levels are inferred from historical price structure. They do not display real resting orders or order-book liquidity.
### Volume-confirmed pivot zones
The zone module combines confirmed pivots with relative volume.
A zone is created when:
- a pivot high or pivot low has been confirmed;
- volume at the pivot meets the selected relative-volume threshold;
- the zone satisfies the configured display and storage rules.
Zone height can be based on a fixed tick value and may also be scaled by relative volume or ATR.
Mitigation can be evaluated using candle wicks or candle bodies. Mitigated zones may be removed or retained with a faded appearance.
The zones represent areas of prior price and volume interaction. They do not prove the presence of institutional orders.
### Market structure
Echo Vector maintains separate external and internal structure states.
External structure uses the major pivot lookback. Internal structure uses a shorter pivot lookback to detect smaller structural movements.
Depending on the previous stored direction, confirmed breaks may be labelled as:
- BOS;
- CHoCH;
- internal BOS;
- internal CHoCH;
- MSS.
The user can choose whether a break is evaluated using the candle close or the candle wick.
Structure labels are descriptive classifications based on confirmed pivots. Different pivot settings can produce different structure interpretations.
### Fair Value Gaps and Balanced Price Ranges
A bullish Fair Value Gap is detected when the current candle low remains above the high from two candles earlier.
A bearish Fair Value Gap is detected when the current candle high remains below the low from two candles earlier.
The gap must satisfy the configured minimum tick size.
When an active bullish and bearish FVG overlap, the overlapping section is displayed as a Balanced Price Range.
FVG and BPR zones are managed until their invalidation or fill condition is met.
These zones identify historical price imbalances. Price is not required to revisit, fill or react to them.
### Analytical condition markers
Echo Vector includes optional markers based on combinations of volume, candle body, wick structure, moving-average distance, RSI thresholds and recent price extremes.
Available modules include:
- swing-sweep conditions;
- stopping-volume-style conditions;
- high-volume displacement conditions;
- large-volume candle conditions;
- wick-rejection conditions;
- RSI extreme-threshold conditions;
- blow-off and exhaustion conditions.
These names describe the intended analytical category. The conditions are OHLCV-based heuristics and do not directly identify actual stop orders, passive absorption or order-book events.
Bullish and bearish markers indicate the directional interpretation assigned by the selected calculation. They are not buy or sell recommendations.
### Sessions and reference levels
The script can display selected market-session boxes and labels, including:
- London;
- New York;
- Tokyo;
- Hong Kong;
- Sydney;
- a combined Asia window;
- EU and US break windows.
Internal daylight-saving calculations adjust selected session times.
The script can also display:
- previous-day high and low;
- previous-week high and low;
- daily open;
- daily pivot levels;
- M0 through M5 midpoint levels;
- average-range references;
- Psy High and Psy Low references;
- dynamic Fibonacci retracement levels.
Session alignment can vary because of symbol trading hours, exchange calendars, chart timeframes, holidays and daylight-saving transitions.
### Fibonacci references
The Fibonacci module uses confirmed swing points maintained by the script.
When a new structural extreme is confirmed or the stored range is broken, the active swing range may be updated and the Fibonacci levels recalculated.
The user can control:
- pivot sensitivity;
- displayed ratios;
- line colours;
- line style;
- label visibility;
- standard or extended ratio sets.
Because the anchors depend on confirmed and changing swing structure, the displayed range can change as new information becomes available.
### Timeframe presets
Echo Vector provides Auto, Intraday, Daily, Weekly and Manual modes.
The presets adjust selected moving-average, RSI and volume parameters.
- Auto selects a parameter group according to the chart timeframe.
- Intraday, Daily and Weekly force a selected preset.
- Manual uses the user-defined values.
Preset values are starting configurations. They are not automatically optimized for the current symbol and do not guarantee suitable behaviour across all markets.
### How to use Echo Vector
Begin with the broader moving-average and market-structure context.
Next, examine where price is trading relative to:
- confirmed LQ levels;
- volume-confirmed pivot zones;
- FVG and BPR zones;
- session highs and lows;
- daily and weekly reference levels;
- the active Fibonacci range.
Then review the candle classification.
A Pulse, Surge or Peak candle shows that the selected volume criteria were met. It does not determine whether price will continue or reverse.
Finally, examine optional condition markers only after considering their location. A marker occurring near a relevant level or structural area may provide more context than the same marker appearing in the middle of an undefined range.
Users remain responsible for independently determining risk, position size, entry and exit rules.
### Minimal Mode
Minimal Mode reduces chart congestion by hiding selected condition markers and simplifying parts of the visual display.
It is intended for users who want to focus primarily on moving averages, the cloud, levels, sessions and broader structure.
Because individual modules also have separate visibility controls, users should confirm which elements remain active after enabling Minimal Mode.
### Historical condition-outcome table
The optional table applies fixed percentage target and stop distances to historical condition markers.
For each tracked condition, it counts whether the selected target or stop boundary was reached first.
The table is a simplified observational tool and is not equivalent to PulseWire Strategy Tester.
It does not model:
- commission;
- spread;
- slippage;
- order type;
- execution delay;
- liquidity;
- position sizing;
- portfolio equity;
- all intrabar sequencing ambiguities.
Only one active observation is maintained for each tracked condition and direction. Historical results depend on the symbol, timeframe, available history, target distance, stop distance and selected settings.
Historical table values do not imply future performance.
### Settings
The main settings control:
- timeframe presets;
- moving-average periods and colours;
- volatility-cloud width;
- relative-volume thresholds;
- candle-state visibility;
- pivot sensitivity;
- liquidity-level retention;
- zone volume requirements;
- ATR and volume zone scaling;
- mitigation rules;
- internal and external structure sensitivity;
- close- or wick-based break evaluation;
- FVG minimum size;
- session visibility;
- daily and weekly reference levels;
- Fibonacci anchors and ratios;
- RSI thresholds;
- wick, volume and body filters;
- marker colours;
- alert conditions;
- table target and stop distances.
Lower thresholds and shorter lookbacks generally increase sensitivity and noise.
Higher thresholds and longer lookbacks generally produce fewer conditions and later confirmation.
### Alerts
Alerts are available for selected vector-candle states, FVG conditions, sweep-style conditions, stopping-volume-style conditions, wick conditions and Psy-level crosses.
Many conditions use values from the active candle. They can therefore appear, change or disappear before the candle closes.
For confirmed alerts, select Once Per Bar Close when creating the PulseWire alert.
Pivot-based conditions are available only after the required right-side pivot bars have completed.
### Repainting and confirmation behaviour
FVG and BPR objects are created only after the relevant chart candle is confirmed.
Other current-bar conditions may change while the candle remains open.
Pivot highs and lows require bars on both sides of the pivot. A pivot is therefore confirmed only after the selected number of right-side bars has completed.
Once confirmed, a pivot marker, liquidity line, structure line, zone or Fibonacci anchor may be drawn at the earlier pivot location. The object was not available in real time on that earlier candle.
Current daily-open and session values can change as their active periods develop.
Users should evaluate signals according to the time at which they became confirmed rather than only by their final historical chart position.
### Limitations
- Volume quality differs between exchanges, brokers and symbols.
- Forex and CFD symbols may provide tick volume rather than centralized exchange volume.
- Relative-volume classifications do not show true bid-and-ask delta.
- Pivot confirmation introduces delay.
- Current-bar markers can change before candle close.
- High volume can accompany continuation, reversal or temporary volatility.
- Extreme conditions can persist.
- Liquidity levels do not show actual resting orders.
- Volume-confirmed zones do not prove institutional activity.
- FVG and BPR zones may remain unfilled or fail to produce a reaction.
- Structure classifications depend on the selected pivot settings.
- Moving averages lag price.
- Session timing can vary across exchanges and instruments.
- Lower timeframes generally generate more noise.
- Historical outcome tables do not reproduce realistic execution.
- Platform limits can restrict the number of retained boxes, labels and lines.
- The script should not be used as the sole basis for a trading decision.
------------
## HOW-TO: Use Echo Vector to Read Volume, Liquidity and Structure
Echo Vector combines relative-volume candles, moving-average context, confirmed market structure, liquidity references, imbalance zones, sessions and higher-timeframe levels.
This guide explains a structured way to read the indicator without treating any single marker as an automatic trade signal.
## Step 1: Choose the operating mode
Open the indicator settings and select an Optimization Mode.
- Auto applies a parameter group according to the chart timeframe.
- Intraday forces the intraday settings.
- Daily forces the daily settings.
- Weekly forces the weekly settings.
- Manual uses the values entered by the user.
The presets are starting configurations rather than symbol-specific optimizations.
When changing symbols or timeframes, review whether the pivot sensitivity, volume thresholds and moving-average lengths remain appropriate.
## Step 2: Establish the broader context
Begin with the moving averages and the baseline cloud.
Ask:
- Is price above or below the baseline average?
- Are the fast and medium averages moving in the same direction?
- Is price compressed inside the cloud or extended away from it?
- Is price above or below the long-term averages?
Moving averages provide context, not precise entries.
A strong move can remain extended for longer than expected, while sideways markets can cause repeated crossings.
## Step 3: Read the vector-candle states
Echo Vector classifies candles according to relative volume and candle behaviour.
- Echo Pulse marks moderately elevated volume.
- Echo Surge marks stronger relative volume or an elevated volume-spread relationship.
- Echo Peak marks an extreme relative-volume condition.
- Echo Cascade marks consecutive qualifying vector states.
- Blow-off and exhaustion conditions add body-size and statistical-extension requirements.
A coloured candle answers the question:
Did this candle meet the selected relative-volume criteria?
It does not answer:
Will the next candle move higher or lower?
Always compare a vector candle with its location and surrounding structure.
## Step 4: Identify confirmed liquidity references
LQ lines are created from confirmed pivot highs and lows.
A high-side line marks a previous confirmed high. A low-side line marks a previous confirmed low.
Use these lines to examine whether price is:
- approaching an earlier swing;
- trading through the level;
- closing back across it;
- accepting beyond it;
- reacting without reaching it.
The lines are historical price references. They do not show actual stop orders or order-book liquidity.
## Step 5: Examine volume-confirmed pivot zones
The shaded pivot zones require both a confirmed pivot and the selected relative-volume condition.
Zone height can be adjusted with:
- the base tick value;
- relative-volume scaling;
- ATR scaling.
A larger zone does not automatically mean stronger support or resistance. It means that the configured sizing calculation produced a wider reference area.
Watch how price interacts with the zone:
- wick interaction;
- body interaction;
- partial mitigation;
- complete mitigation;
- movement through the zone without reaction.
## Step 6: Read market structure
Echo Vector separates external and internal structure.
External structure describes larger confirmed pivots. Internal structure describes smaller movements inside the broader structure.
Labels can include BOS, CHoCH, internal BOS, internal CHoCH and MSS.
Use them in sequence rather than isolation.
For example:
- an internal bullish change inside an external bearish structure is not automatically a complete trend reversal;
- an external break can be more significant but will normally confirm later;
- wick-based confirmation reacts sooner but can produce more false breaks;
- close-based confirmation reacts later but requires the candle to finish beyond the level.
## Step 7: Use FVG and BPR zones
A bullish FVG appears when the current candle low remains above the high from two candles earlier.
A bearish FVG uses the inverse relationship.
A Balanced Price Range appears where active opposing FVG zones overlap.
Use these zones to study areas of historical imbalance.
Possible observations include:
- price returning into an FVG;
- partial filling;
- complete invalidation;
- reaction near a BPR;
- an imbalance aligning with a structural or liquidity reference.
Price is not required to fill every FVG.
## Step 8: Add session and higher-timeframe context
Enable only the sessions relevant to the market being studied.
Echo Vector can display London, New York, Tokyo, Hong Kong, Sydney, Asia and selected break windows.
The reference-level section can also display:
- previous-day high and low;
- previous-week high and low;
- daily open;
- pivot and M levels;
- average-range levels;
- Psy High and Psy Low;
- Fibonacci retracements.
These levels provide location context.
A condition occurring near a previous-day extreme may have a different context from the same condition occurring in the centre of the daily range.
## Step 9: Interpret condition markers carefully
The script contains optional markers based on combinations of:
- recent highs and lows;
- volume;
- candle bodies;
- wick ratios;
- moving-average distance;
- RSI thresholds;
- price extension.
Treat the markers as analytical filters.
Do not assume that names such as Stop Hunt, Stopping Volume or Liquidity Grab prove the presence of actual stop orders or institutional absorption.
They are OHLCV-based approximations.
Before using a marker, check:
- broader trend;
- external structure;
- internal structure;
- nearby LQ levels;
- active zones;
- session location;
- FVG or BPR location;
- candle-close confirmation.
## Step 10: Understand pivot delay
A confirmed pivot requires later candles.
When Pivot Strength is set to three, three bars to the right must complete before the earlier candle can be confirmed as a pivot.
The script may then place the marker or line on the original pivot candle.
This makes the historical chart easier to read, but the information was not available on the original pivot candle in real time.
The same principle applies to:
- liquidity lines;
- volume-confirmed pivot zones;
- structure pivots;
- dynamic Fibonacci anchors.
## Step 11: Use the outcome table as an observation tool
The table applies fixed target and stop distances to selected historical conditions.
It is useful for comparing how a condition behaved under one set of assumptions.
It is not a strategy backtest.
The table does not include commission, spread, slippage, realistic order fills, position sizing or portfolio equity.
Changing the symbol, timeframe, target, stop or signal filters can materially change the displayed results.
Do not interpret the historical percentage as a probability of future success.
## Step 12: Configure alerts
Select the condition in PulseWire’s alert menu.
For conditions based on the active candle, use Once Per Bar Close when confirmed alerts are required.
Without bar-close confirmation, a condition may trigger while the candle is developing and disappear before the candle closes.
Pivot-based divergence or structure conditions naturally occur later because they require right-side confirmation bars.
## Example reading sequence
A structured analysis could follow this order:
- Determine whether price is above or below the baseline and long-term averages.
- Identify the latest external and internal structure direction.
- Mark nearby LQ levels and volume-confirmed pivot zones.
- Check whether price is inside or near an FVG or BPR.
- Identify the active trading session and daily or weekly location.
- Observe whether a Pulse, Surge, Peak or exhaustion condition appears.
- Review any optional marker only after checking its location.
- Wait for candle-close confirmation where required.
- Apply independent risk and execution rules.
The indicator is most useful as a context framework. It should not replace independent analysis or risk management.
## Open-source attribution
Echo Vector is an independent derivative of open-source work associated with TradersReality and the Traders_Reality_Lib.
The supplied original source credits TradersReality, plasmapug, infernix, peshocore and xtech5192.
This publication is not affiliated with or endorsed by TradersReality or Pattern Watchers and is published under the Mozilla Public License 2.0.
Indicator

Indicator

Percentage Price Oscillator Navigator [MarkitTick]💡 A highly multi-dimensional momentum and trend-tracking suite. Rather than relying on singular data points, this comprehensive ecosystem fuses normalized momentum oscillators, dynamic volatility filters, and automated risk-management frameworks into a single, cohesive interface. Designed for meticulous market analysts, it provides a strictly confirmed, non-repainting environment to identify structural shifts, validate trend strength, and project actionable risk-to-reward parameters.
● ✨ Originality and Utility
Standard momentum oscillators often suffer from noise in ranging environments and fail to contextualize signals with prevailing market conditions. This tool distinguishes itself by integrating a robust "Smart Filter" engine directly into the core momentum calculation. By dynamically cross-referencing directional movement strength, average true range expansions, and volume surges, it ensures that momentum shifts are only validated when supported by underlying market participation. Furthermore, the inclusion of a fully automated, dynamic risk-to-reward leveling system transforms a traditional oscillator into a complete trade management overlay, complete with a real-time heads-up display dashboard and fully formatted JSON alert payloads for external automation.
● 🔬 Methodology and Concepts
The foundational logic relies on the proportional divergence between a faster and slower moving average, calculating the percentage difference to create a normalized oscillator. This normalization is critical as it allows for consistent momentum evaluation across diverse asset classes regardless of their nominal price value.
To prevent the common pitfall of reverse-engineering and to protect the underlying intellectual architecture, the internal mathematical sequences remain fully abstracted. The methodology employs a cascading verification process:
First, the core normalized divergence is measured against its own smoothed signal line to identify baseline directional shifts.
Second, a Multi-Timeframe (MTF) confirmation engine evaluates the macro trend. This utilizes a strict, offset historical data request architecture, ensuring zero future-data leakage or repainting artifacts.
Third, the Smart Filter engine evaluates atmospheric market conditions. It demands that background volatility, average directional strength, and volume participation meet minimum threshold requirements before validating any structural momentum shift.
Finally, the system utilizes strict bar-close confirmation logic. Signals are exclusively generated when the evaluation bar has permanently closed, ensuring unalterable historical accuracy.
● 🎨 Visual Guide
The visual interface is engineered to maximize data delivery while maintaining chart clarity.
• Oscillator Elements
PPO Line (Solid Blue): Represents the primary normalized momentum metric.
Signal Line (Solid Orange): A smoothed derivative of the primary momentum, acting as the baseline for crossover events.
Histogram Columns: Visualizes the spread between the PPO and Signal lines. Rising positive momentum is colored in solid teal, while weakening positive momentum fades to a transparent teal. Conversely, expanding negative momentum is solid red, fading to transparent red as bearish momentum wanes.
Zero Line (Gray): The equilibrium point delineating macro bullish versus bearish environments.
• Chart Overlay Elements
Heatmap Candles: The main chart candles are dynamically colored (Teal for positive momentum, Red for negative momentum) based directly on the histogram's state, instantly aligning price action with underlying momentum.
Signal Markers: Small, precise triangles appear at the exact bar of a confirmed momentum crossover (Teal triangle pointing up for bullish, Red pointing down for bearish).
Risk Management Levels: Upon a confirmed signal, the tool draws horizontal projections. The Stop Loss is a thick solid red line. The Entry is a dashed blue line. Take Profit targets (TP1, TP2, TP3) are plotted as dashed teal lines of varying opacity. Colored background fills visually represent the geometric risk and reward zones.
• Heads-Up Dashboard
A fixed tabular dashboard provides a real-time diagnostic readout of all internal states, including current momentum values, moving average gap percentages (visualized as a progress bar), higher-timeframe alignment, and the active positional status with exact level coordinates.
● 📖 How to Use
This tool is designed to act as a primary navigational compass for market structure. Traders should observe the histogram for early signs of momentum deceleration (indicated by fading column colors). A validated setup occurs when the primary momentum line crosses the signal line, strictly accompanied by a visual marker on the chart.
Because the system employs strict bar-close confirmation, traders must wait for the bar to finalize before interpreting a signal as valid. Once a signal fires, the risk management levels automatically project onto the chart. The user can utilize the "Lock Signal" feature to freeze these specific entry and exit levels on the chart, preventing the system from calculating subsequent, potentially conflicting signals while a trade is actively being managed. The comprehensive JSON alerts can be mapped directly to external execution platforms, utilizing the dynamically generated Entry, Stop Loss, and Take Profit price coordinates embedded within the payload.
● ⚙️ Inputs and Settings
The configuration panel is highly modular, categorized logically for precise tuning:
• Core
Defines the lookback periods for the fast, slow, and signal moving averages, as well as the calculation type (SMA or EMA) and the source price data.
• Filters
The gatekeeper settings. Users can toggle and tune the Higher Timeframe confirmation, ADX strength threshold, ATR volatility multiplier, and Volume moving average requirements. A histogram slope confirmation can also be activated to ensure structural momentum is moving in the correct direction.
• Trade Tools
Controls the geometric risk overlay. Users define the Stop Loss distance via an ATR multiplier and set precise Risk:Reward ratios for all three Take Profit targets. The "Lock Signal" toggle is located here, allowing users to freeze the active projection.
• Visuals & Dashboard
Comprehensive toggles to enable or disable specific UI elements such as the histogram, heatmap candles, chart signals, and the diagnostic dashboard, allowing for a fully customized workspace.
• Alerts
Input fields to define custom JSON action tags for integration with third-party webhooks, ensuring seamless connectivity with external systems.
● 🔍 Deconstruction of the Underlying Scientific and Academic Framework
The theoretical foundation of this evaluation suite rests on the synthesis of structural momentum analysis and statistical variance gating. In traditional financial modeling, momentum is frequently quantified as the first derivative of price relative to time. However, absolute price changes suffer from scalar distortion; a ten-point move in a high-valuation asset is mathematically insignificant compared to a ten-point move in a low-valuation asset. By utilizing a normalized percentage differential between dual moving averages, the tool mathematically standardizes momentum, allowing for robust, scale-invariant analysis.
Furthermore, the integration of the Smart Filter engine elevates the framework from simple linear smoothing to a multidimensional evaluation model. The inclusion of the Average Directional Index (ADX) introduces a non-directional vector strength requirement, ensuring that momentum shifts are occurring within an established trend environment rather than a stochastic mean-reversion chop. The Volatility filter, utilizing the Average True Range (ATR), acts as a statistical variance gate. It postulates that significant structural shifts require an expansion in price distribution variance; if a momentum crossover occurs during a period of localized volatility contraction, it is statistically more likely to be a false positive generated by noise rather than a genuine shift in market consensus.
Finally, the dynamic risk leveling system applies principles of geometric expectancy. By anchoring the invalidation point (Stop Loss) to the ATR, the system ensures that risk parameters are continuously adjusted to the current statistical distribution of price movement, rather than relying on arbitrary, static percentages. This creates a mathematically sound, expectancy-positive projection model that adapts fluidly to expanding and contracting market environments, enforcing a rigorous, quantitative approach to trade management.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Opening Range & Key Levels [AFD]Opening Range & Key Levels is an open-source Pine Script version 6
indicator for studying how price behaves around configurable opening ranges
and reference levels. It tracks up to five opening-range windows, optional key
levels, optional volume-weighted average price (VWAP) and volume-weighted
moving average (VWMA) context, and an optional dashboard.
The script is descriptive. It reports confirmed break/retest events and state
changes; it does not provide trade instructions, performance claims, or
probability estimates. Break/retest events use confirmed chart bars. The
developing range updates while its window is open, including the live forming
bar, and locks on the first confirmed bar at or after the configured window
end. The script uses current chart data only and contains no request.security()
calls.
Quick start
Default — Starts with the 60-minute Opening Range (OR) #4 selected, plus the default day/session levels.
Minimal — Starts with the 60-minute OR only; the preset suppresses key-level rows.
Full — Forces all five OR slots on. Key-level and VWAP visibility remains controlled by those inputs.
Custom — Uses the individual OR, key-level, VWAP, and other inputs for a custom layout.
The OR slot checkboxes remain usable with the Default and Minimal presets.
Switch to Custom when you want a preset-independent configuration.
Opening-range lifecycle
FORMING — The high and low update while the window is open, including the live forming bar, from the exchange-session open until the configured window ends.
LOCKED — The range freezes on the first confirmed bar at or after its window ends. Extension levels use the frozen range width.
BROKE UP or BROKE DOWN — A confirmed close must cross the OR high or low. A wick alone does not establish a break. Each direction is tracked once per session.
RETEST — Price entering the selected tolerance band is TESTING. HELD means a confirmed close returns beyond the broken level in the breakout direction. FAILED means a confirmed close returns inside the range.
EXTENSION — Optional 0.5x, 1.0x, 1.5x, and 2.0x measured-move projections are drawn from the locked longest enabled opening range. The 1.0x reached state is touch-based rather than close-based.
After a failed retest, the opposite breakout direction can be evaluated later
in the same session. The range engine records what happened; it does not turn
the state into a recommendation.
Theory labels and Auction Market Theory (AMT) context
A duration of exactly 15 minutes receives the Toby label, regardless of which OR slot contains it.
A duration of exactly 60 minutes receives the AMT Initial Balance (IB) label, regardless of which OR slot contains it.
The 60-minute row can add day-type context when the range is locked and valid: TREND up, TREND down, NEUTRAL DAY, or NORMAL DAY.
The AMT hover text explains the first hour as the Initial Balance. Inside the IB is described as Balance/Rotation, while one-side or both-side extensions provide the related day-type context.
Key levels
The script provides 17 standard key-level references plus an optional gap-fill
level. The abbreviations are grouped by the context they describe. Overnight
High (ONH) and Overnight Low (ONL) track the overnight session. Prior-day
references are Prior Day Open (PDO), Prior Day High (PDH), Prior Day Low (PDL),
and Prior Day Close (PDC). Current Session Open (OPEN) marks the current
session's open. Pre-Market High (PMH) and Pre-Market Low (PML) track the
pre-market extremes.
Prior Week High (PWH) and Prior Week Low (PWL), together with Current Week High
(CWH) and Current Week Low (CWL), provide weekly references. Prior Month High
(PMoH) and Prior Month Low (PMoL), together with Current Month High (CMoH) and
Current Month Low (CMoL), provide monthly references. GAP is the Price Gap /
Gap Fill level.
The GAP level appears only when the opening gap meets the configured minimum
percentage. It can be shown as a line or zone, with fill tracking.
Key levels support individual enable, color, style, width, label, and price
controls. Static key levels use the same confirmed-close break and average
true range (ATR)-based retest tolerance concepts as the opening ranges.
Current week/month extremes and GAP have their own data-state handling.
ONH, ONL, PMH, and PML need extended-hours (ETH) data. If overnight data is
unavailable, those levels are hidden. The dashboard specifically reports
missing ONH/ONL data when that condition is detected. Weekly and monthly
references are calendar-period trackers built from chart data; they are not
imported with request.security().
Dashboard
The dashboard is off by default. When enabled, its normal layout reads from
top to bottom as OR rows, BIAS (the range-position read), and broken key-level
rows.
OR rows separate BREAK, RETEST, TREND, and price/details cells so each status can use the correct color.
In Directional mode, a break up or TREND up is green, a break down or TREND down is red, RETEST HELD is green, RETEST FAILED is red, and RETEST TESTING is yellow.
Individual key-level rows show TREND as N/A because trend classification applies to the 60-minute AMT context, not to a single key level.
The BIAS row compares the current close with the longest enabled OR. Above OR is an imbalance above the range, below OR is an imbalance below the range, and INSIDE OR means Balance/Rotation.
The BIAS row can also include the opening-gap read, GAP fill information when GAP is enabled, and the intraday VWAP when it is enabled.
Neutral mode changes status text to neutral white or gray tones instead of directional colors.
Default visual settings
OR #4 is selected by default and is set to 60 minutes. OR #1, OR #2, OR #3, and the seconds OR are off by default.
All opening-range extensions are off by default.
The mid line, OR break/retest event labels, right-edge status tag, and dashboard are off by default.
Range boxes, OR/extension tags, and prices in OR tags are on by default.
Key-level break/retest event labels are off by default. The dashboard's broken key-level rows are a separate display option.
Breakout and retest controls
Retest tolerance supports Daily ATR, Intraday ATR, and Fixed Ticks. The default mode is Daily ATR with a 0.1 multiplier; Daily ATR uses a fixed 14-session RMA. Intraday ATR uses the configurable ATR length, defaulting to 14 bars.
The optional killzone filter suppresses breakout and retest processing inside a user-defined exchange-time window.
The optional OR width filter suppresses OR events when a locked range is outside configured multiples of daily ATR and marks it WIDTH FILTERED.
The optional volume confirmation compares breakout volume with a configurable multiple of the 20-bar average and can drive its own alert.
VWAP and VWMA
Intraday VWAP resets at the exchange-session open.
Overnight VWAP resets at the prior session close.
Continuous VWMA does not reset and uses a configurable length, defaulting to 20.
All three are optional and off by default.
Alerts
The script provides six Opening Range (OR) alert conditions and four key-level
(KL) alert conditions. All break and retest conditions describe confirmed
crossings or confirmed retest outcomes.
OR Break Up
OR Break Down
OR Retest Held
OR Retest Failed
OR Extension 1.0x Reached
OR Break Volume-Confirmed
KL Break Up
KL Break Down
KL Retest Held
KL Retest Failed
Dynamic alert text can include the symbol, OR duration, event, and price. To
receive dynamic messages, create an alert on this indicator and select Any
alert() function call. The fixed-text alert conditions remain available in
PulseWire's alert dialog.
How to use
Add Opening Range & Key Levels to a standard time-based chart and allow enough history for the selected session and reference levels.
Start with the Default preset, or switch to Minimal, Full, or Custom.
Choose the OR windows and key levels that match the session you are studying.
Select the retest tolerance that fits the instrument and timeframe.
Enable the dashboard, extensions, event labels, VWAPs, or key-level events only when those additional views are useful.
Create alerts from the indicator's fixed conditions or select Any alert() function call for dynamic alert text.
Limitations and disclosures
The script is single-timeframe. It does not import higher-timeframe values with request.security(). A 60-minute OR can still be built from smaller chart bars; the chart timeframe must be appropriate for the selected window.
The seconds OR slot requires a seconds chart, such as 30S or lower for a 30-second window. Larger timeframes show a timeframe warning instead of producing a false precision.
ONH, ONL, PMH, and PML depend on an extended-hours data feed. Twenty-four-hour markets without an exchange-session boundary may not provide the intended overnight segmentation.
The current-day close is not plotted during the session because it does not exist yet.
Drawing history and object counts are bounded by Pine limits. The source declares maximum budgets of 200 lines, 100 labels, and 50 boxes.
This is an informational chart tool. It does not provide entries, exits, stops, targets, or performance guarantees.
Originality and license
The script combines configurable multi-window opening ranges, confirmed-close
break/retest tracking for both opening ranges and key levels, AMT Initial
Balance context, and a dashboard with separate break, retest, trend, and bias
readouts in one single-timeframe indicator. The source is open and available
for inspection under the Mozilla Public License 2.0. Indicator

Session Micro-Structure Shift & Range Equilibrium RadarOverview and Purpose
The Session Micro-Structure Shift and Range Equilibrium Radar is an open source technical analysis indicator designed for intraday traders utilizing ICT and Smart Money Concepts (SMC). It automates the tracking of key trading sessions like Asia, London, and New York, measures range equilibrium, and filters for structural shifts combined with Fair Value Gap (FVG) retests.
How the Indicator Works and Mathematical Logic
1. Session Range and Equilibrium Computation:
The script plots distinct session ranges for Asia (20:00 to 00:00 UTC-4), London (02:00 to 06:00 UTC-4), and New York (08:00 to 12:00 UTC-4). For each active session, the 50 percent Equilibrium level is dynamically plotted using the average of session high and session low.
2. Liquidity Sweep Detection:
The algorithm continuously checks whether price sweeps the previous session high or low liquidity levels.
3. ATR Filtered Displacement and MSS Confirmation:
Following a sweep, a Micro-Structure Shift (MSS) is validated only when a displacement candle forms. Displacement is verified using a 14 period Average True Range filter where the candle body size exceeds 0.8 times the ATR value. The bar must close beyond the active session equilibrium line to mark a true MSS.
4. Fair Value Gap (FVG) Identification and Alert Engine:
When an MSS is confirmed, the script checks for a 3 candle imbalance and draws an active zone box. To avoid signal spam, exactly one alert per session is triggered when price taps into the FVG zone.
Trading Interpretation and Application
Valid Setup (FVG Tap):
When price sweeps a session extreme, confirms an MSS across the Equilibrium level, and retraces to tap the highlighted FVG zone, a valid trade setup occurs. Traders typically place stop losses at the recent swing low or high and target a minimum 1 to 2.5 Risk to Reward ratio.
Invalidated or Unfilled Setup (Missed FVG):
If price performs all required steps like sweep and MSS but fails to retest or tap the FVG box before expanding away, no alert triggers, and the setup is treated as unfilled to protect capital.
Disclaimer
This script is strictly for educational and chart analysis purposes. It does not provide financial advice or direct trading signals. Always manage risk responsibly and perform backtesting across your chosen trading pairs.
Indicator

Indicator

EonMetrics CISDCISD — Change In State of Delivery
CISD marks the moment the market's delivery flips. Price is "delivered" in one direction through a series of consecutive same-direction candles; the open of the first candle of that series is the delivery level. When a later candle closes back through that level, the state of delivery has changed — that close is the CISD. The level is then kept on the chart and tracked as support or resistance, with retest and invalidation handling.
🔶 HOW IT WORKS
The script counts consecutive same-direction candles (by candle body, by default). When such a series ends, the open of its FIRST candle is remembered as the delivery level, shown as a dotted pending line. When a later candle CLOSES through that level against the series direction, the CISD is confirmed — the level is drawn and tracked as support or resistance from that bar on.
🔶 HOW CISD DIFFERS FROM MSS / BOS
Structure tools (MSS, BOS, CHoCH) need a swing pivot: a high or low must form and be confirmed by candles on both sides before a break of it means anything. CISD needs no pivot at all — the reference level comes straight from the candle series itself (the open of the first candle of the last delivery leg). That is why a CISD typically confirms earlier than a structure shift: the close through the series origin often prints several bars before the equivalent MSS. Earlier also means less filtered — CISD is a faster, more granular read of the same idea, not a replacement for structure.
🔶 WHAT IT DOES
Series detection — counts consecutive same-direction candles (direction by candle body, or optionally close-vs-previous-close). A series qualifies as delivery once it reaches the minimum length you set. A doji can either ride the series or end it — your choice.
Pending level (dotted) — as soon as a qualifying series ends, the open of its first candle becomes the candidate level, drawn as a dotted line. This is where the next CISD would confirm. Nothing is signaled yet — the line just shows you what the market has to close through.
Confirmed CISD (solid) — when a candle closes through the pending level, the level turns solid, gets its CISD label, and starts being tracked: bullish CISD levels act as support, bearish as resistance.
Level lifecycle — an active level extends bar by bar. When price fully leaves it and later returns to touch it, that touch is marked as a retest (wick-based). When a candle closes back through the level, it is invalidated — removed, or kept dimmed on the chart if you prefer to study failures. An optional lifetime cap quietly expires old levels.
Current delivery state — an optional floating label shows the running series direction and its candle count (e.g. "Bearish x4").
🔶 NON-REPAINTING
The entire engine advances on confirmed bars only. Nothing is drawn, moved or deleted intrabar: a pending level appears only after its series is complete, a CISD confirms only on a closed candle, and retests/breaks are evaluated on closed candles. What you see on a historical chart is exactly what you would have seen live.
🔶 ALERTS
Six alert conditions: bullish/bearish CISD confirmed, bullish/bearish level retested, bullish/bearish level broken.
🔶 HOW TO USE
1. Keep Min Series Length at 2 for a responsive read, raise to 3-4 to only mark the strongest delivery legs.
2. Watch the dotted pending line — it tells you in advance which level a close has to take out for delivery to flip.
3. After a confirmed CISD, the level itself is the tradeable information: bullish CISD levels tend to act as support on the retest, bearish as resistance.
4. Set alerts on confirmations and retests instead of watching the chart.
🔶 SETTINGS
Detection (min series length, candle direction mode, doji handling) · Levels (max active per side, lifetime, keep broken, retest markers, pending line) · Style (colors, line width, label size, delivery-state label).
This tool annotates delivery levels. It does not predict direction, does not generate entries and has no targets — what you do at a level is your decision.
Part of the EonMetrics toolset.
Indicator

Intraday Liquidity Sessions [dpTrades]Intraday Liquidity Sessions
WHAT IT IS
An intraday view of session liquidity. It draws the New York, London and Tokyo sessions, and
adds an analytics layer that plain session tools do not have: it marks when a session runs the
liquidity left by its own previous instance, and reports whether each session is expanding or
compressing relative to its own recent behaviour. "Liquidity" here means the session highs and
lows that resting orders sit against, not a volume heatmap.
WHY THESE COMPONENTS BELONG TOGETHER
Session boxes on their own only tell you when a session happened. The information a trader
actually needs is what that session is doing relative to what the same session normally does,
and whether it has taken out the level the previous one left behind. Those two readings are
only meaningful in the context of the session they belong to, which is why the drawing layer
and the analytics layer are one script rather than two: the ranges, the averages and the sweep
detection are all computed from the same per-session state.
METHOD
Each session is tracked independently, with its own state:
- Range tracking: while a session is open, the script keeps its running high and low, and the
price at which the session opened.
- Previous-instance memory: when a session closes, its high and low are stored as the reference
for the next instance of that same session.
- Rolling average: the range of each completed session is folded into a rolling average over a
configurable number of past instances (default 20). The current session's range against that
average is what classifies it as expanding or compressing. The comparison is always a session
against itself, never against another, since Tokyo and New York are not comparable in size.
- Directional bias: measured as the current close against the session's own opening price.
- Liquidity sweep: while a session is open, price is checked against the high and the low left
by the previous instance of that same session. When it trades through one of them, the event
is marked on the chart and flagged in the table.
Session hours are timezone-aware, so the windows stay correct regardless of the exchange
timezone of the charted symbol.
HOW TO USE IT
Read the table first. A session opening expanded versus its own average usually means
participation is above normal; a compressed one often precedes a range. The bias column shows
which way that session has leaned since its open. The sweep marker tells you the previous
session's liquidity has already been taken, which is context rather than a signal.
Sessions, hours, colours and drawing style are configurable. The default set is New York,
London and Tokyo in New York time, each shown in its own colour so they are easy to tell apart.
LIMITATIONS
- Intraday timeframes only. On daily and above there are no session windows to resolve.
- While a session is still open its range, bias and stats update in real time as price moves.
They are final only once the session closes.
- The rolling average needs several completed sessions before expanding or compressing means
anything. Early in the chart history it will be unreliable.
- A liquidity sweep describes what already happened, not a prediction. It marks that a level was
taken, nothing more.
- This is a context tool. It produces no entries, no exits and no buy or sell signals.
Educational content only. Not financial advice. Trade at your own risk. Indicator

Indicator

Dynamic Market Metrics [MarkitTick]💡 All-in-one market analysis suite designed to unify trend evaluation, momentum measurement, and dynamic risk management into a single, cohesive interface. Rather than relying on a scattered array of disparate indicators, this unified system synthesizes multiple dimensions of market data—including volatility, money flow, and higher-timeframe confluence—to provide a comprehensive structural overview of the current asset. It visually maps trend direction, plots actionable trade risk levels, and features a real-time heads-up display (HUD) dashboard to track critical market internals without cluttering the charting workspace.
● Overview
✨ Originality and Utility
Traditional technical analysis often forces traders to compromise between lagging trend followers and noisy momentum oscillators. This script solves that divergence by integrating an adaptive trend baseline with volume-weighted momentum constraints. It is unique in its ability to automatically map forward-looking risk-to-reward brackets the moment a structural shift is confirmed. Instead of guessing where to place stops and targets, the system calculates these thresholds dynamically based on real-time volatility, offering a strictly objective framework for trade management. This eliminates the need for messy chart mashups, replacing them with a highly organized, singular logic engine.
🔬 Methodology and Concepts
The core engine of this tool operates on an abstracted synthesis of price volatility and money flow dynamics.
The primary trend anchor is established by evaluating average true price ranges against the flow of capital entering or exiting the asset.
Rather than relying on simple price crosses, the baseline only shifts when confirmed by underlying volume and momentum pressures.
A specialized breakout override mechanism constantly monitors for abnormal momentum spikes. If a sudden surge in directional velocity exceeds the baseline volatility threshold, the system immediately recalculates the trend state to adapt to the new market structure.
Trade levels are generated using a dynamic risk parity model. The system measures the precise distance between the confirmed entry trigger and the structural invalidation point, projecting synchronized target tiers that maintain strict mathematical risk-to-reward ratios.
All higher-timeframe data integration is strictly coded using offset historical referencing, ensuring absolute data integrity and preventing any future leakage or repainting artifacts.
🎨 Visual Guide
The script utilizes a clean, professional aesthetic, heavily reliant on dynamic colors and structured dashboard elements.
• The Trend Anchor and Cloud
Trend Line: A distinct, segmented line that tracks the primary market direction. It colors dynamically based on the active state (Bullish, Bearish, or Neutral).
Dynamic Cloud: A semi-transparent filled area bridging the primary trend line and a smoothed reference baseline. The thickness of this cloud visually represents the immediate strength and momentum of the trend.
Candle Coloring: Chart candles are painted to match the active trend state, providing instant visual alignment with the underlying engine.
• Trade Levels and Signals
Signal Markers: Minimalist labels appear above or below the price action to indicate confirmed structural shifts.
Stop Loss (SL) Line: A solid line representing the exact invalidation point of the active trend.
Entry Line: A dashed line marking the exact price where the signal was confirmed.
Take Profit (TP) Lines: A series of three dashed lines representing incremental target zones.
Risk/Reward Fills: Shaded background zones visually map the risk area (Entry to SL) against the reward area (Entry to TP3), allowing for immediate visual risk assessment.
• The HUD Dashboard
Located in the top right corner, this data table provides a real-time read of market internals:
Trend State & HTF Context: Displays the current directional bias on both the local and higher timeframes.
Entry, Target, and SL: Prints the exact numerical values for the active trade parameters.
Momentum & Money Flow: Visual progress bars indicating the current intensity of price movement and capital flow.
Volatility: Indicates whether the market is currently in a state of expansion or contraction.
Trend Age: A counter showing exactly how many bars have elapsed since the current trend began.
📖 How to Use
The system is designed to be highly objective. Monitor the chart for a confirmed signal marker, which indicates a shift in the underlying structural trend. Once a signal fires, the script will automatically render the Entry, Stop Loss, and Take Profit levels.
Validation: Before considering the signal, check the HUD Dashboard. A high Momentum score and an aligned Higher Timeframe (HTF) Context significantly increase the probability of continuation.
Execution: Use the exact printed Entry line for placement. The Stop Loss line dictates the hard invalidation point where the premise of the trend is broken.
Management: As price moves in the anticipated direction, manage the position by scaling out or moving protective stops as the asset crosses the TP1, TP2, and TP3 thresholds.
Breakouts: If a sudden momentum burst triggers an override, the trend state will flip immediately. Treat these as aggressive volatility expansions that require tighter risk management.
⚙️ Inputs and Settings
The settings panel is modularized for precise user control:
• Core & Breakout
ATR Mult & Length: Adjusts the core sensitivity of the volatility engine. Lower values create a tighter, more reactive baseline.
BO Override & Sens: Toggles the momentum breakout detection and dictates how much abnormal velocity is required to override the primary trend.
• Higher Timeframe (HTF)
Show HTF & TF: Enables the integration of a secondary, longer-term timeframe to act as a directional filter.
• Trade Tools & Cloud
Show Trade Levels: Toggles the rendering of the dynamic Entry, SL, and TP lines.
Cloud Settings: Controls the length, transparency, and rendering of the visual trend cloud and candle coloring.
• Alerts & Colors
JSON Action Strings: Allows users to input custom formatted strings for Long, Short, and Close actions, perfectly integrating with automated third-party execution platforms.
Colors: Fully customizable palettes for all lines, fills, dashboards, and signal markers.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The architectural foundation of this system rests on auction market theory and the statistical properties of volatility clustering. Financial markets operate through continuous auctions where price discovery is driven by the aggressive absorption of resting liquidity. This engine abstracts that process by measuring the standard deviation of price excursions—quantifying the asset's true range—and mapping it against the directional flow of capital.
By analyzing the divergence between pure price action and volume-weighted accumulation, the system identifies the true mean of value. When price deviates beyond these statistical bounds accompanied by extreme momentum, it signals a structural paradigm shift rather than a standard mean-reversion event. Furthermore, the embedded risk parity model abandons static numerical thresholds in favor of dynamic proportional scaling. The reward brackets are continuously mathematically linked to the localized volatility of the anchor point, ensuring that the risk-to-reward distribution remains statistically constant regardless of the asset's current expansion or contraction phase.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Time Price Opportunity Gravity Grid [ALT_analyst]Time Price Opportunity Gravity Grid
■ Description
This script executes a strictly quantified market structure analysis by integrating Time Price Opportunity (TPO) profiling, dynamic Value Area (70%) boundaries, POC Migration matrices, and Z-Score volatility anomaly detection.
By overriding standard OHLC data limitations via lower-timeframe data injection (request.security_lower_tf), it constructs an uncompromisingly high-resolution price-density profile. Trend definitions and signal thresholds are stripped of subjective bias, executing purely on the spatial shift of accepted value and mathematical volatility expansion.
■ Core Architecture & Mechanical Edge
The algorithm mandates the simultaneous confluence of three independent mathematical variables. This relentless confluence acts as a strict mechanical filter, systematically rejecting ranging environments and isolating only mathematically significant structural shifts.
1. Value Area Calculation (70% Auction Density)
Mechanics:
Computes the absolute TPO block count per session, isolating the exact price range containing 70% of execution density (approximating 1 standard deviation).
Expansion originates strictly from the POC (maximum density node) and iteratively absorbs adjacent price rows based on relative volume weight, capturing the absolute center of the market auction.
Visualization:
Deployed as modern, semi-transparent filled boxes (Value Area Box) to eliminate visual noise, obsoleting legacy dashed-line renderings.
Application:
Price action within the Value Area is mathematically defined as balance.
A confirmed close outside this boundary signals structural imbalance. To mathematically neutralize low-volume fakeouts, breakouts are strictly invalidated unless simultaneously confirmed by both POC Migration and Volatility expansion.
2. POC Migration (Structural Trend)
Mechanics:
Evaluates the spatial shift of accepted value across consecutive sessions using a discrete step-function.
// Bullish Migration (+1):
Current_POC > Previous_POC and Current_VAL > Previous_VAL
// Bearish Migration (-1):
Current_POC < Previous_POC and Current_VAH < Previous_VAH
Application:
By demanding the simultaneous directional shift of both the peak density (POC) and the boundary floor/ceiling (VAL/VAH), the script verifies that the core market consensus has definitively relocated.
3. Volatility Z-Score (Anomaly Detection)
Mechanics & Equation:
Z_Score = (ATR(14) - SMA(ATR(14), 100)) / StDev(ATR(14), 100)
Calculation Rationale:
To measure exactly how many standard deviations the current volatility deviates from its 100-period baseline, standardizing volatility spikes across all asset classes regardless of absolute price.
Expected Output Example:
If current ATR is 1.5, 100-period mean is 1.0, and standard deviation is 0.2, the Z-Score outputs 2.5 (+2.5 standard deviations above the mean).
Application:
A Z-Score strictly > 2.0 flags a statistical outlier (top ~2.2% of historical occurrences). The algorithm enforces this threshold to ensure breakouts are driven by aggressive, statistically significant kinetic expansion, rejecting market noise.
4. Gaussian Liquidity Grid Distortion
Mechanics & Equation:
Pull_Factor = Math.exp(-(Distance_Y^2) / (2 * Pull_Radius^2))
Calculation Rationale:
Utilizes a Gaussian decay function to translate historical price congestion into a gravitational pull on the background grid, mathematically quantifying market memory.
Expected Output Example:
If price is 100 ticks away with a radius of 200, the function outputs a multiplier of ~0.882, pulling the visual grid line 88.2% closer to the price center.
Application:
Distorted grid zones visually map historical liquidity pools (high probability of deceleration/mean reversion). Smooth grids indicate liquidity vacuums for rapid price discovery.
■ Signal Execution Rules
Signals execute ONLY upon total alignment:
Long Entry: Close strictly > active POC, Structural Trend = +1, Z-Score > 2.0.
Short Entry: Close strictly < active POC, Structural Trend = -1, Z-Score > 2.0.
Risk Management: Invalidations must mathematically reside outside the active Value Area (below VAL for longs, above VAH for shorts).
Disclaimer
This script provides objective mathematical analysis for educational purposes. It does not constitute financial advice.
Indicator

Auto Target Pro◆➤OVERVIEW
Auto Target Pro v6 is a professional PulseWire indicator designed to help traders manage entries, stop loss, and profit targets with a structured approach.
The indicator combines trend analysis, volatility measurement, and risk-based target calculation to provide a complete trade management system directly on the chart.
Auto Target Pro helps traders visualize potential entry points, risk levels, and multiple profit targets without manually calculating every level.
◆➤FEATURES
• Automatic BUY and SELL signals
• Dynamic Entry price calculation
• ATR-based Stop Loss system
• Automatic TP1, TP2, and TP3 levels
• Risk-to-Reward based target projection
• Real-time trade management
• Visual Entry, Stop Loss, and Target lines
• Target hit detection system
• Professional dashboard display
• Alert support for signals and targets
• Works on Forex, Crypto, Stocks, Indices, and Commodities
• Designed for scalping, intraday, and swing trading
◆➤HOW IT WORKS
Auto Target Pro uses a combination of trend structure and volatility analysis.
The system identifies market direction using trend calculations and detects potential trading opportunities.
After a signal appears:
◆➤BUY Setup:
Entry price is calculated automatically
Stop Loss is placed using market volatility
TP1, TP2, and TP3 are calculated based on risk distance
◆➤SELL Setup:
Entry price is calculated automatically
Stop Loss is adjusted according to bearish conditions
Multiple profit targets are displayed automatically
The target levels are dynamic and adapt according to current market conditions.
◆➤HOW TO USE
Add Auto Target Pro v6 to your PulseWire chart.
Select your preferred timeframe according to your trading style:
Scalping: 1m, 5m, 15m
Intraday: 30m, 1H
Swing Trading: 4H, Daily
Wait for BUY or SELL confirmation.
Use the displayed levels:
Entry = Trade activation area
SL = Risk protection level
TP1 = First profit target
TP2 = Second profit target
TP3 = Final target area
Always combine signals with proper risk management and your own market analysis.
◆➤IMPORTANT NOTE
Auto Target Pro is a technical analysis tool created to assist traders in decision-making. No indicator can guarantee future market results. Always use proper risk management before entering any trade. Indicator

Auto Target Pro◆➤OVERVIEW
Auto Target Pro v6 is a professional PulseWire indicator designed to help traders manage entries, stop loss, and profit targets with a structured approach.
The indicator combines trend analysis, volatility measurement, and risk-based target calculation to provide a complete trade management system directly on the chart.
Auto Target Pro helps traders visualize potential entry points, risk levels, and multiple profit targets without manually calculating every level.
◆➤FEATURES
• Automatic BUY and SELL signals
• Dynamic Entry price calculation
• ATR-based Stop Loss system
• Automatic TP1, TP2, and TP3 levels
• Risk-to-Reward based target projection
• Real-time trade management
• Visual Entry, Stop Loss, and Target lines
• Target hit detection system
• Professional dashboard display
• Alert support for signals and targets
• Works on Forex, Crypto, Stocks, Indices, and Commodities
• Designed for scalping, intraday, and swing trading
◆➤HOW IT WORKS
Auto Target Pro uses a combination of trend structure and volatility analysis.
The system identifies market direction using trend calculations and detects potential trading opportunities.
After a signal appears:
◆➤BUY Setup:
Entry price is calculated automatically
Stop Loss is placed using market volatility
TP1, TP2, and TP3 are calculated based on risk distance
◆➤SELL Setup:
Entry price is calculated automatically
Stop Loss is adjusted according to bearish conditions
Multiple profit targets are displayed automatically
The target levels are dynamic and adapt according to current market conditions.
◆➤HOW TO USE
Add Auto Target Pro v6 to your PulseWire chart.
Select your preferred timeframe according to your trading style:
Scalping: 1m, 5m, 15m
Intraday: 30m, 1H
Swing Trading: 4H, Daily
Wait for BUY or SELL confirmation.
Use the displayed levels:
Entry = Trade activation area
SL = Risk protection level
TP1 = First profit target
TP2 = Second profit target
TP3 = Final target area
Always combine signals with proper risk management and your own market analysis.
◆➤IMPORTANT NOTE
Auto Target Pro is a technical analysis tool created to assist traders in decision-making. No indicator can guarantee future market results. Always use proper risk management before entering any trade. Indicator

Indicator

W-X-Y Pattern Auto Targets Pro [JPT]🔷 OVERVIEW
W-X-Y Pattern Auto Targets Pro is an educational price action indicator that automatically detects potential W-X-Y reversal structures using confirmed swing points. When a valid setup is identified, the indicator displays a complete trade framework including an Entry level, Stop Loss, and multiple Take Profit targets.
The indicator is designed to help traders visualize market structure and practice trade planning. It does not predict future price movement or guarantee profitable trades.
🔷 FEATURES
Automatic W-X-Y pattern detection
Bullish and bearish setups
Entry, Stop Loss, TP1, TP2, and TP3 levels
Risk/Reward visualization
EMA 50 & EMA 200 trend filter
Confirmed swing-based structure
Optional alerts for new setups
Clean chart layout with minimal clutter
🔷 HOW IT WORKS
Detects confirmed swing highs and swing lows.
Identifies potential W-X-Y reversal formations.
Applies the optional EMA trend filter for additional market context.
Calculates Entry, Stop Loss, and Take Profit levels based on the detected structure.
Draws the setup directly on the chart for easy analysis
🔷 HOW TO USE
Look for newly detected W-X-Y patterns.
Review the market structure and overall trend before making any trading decisions.
Use the displayed Entry, Stop Loss, and Take Profit levels as a reference for planning trades.
Consider combining this indicator with your own confirmation methods and risk management rules.
🔷 NOTES
Signals are generated from historical and confirmed price structure.
The indicator is intended as an educational and analytical tool.
No indicator can guarantee successful trades, and this script should not be used as the sole
basis for investment or trading decisions.
If you find this project useful your feedback and suggestions are always appreciated Happy trading! Indicator

Session Seasonality Deviation [MarkitTick]💡 A highly advanced analytical framework meticulously engineered to quantify, measure, and visualize volatility anomalies within specific, localized trading windows. By programmatically isolating price action strictly to predefined market hours—such as the London or New York opens—this tool establishes an objective statistical baseline of expected market movement based exclusively on historical day-of-the-week performance data. Rather than relying on lagging continuous averages, this mathematical model detects the precise moment a market transitions from baseline activity into statistically significant expansion or compression, providing an objective lens through which to view true price dynamics.
● ✨ Originality and Utility
Traditional volatility metrics and bands typically analyze continuous price data streams, inadvertently blending distinct, structurally different trading periods into a single, homogenized moving average. This generalized approach inherently degrades the accuracy of volatility forecasting. The core utility of the SSD indicator lies in its targeted isolation of distinct market sessions, mathematically acknowledging the reality that a Tuesday London session behaves with entirely different liquidity parameters than a Friday New York session.
By creating an isolated historical distribution for each specific day of the week, this tool offers a highly accurate, predictive baseline for expected volatility that adapts to the calendar. Furthermore, the integration of structural price action filters ensures that these statistical anomalies are always correlated with actual market mechanics, elevating the tool beyond simple moving average bands and providing a robust, multidimensional analysis of market intent.
● 🔬 Methodology and Concepts
This script operates on a sophisticated confluence of statistical profiling and structural market analysis, creating an unyielding logic engine designed to filter market noise.
Time-Series Stratification: The underlying logic initiates by isolating raw price data exclusively within a user-defined temporal window. It captures the extreme upper and lower boundaries of this session, establishing the true operational range and discarding irrelevant data from inactive hours.
Day-of-Week (DOW) Seasonality Profiling: Rather than utilizing a generic rolling lookback of consecutive calendar days, the algorithmic engine stores and categorizes historical session ranges based on the specific day of the week. It builds an independent, localized statistical distribution for each day, calculating the mean average range and the variance of those specific historical instances.
Standardized Deviation (Z-Score) Engine: The primary mathematical trigger relies on a rigorous Z-Score calculation. It compares the current session's confirmed range against the historical DOW average, divided by the established standard deviation. This quantifies exactly how far the current volatility deviates from the empirical historical norm.
Structural Confluence and Market Character: To prevent the system from acting on anomalous volatility that lacks definitive directional intent, the logic engine requires a structural confirmation. It evaluates recent high and low boundaries, demanding that the closing price breaches these structural bounds to validate the statistical signal and confirm a genuine shift in market character.
● 🎨 Visual Guide
The visual interface is precision-engineered for rapid cognitive interpretation of complex statistical states, designed to relay critical data without cluttering the charting canvas.
Dynamic Heatmap Candles: The primary price action is overlaid with a responsive heatmap. Candlesticks are colored dynamically to reflect the internal bias of the active session, providing an immediate visual cue of the dominant buying or selling pressure.
Average Range Bounds: Subtle, non-intrusive bracketing lines are plotted symmetrically around the session open, projecting the historical average range. This creates a visual baseline for expected session expansion, allowing the user to see when price escapes the statistical norm.
Actionable Trade Levels: Upon the generation of a confirmed signal, the tool plots projected Entry, Stop Loss, and multiple Take Profit coordinates. Chart labels are meticulously configured to display raw value strings without percentage signs, ensuring a clean, distraction-free presentation of critical price levels.
Analytical Heads-Up Dashboard: A sophisticated data table is rendered on the chart, centralizing key real-time metrics. It details the active session, current directional bias, real-time Z-Score, Sample Size validity, and structural state. The dashboard is explicitly designed to display a matching, comprehensive evaluation of both long and short transaction outcomes, ensuring a perfectly balanced view of all potential market trajectories.
● 📖 How to Use
Interpreting the output of this tool requires a methodical, step-by-step approach, focusing heavily on the intersection of statistical deviation and structural shifts.
Monitor the on-chart dashboard for the Z-Score to definitively exceed the user-defined deviation threshold, which serves as the primary indicator of a statistically significant expansion in volatility.
Verify the directional bias of the current session using the Heatmap Candles and ensure this localized momentum aligns with the broader, macro market structure.
Wait for a confirmed structural breach signal that perfectly matches the directional bias of the initial statistical deviation, ensuring momentum is backed by actual price displacement.
Utilize the automatically plotted Trade Action Levels for strict risk management. The Stop Loss is dynamically calculated based on historical variance, and Take Profit levels offer scaled, mathematically logical target zones.
Exercise extreme caution and avoid executing signals during periods of severe price compression, or when the dashboard indicates that the sample size of historical data is insufficient to form a mathematically reliable statistical distribution.
● ⚙️ Inputs and Settings
The configuration panel is categorized logically to allow for the precise, modular tuning of both the statistical engine and the visual outputs.
Core Settings: Select the target session (Asia, London, New York) and define the lookback period for the seasonality model. Adjust the precise Deviation Threshold (Z-Score limit) to control the strictness and sensitivity of the generated signals.
Filters: Toggle specific confirmation layers, including the minimum required historical sample size, minimum expansion criteria, and specific structural requirements necessary to validate a move.
Trade Tools: Calibrate the multiplier values for the dynamically calculated Stop Loss and Take Profit levels, allowing the user to seamlessly align the tool with their individual risk parameters and payout models.
Visuals and Dashboard: Customize the display properties of the heatmap candles, the average range bands, and the spatial positioning of the analytical dashboard to suit personal workspace preferences.
● 🔍 Deconstruction of the Underlying Scientific and Academic Framework
The theoretical foundation of this analytical tool is deeply rooted in advanced Quantitative Finance, specifically drawing upon the established principles of Volatility Clustering and the Day-of-the-Week Anomaly. Academic literature frequently notes that financial markets exhibit leptokurtic distributions, wherein volatility is not a constant force but rather clusters densely in specific, predictable temporal windows. By employing a variance measurement technique akin to Standardized Moments, the script effectively normalizes session volatility.
This process allows the underlying algorithm to objectively classify current price action relative to an empirical baseline, entirely removing subjective human bias from the equation. Furthermore, the integration of structural pivot analysis introduces a deterministic filter to an otherwise probabilistic model. This synthesis ensures that statistical outliers are only deemed actionable when they are accompanied by a verifiable, measurable shift in the underlying supply and demand equilibrium.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

RSI Multi Levels Pro (JPT)🔹 OVERVIEW
RSI Multi Levels Pro (JPT) is an enhanced Relative Strength Index (RSI) indicator that expands the traditional 70/30 approach by introducing multiple configurable RSI levels to help traders observe momentum shifts and potential reversal areas.
Instead of relying on a single overbought or oversold threshold, the indicator displays several RSI zones, allowing users to monitor how momentum develops as price moves through different strength levels.
The indicator also highlights potential exhaustion areas using optional visual markers when RSI reaches user-defined extreme level
🔹 HOW IT WORKS
The indicator calculates the standard RSI using a configurable period and plots it against multiple horizontal reference levels.
As RSI moves through these levels, traders can observe changes in market momentum and identify areas where price may begin slowing, reversing, or continuing its current move.
Optional markers are displayed when RSI reaches predefined upper or lower threshold values, helping users quickly identify extreme momentum conditions.
🔹 MULTI-LEVEL RSI STRUCTURE
Unlike a traditional RSI with only two reference levels, RSI ML Pro provides multiple zones including:
// RSI Levels
lvl90 = input.int(90, "Level 90")
lvl80 = input.int(80, "Level 80")
lvl70 = input.int(70, "Level 70")
lvl60 = input.int(60, "Level 60")
lvl50 = input.int(50, "Level 50")
lvl40 = input.int(40, "Level 40")
lvl30 = input.int(30, "Level 30")
lvl20 = input.int(20, "Level 20")
lvl10 = input.int(10, "Level 10")
These levels can help distinguish between moderate momentum and more extreme market conditions.
🔹 VISUAL FEATURES
• Standard RSI Line
• Configurable Multi-Level Reference Lines
• Upper Momentum Markers
• Lower Momentum Markers
• Customizable Colors
• Adjustable RSI Length
• Clean and Lightweight Display
• Compatible with Dark and Light Chart Themes
🔹 INDICATOR INPUTS
The indicator includes several customization options:
RSI Length
Adjust the RSI calculation period.
Reference Levels
Configure upper and lower RSI levels to match your trading style.
Signal Markers
Enable or disable momentum markers.
Colors
Customize the appearance of the RSI line, levels, and markers.
🔹 HOW TO USE
A common workflow is:
Observe the overall RSI trend.
Monitor how RSI reacts around the configured reference levels.
Watch for momentum markers when RSI reaches extreme values.
Combine RSI observations with your own price action or market structure analysis before making trading decisions.
🔹 SUITABLE MARKETS
RSI ML Pro can be used on:
• Forex
• Cryptocurrency
• Stocks
• Indices
• Commodities
• Gold
The indicator is designed to work across multiple timeframes depending on the user's trading approach.
🔹 COMBINING WITH OTHER TOOLS
Many traders choose to combine RSI ML Pro with other forms of technical analysis such as:
• Trend Analysis
• Support and Resistance
• Moving Averages
• Market Structure
• Volume Analysis
• Supply and Demand Zones
Using multiple forms of analysis may provide additional market context.
🔹 NOTES
RSI measures momentum and should not be interpreted as a standalone buy or sell signal. Strong trends can remain in higher or lower RSI regions for extended periods.
This indicator is intended as a technical analysis tool and should be used alongside appropriate risk management and independent market analysis. Indicator

Market Regime Engine [NQ Labs] WHAT THIS ANSWERS
Almost every indicator tells you WHAT the market is doing. Very few tell you
whether the current market has enough exploitable structure to be worth
risking money on at all. The Market Regime Engine is built for that second
question: should I be trading this right now, and if so, what style of
approach do current conditions actually favour?
It is not a signal generator. It produces no entries. It is a filter you run
underneath whatever you already trade.
WHY IT IS BUILT THIS WAY
Two design decisions separate this from a conventional regime or trend filter.
1. EVERY AXIS IS PERCENTILE-RANKED AGAINST ITS OWN HISTORY.
Most regime tools use fixed thresholds - an ADX of 25, an ATR multiplier of 3.
Those numbers are calibrated to whatever the author tested on. They are the
reason a tool behaves sensibly on one instrument and nonsensically on the
next. Here, each axis is ranked against its own recent distribution on the
current symbol and timeframe, so a 65th-percentile reading carries the same
meaning on a crypto pair as it does on an FX major. Nothing needs retuning
per market.
2. THE THREE AXES ARE ORTHOGONAL BY DESIGN.
Many "confluence" tools stack three views of momentum and present the
agreement as confirmation. Correlated inputs agreeing is not evidence. These
three measure genuinely different properties:
DIRECTIONAL EFFICIENCY - net distance travelled divided by the total path
walked to get there. A value near 1 is a straight line. A value near 0 means
price ended where it started after a great deal of work. This is the most
direct available answer to "is there a trend here", and it is independent of
direction.
VOLATILITY STATE - ATR ranked against its own history. Not "is volatility
high" in absolute terms, but "is volatility high for this instrument".
RETURN PERSISTENCE - lag-1 autocorrelation of log returns. Positive means an
up bar tends to be followed by an up bar, so momentum approaches have
something to work with. Negative means the market reverts. Near zero means
returns carry no usable memory.
THE SCORING LOGIC
The Tradeability Score (0-100) rests on one idea:
Efficiency is the signal. Volatility is the cost of being wrong.
Volatility only hurts you when there is no direction to exploit.
So the noise penalty is the product of how little direction exists and how
violent the market is. It approaches zero inside a strong trend no matter how
wild conditions get - because volatility inside a trend is opportunity, not
noise - and it peaks precisely where traders are most reliably ground down:
low efficiency combined with high volatility. That specific combination is
what the engine exists to flag.
THE FIVE REGIMES
TREND Efficiency high. Directional. Follow it.
VOLATILE CHOP Efficiency low, volatility high. No direction, maximum cost
of being wrong. The state that does the damage.
COIL Efficiency low, volatility low. Compression. Wait.
RANGE Efficiency low, volatility middling. Edges are tradeable.
TRANSITION Efficiency mid-range. No clean read. Reduce size.
A raw regime read must hold for a configurable number of consecutive bars
before it is confirmed. Without that filter, readings that straddle a
threshold flip back and forth for single bars.
REGIME MATURITY - THE PART I HAVE NOT SEEN ELSEWHERE
The engine records the length of every completed regime run on the current
chart and reports the current run against that learned baseline, together with
the sample size behind it.
A trend at 0.3x its typical duration and a trend at 2.4x are not the same
trade, even though every conventional indicator prints the identical reading
for both. A compression that has lasted three times longer than compressions
normally last on this instrument is a different proposition to one that
started six bars ago.
The sample size (n=) is shown deliberately. Below the configured threshold the
cell dims, because a baseline built from two observations is not evidence and
should not be dressed up as though it were.
HOW TO USE IT
The engine is a gate, not a trigger. The intended workflow:
1. Read the Verdict first. STAND DOWN means your edge, whatever it is, is
probably not present. The most valuable output of this tool is the trades
it talks you out of.
2. Read the Regime and Favoured Style. Trend-following systems belong in
TREND. Mean-reversion belongs in RANGE, and only when Persistence confirms
the market is actually reverting rather than merely quiet. COIL means the
setup has not arrived yet. VOLATILE CHOP means nothing you own works here.
3. Read Persistence before choosing an approach. If it reads Random, the
market has no memory to exploit in either direction, and both momentum and
mean-reversion are coin flips.
4. Use vs Typical for position management, not entry. An extended regime is
not a reversal signal. It is a reason to stop adding and to tighten what
you already hold.
5. Let the ribbon and score do the work on the price chart. The dashboard can
be forced onto the main pane so the engine occupies a pane without costing
you chart real estate.
SETTINGS THAT ACTUALLY MATTER
RANKING LOOKBACK is the important one. It must span several complete regime
cycles on your timeframe or every axis will rank near the middle and
everything will read TRANSITION. 250 bars on a daily chart is roughly a year -
a real baseline. 250 bars on a 5-minute chart is under a day, and is not.
On intraday timeframes, raise it substantially.
MINIMUM REGIME RUN trades responsiveness for stability. Higher values give a
calmer read and a cleaner duration baseline at the cost of confirming changes
later. Set it to 1 to see the unfiltered classification.
CHOP PENALTY controls how hard low-efficiency volatility is punished. Set it
to 0 and the score becomes pure efficiency rank.
EFFICIENCY and VOLATILITY thresholds are percentiles, not raw values. They do
not need adjusting per instrument. That is the point.
LIMITATIONS - STATED PLAINLY
- This is a lagging, descriptive tool. It classifies conditions that have
already formed. It does not forecast, and it cannot tell you a regime is
about to end.
- Confirmation costs lag. A genuine regime change registers a few bars late by
design. That is the price of not flickering.
- The maturity baseline is learned from visible chart history and rebuilds
whenever settings, symbol, or timeframe change. It is not persistent memory.
Early in a chart, or for a rarely-occurring regime, the sample is thin. The
n= value tells you when to discount it.
- On intraday equity charts, overnight gaps inflate ATR and distort the
persistence reading. Daily and above, or extended hours, handle this better.
- Autocorrelation is a weak statistic on short samples. Persistence readings
close to zero should be read as "no information", not as a subtle signal.
- Efficiency is directionless. TREND tells you a trend exists, not which way
it points. Pair it with something that reads direction.
- No regime classification is correct at the moment it matters most, which is
the turn. Nothing here changes that.
This script is open-source. Read the code, disagree with it, improve it.
This is an analytical tool for studying market conditions. It is not financial
advice, and it does not generate trade recommendations. Trading involves risk
of loss. Indicator

Premium/Discount ML Zones [PickMyTrade]What does it do?
Builds a Premium / Equilibrium / Discount map from a higher-timeframe dealing range, then runs an online logistic regression over every price level inside that map to detect the exact band where the model currently reads a directional edge. Because the range is read from one anchor timeframe, the zones sit at the same prices whether you view the 5m, 1h or Daily chart.
────────────────────────────────────
The intellectual problem
Premium/Discount is a location framework: above the 50% equilibrium of a dealing range price is expensive, below it price is cheap. Two problems show up the moment you try to automate it.
First — the range is usually drawn on whatever chart you are looking at. A 5-minute chart finds 5-minute swings, so it anchors to a micro-range that may be a few points wide. The Daily chart finds a range a hundred times larger. The same price is then simultaneously "premium" on one timeframe and "discount" on another, and the label stops meaning anything. The conventional discipline is to define the range on a higher timeframe and drop down only to execute — never to redraw the range on the execution chart.
Second — location alone is not an edge. Knowing price is in the lower half of a range tells you it is cheap relative to that range. It does not tell you whether cheapness is currently being rewarded. In a strong downtrend every discount print keeps getting cheaper. Location is a filter; something else has to decide whether the location is worth acting on.
This indicator separates those two jobs. The dealing range and its three zones are the map , anchored once on a higher timeframe. A logistic regression trained on the chart's own history is the decision , and it is what marks the actionable band inside the map.
────────────────────────────────────
How the dealing range is anchored
The range is built from confirmed swing highs and lows read from the Dealing Range Timeframe (default Daily) via request.security(..., lookahead=barmerge.lookahead_off) . Each side re-anchors to its most recent confirmed swing, with guards that keep the pair coherent:
if not na(ph) and (na(swingLow) or ph > swingLow) swingHigh := ph if not na(pl) and (na(swingHigh) or pl < swingHigh) swingLow := pl
Those guards are what make the range track the current leg rather than a fixed lookback window. In an uptrend each new higher low pulls the low side up with price, instead of leaving equilibrium pinned to an ancient low that price has long since left behind.
From that range:
Equilibrium — the exact 50% midpoint, (rangeHigh + rangeLow) / 2 Equilibrium band — a neutral fair-value zone of ± Equilibrium Band × range around the midpoint (default ±10%, i.e. the middle 20%). No signals fire inside it. Premium — everything above the band. Discount — everything below it.
Break of structure — when price closes beyond the anchored range, the old range is stale until a new swing confirms. A bearish BOS blocks longs and a bullish BOS blocks shorts, so the model does not fade a breakout while waiting for the range to re-anchor.
────────────────────────────────────
How the logistic regression works
Step 1 — Three z-score normalised features
All three are standardised over the Z-Score Window (default 50) so the model is scale-invariant across instruments and timeframes.
F1 — Position in range : where the close sits between the range low and high, clamped to 0–1. This is the premium/discount coordinate itself. F2 — Dwell time : a rolling time-at-price measure — the fraction of the last N bars that closed within one price band of the current close. High dwell means price has spent real time here; a level touched once in a spike scores low. F3 — Momentum : rate of change over the momentum length, normalised. Distinguishes a discount that is stabilising from one that is still falling.
Step 2 — Online gradient descent with L2 regularization
There is no fixed training window and no retraining pass. Each confirmed bar is labelled from its forward return over the Label Horizon, and the weights take one gradient step per bar, always evaluated on the previous bar's features so no current-bar information leaks into the update:
_pred = f_sigmoid(w0 + w1f1 + w2f2 + w3*f3 ) _label = label_bull ? 1.0 : 0.0 _err = _label - _pred w1 := w1 + i_learn_rate * (_err * f1 - i_l2_lambda * w1)
The - i_l2_lambda * w1 term is weight decay: it pulls weights back toward zero each step, which stops any single feature from running away to an extreme value on a stretch of trending data. The bias term w0 is deliberately left unregularized — it carries the base rate, not a feature relationship.
Step 3 — Posterior
post_bull = f_sigmoid(w0 + w1f1 + w2f2 + w3*f3) post_bear = 1.0 - post_bull
Step 4 — The ML entry zone (what the model detects)
This is the part that does the work. Rather than only scoring the bar in front of it, the model scores every price level inside the discount half and the premium half — sweeping the position feature across the zone while holding dwell and momentum at their current values — and marks the contiguous band where its probability clears the Entry Threshold:
for j = 0 to i_nbins float p = rangeLow + (eq_bot - rangeLow) * j / i_nbins float f1p = ((p - rangeLow) / range_size - pos_mean) / pos_std float pbup = f_sigmoid(base + w1 * f1p) if pbup >= i_posterior_thresh ml_long_lo := na(ml_long_lo) ? p : math.min(ml_long_lo, p) ml_long_hi := na(ml_long_hi) ? p : math.max(ml_long_hi, p)
That band is the ML Buy / Sell Zone drawn on the chart. It is the exact price range in which a signal would fire right now — visible before price arrives there. Its thickness is meaningful: a thin band means only a sliver of the zone clears the threshold, a thick band means the model reads an edge across most of the zone. When nothing clears the threshold, the band disappears entirely rather than showing a level the model does not support.
────────────────────────────────────
Reading the indicator
PREMIUM box (orange) — upper region of the HTF range. Shorts are considered here only. EQUILIBRIUM box (grey) — the fair-value band around the 50% midpoint. Nothing fires here by design. DISCOUNT box (blue) — lower region. Longs are considered here only. ML BUY / SELL ZONE (bright band) — the model-detected band inside the discount/premium region, labelled with the peak probability found in that band. ● circle (blue) — high-conviction long: P(Bull) ≥ 0.85. ▲ triangle (blue) — standard long: P(Bull) ≥ threshold. ● circle (orange) — high-conviction short: P(Bear) ≥ 0.85. ▼ triangle (orange) — standard short: P(Bear) ≥ threshold. Dashed equilibrium line — the exact 50% midpoint. Dashed SL / TP lines — reference levels from the range extreme at ATR × multiplier and the Risk:Reward ratio.
Only the first bar of each signal cluster fires — if conditions stay true for several bars, only the transition bar is marked.
Info table (top-right)
● LIVE (green) — the model has taken ≥ Training Samples Needed gradient steps. ● WARMUP (yellow) — still accumulating; signals suppressed. Zone — Premium / Equilibrium / Discount, or BOS ↑ / BOS ↓ (yellow) when price has broken the range. P(Bull) / P(Bear) — live posterior at the current bar. N Trained — total gradient updates taken.
────────────────────────────────────
Inputs
Dealing Range Dealing Range Timeframe — whose swings define the map (default D). Set it equal to or higher than your execution chart. This is the input that makes the zones identical across timeframes. Swing Left / Right Bars — swing definition on the anchor timeframe (default 3/3). Right Bars is the confirmation delay: the range re-anchors that many anchor-timeframe bars after a swing forms. Equilibrium Band — half-width of the neutral zone as a fraction of range (default 0.10). Set 0 to collapse it to a single line.
Dwell-Time Feature Scan / Dwell Bands (default 20) — price resolution for the entry-zone scan and the dwell band width. Dwell Lookback (default 50).
Logistic Regression Training Samples Needed — gradient updates before signals activate (default 80). Entry Threshold — minimum probability to fire a signal and to light the ML zone (default 0.65). Learning Rate — gradient step size (default 0.05). Higher adapts faster but noisier. L2 Regularization — weight decay (default 0.001). 0 disables it. Label Horizon (default 5), Momentum Length (default 14), Z-Score Window (default 50).
Signal Levels Show SL/TP Lines, ATR Period, SL ATR Buffer (default 1.2), Risk:Reward (default 1.8).
Visual / Display Show Premium/Discount Map, Show ML Entry Zone, Zone Left Extent / Forward Extend, Show Equilibrium Line, Regime Background, zone colours. Zen Mode — hides SL/TP lines and the table; map and ML zone remain.
────────────────────────────────────
Three alerts included
PD ML - Long — discount long fired PD ML - Short — premium short fired PD ML - Any Signal — either direction
────────────────────────────────────
Technical notes
Swing detection on the anchor timeframe needs Swing Right Bars of that timeframe to confirm. With the Daily default that is a three-day confirmation delay before the range re-anchors. This is inherent to non-repainting swing detection, not a tunable away. request.security uses lookahead_off , so historical bars use only confirmed anchor-timeframe values. The developing anchor bar updates in real time, which is expected behaviour for a live higher-timeframe reference. The dwell feature counts closes within one band of the current close over the lookback — a bar-based proxy for time-at-price. It does not use tick or volume-profile data. The entry-zone scan holds dwell and momentum fixed while sweeping position. It answers "if price were at level X, with today's momentum and dwell, what would the model read?" — a counterfactual across location, not a forecast of the path. Logistic regression assumes a monotonic relationship between each feature and the log-odds. Real price behaviour is not always monotonic in position-within-range; the model captures the dominant direction of that relationship, not its curvature.
────────────────────────────────────
Requirements and limitations
The model needs Training Samples Needed gradient steps before signals activate; on short-history charts the table shows WARMUP and nothing fires. Weights are learned per chart and per timeframe — switching symbol or timeframe restarts the learning from zero.
Probabilities are the model's read of patterns in its own training history. They are not a probability of profit, and patterns that historically preceded a directional move may not repeat.
The equilibrium band is deliberately dead space. If you want signals nearer the midpoint, reduce the band toward 0 — but the closer to fair value you trade, the less the premium/discount premise is contributing.
If the Dealing Range Timeframe is left blank or set below your chart's timeframe, the range is computed on the chart timeframe and the cross-timeframe consistency is lost. That is the failure mode this indicator exists to avoid.
The three zones describe location within one dealing range. They carry no information about ranges above them — a Daily discount can sit inside a Weekly premium.
────────────────────────────────────
Risk disclosure
Nothing here forecasts price. The zones describe where price sits inside a measured range; the classifier reports what its training history associates with that location. Use with your own position sizing and risk management. Not financial advice.
Built natively in Pine Script® v6. Online logistic regression trained by per-bar gradient descent with L2 weight decay, a rolling dwell-time feature, and a higher-timeframe swing-anchored dealing range. No external libraries, no data feeds.
Open source — Mozilla Public License 2.0. Indicator

Indicator

Fractal Timeframe Collision Node [MarkitTick]💡 The financial markets operate across multiple interacting timeframes, creating complex structural geometries that cannot be accurately analyzed through a single, isolated lens. The tool presented here acts as a comprehensive multi-timeframe aggregation engine, designed to isolate highly significant structural support and resistance clusters. By evaluating pivot points across four distinct time spans and merging them based on volatility-adjusted proximity, this system identifies high-probability reaction zones where structural exhaustion is most likely to occur. It is built strictly for the modern Pine Script environment, utilizing an entirely non-repainting architecture that respects the highest standards of data integrity and execution logic.
● ✨ Originality and Utility
Standard pivot or support/resistance scripts typically plot historical swing highs and lows independently. This creates chart clutter and often leaves the analyst guessing which level holds the most technical weight. This tool introduces the concept of "Collision Nodes." Instead of simply drawing every pivot, the algorithm scans higher timeframe data, identifies structural extremes, and clusters them together using a dynamic, adaptive mechanism.
When multiple higher timeframes project a pivot at the exact same price zone, a structural "Collision Node" is formed.
The utility lies in its objective strength grading: a node formed by the confluence of the 1-hour, 4-hour, and Daily charts mathematically demands more respect than a single localized swing point on a lower timeframe.
By filtering out the noise and only projecting nodes that meet a user-defined minimum strength threshold, the analyst is presented with a remarkably clean chart displaying only the most critical, high-liquidity zones.
Furthermore, the script automatically generates full trade execution parameters (Entry, Stop Loss, and multiple Take Profits) directly on the chart when a valid structural rejection occurs.
● 🔬 Methodology and Concepts
• Multi-Timeframe Pivot Extraction
The core engine relies on detecting localized extrema (Pivot Highs and Pivot Lows) over a user-defined lookback window. The script fetches these pivot values simultaneously from three higher timeframes plus the current chart's timeframe. To ensure absolute data integrity and prevent any future data leakage (repainting), the algorithm strictly requests historical, confirmed data using offset historical referencing.
• Volatility-Normalized Spatial Clustering
Once the pivots are extracted, the algorithm must determine if they "collide" or overlap. Because absolute price distance is irrelevant across different assets, the script uses a dynamic clustering mechanism normalized by the Average True Range (ATR).
A tolerance band is calculated by multiplying the current ATR by a user-defined coefficient.
If a newly discovered higher timeframe pivot falls within this exact tolerance band of an existing pivot cluster, it is merged into that cluster, and the cluster's "strength" rating is incremented.
If it falls outside the tolerance band, a new independent node is registered.
• Memory Management and Age Pruning
Financial markets possess a memory, but structural relevance decays over time. The script incorporates a memory management protocol that continually monitors the age of all registered nodes. If a node has not been tested or updated within a specific bar count limit, it is automatically pruned from the active array, ensuring that only highly relevant, modern liquidity pools are analyzed.
• Automated Signal Validation
A visual node is not a signal; it is an area of interest. The script validates trade signals by combining spatial location with price action. A valid signal requires the price to close inside the tolerance zone of a high-strength node, accompanied by a rejection candle (where the wick constitutes a significant percentage of the total candle range), and a structural close confirming the directional bias.
● 🎨 Visual Guide
• Collision Nodes
Teal Horizontal Lines: Represent bullish support nodes. The opacity of the line dynamically shifts based on the strength of the node (darker/more solid lines indicate higher timeframe confluence).
Red Horizontal Lines: Represent bearish resistance nodes. Like the bullish nodes, their visibility scales with structural strength.
Diamond Labels (◆×2, ◆×3): Attached to the end of the node lines, these labels explicitly display the node's strength rating. A "◆×3" label means three separate timeframes have confirmed a pivot at this exact mathematical level.
• Trade Execution Box
Dashed Blue Line: Indicates the exact Entry price upon signal confirmation.
Solid Red Line: Represents the dynamic Stop Loss, which is placed behind the collision node with an added ATR-based buffer to avoid premature liquidation.
Dashed Teal Lines (TP1, TP2, TP3): Represent calculated Take Profit levels projected automatically based on the user's defined Risk-to-Reward (RR) multipliers.
Red Background Fill: Visually maps the total risk zone between the Entry and the Stop Loss.
Teal Background Fill: Visually maps the total reward zone extending from the Entry up to the final Take Profit target.
• Real-time Dashboard
Located by default in the top right corner, this data table provides an instant summary of the market structure.
Bias: Displays the current active signal direction (LONG, SHORT, or NONE).
Active Nodes & Strengths: Lists the exact price levels of the nearest active bull and bear nodes, accompanied by visual progress bars displaying their respective strengths (Green for high strength, Yellow for medium, Red for low).
Trade Tracking: Displays the currently active Stop Loss and primary Take Profit levels if a trade configuration is locked on the chart.
● 📖 How to Use
Apply the indicator to your chart and set your three preferred higher timeframes in the settings (e.g., if trading on the 15-minute chart, you might select 1-Hour, 4-Hour, and Daily).
Observe the chart for the formation of high-strength Collision Nodes (look for ◆×3 or ◆×4 labels). These are your primary zones of interest.
Wait for price action to approach these nodes. Do not place blind limit orders.
Allow the script's internal logic to identify a structural rejection. When a valid rejection candle forms and closes at a node, a trade execution box will automatically populate on the chart.
Use the provided Entry, Stop Loss, and Take Profit lines to format your position sizing and manage the trade according to the mapped risk-to-reward parameters.
Optionally, link the script's advanced JSON webhook alerts to an external execution platform for automated trade routing.
● ⚙️ Inputs and Settings
• Core Settings
Pivot Lookback: The structural length required to confirm a swing high or low.
TF 1, TF 2, TF 3: The three higher timeframes used to scan for structural confluence.
Include Chart TF: Determines if the current chart's timeframe should also contribute to node strength.
Node Tolerance (×ATR): The spatial bandwidth used to cluster pivots together, measured as a multiplier of current volatility.
Min Node Strength: The minimum number of overlapping timeframes required for a node to be rendered on the chart.
• Filters
Require Rejection Candle: Enforces strict price action criteria, demanding that signals only fire if the candle displays a prominent rejection wick.
Min Wick % of Range: The exact percentage of the candle that must be composed of the wick to validate a rejection.
Max Node Age (bars): The duration a node remains active without being re-tested before being permanently purged from memory.
• Trade Tools
SL Buffer (×ATR): Adds a dynamic volatility buffer beyond the structural node to determine the absolute invalidation point.
TP1, TP2, TP3 (×SL Risk): The respective risk-to-reward multipliers used to dynamically project profit targets.
Lock Current Trade Levels: Freezes the visual risk/reward box on the chart until the trade hits either the final target or the stop loss, ignoring subsequent signals.
• Dashboard & Alerts
Show Dashboard: Toggles the visibility of the real-time data table.
Alert Actions: Customizable text fields allowing users to define specific JSON payload strings for long, short, and exit triggers.
● 🔍 Deconstruction of the Underlying Scientific and Academic Framework
The architectural foundation of this algorithm is heavily rooted in the Fractal Market Hypothesis (FMH), which posits that financial markets exhibit self-similar statistical structures across varying scales of time. In practical terms, a distribution pattern on a 5-minute chart mathematically resembles a distribution pattern on a Weekly chart. By aggregating pivot extrema from multiple independent time scales, this script exploits these fractal geometries to identify areas of harmonic resonance—price zones where liquidity pools overlap across different cohorts of market participants.
To resolve the spatial clustering problem, the system utilizes a volatility-normalized one-dimensional grouping algorithm conceptually akin to Density-Based Spatial Clustering of Applications with Noise (DBSCAN). Instead of utilizing fixed scalar distances (which fail as asset prices scale), the algorithm calculates an epsilon distance bounded by the Average True Range (ATR). This ensures that the clustering logic expands and contracts organically with market entropy. The ultimate output is a mathematically objective reduction of structural noise, isolating only the highest-density liquidity nodes that possess the greatest statistical probability of halting directional momentum.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Institutional Flow MatrixInstitutional Flow Matrix is an open-source market-analysis framework designed to organize trend direction, confirmed market structure, institutional price zones, momentum, and location within a dealing range into one readable chart.
The purpose of this indicator is not to predict every price movement or generate constant entries. It is designed to answer a more practical sequence of questions:
1. What is the current directional bias?
2. Is market structure supporting that direction?
3. Is price trading from a meaningful location?
4. Has price returned to an active institutional zone?
5. Is momentum aligned with the proposed setup?
The script combines these questions into a structured workflow while keeping the default chart intentionally clean.
WHY THIS INDICATOR WAS BUILT
Many market-structure indicators display every swing, imbalance, liquidity level, zone, and signal at the same time. While that information can be useful for detailed analysis, it can also make the chart difficult to interpret during live trading.
Institutional Flow Matrix was built around a visual hierarchy:
* Directional bias is the primary layer.
* Active Order Blocks are the principal reaction zones.
* Momentum is a confirmation layer.
* Premium and Discount provide market location.
* Fair Value Gaps, liquidity pools, sweeps, and higher-timeframe levels are optional study tools.
The default Balanced preset focuses on the information most relevant to a directional pullback setup. Minimal mode removes most supporting visuals for live execution. Full mode reveals the additional market-structure tools for deeper analysis.
WHAT MAKES THE IMPLEMENTATION DIFFERENT
The individual concepts used by this script, including pivots, moving averages, ATR trend filters, Order Blocks, Fair Value Gaps, and Premium/Discount ranges, are established forms of technical analysis.
The original contribution of Institutional Flow Matrix is how those components are synchronized and managed as one decision framework.
Key design elements include:
* Confirmed structure events rather than unconfirmed swing guesses.
* A persistent directional state requiring agreement between structure, EMA alignment, and an ATR-based trend filter.
* Order Block freshness validation before a zone is accepted.
* Separate visual duration and analytical lifetime controls for zones.
* Automatic mitigation and expiration of old zones.
* Limited drawing-object counts to prevent long-term chart clutter.
* A weighted confluence model centered on trend, structure, zone interaction, market location, and momentum.
* Three visual presets that change the information hierarchy without changing the underlying calculations.
* Confirmed-bar signals and event-based alerts.
This is not intended to be a collection of unrelated indicators. Each module has a defined role in the same setup process.
DIRECTIONAL BIAS
The chart background represents the script's confirmed directional state.
A bullish state requires agreement between:
* Bullish market structure.
* Fast EMA positioning above the slow EMA.
* Bullish ATR trend conditions.
A bearish state uses the opposite conditions.
The background changes only after the required conditions are confirmed. A larger BUY or SELL label marks a confirmed change in this directional state.
These shift labels are different from the smaller confluence signals. A shift label identifies a change in directional bias. A confluence signal requires additional location, zone, and momentum conditions.
MARKET STRUCTURE
Confirmed pivot highs and lows form the structure engine.
The script tracks:
* Higher Highs
* Higher Lows
* Lower Highs
* Lower Lows
* Breaks of Structure
* Changes of Character
A bullish break occurs when a confirmed bar closes above the latest unbroken confirmed swing high. A bearish break occurs when a confirmed bar closes below the latest unbroken confirmed swing low.
Swing labels are retrospective by design. A pivot can only be confirmed after the selected number of right-side bars has closed. Once confirmed, its label is placed on the candle where the swing originally occurred. The label was not known on that earlier candle.
ORDER BLOCKS
Order Blocks are the primary reaction zones in the indicator.
After a confirmed structure break or qualifying displacement event, the script searches backward for an opposing candle. A candidate candle can be filtered by:
* Candle range relative to ATR.
* Body size as a percentage of candle range.
* Optional volume expansion.
* Wick-based or body-based zone construction.
Before accepting the candidate, the script checks whether price has already invalidated it. This prevents many stale zones from being created after the fact.
Active Order Blocks can be invalidated by either:
* A close beyond the opposite edge.
* A wick beyond the opposite edge.
The selected mitigation method is used consistently during both zone creation and live zone management.
Order Blocks have separate controls for visual extension and analytical age. This allows users to control how long a box remains visible independently from how long it remains eligible for signal calculations.
PREMIUM, DISCOUNT, AND EQUILIBRIUM
The script creates a rolling dealing range from the highest high and lowest low over the selected lookback.
The range is divided into:
* Premium: the upper portion of the range.
* Discount: the lower portion of the range.
* Equilibrium: the 50% midpoint.
Premium and Discount do not generate trades by themselves. They provide location.
In general:
* Bullish setups receive stronger contextual support in Discount.
* Bearish setups receive stronger contextual support in Premium.
* Equilibrium represents the midpoint of the current rolling range.
Because the range is rolling, its boundaries can change when a new lookback high or low is formed.
MOMENTUM RIBBON
The momentum module uses three exponential moving averages and an ATR-normalized difference between the fast and slow averages.
Bullish momentum requires:
* Fast EMA above the slow EMA.
* Positive normalized momentum.
* Momentum above its signal average.
Bearish momentum uses the opposite conditions.
Diamond markers identify confirmed momentum crossings. The ribbon is intended as confirmation rather than a standalone entry system.
CONFLUENCE SIGNALS
The script calculates a 0-100 Confluence Score from five conditions:
* Directional bias: 25 points.
* Market structure: 15 points.
* Momentum alignment: 15 points.
* Active Order Block interaction: 25 points.
* Premium or Discount location: 20 points.
The score measures condition alignment. It is not a probability, win rate, accuracy estimate, or forecast of future performance.
By default, BUY and SELL signals require:
* Confirmed directional bias.
* Matching confirmed structure.
* Interaction with an active Order Block.
* Correct Premium or Discount location.
* Matching momentum.
* Minimum Confluence Score.
* Completion of the selected signal cooldown.
Signals are displayed only when the complete condition changes from false to true. This prevents repeated labels while the same setup remains active.
OPTIONAL ADVANCED MODULES
Full mode provides additional analytical tools:
* Fair Value Gaps with ATR size filtering.
* Equal-high and equal-low liquidity pools.
* Confirmed liquidity sweeps.
* BOS and CHoCH labels.
* HH, HL, LH, and LL labels.
* Previous day, week, and month highs and lows.
* Optional momentum candle coloring.
These features are disabled or hidden from the default Balanced view to preserve readability.
VISUAL PRESETS
Minimal:
Designed for traders who want the least chart interference. It suppresses the background, ribbon, Premium/Discount display, trailing line, dashboard, and advanced structure annotations.
Balanced:
The default view. It emphasizes directional background, active Order Blocks, Premium/Discount context, momentum ribbon, diamonds, signals, and the dashboard.
Full:
Designed for detailed study. It adds structure labels, BOS/CHoCH events, Fair Value Gaps, liquidity tools, higher-timeframe levels, and optional candle coloring.
FOR NEWER TRADERS
A simple workflow is:
1. Start with the Balanced preset.
2. Use the background to identify the current directional bias.
3. Wait for price to return to an Order Block matching that bias.
4. Check whether price is in Discount for a bullish setup or Premium for a bearish setup.
5. Confirm that the momentum ribbon agrees.
6. Treat the signal as a point for further analysis, not an automatic order.
The equilibrium line can be used as a reference for the midpoint of the current dealing range. It is not automatically an entry or exit instruction.
FOR ADVANCED TRADERS
Experienced users can customize:
* Pivot confirmation sensitivity.
* ATR and EMA trend parameters.
* Wick-based versus body-based Order Blocks.
* Displacement-created zones.
* Candle body, range, and volume filters.
* Close-based versus wick-based mitigation.
* Zone visual duration and analytical age.
* Premium and Discount percentages.
* Fair Value Gap size.
* Liquidity sensitivity.
* Momentum lengths.
* Individual signal requirements.
* Minimum confluence threshold.
* Signal cooldown.
* Higher-timeframe reference levels.
Advanced users can also disable individual hard requirements and use the Confluence Score as a more flexible filtering system.
ALERTS
Alert conditions are included for:
* Break of Structure.
* Change of Character.
* New Order Block.
* BUY signal.
* SELL signal.
* Bias-aligned Order Block entry.
* Trend and momentum confluence.
* Liquidity sweep.
Alerts should be created using Once Per Bar Close when confirmed signals are required.
NON-REPAINTING AND TIMING
Structure breaks, directional shifts, zone creation, zone mitigation, momentum events, and confluence signals are evaluated on confirmed bars.
Pivot-based swing labels require future bars to confirm that a swing occurred. After confirmation, the label is displayed on the original pivot candle. This is delayed confirmation with retrospective placement, not advance knowledge of the swing.
Previous-period levels use completed higher-timeframe data.
LIMITATIONS
* This indicator does not predict future prices.
* It does not calculate position size, stop loss, or account risk.
* It is not a complete automated trading system.
* Signals can fail during volatile, illiquid, or range-bound conditions.
* Rolling Premium, Discount, and equilibrium levels can move when the lookback range changes.
* Confirmed pivots introduce an intentional delay.
* Order Block definitions vary among trading methodologies; this script uses the documented candle-search and filtering rules described above.
* Volume behavior differs across asset classes and data providers.
* Parameter settings that work on one symbol or timeframe may not be appropriate for another.
Suggested starting points are the 15-minute and 1-hour charts for intraday analysis and the 4-hour chart for broader swing structure. Users should test settings on their own symbols and trading sessions.
OPEN-SOURCE PURPOSE
The script is published open-source so traders can inspect the calculations, understand why signals occur, verify the confirmed-bar methodology, and adapt the framework for their own research.
The goal is to provide a readable and transparent market-structure workflow rather than a black-box prediction tool.
DISCLAIMER
This indicator is provided for educational and analytical purposes only. It is not financial advice and does not guarantee profitable results. Historical chart behavior does not ensure future performance. Users are responsible for their own analysis, testing, risk management, and trading decisions.
Indicator
