Liquidity Sweep + CISD + FVG ReversalLiquidity Sweep + CISD + FVG Reversal
What this is — and is not. This is one sequence machine, not three ICT tools stacked on a chart. A liquidity-pool tracker, a change-in-state-of-delivery confirmation, a fair value gap entry zone and a quality-scoring engine are chained so that each stage only exists because the previous one fired. It is not a sweep indicator with gaps drawn next to it, and it is not an FVG tool with sweep markers bolted on. No stage is a signal on its own; only the completed sequence fires.
Why the parts are inseparable. The CISD is measured against the delivery run that produced the sweep — remove the sweep and there is no run whose state can change. The gap is hunted only inside the displacement that follows the CISD — remove the CISD and there is no displacement to scan. The entry is a retrace into that specific gap with a confirmed rejection — remove the gap and there is nothing to retrace into. And the quality engine scores properties of the completed sequence itself — how many highs or lows stack at the swept level, how much force the CISD candle carried, where the setup sits in the dealing range, how deep the sweep penetrated, and how efficiently price approached the pool. None of those measurements exist until the sequence exists. Take any stage away and the remaining logic has nothing to act on.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
THE SEQUENCE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1 — POOLS. Swing pivots are confirmed with a configurable length, and the most recent unswept swing high and swing low are tracked as the resting liquidity pools — buy-side above, sell-side below. Levels expire after a maximum age so a stale pivot from hundreds of bars ago cannot anchor a setup.
2 — SWEEP. A pool is swept when price wicks through it and closes back inside. Resting orders were taken, not genuinely broken. The sweep opens a candidate setup, marks the raid with a zone, and starts a strict countdown.
3 — CISD. Within a configurable window, price must close through the opening price of the delivery run that swept the pool — the change in state of delivery. No CISD inside the window and the setup dies quietly, because a sweep that produces no state change was absorption, not a raid. The CISD candle's body is also measured against ATR: a state change is supposed to arrive with force, so a doji drifting through the level is recorded but scores nothing for displacement.
4 — FAIR VALUE GAP. The displacement that delivered the CISD is scanned for a gap of at least a configurable ATR fraction. When one qualifies, the zone is drawn with its consequent-encroachment midline, the dashboard flips to FVG SET, and the machine waits.
5 — ENTRY. Price must retrace into the gap within a configurable window and reject on a confirmed bar. That rejection is the signal — not the sweep, not the CISD, not the gap forming. A retrace that never comes, or a close that blows through the gap, retires the setup without a trade.
6 — GRADE. Every completed setup is scored 0–100 across five independent measures and stamped A, B or C, printed on the entry label and in the dashboard. Pool quality counts how many equal highs or lows stack at the swept level — two or more touches is where stops actually accumulate, and a three-touch pool outranks a lone pivot. Displacement scores the CISD body against ATR. Array context scores position in the dealing range — shorts want premium, longs want discount. Sweep cleanliness caps penetration depth, because a spear far beyond the pool is a failed breakout, not a raid. And approach efficiency measures the path into the sweep with an efficiency ratio: price that drifted sideways and then wicked through a pool was raided, while a clean one-way leg into the level is a trend arriving — the engine can downgrade those setups, skip them, or take the other side, at your choice. By default everything is measured and nothing is filtered: raise the minimum grade when you want the engine to be selective, and watch what you would be filtering before you filter it.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
READING THE DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The bottom-center panel is the machine's cockpit, one cell per subsystem, updating on confirmed bars:
STAGE — where the sequence stands right now: SCANNING, SWEPT, CISD, or FVG SET. This cell alone tells you whether the machine is hunting or waiting.
HUNT — the direction being stalked once a sweep registers: SHORT HUNT after a buy-side raid, LONG HUNT after a sell-side raid.
BSL / SSL — the tracked buy-side and sell-side pool prices currently on watch.
GRADE — the live quality score with its letter, plus a compact readout of the raw measures behind it (pool touches, displacement, penetration, range position, approach efficiency), so you can see why a setup earned its grade, not just what it earned.
CISD — the delivery-run open being watched, a checkmark when the close-through confirms, and the countdown window.
FVG — the qualified gap's boundaries and the remaining retrace window.
POSITION / TP·SL — flat or in a trade, with the working exit levels and the configured exit percentages.
RECORD — a running tally of how past signals on the chart resolved, maintained as a study aid so you can review the machine's behavior on your instrument and settings.
STATUS — READY, in-trade, or cooldown with bars remaining.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CHART WALKTHROUGH — MNQ 5-MINUTE, TWO MOMENTS OF ONE SETUP
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SCREENSHOT 1 — THE TRAP BUILDS. Price rallies through the morning and spears the buy-side pool near 29,480 — the purple zone with the SWEEP marker. The wick trades through the tracked high and the candle closes back inside: buy stops above the pool were collected, and the machine opens a candidate. Within its window, price then closes down through the opening price of the run that made the raid — the gold CISD line at 29,420.75, checkmarked in the dashboard. The displacement leg that delivered that close left an imbalance at 29,425.50–29,426.50, drawn as the FVG zone extending right. At this moment the dashboard reads the whole story in one row: STAGE — FVG SET, HUNT — SHORT ▼, the sell-side pool tracked at 29,398.50 below, GRADE — B with its measures broken out beside it, and POSITION — FLAT. Nothing has fired. The machine has identified the raid, confirmed the state change, framed the entry zone, and is now doing the one thing most tools cannot: waiting.
SCREENSHOT 2 — THE RESOLUTION. Price retraces upward into the gap and rejects on a confirmed bar — and only now does the entry print: SHORT at 29,386.50, grade stamped on the label, with the full trade frame drawn the moment it fires. The red zone above spans entry to the protective stop at 29,477.50 — placed beyond the swept pool itself, because if price reclaims the raided high the entire thesis is invalid. The teal zone below spans entry to the target at 29,319.00, this example running the fixed-percentage exit mode shown in the TP/SL cell. Price breaks away from the gap, cascades through the profit zone, and tags the target — the exit label printing the realized result on the bar where it happened. Behind it, the dashboard has already moved on: STAGE back to SCANNING, STATUS in cooldown, the completed setup's graphics faded in place as a permanent record of what fired and why. One raid, one state change, one gap, one rejection, one trade — start to finish on the chart with nothing repainted and nothing hidden.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SETTINGS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Structure — pivot length, level age, sweep-to-CISD window. CISD + FVG — minimum gap size (ATR fraction), retrace window, midline toggle. Quality engine — equal-level tolerance and lookback, displacement threshold, premium/discount requirement, penetration cap, approach-efficiency threshold and its response mode (downgrade, skip, or flip), minimum grade to signal, grade-on-label toggle. Trade management — structural or fixed-percent exits, risk multiple, stop buffer past the wick, cooldown, max bars in trade, optional end-of-day flatten window. Webhook — optional JSON payload on entry and exit with a strategy identifier.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Apply to a liquid instrument on a timeframe you know, leave the grade filter open, and watch several sessions of the dashboard walking through SCANNING → SWEPT → CISD → FVG SET before judging anything. The grade cell teaches faster than any manual: you will see which measures your market keeps failing. Once the letter grades map to outcomes you have personally watched, raise the minimum grade to match. The defaults are a starting point, not an optimized or recommended configuration, and they are not intended to suggest any particular outcome — different instruments, timeframes and volatility conditions will call for different values.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NON-REPAINTING
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The entire state machine advances on confirmed bars only. Pivot detection uses right-side confirmation, so tracked levels are locked once drawn. The sweep, the CISD close, the gap qualification and the rejection entry all evaluate on closed bars, and a signal that prints does not move or disappear. No higher-timeframe requests are used anywhere in the script. What you see on historical bars is what the machine would have shown live.
อินดิเคเตอร์

Session Range & Volatility MonitorSession Range & Volatility Monitor is an intraday chart overlay that tracks the Asia, London, and New York sessions and compares each session's developing range with what was historically typical at the same stage of that session. It is designed to answer not only "How wide is this session?" but also "Is its range developing faster or slower than usual right now?"
WHAT IT SHOWS
The indicator displays:
• Configurable Asia, London, and New York session boxes
• Each session's developing high-to-low range
• Range Pace states: Quiet, On Pace, Active, Extended, or Learning
• Current Range and Typical Range Now in a compact dashboard
• Session progress and the completed-session median range
• Optional Initial Balance boxes
• Optional session midpoint references
• Up to 20 recent session days on the chart, with 3 shown by default
The colored session boxes provide time and range context. The Range Pace percentage and state provide the main comparison with recent completed sessions.
WHAT RANGE PACE MEANS
Range Pace compares:
current session range ÷ historically typical range at the same elapsed session stage
For example, a reading of 106% means the current session range is 6% larger than the historical median range expected at this point in the session.
It does not mean there is a 106% probability of any outcome. It is not a forecast of the final session range and does not predict future price direction.
The default Range Pace states are:
• Quiet: below 75% of the typical range at this stage
• On Pace: from 75% to below 115%
• Active: from 115% to below 150%
• Extended: 150% or more
• Learning: insufficient completed-session history or the session has only just started
All thresholds are configurable.
HOW IT WORKS
For each enabled session, the script tracks the running high, low, range, elapsed progress, and Initial Balance.
When a session completes, its range is stored at four checkpoints:
• 25% of the session
• 50% of the session
• 75% of the session
• Full session
The script calculates historical medians for those checkpoints and interpolates between them. This produces a same-stage reference range for the currently active session instead of comparing an early-session range with a full-session average.
The default calculation retains 20 completed sessions and requires at least 5 before Range Pace leaves the Learning state.
Session windows use IANA timezones such as Asia/Tokyo, Europe/London, and America/New_York, allowing TradingView to account for daylight-saving changes. The script also detects long gaps in chart data so regular-hours feeds can start a fresh session correctly even when no overnight bars are available.
HOW TO USE IT
Use the indicator as a session-volatility context tool alongside your own market analysis:
• Quiet means the session range is developing more slowly than its recent same-stage norm.
• On Pace means the range is close to its recent same-stage norm.
• Active means the range is developing faster than usual.
• Extended means the range is substantially larger than usual for this point in the session.
• Learning means more completed sessions or more elapsed session time is required. อินดิเคเตอร์

Trade Prime - Fluid Trend IndicatorOverview
Welcome to the official Fluid Trend Indicator (FTI) by Trade Prime. Most retail trend indicators suffer from a fatal flaw: they are either incredibly noisy, resulting in dozens of false signals, or they lag so far behind the price action that the move is over before the signal fires.
The FTI solves this by combining a zero-lag mathematical core with a proprietary Prime Volatility Adjusted Moving Average (PVAMA) smoothing engine. The result is a buttery-smooth, highly accurate Fluid Line surrounded by dynamic volatility ribbons. Furthermore, the FTI features a dynamic visibility engine—it completely hides irrelevant but important calculations to give you an uncluttered, institutional-grade chart based on your use case.
Whether you are a 5-minute scalper or a daily swing trader, the FTI offers a "Two-in-One" architecture to adapt to your exact trading style.
Settings & Customisation
We have engineered the settings to be completely bulletproof. The complex math is hidden under the hood, leaving you with only the parameters that actually matter.
- Trading Mode: The core of the indicator.
- Signal Mode: Hyper-responsive. Designed to catch early pivots for day traders and scalpers.
- Trend Mode: Noise-filtering. Designed to ignore minor chop and ride massive macro trends for swing traders.
- Intensity Level (1, 2, 3): Controls the baseline sensitivity of the indicator. A lower number reacts faster to price changes, while a higher number requires a larger move to shift the trend.
- Smoothness Length (10 - 20): Controls the visual "flow" of the indicator. Locked between 10 and 20 to guarantee the zero-lag mathematical integrity of the aesthetic.
- Visual Toggles: Easily turn the signal arrows and trailing ribbons on or off.
How to Use the FTI
Trend Identification (Trend Mode)
The FTI makes identifying the major trend effortless. Simply look at the color of the central fluid line.
- Bullish: The line turns Pure Green and trades below the price. You should only be looking for long (buy) opportunities.
- Bearish: The line turns Pure Red and trades above the price. You should only be looking for short (sell) opportunities.
Pullback Identification (Trend Mode)
If you want to trade like an institution, you shouldn't buy the tops of breakouts—you should buy the pullbacks.
- The Reload Zone: The FTI will project a shaded volatility ribbon on the active side of the trend. This acts as a highly accurate, dynamic Support/Resistance zone.
- Uptrend Pullbacks: Wait for the price to drop into the Green Lower Ribbon. When price touches this zone and shows rejection (e.g., a bullish pin bar), enter your long entry.
- Downtrend Rallies: Wait for the price to rally into the Red Upper Ribbon. When price touches this zone and shows weakness, enter your short entry.
Trade Signals (Signal Mode)
If your goal is to catch rapid momentum shifts, set the indicator to Signal Mode.
- Entry: Wait for the FTI to flip colors and print a directional arrow.
- Execution: Enter the trade on the close of the candle that generates the arrow.
- Exit: Use the trailing central line as your dynamic stop-loss, exiting the position as soon as the line flips to the opposing color.
Risk Disclaimer: As with all technical analysis tools, the Fluid Trend Indicator is not a crystal ball. It is designed to provide high-probability confluence. Always pair this indicator with strict risk management, proper position sizing, and your own macro market analysis. อินดิเคเตอร์

Fade Setup OverlaysWHAT IT IS
Fade Setup Overlays is a chart readout for crypto perpetual futures. It tracks one specific pattern: a "fade" setup that can form after a strong momentum leg. It shows the current state of that pattern in a small table, plus three context flags, and can raise an alert when the state changes. It runs on either side of the market: fade highs (short-side setup) or fade lows (long-side setup).
It is an execution aid for reading the chart. It is not a signal service, not a strategy, and not an edge. Nothing here predicts price. "Short-side" and "long-side" name the direction of the setup being tracked; they are descriptions of chart state, not recommendations to trade.
HOW IT WORKS
The indicator runs a small state machine. The first condition that matches sets the mode:
- CHOP: ADX(14) on the last completed regime-timeframe bar is below the unlock threshold (default 25). The setup is not tracked.
- IMPULSE LEG: the regime ADX is unlocked and the swing extreme was set very recently, with no reversal bar.
- FADE ARMED: the swing extreme is fresh (default: within 4 reference hours), price is still within a set % of it (default 2.5%), and no reversal bar has printed.
- FADE WINDOW: a reversal bar printed while the extreme is fresh and price is within 3% of it.
- EXTENDED: price has already moved more than 2.5% away from the extreme.
- COOLING: none of the above.
The Side input picks the direction. Short (fade highs) tracks the highest high of the window and a reversal-down bar (a lower high that closes below the previous bar's low). Long (fade lows) mirrors everything: the lowest low of the window and a reversal-up bar (a higher low that closes above the previous bar's high). The three flags mirror too.
Each mode label comes with a short neutral description. On the chart, the script plots the swing-extreme watermark and a small triangle on reversal bars that print inside the fresh-extreme window.
TIMEFRAMES
The setup is defined in "reference hours" on a 15m chart: a 12h extreme, a 2h CVD window, a 24h premium z-score window, and a 1h ADX regime gate. With Auto-scale on (the default) every window is multiplied by chart-minutes / 15 and the regime timeframe moves one rung above the chart, so the readout keeps the same proportions on any chart from 1m to 1D:
- 15m chart: 12h extreme, 2h CVD, 24h z-score, 1h regime ADX, 1m intrabars
- 1h chart: 48h extreme, 8h CVD, 4d z-score, 4h regime ADX, 5m intrabars
- 4h chart: 8d extreme, 32h CVD, 16d z-score, 1D regime ADX, 15m intrabars
- 1D chart: 48d extreme, 8d CVD, 96d z-score, 1W regime ADX, 1h intrabars
Turn Auto-scale off to use the literal hour values on every chart. The table labels show the actual windows in use (for example "1D ADX" and "8d hi" on a 4h chart).
THE THREE OVERLAY FLAGS (ALL PROXIES)
Each flag is shown as ✓ (condition present), · (absent) or ? (data unavailable).
1. CVD-div (proxy): net signed volume over the CVD window leading into the extreme bar. The script pulls lower-timeframe bars with request.security_lower_tf and signs each bar's volume by its candle direction. Short side: ✓ when the net is flat or negative into the high. Long side: ✓ when the net is flat or positive into the low.
2. prem-z (proxy): the perp-vs-spot close spread, (perp - spot) / spot, z-scored against its trailing window. Short side: ✓ when the z-score went above +1.5 inside the CVD window. Long side: ✓ when it went below -1.5.
3. OI-stall (proxy): TradingView's open-interest symbol for the perp. ✓ when current open interest is below open interest at the extreme bar, on either side.
Honesty note: exchange-native CVD, perp premium and open-interest feeds are built from data TradingView cannot load. These proxies are directionally similar to those feeds but numerically different. Treat them as context, not ground truth.
The flags use a tri-state int (-1 unknown / 0 no / 1 yes) because a Pine v6 bool cannot hold na. That keeps missing data visible as "?" instead of turning it into a silent "no".
ALERTS
Alerts fire only when the state changes, not on every bar the state is true. They describe a chart state and nothing more.
Option A, one alert for everything: create a single alert on this indicator with the event "Any alert() function call" and the trigger "Once per bar close". The script formats the message itself. In "Readable text" mode the message carries the side, the state, the close, the extreme with its age and distance, the regime ADX, and the three flags. In "JSON (webhook)" mode each event is one JSON object ("action" = open on FADE WINDOW, close_all on INVALIDATED, and optionally info on FADE ARMED) with the same fields, for people who already run their own webhook receiver. The position_size_pct, leverage and secret fields in JSON mode are plain inputs passed through verbatim; the script never sizes, places, or sends anything itself. TradingView delivers whatever the alert is pointed at.
Option B, one alert per event: six alertcondition() events (Short/Long × FADE ARMED, FADE WINDOW opened, INVALIDATED) for anyone who prefers separate alerts.
INPUTS
Setup
- Side: Short (fade highs) or Long (fade lows).
- Regime ADX unlock threshold (25): below this, the mode is CHOP.
- Extreme freshness, hours at 15m (4): how recent the extreme must be for FADE ARMED / FADE WINDOW. Auto-scales.
- Max % from extreme to stay armed (2.5): the distance limit for FADE ARMED. Not auto-scaled; widen it by hand on 4h/1D if needed.
Scale
- Auto-scale windows to chart timeframe (on).
- Extreme lookback, CVD window, premium z window, all in hours at 15m (12 / 2 / 24).
- Regime ADX timeframe: leave on "Chart" for automatic (one rung above the chart), or set it by hand. It must be higher than the chart timeframe.
Overlays
- Spot symbol: leave blank to derive it from the chart (BINANCE:SOLUSDT.P becomes BINANCE:SOLUSDT), or type the spot pair by hand.
- Open-interest symbol: leave blank to derive it from the chart (BINANCE:SOLUSDT.P_OI), or type it by hand.
- CVD lower timeframe: leave on "Chart" for automatic (1m / 5m / 15m / 1h by chart timeframe), or set it by hand.
Alerts
- Combined alert() on/off, include INVALIDATED events, an optional personal note appended to text alerts, message format (Readable text / JSON), and the JSON pass-through fields.
Visuals
- Table position, text sizes, cell padding, compact labels, and a credit row toggle.
SETUP
1. Open a crypto perpetual chart on any timeframe from 1m to 1D. Example: BINANCE:SOLUSDT.P on 15m or 4h.
2. Add the indicator and pick the Side.
3. If a flag stays at "?", open the inputs and set the spot symbol and open-interest symbol by hand. Use Symbol Search: the spot pair from the same exchange as your perp, and " open interest" for OI.
4. Optional: create one alert on "Any alert() function call", trigger "Once per bar close".
LIMITATIONS
- Timeframes: 1m to 1D only. Multi-day, weekly and monthly charts stop with an error message, because the windows are computed from minutes per bar.
- Intrabar depth: TradingView keeps limited lower-timeframe history and caps intrabar requests at 100,000 bars, so CVD-div reads "?" on older bars. The automatic CVD timeframe is chosen to keep that history usable on each chart timeframe.
- OI availability: not every perp has a TradingView open-interest symbol. Where none loads, OI-stall reads "?".
- Proxies: all three flags approximate exchange-native data and will differ from it.
- Regime ADX: requested from the higher timeframe as an offset expression (value ) with lookahead on, which is the non-repainting form recommended by PineCoders. It returns only completed higher-timeframe bars and carries no lookahead bias.
- Repainting: the reversal bar, flags and mode are computed on the chart's bars, so on the live bar they can change until that bar closes. That is why alerts use "Once per bar close". Nothing beyond this is guaranteed.
- The percentage thresholds (2.5% and 3%) are not auto-scaled with the timeframe.
- The table shows the last bar only. It is not a backtest and makes no statement about outcomes.
DISCLAIMER
Educational use only. Not financial advice. Do your own research. This script is a chart readout and makes no performance claims. Crypto perpetual futures are high risk, and leverage can lose more than the initial margin. The author may hold positions in the assets discussed.
LICENSE
Open-source under the Mozilla Public License 2.0. Free to use, study and fork; attribution is appreciated. อินดิเคเตอร์

อินดิเคเตอร์

อินดิเคเตอร์

อินดิเคเตอร์

Global Day Start Marker
A clean and customizable TradingView indicator designed to clearly mark the start of each trading day with a vertical line.
Perfect for traders who want a simple visual reference for daily market structure, session analysis, liquidity tracking, ICT/SMC concepts, PO3, CRT, or any strategy that depends on precise daily timing.
The indicator allows you to customize the start time based on your preferred time zone, making it useful for traders anywhere in the world.
Key Features:
• Custom daily start time
• Multiple global time zones
• Automatic Daylight Saving Time adjustment
• Custom line color
• Adjustable line thickness
• Solid, dashed, or dotted line styles
• Clean and minimal chart display
Set your preferred time zone and daily start time, and the indicator will automatically mark each new trading day directly on your chart.
Simple. Flexible. Built for traders worldwide. อินดิเคเตอร์

Multi-Timeframe Volume Profile & Orderflow LevelsDescription:
This indicator is a comprehensive Volume Profile and Orderflow mapping tool designed to track real-time and historical liquidity zones across multiple timeframes. By breaking down volume data into customizable price bins, it accurately calculates and visualizes the most critical structural levels used in auction market theory.
Unlike standard built-in profile tools, this script utilizes a custom tick-based volume distribution engine (using Pine Script maps) to ensure precise calculations of the Value Area and Point of Control (POC), while keeping the chart clean with strictly horizontal lines and designated zone boxes.
Core Features
Multi-Timeframe Tracking: Simultaneously tracks and plots Volume Profile data for Custom, Daily, Weekly, and Monthly timeframes.
Current & Previous Levels: Automatically calculates and displays levels for the active period, while also retaining and plotting the previous periods' levels (Prev D, Prev W, Prev M) for historical context.
Key Orderflow Metrics:
POC (Point of Control): The price level with the highest traded volume for the period.
VAH & VAL (Value Area High / Low): The upper and lower bounds of the Value Area (customizable, defaults to 70% of total volume).
Period Open (OHLC): The opening price of the specified timeframe to gauge directional shifts.
Previous Day Value Area Box: Visually shades the previous day's value area to easily identify immediate overhead resistance or underlying support.
Clean Visuals: Uses an isolated object-oriented drawing method to render perfect horizontal lines from the period start to the current bar, eliminating the messy "curved line" effect seen in many other indicators during timeframe transitions.
How to Use It
Acceptance vs. Rejection: Monitor how price reacts when approaching the Previous Day, Week, or Month's POC or Value Area extremes. Rejections at these levels often provide high-probability entry points.
Breakouts: If price opens outside the Previous Day's Value Area and fails to re-enter, it can signal a strong directional trend for the session.
Confluence: Overlap between different timeframes (e.g., a Daily POC aligning with a Weekly VAH) creates stronger zones of support or resistance.
Customization & Inputs
The inputs tab is designed for exact UI matching and complete modularity:
Value Area %: Adjust the standard 70% threshold to fit your strategy.
Ticks per Profile Bin: Lower values increase the precision of the volume nodes, while higher values provide a broader, smoother calculation.
Display Toggles: Every single timeframe (Current and Previous) and metric (POC, VAH, VAL, Open) can be independently toggled on or off and color-coded to keep your chart tailored to your exact needs.
Drawing Anchors: Choose whether the current period lines draw from the start of the period or trail tightly behind the current bar. อินดิเคเตอร์

Range Detector [NJ]✧ OVERVIEW ✧
Range Detector identifies and highlights potential ranging market structures using pivot highs and lows combined with a two-stage confirmation process.
Confirmed ranges are displayed as boxes and remain active until price closes beyond the allowed tolerance.
✧ SETTINGS ✧
Range Tolerance %
Controls how far price may close beyond the range before it is invalidated.
Range First Confirmation %
Controls the first retracement required after both range boundaries have formed.
Range Second Confirmation %
Controls the second reversal required after the first confirmation.
Bars to Confirm the Range
Controls how long the current candidate structure may remain unconfirmed before it expires.
Pivot High/Low Lookback
Controls pivot sensitivity. Lower values detect smaller and more frequent swings, while higher values focus on larger market structures.
✧ HOW IT WORKS ✧
Range Formation
The indicator uses pivot highs and lows to define potential range boundaries. Newer same-side pivots may replace earlier ones until both boundaries are established.
Two-Stage Confirmation
A range is confirmed only after two rotations.
With the default 70% / 50% settings:
High → Low: price retraces 70% toward the high, then returns to 50%.
Low → High: price retraces 70% toward the low, then returns to 50%.
Range Invalidation
The range remains active until price closes beyond a boundary by more than the selected tolerance, measured as a percentage of the range height.
Candidate Timeout
Unconfirmed candidates must complete the confirmation sequence within the selected number of bars. Otherwise, they are discarded. The timer may restart if a newer same-side pivot replaces the current candidate.
✧ VISUALIZATION ✧
Once confirmed, the range is displayed as a box between its upper and lower boundaries.
The box is drawn retrospectively from the earliest pivot used to form the range and extends forward until the range is invalidated.
Because pivot highs and lows require future bars to be confirmed, the beginning of a range can appear several bars before the indicator could have known that the pivot was valid in real time.
✧ USAGE ✧
Range Detector can be used to identify areas of:
Sideways price action
Consolidation
Mean-reversion conditions
Support and resistance
Potential breakout structures
The detected zones can provide additional market structure context for range trading, breakout analysis, or filtering trend-following setups.
As with any technical indicator, it is best used alongside other forms of analysis rather than as a standalone entry or exit signal. อินดิเคเตอร์

FVG IFVG Pro [MTF] - Fair Value Gap and Inverse Fair Value GapFVG & IFVG Pro finds Fair Value Gaps and follows each one through its whole life: first touched, 50% reached, then fully filled. When a candle closes through a gap, the gap becomes an Inversion FVG (IFVG). The script then watches that IFVG for a retest and for invalidation. Every decision is made on a closed candle, so zones and signals do not repaint.
WHAT MAKES IT DIFFERENT
• One engine handles the full lifecycle: FVG → touched → CE → filled → inverted → retest → invalidated.
• A strict inversion rule: only a candle CLOSE beyond the gap inverts it. A wick through does not.
• Clean-chart tools: show only the nearest N FVGs and IFVGs, merge stacked gaps, remove filled gaps, and cap how many finished zones stay.
• Higher-timeframe gaps on a lower-timeframe chart, without repainting.
• An optional statistics table that shows how gaps behaved on the current chart.
THE CONCEPTS
• Fair Value Gap (FVG): a three-candle imbalance.
– Bullish: candle 3's low is above candle 1's high. The zone is the untraded space between them.
– Bearish: candle 3's high is below candle 1's low.
• Consequent Encroachment (CE): the 50% level of the gap, drawn as a dashed line.
• Fill (measured with wicks): a gap is "touched" when a wick enters it and "reached CE" when a wick gets to 50%. It is "fully filled" when a wick reaches the far edge.
• Inversion FVG (IFVG): a gap that failed. A candle must CLOSE beyond the far edge; a wick through is only a probe.
– A bullish FVG closed below its bottom becomes a BEARISH IFVG (resistance).
– A bearish FVG closed above its top becomes a BULLISH IFVG (support).
The price range stays the same; only its role flips.
• Retest signal: price comes back into the IFVG and gets rejected.
• Invalidation: a candle closes back beyond the other edge, so the flip has failed.
WHAT YOU SEE ON THE CHART
• Green / red boxes: live bullish / bearish FVGs. They extend to the right until they end.
• Blue / orange boxes: live bullish / bearish IFVGs. They start at the candle that closed through the gap.
• Dashed line: CE (50%).
• Label at the right edge: "FVG 42%" (how much is filled so far) or "IFVG". Higher-timeframe zones carry the timeframe, e.g. "1H FVG".
• Faded boxes: finished zones (an ended FVG or an expired IFVG). A dotted border marks an invalidated IFVG.
• ▲ below a candle: bullish IFVG retest. ▼ above a candle: bearish IFVG retest. Hover over the symbol to see the zone range and the close.
SETTINGS
Detection
• Timeframe: blank means the chart timeframe. Pick a higher timeframe to draw that timeframe's gaps on your chart. All rules then run on its closed candles, so nothing repaints. A timeframe lower than the chart falls back to the chart timeframe.
• Min gap size: filters out small gaps.
– ATR: gap height ≥ value × ATR(14). Default 0.1.
– Percent: gap height ≥ value % of price.
– Ticks: gap height ≥ value in ticks.
– Off: every gap counts.
• Displacement (middle body ≥ × ATR): 0 = off. Keeps only gaps left by a strong impulse candle. Example: 1.0 = the middle candle's body is at least one ATR.
• Middle candle must close in the gap's direction: bullish gaps need a green middle candle; bearish gaps need a red one.
• Merge back-to-back gaps: when same-direction gaps form on consecutive candles and overlap, they join into one zone instead of a stack of boxes.
Fair Value Gaps
• Show FVGs: draws the FVG boxes. Turning this off only hides them. They are still tracked, so IFVGs still form.
• FVG ends at: when a gap stops extending.
– First touch: when a wick first enters the gap.
– 50% (CE): when a wick reaches the middle.
– Full fill (default): when a wick reaches the far edge.
– Inversion only: the gap extends until it inverts or expires.
An ended gap fades but is still watched, and it can still become an IFVG until it expires.
• Shrink box as it fills: the live box shows only the part of the gap price has not traded into yet.
• Max age (candles): a gap is dropped after this many candles. Default 300.
Inversion FVGs (IFVG)
• Show IFVGs: draws the IFVG boxes.
• Inversion / invalidation needs:
– Close beyond (default): the candle closes past the edge.
– Full body beyond: both the open and the close are past the edge. This is stricter and gives fewer, cleaner IFVGs.
The same rule is used in the opposite direction to invalidate an IFVG.
• Retest signal:
– Wick rejection: a wick enters the IFVG and the candle closes back outside on the signal side.
– Close rejection: the previous candle closed inside the IFVG and this candle closes back out on the signal side.
– Off: no signals.
• Signals per IFVG: 1 = first retest only. Raise it to also mark later retests.
• Max age (candles): an IFVG is dropped this many candles after it forms. Default 200.
Display
• Nearest shown (FVG / IFVG): only the N live FVGs and the N live IFVGs closest to the current price are drawn. The two are counted separately. Example: 3 / 3 = the 3 nearest FVGs plus the 3 nearest IFVGs. 0 = show all. The selection updates as price moves.
• Finished zones kept: how many faded, finished zones stay on the chart. 0 = they are removed at once.
• CE (50%) line: shows or hides the dashed midline.
• Zone labels / with fill %: the text at the right edge of each live zone, and whether FVG labels include the fill percentage.
• Signal size: size of the ▲ ▼ retest signals.
Colours
• FVG bull / bear and IFVG bull / bear. The opacity you pick sets the box transparency. CE lines, text and faded copies use the same colour automatically.
Alerts
• The toggles choose which events go into the "Any alert() function call" alert: New FVG, FVG first touch, IFVG formed, IFVG retest signal, IFVG invalidated. If several events happen on the same candle, they arrive as one message with price levels. The alert fires once per candle, after the candle closes.
• Separate alert conditions are also available: New bullish FVG, New bearish FVG, FVG touched, Bullish IFVG formed, Bearish IFVG formed, Bullish IFVG retest (BUY), Bearish IFVG retest (SELL), IFVG invalidated.
Statistics
• Show statistics and position: a table counted from the first bar loaded on the chart. It has bullish and bearish columns.
– FVGs: how many gaps formed.
– Touched / Reached CE / Fully filled: how many gaps got that far, and the percentage.
– Inverted: how many gaps became IFVGs.
– IFVG signals: signals / IFVGs of that direction.
– IFVG invalidated: how many IFVGs failed, and the percentage.
The table is descriptive. It shows how gaps behaved on this chart; it is not a win rate.
HOW TO USE
• Treat an FVG as an area price may come back to, and CE as its key level.
• An IFVG marks where a gap failed and its role flipped. Many ICT traders look for entries on the retest and place invalidation beyond the IFVG's far edge.
• Context matters. IFVGs that form after a liquidity sweep, or at a higher-timeframe level, carry more weight than ones in the middle of a range.
• For a cleaner chart, set Nearest shown to 3 / 3 and Finished zones kept to 0.
NOTES
• No repainting: zones, inversions and signals are confirmed on candle close. With a higher-timeframe setting, they appear on the first chart bar after that timeframe's candle closes.
• Up to 120 zones are tracked at once, and the oldest are dropped first. ATR length is fixed at 14.
• This script is for education and chart analysis. It is not financial advice, and past behaviour does not guarantee future results.
อินดิเคเตอร์

Auto Parallel Channel (Ascending/Descending)What this does
Automatically detects and draws a parallel price channel — ascending, descending, or flat — based on real swing pivots, rather than requiring you to draw trendlines by hand.
Methodology
Detects alternating swing highs/lows (zigzag pivots), then looks for a same-type → opposite-type → same-type sequence (e.g. low-high-low) to anchor a channel: the base trendline runs through the two same-type pivots, and a parallel line is offset to touch the pivot in between.
Direction is color-coded from the base trendline's slope: green = ascending, orange = descending, aqua = flat/parallel.
Once formed, the channel locks in — it won't wobble or refit on every new minor pivot, only when it's actually broken by a decisive close beyond either boundary.
A built-in sanity check rejects channels whose width is unreasonably large relative to the instrument's recent ATR, so a single outlier wick can't distort the fit.
Works on any timeframe — tested particularly on 1H/2H/4H for spotting corrective structures, and on Daily/Weekly for larger trend channels.
Settings
Pivot Left/Right Bars — pivot sensitivity (lower = more, smaller pivots; higher = fewer, larger ones)
Min Move % Between Pivots — filters out insignificant zigzag noise
Min Bars Between Anchor Pivots — avoids forming a channel from two anchor points that are too close together
Max Channel Width (x ATR) — the outlier-rejection sanity check described above
Break Buffer % — how far price must close beyond the channel before it's considered broken
Alerts
Fires when price breaks the channel upward or downward.
Disclaimer
This tool identifies a geometric pattern in price history — it does not predict future price movement. Always confirm with your own analysis and risk management. Not financial advice. อินดิเคเตอร์

อินดิเคเตอร์

Cup and Handle Pattern [DJYYLAB]OVERVIEW
Finds cup and handle patterns with a fixed set of rules and keeps track of what happens after each one forms: a breakout, a quick drop back below the pivot, or invalidation. All thresholds are listed below, so the result can be checked by hand.
Everything is calculated on closed bars. A pattern shows up on the bar where it was first confirmed and is not redrawn later.
HOW IT WORKS
1. Left rim
- A swing high (not exceeded within 2 bars on either side) above the previous 20 highs.
- It is only used once a later close drops to 92% of that high or lower, i.e. price has pulled back at least 8%.
2. Cup
- 30 to 220 bars long, 8% to 50% deep (measured from the left rim).
- The lowest low has to be a confirmed swing low, somewhere between 30% and 85% of the cup length.
- No high inside the cup more than 1% above the left rim.
- Round bottom, not a V: at least 15% of the closes sit in the lower part of the cup (low + 35% of the depth). On the way back up, no single bar gains more than 35% of the depth and no gap up is larger than 15% of the depth.
3. Right rim
- The first bar after the low whose high gets back within 3% of the left rim (or within -6% / +3% if that never happens).
4. Handle (3 to 8 bars after the right rim)
- Handle high between 95% and 103% of the right rim.
- At most 10% deep, and no deeper than half the cup.
- The handle low stays in the upper half of the cup.
- Closes don't rise by more than 1% per bar.
- Average bar range no more than 1.25x the cup's.
- At least 2 bars with highs within 4% of the handle high.
Shorter handles are checked first; the pattern forms on the first bar where all of the above is true.
5. After it forms (pivot = handle high)
- Breakout: close above the pivot.
- Invalidated: close below 90% of the right rim, or no breakout within 30 bars.
- Back below in 5 bars: after a breakout, a close at or below the pivot within 5 bars.
- If price closes below the handle low after a breakout, the pattern turns grey and the date is noted.
ON THE CHART
- Cup arc, handle line and a dashed pivot line.
- Blue = waiting, green = broke out, orange = back below in 5 bars, grey = invalidated.
- Hover the "Cup & Handle" label to see the formation bar, cup dates, length, depth, pivot, result and the move 5, 10 and 20 bars after the breakout.
- The table in the top right lists the latest patterns on the chart with their result and the move 5, 10 and 20 bars after the breakout (from the breakout close). These are single past cases on this symbol, not a win rate.
- If cups overlap, only the longest is drawn. The table shows how many were left out ("+N overlapped").
- Alerts: add an alert with "Any alert() function call" to get notified when a pattern forms and when it breaks out.
SETTINGS AND TIMEFRAMES
- Works on any timeframe. Lengths are in bars, so a weekly chart finds bases of about 7 months to 4 years, and an hourly chart finds bases of a few days to a few weeks.
- Cup length, cup depth, handle length, handle depth and the waiting period can all be changed.
- On stocks, keep dividend adjustment (ADJ) on so ex-dividend gaps don't look like price moves.
LIMITATIONS
- The thresholds were set on daily bars of Chinese A-shares and haven't been tested on other markets or on weekly/intraday data. On intraday charts the percentage rules (like the 8% minimum depth) can be too strict, so you may see few or no patterns.
- The table and tooltips only describe the history loaded on the chart. They are past cases, not a forecast.
- TradingView limits drawings, so at most 40 patterns are drawn at a time.
- Charts with little history will show fewer patterns.
ORIGINALITY
Written from scratch, no code taken from other scripts. It doesn't fit a curve to price: the left rim and the cup low have to be confirmed before they are used, V-shaped bottoms are filtered out, the handle is measured against its own cup, and every pattern is followed after it forms.
日本語
概要
カップ・ウィズ・ハンドル(カップ&ハンドル)を固定ルールで検出し、形成後にどうなったか(ブレイク、すぐにピボット下へ戻った、失効)まで追いかけるインジケーターです。しきい値はすべて下に書いてあるので、結果を自分で確かめられます。
計算はすべて確定足で行います。パターンは確定した足に表示され、後から描き直されることはありません。
判定ルール
1. 左の縁
- 前後2本で上回られていない高値(スイングハイ)で、直前20本の高値より高いこと。
- その後の終値がその高値の92%以下まで下がってから使います(少なくとも8%の押し)。
2. カップ
- 長さ30〜220本、深さ8%〜50%(左の縁から測定)。
- 最安値は確定したスイングローで、カップの長さの30%〜85%の位置にあること。
- カップ内の高値が左の縁を1%より大きく上回らないこと。
- V字ではなく丸い底:終値の15%以上がカップの下の方(安値+深さの35%以内)にあること。戻りの途中で、1本で深さの35%を超える上昇や、深さの15%を超える上窓がないこと。
3. 右の縁
- 底のあと、高値が初めて左の縁の3%以内に戻った足(なければ−6%〜+3%以内)。
4. ハンドル(右の縁のあとの3〜8本)
- ハンドルの高値が右の縁の95%〜103%。
- 深さ10%以内、かつカップの深さの半分以内。
- ハンドルの安値がカップの上半分にあること。
- 終値の上昇が1本あたり1%以内。
- 平均値幅がカップの1.25倍以内。
- ハンドルの高値から4%以内の高値が2本以上あること。
短いハンドルから順に調べ、すべて満たした最初の足でパターンが形成されます。
5. 形成後(ピボット=ハンドルの高値)
- ブレイク:終値がピボットを上回る。
- 失効:終値が右の縁の90%を下回る、または30本以内にブレイクしない。
- 5本以内に戻る:ブレイク後5本以内に終値がピボット以下になる。
- ブレイク後に終値がハンドルの安値を下回ると、グレーになり日付が記録されます。
チャート表示
- カップの弧、ハンドルの線、ピボットの点線。
- 青=ブレイク待ち、緑=ブレイク、オレンジ=5本以内に戻る、グレー=失効。
- 「Cup & Handle」ラベルにカーソルを合わせると、形成足、カップの期間・長さ・深さ、ピボット、結果、ブレイク後5・10・20本の値動きが表示されます。
- 右上の表は、チャート上の最近のパターンと結果、ブレイク後5・10・20本の値動き(ブレイク足の終値から)です。この銘柄の過去の個別事例で、勝率ではありません。
- カップが重なる場合は一番長いものだけを描き、描かなかった数を表に「+N overlapped」と表示します。
- アラート:「Any alert() function call」でアラートを作ると、形成時とブレイク時に通知されます。
設定と時間足
- どの時間足でも使えます。長さは本数なので、週足ならおよそ7か月〜4年、1時間足なら数日〜数週間のベースが対象になります。
- カップの長さ・深さ、ハンドルの長さ・深さ、ブレイク待ちの期間は変更できます。
- 株式では配当調整(ADJ)をオンにしてください。権利落ちの窓が値動きに見えるのを防げます。
注意点
- しきい値は中国A株の日足で決めたもので、他の市場や週足・日中足では検証していません。日中足では割合のルール(最小深さ8%など)が厳しく、パターンがほとんど出ないことがあります。
- 表とツールチップは読み込まれた過去データの事例だけで、予測ではありません。
- TradingViewの描画上限のため、同時に描けるのは最大40個です。
- 履歴が短いチャートではパターンが少なくなります。
独自性
他のスクリプトのコードは使わず、一から書いています。価格に曲線を当てはめるのではなく、左の縁とカップの底が確定してから使い、V字の底を除き、ハンドルを自分のカップと比べて判定し、形成後の経過まで追いかけます。 อินดิเคเตอร์

P2F - Pre-Market High and LowAn ICT/SMC-style indicator that marks a specific time window on an intraday chart (default 07:00–09:00 New York time, fully configurable) and tracks three things within that range:
1. Time Markers
Two vertical lines mark the start and end of the range (e.g. 07:00 and 09:00), each with a time label. Both lines are drawn together as soon as the range begins, so traders can see the full session box right away instead of waiting for real time to actually reach the end time.
2. Range High/Low — Buyside & Sellside Liquidity
While the range is forming, the indicator tracks the running high and low live and plots them as two horizontal lines (Buyside Liquidity above, Sellside Liquidity below) that move with price in real time. Once the range closes, both lines lock to their final level and automatically extend to the right until that level gets swept by price — representing untouched liquidity left behind by the session. Any unswept level from the previous session is also automatically frozen once a new range starts, so lines don't pile up extending indefinitely across days.
3. Fair Value Gap (FVG) / Inversion FVG (IFVG)
Detects standard 3-candle bullish and bearish Fair Value Gaps, but only for gaps formed inside the range's time window. An unfilled gap is drawn as a box labeled "FVG" and keeps extending to the right; once price fully closes the gap, the box stops extending and its label switches to "IFVG". Only the single most recent bullish and most recent bearish FVG/IFVG are shown at any time — a new one replaces the older one on its side, keeping the chart clean.
Configurable inputs: timezone, range start/end hour & minute, line style/color, Buyside/Sellside Liquidity colors, and bullish/bearish FVG box colors.
--- อินดิเคเตอร์

CU Sessions & LevelsCU Sessions & Levels
A clean, session-based key-level tool for intraday futures/forex trading. Automatically plots and labels the levels most traders track for context and confluence — without cluttering your chart with historical stacking, since every level resets and redraws fresh each session/day.
Levels included:
Asian Session High/Low – tracks the high and low of the Asian session (default 19:00–04:00 ET, adjustable)
London Session High/Low – tracks the high and low of the London session (default 03:00–09:00 ET, adjustable)
Initial Balance (IB) High/Low – high/low of the opening range window (default 09:30–10:30 ET, adjustable)
Current Day High/Low – live-updating high/low of today's session, resets each new day
Day Open – the current day's opening price
Previous Day High/Low – yesterday's high and low, for reference against today's price action
Week Open – the current week's opening price
Features:
Fully customizable colors, line width, label size, and session timezone
Adjustable session windows for Asia/London/IB to match your instrument or trading style
Each level only shows its current/most recent instance — no line buildup over time
Toggle any level on/off independently
Built for day traders who use session ranges, opening ranges, and prior-period reference levels as part of their process. Works on any symbol and timeframe. อินดิเคเตอร์

Time Clusters - Range Projection (Fixed Capture)Time Clusters – Range Projection (Selectable Capture TF)
Brief Description
This indicator identifies specific time-of-day slots (hourly + custom times) and captures the exact high/low range of the first bar of a user-selected timeframe (e.g. 1-minute, 5-minute, 15-minute) that occurs at the start of each slot. It then projects that range forward as a box for the rest of the session (or day).
You can run it on any chart timeframe (15s, 1m, 5m, etc.) while independently choosing which timeframe’s first bar range to capture.
Main Use Cases
Opening Range / Time-Based Range Trading: Capture the first 1-minute (or 5-minute) range of key sessions (London open, NY open, etc.) and trade breakouts or mean-reversion from that range.
Intraday Time Clusters: Track how price behaves relative to the opening range of specific hours (e.g. 09:00, 10:00, 13:30).
Multi-timeframe analysis on lower charts: Watch a 15-second or 1-minute chart while locking in the true 1-minute or 5-minute opening range of each slot.
Session profiling / statistical edge hunting: Quickly see which time slots produce reliable ranges that act as support/resistance for the rest of the day.
Ideal for traders who focus on time-of-day edges and want precise, non-repainting opening ranges without switching chart timeframes.
อินดิเคเตอร์

MACD + Impulse MACD - Normalized Momentum ScaleThis indicator brings two complementary momentum frameworks — standard Price MACD and Impulse MACD — into one shared, normalized momentum environment. The result is a view that goes beyond a single crossover or histogram reading: it lets you see how two different expressions of momentum are behaving together, where they agree, where they diverge, which one is leading, how strongly each is expanding or contracting, and whether that relationship is being reinforced by the developing higher timeframe.
At the center of the design is the Normalized Momentum Scale (NMS), which places both MACD families on the same fixed -100 to +100 coordinate. That common scale is what makes the comparison meaningful. Instead of looking at two separate indicators with unrelated native magnitudes, the script lets their lines, signals, histograms, crossover age, and higher-timeframe context coexist in one visual framework.
The standard Price MACD side captures the familiar relationship between fast and slow exponential averages of Close. The Impulse MACD side approaches momentum differently, using a smoothed High/Low envelope and a zero-lag EMA centerline to distinguish movement occurring inside that envelope from movement extending beyond it. This implementation was inspired by LazyBear's Impulse MACD concept:
Those differences are exactly what make the pairing useful. The goal is not to make standard MACD and Impulse MACD behave alike, but to give them a common language for magnitude and direction. When both expand together, when one begins to roll over before the other, when their histograms disagree, or when the developing higher timeframe confirms one side of the picture, those relationships become much easier to see and interpret.
➖The Normalized Momentum Scale➖
The core of the indicator is the Normalized Momentum Scale, or NMS. Each raw MACD-derived value is first divided by ATR14. This changes the question from:
“How many price units apart are these values?” to: “How large is this momentum displacement relative to the instrument's current volatility?”
That first normalization step makes the measurement substantially more portable across instruments and timeframes. But simply plotting ATR-normalized values on a linear scale creates another problem. Most ordinary momentum activity remains clustered relatively close to zero, while occasional large expansions can stretch the scale dramatically. NMS addresses that by applying a monotonic nonlinear transfer to the ATR-relative value and mapping it onto a fixed -100 to +100 coordinate. The scale deliberately provides more visual resolution through the region where momentum spends most of its time, while progressively compressing increasingly uncommon volatility-relative excursions toward the outer limits.
Its principal absolute-value calibration points are 0.70 ATR → 34, 1.25 ATR → 55, 2.50 ATR → 65, 4.00 ATR → 75, 7.00 ATR → 89, 12.0 ATR → 95, and 20.0 ATR → 100.
This is not a percentage scale, probability scale, RSI-style oscillator, or automatic overbought/oversold model. A reading of 75 does not mean “75% bullish.” It means that the underlying momentum displacement has reached a particular standardized magnitude relative to prevailing volatility. Because the transformation is monotonic, the ordering of MACD and its Signal is preserved. A bullish MACD crossover before normalization remains a bullish crossover after normalization.
➖Standard MACD➖
The standard MACD side defaults to the familiar 12 / 26 / 9 configuration, with all three lengths exposed in Settings. MACD and MACD Signal are independently normalized against ATR14 and then mapped through NMS. This preserves their crossover relationship while placing both lines on the common -100 to +100 momentum coordinate. The shaded region between them makes expansion and contraction easier to see. When MACD leads Signal, the pair assumes the bullish family color; when Signal leads MACD, it assumes the bearish family color.
The MACD Histogram is treated separately and importantly. The script first calculates the true raw histogram — MACD minus Signal — before normalization. That raw difference is then divided by ATR14 and independently mapped through NMS. This matters because subtracting two values after they have already passed through a nonlinear scale would distort the actual histogram magnitude.
➖Impulse MACD➖
Impulse MACD provides a second view of momentum. Its default architecture uses a 34-period smoothed High/Low envelope, a 34-period zero-lag EMA centerline, and a 9-period Signal. Both lengths are user-adjustable. The Impulse value remains at zero while its centerline is contained within the smoothed envelope and begins expressing signed momentum as that centerline moves beyond the envelope. This gives it a different character from standard MACD and can make the comparison between the two especially useful during transitions.
Impulse MACD and its Signal are normalized and mapped through the exact same NMS architecture as standard MACD. Its histogram is also calculated from the true raw difference first — Impulse MACD minus Impulse Signal — and only then normalized by ATR14 and mapped through NMS. That gives the indicator two genuinely different momentum models without sacrificing a common measurement framework.
➖Reading the two together➖
The indicator is not intended to answer only whether momentum is bullish or bearish. Its larger purpose is to show how two different momentum constructions are behaving relative to one another. When standard MACD and Impulse MACD are both expanding in the same direction, momentum is being expressed through both the conventional EMA relationship and the filtered Impulse framework. When one begins contracting, crossing, or changing direction before the other, that disagreement can reveal a transition that would be less obvious when either indicator is viewed alone.
The histograms add another layer. Their sign identifies current MACD-versus-Signal ownership, while their NMS magnitude shows how large that separation is relative to volatility. A small positive histogram just above zero and a positive histogram near 55 are therefore not visually treated as equivalent momentum conditions.
➖Developing higher-timeframe context➖
A Developing Auto-Next-HTF MACD Histogram is included as a higher-timeframe reference.
This is not the chart-timeframe histogram resampled onto a higher timeframe. The complete MACD calculation is performed natively inside the automatically selected next higher timeframe using the same user-selected Fast, Slow, and Signal lengths. That higher timeframe also calculates its own ATR14 before the histogram is mapped through NMS. The result gives a direct view of whether the local histogram is aligned with, diverging from, or potentially moving ahead of the developing momentum structure one timeframe above. Because this is intentionally a Developing HTF value, it can change while the current higher-timeframe candle remains open. It should be treated as live context rather than a confirmed higher-timeframe signal.
➖Focused NMS guide levels➖
The right side of the oscillator uses the semantic ladder 0, ±13, ±34, ±55, ±75, ±89 and ±100, but the indicator intentionally does not display every level all the time. Zero remains the permanent center reference. Other guide levels appear only when currently visible momentum geometry is actually approaching them. The guide engine considers standard MACD, MACD Signal, MACD Histogram, Developing HTF Histogram, Impulse MACD, Impulse Signal, and Impulse Histogram. A distant -75 level, for example, is not displayed merely because it is the next available rung below the current MACD value. This keeps the scale contextual and reduces unnecessary visual clutter while still making important momentum zones visible as they become relevant. Again, these levels should not automatically be interpreted as support/resistance or overbought/oversold thresholds. They are reference points on the standardized momentum scale.
➖Right-side labels➖
Current NMS values are displayed directly beside the oscillator through a compact right-label system. The MACD family and Impulse family each track the age of their most recent crossover using an inclusive bars-ago convention, where the crossover candle itself is 1ba. Crossover age also follows directional ownership. During a bullish MACD state, the age appears with MACD; during a bearish state, it appears with MACD Signal. The same convention is used for Impulse MACD and Impulse Signal. This makes it possible to see not only which component currently owns the pair, but also how long that relationship has been active.
➖Price-pane momentum context➖
The indicator can also project its histogram state onto the main price chart without moving the oscillator out of its pane. Optional force-overlay candles use the chart's actual Open, High, Low, and Close. Only their color is supplied by the momentum engine. Users can choose either MACD Histogram or Impulse Histogram as the candle-color source, with MACD Histogram selected by default. The candle body, wick, and border have independent transparency controls.
➖Customization➖
The default presentation is intentionally designed to show the relationship between the two systems while remaining readable. MACD / Signal and Impulse MACD / Signal default to line presentation, while both true histograms remain available as histogram plots. Historical display windows, widths, transparency, fills, labels, and plot styles can all be adjusted.
Color customization has been kept intentionally simple. The entire standard MACD family shares one Bull / Bear / Neutral palette, while the entire Impulse family shares a separate Bull / Bear / Neutral palette. This keeps the visual language consistent without requiring a separate color control for every individual plot.
➖How I use the scale➖
I generally begin with direction around zero, then look at which member owns each MACD/Signal pair, followed by the magnitude and direction of the histograms. From there, the NMS level provides context for how significant that momentum condition is relative to volatility.
A crossover occurring near the center of the scale may represent a very different market condition from a crossover occurring after one family has already expanded toward 55, 75, or beyond.
The Developing HTF Histogram then provides a final layer of context: is the next timeframe reinforcing the local move, opposing it, or beginning to turn?
The value of the indicator is therefore less about finding one “magic” level and more about seeing direction, magnitude, agreement, disagreement, expansion, contraction, crossover age, and higher-timeframe alignment in one standardized momentum framework.
➖Important note➖
The Normalized Momentum Scale changes the representation of momentum magnitude, not the underlying MACD relationships themselves.
Standard MACD remains standard MACD. Impulse MACD remains its own separate momentum construction. NMS simply gives both a common volatility-relative coordinate so their behavior can be compared more meaningfully.
The current chart bar and the Developing HTF series can both evolve while their respective candles are open. As with any technical indicator, this tool is intended to provide analytical context rather than predict future price movement with certainty.
➖A few chart examples➖
อินดิเคเตอร์

Multi Session ORBORB NQ — Asia / London / NY Break + Reject
Multi-session Opening Range indicator for NQ (and other futures). It builds a short opening-range box for Asia , London , and New York , then marks breakouts and rejections of those boxes.
Sessions (ET, adjustable)
- Asia: 18:00–03:00
- London: 03:00–09:30 (stops when NY starts so boxes do not stack)
- New York: 09:30–16:00
The first N minutes of each session (default 15) become that session’s OR zone. Color and opacity are in settings.
Signals
- SELL (▼ above the candle): price rejects the OR high and closes back inside, or closes out the OR low (breakdown).
- BUY (▲ below the candle): price rejects the OR low and closes back inside, or closes out the OR high (breakout).
Turn Show BUY / SELL text on if you want the words on the markers.
How to read it
1. Wait until the OR window finishes (shaded build column).
2. Rejection = tap the edge, close back inside → fade that side.
3. Breakout = close beyond the box by the minimum points setting → go with that side.
4. First signal per side per session is the default (can be turned off).
Use 1m or 5m . On 15m the “15-minute OR” is a single candle, so signals will not match the 1m chart.
Useful settings
- OR length, wide-OR warning, min breakout distance
- Zone colors / opacity / show-hide per session
- VWAP filter (off by default)
- Reject buffer and optional wick filter
- Session open/close hours
- Alerts: buy breakout, sell breakdown, sell reject high, buy reject low
Not included
This is an indicator, not a strategy. No auto size, stops, or day P&L. You place and manage trades yourself.
Note
signals can be wrong sometimes
LSE cash actually runs until 11:30 ET. London’s box is cut at 09:30 ET on purpose so it does not cover the NY zone. Set London close to 11:30 if you want the real cash overlap. อินดิเคเตอร์

อินดิเคเตอร์

Symbol vs NQ [BMT]Symbol vs NQ
Is the symbol on the chart adding something of its own, beyond how much more it moves than the Nasdaq does, and does it need megacap leadership to work? The name's move from a shared anchor, minus its beta to NQ times NQ's move from the same anchor, is the residual: above zero the name is beating the path its beta implies, below zero it is rising less than its beta alone would have delivered. The chart is tinted by that state.
What it draws
A background tint on the price chart: green while the name is beating its NQ-beta path by more than the threshold, red while it is missing it, nothing in between. A stronger green marks a confirmed lead, and a triangle under each confirmed bar (size is an input) carries a hover reading. A vertical line marks the anchor bar. A status table along one edge shows the name's move, its residual and sigma, its beta to NQ, NQ's own move and state, the regime profile, and the anchor in force.
The green takes the stairs up and the elevator down. It needs four consecutive bars above the threshold before it paints, and it drops the moment the residual is back at or under zero rather than waiting for minus the threshold. Red is immediate both ways. That is the asymmetry of the CARS state machine, and it is what keeps the tint from flickering on one-bar noise without smoothing away the turns.
While the name closes under its 50-day average, a positive residual is discounted to 70% before the threshold applies (an input, on by default). A discount, never a veto: a name can still read as leading under its 50-day, it just needs more to get there, and a lagging reading is never damped since that would slow the off-switch. The 50-day is read from the daily bars on every chart timeframe, the prior session's value, so it does not repaint.
The anchor
Measure picks the bar both series are measured from; the name and NQ always share it. The period anchors are the same bars Index Lead Lag uses, so with both on the chart they agree; the swing anchors are NQ's extremes where that script uses ES's.
Auto (default) chooses from the chart timeframe: session open under an hour, week open intraday above that, month open on a daily chart, quarter open above. The Ref cell shows what it resolved to.
Session open , Prior close , Week open , Month open , Quarter open . Each resets on its boundary. On CME index futures the daily bar opens at 18:00 ET, so Session open is the Globex open and the overnight sits inside the measure; Prior close is the 17:00 settlement.
RTH open : the open of the first bar of the cash session (09:30 to 16:00 New York by default, an input), with the overnight left out.
NQ swing low / NQ swing high : the lowest low or highest high NQ has printed in the range on screen, so it reads as "since the Nasdaq turned, has this name done more than its beta?". Pan or zoom and it re-resolves to the new view. NQ's turn rather than the name's own on purpose: a name measured from its own low is at its minimum there by construction, which flatters every residual.
Fixed date : a date from the date picker. Does not reset.
The period anchors are read as prices from a higher-timeframe request rather than counted back as bars, so there is no history-buffer limit on how far back an anchor can sit.
Beta and the residual
Beta is the ordinary least squares slope of the name's bar returns against NQ's, fitted on the bars before the one being scored so a bar cannot explain itself away, over a window of four anchor periods on the chart's own bars (four sessions for a session anchor, four months for a month anchor, four times the span for a swing or a date; floor 60 bars, cap 2000). Sizing the window from the anchor keeps beta fitted at the horizon it is subtracted over. The table shows the bars in use.
The residual is scored in standard deviations of where it could have drifted by chance by this point in the period: per-bar residual noise times the square root of bars since the anchor. Early in a period it takes less to clear the threshold and late in a period it takes more, rather than one yardstick set by the period's average size. The sigma is measured on the name's own per-bar residual, so 1.0 means the same thing for a stock as for an index even though the stock moves several times as far.
Until the beta window has filled there is no beta and no reading, and the table says so: a recent listing with fewer bars than the window shows n/a and the bar count against the window, because a name that cannot be measured is not a weak name.
Confirmed leads
Beating a beta while merely quiet is a read that inverts by regime: in a panic the names that have not yet fallen can be the best shorts, not the best buys. So a lead is confirmed only when the name is also at a period high NQ has not made, the upside leg, which is the half of the read that holds in both regimes. An unconfirmed lead is not nothing; it is a sign whose direction you cannot yet read. There is no mirror on the lag side.
Regime profile
NQ's own state against its beta to ES is tracked the same way, and the table shows what the name's residual has averaged while NQ was leading its beta and while NQ was lagging it, over about the last 50 qualifying bars of each. A wide gap says the name rides megacap leadership and NQ's state matters to it; two similar numbers say it trades on its own.
NQ source
Futures (NQ1!, with ES1! for the NQ regime) intraday, where the cash index has no overnight bars; the cash index (NDX, with SPX) on daily and above, where a long anchor would otherwise carry the futures' roll gaps. Auto chooses by timeframe; the Ref cell says which is in use. อินดิเคเตอร์

อินดิเคเตอร์

VT VWAP SuiteVT VWAP Suite is a clean multi-period VWAP tool designed to show price location, volume-weighted value, and filtered reactions around important VWAP levels. It provides market context and does not generate automatic trade entries.
FEATURES
* Daily, Weekly, and Monthly VWAP
* Custom Session VWAP
* Daily deviation bands at +/-1 and +/-2 standard deviations
* Filtered bullish and bearish VWAP reaction markers
* Compact dashboard
* Alerts for confirmed VWAP reactions
CALCULATION
All VWAPs use HLC3 as the price source and weight each bar by its available volume.
The Daily, Weekly, and Monthly VWAPs reset at the beginning of their respective periods. The Custom Session VWAP uses only bars inside the selected session and time zone.
The optional deviation bands are fixed at one and two volume-weighted standard deviations around the Daily VWAP. This allows users to enable them without configuring additional parameters.
REACTION MARKERS
A reaction marker requires the candle to touch the selected VWAP and close away from it in the corresponding direction.
The internal quality filter also evaluates:
* Candle body and closing position
* Distance from the VWAP relative to ATR
* Direction of the selected VWAP
* Current volume compared with its 20-bar average
* A three-bar cooldown between markers
Markers are calculated only after the candle closes. They identify qualified VWAP reactions, not guaranteed reversals or trade signals.
DASHBOARD
The dashboard shows whether price is above or below the Daily, Weekly, and Monthly VWAPs. It also displays the direction of the Daily VWAP.
For example, “Above · VWAP ↓” means price is currently above the Daily VWAP, while the VWAP itself is moving lower compared with the previous completed bar.
The Custom Session row appears only when the Custom Session VWAP is enabled.
PURPOSE
The script combines independently resetting VWAP periods, a session-restricted VWAP, one-click Daily deviation bands, filtered reaction markers, alerts, and a compact dashboard in one focused tool.
It does not introduce a new VWAP formula. Its purpose is to make multi-period VWAP analysis easier to read while filtering weak or repeated reactions.
LIMITATIONS
VWAP results depend on the volume data supplied by the chart and may differ between exchanges, brokers, and markets. Active VWAP values develop as new price and volume enter the current period.
The indicator does not account for news, spread, slippage, or individual risk. It is intended for educational and analytical purposes only and does not provide financial advice or guaranteed results.
อินดิเคเตอร์
