Indicator

Asian ORB - Opening Range Breakout With MidpointAsian ORB — Opening Range Breakout
This indicator calculates the opening range for the Asian trading session and plots the session high, low, midpoint, and range area on the chart.
By default, the Asian ORB begins at 8:00 PM New York time and measures the first 15 minutes of trading. The levels are then extended until 2:00 AM New York time.
The indicator includes:
Asian session high and low
Opening-range midpoint
Optional range shading
Long and short breakout labels
Breakout alerts
Custom session times
Custom colors and line styles
Support for futures such as MNQ, NQ, MES, ES, YM, and GC
A long signal appears when price closes above the Asian ORB high. A short signal appears when price closes below the Asian ORB low.
For stronger confirmation, combine the signals with VWAP, moving averages, liquidity levels, market structure, or your preferred trading strategy. This indicator is designed as a breakout tool and should not be used as a standalone trading system.
Recommended timeframe: 5-minute chart.
This script is for educational purposes only and does not constitute financial advice. Indicator

Economic Release and Earnings Highlighter -CPI, NFP, FOMC, etc.This script highlights historical and current candles during specific types of economic and earnings releases (the ones that typically result in high volatility and higher margin requirements). This includes triple witching days, CPI, FOMC, Non-farm Payroll, Jackson Hole speeches, PPI, CPE, and major earnings as well (including Target for instance that does influence equities a lot).
Highlights are color-coded for different releases, making it easy to scroll back and visually assess what happened. I will try and update for upcoming releases, this is getting published on Sept. 10th 2026 for 5 years back plus known dates of upcoming releases.
I hope it's useful to you.
Thanks. :)
Indicator

Indicator

Tidemarks - Session Levels & VWAPTidemarks — Session Levels & VWAP
Tidemarks brings session levels, daily and weekly reference prices, confirmed higher-timeframe swings, and VWAP into one customizable chart overlay. It keeps key prices visible as the session develops, with individual level controls and automatic label staggering to help keep crowded areas readable.
Available levels include:
Session: Pre-market and after-hours highs and lows.
Daily: Prior-day open, high, low, and close; current-day open, high, low, and range midpoint.
Weekly: Prior-week high, low, and close; current-week open, high, and low.
Swings: Latest confirmed 1-hour and 4-hour swing highs and lows, with adjustable pivot strength.
All-time high: Highest price found in the available monthly history.
VWAP uses typical price, (high + low + close) / 3, with session, weekly, or monthly resets. Optional ±1 and ±2 standard-deviation bands show price’s distance from VWAP.
Choose between historical level segments, the latest levels extending right, or the latest levels spanning the full chart. Customize individual colors, separate line styles and widths for daily, weekly, and swing levels, label size and spacing, and optional prices on labels and the price scale. Nearby labels automatically stagger horizontally.
Built-in alert conditions cover regular-session crosses above the pre-market high or below the pre-market low, plus crosses above and below VWAP.
Tidemarks is designed primarily for intraday charts. Pre-market and after-hours levels require extended-session bars to be available and enabled. VWAP requires volume data. The 1-hour swing levels appear on chart timeframes of 1 hour or lower; 4-hour swings appear on timeframes of 4 hours or lower. Swing levels become available after confirmation, with a delay determined by the selected swing strength.
Current daily and weekly ranges develop during their periods. Historical daily, weekly, and all-time-high displays can reflect completed higher-timeframe values before those values were known live, so historical charts should not be interpreted as a record of real-time signals. The all-time-high level also depends on available history.
Rebuilt and streamlined from “Price levels” by nkwdesmond, with attribution retained under the Mozilla Public License 2.0. Indicator

PPT First 5-Minute Candle High/LowMarks the high and low of the very first 5-minute candle of the trading session — the "opening range" that opening-range-breakout (ORB) traders use as their first reference level of the day.
WHAT IT DOES
At the session open (9:30-9:35 AM ET by default), the indicator watches that opening 5-minute candle form in real time. The instant that candle closes, its high and low are locked in and drawn as two horizontal lines extending forward across the rest of the chart, optionally tagged with price labels ("5M High = ..." / "5M Low = ..."). Those two lines become your reference: a break above the high or below the low is the classic opening-range-breakout signal, while price holding between them marks the range traders can fade.
The lines are drawn fresh every session. By default only today's lines are kept (each new day's lines replace yesterday's); turn off "Show Only Today's Lines" to instead build up a running history of every session's opening range on the chart.
WORKS ON ANY CHART TIMEFRAME
You do not need to be viewing the 5-minute chart. When you are, the indicator reads the high/low directly off your own chart bars; on any other timeframe (1m, 15m, 1H, daily, etc.) it pulls the 5-minute data for you in the background, so the same opening-range lines show up no matter what timeframe you actually trade from.
MULTI-EXCHANGE SESSION SUPPORT
Choose which exchange's regular session open to mark — New York, London, Tokyo, Sydney or Hong Kong — or define your own session time and IANA timezone with the "Custom" option. This makes it useful for opening-range setups on US equities/futures, FX session opens, or other global markets without changing your chart's own timezone.
INPUTS
High/Low Line Color — colors for the two opening-range lines
Line Style / Width — solid, dashed or dotted, and line thickness
Exchange Timezone — which session's open to track (or Custom)
Custom Session/Timezone — session time (HHMM-HHMM) and IANA timezone, used only when Exchange = Custom
Show Only Today's Lines — keep just the current session's lines, or accumulate every past session's lines too
Show High/Low Labels — toggle the price-value text labels
Label Text Size — size of those labels
Label Gap — how far the labels sit from their line, as a percentage of price
This is a pure charting/visualization tool — it draws the opening-range levels for you to trade around manually; it does not place trades, plot buy/sell signals, or generate alerts on its own. Indicator

Liquidity Sweep Confirmation Zones [Pineify]Liquidity Sweep Confirmation Zones
Overview
This overlay separates a wick beyond known swing liquidity from a response that earns a zone. It shows rails, a candidate bridge, confirmed boxes, retest wear, and a dashboard.
Problem Definition
A basic sweep rule labels every wick beyond a prior high or low. It cannot separate rejection from a breakout near the level, and it ignores later response. Permanent lines remain prominent after failure. Back-plotting a pivot also hides that right-side bars were required to confirm it. The task is to find a closed-bar pierce and reclaim at a level already known, then require timely departure before creating support or resistance.
Design Rationale
Confirmed pivots provide structure that existed before the sweep. Each rail is armed once to stop repeated events. ATR scaling replaces raw ticks across price levels, while the sweep freezes its rail, extreme, close, and ATR so later bars cannot rewrite the test. A limited window rejects delayed movement. Net displacement alone was rejected because a choppy path can eventually travel as far; efficiency also measures progress versus total close travel. This can omit real reversals, but accepted events are easier to audit. Dual-rail sweeps are ignored as directionally ambiguous.
Key Features
One-shot confirmed swing rails.
ATR-scaled pierce and reclaim gates.
Frozen response, path efficiency, and age.
Zones beginning at confirmation, with retest wear and bounded life.
Closed-bar candidate, confirmation, and invalidation alerts.
How It Works
ATR is calculated while a pivot waits for its right-side bars; its rail appears only when confirmed. A later closed bar becomes a candidate when its wick pierces one armed rail by the required ATR fraction and its close reclaims it by the chosen distance. That rail is consumed, while a dual-rail reclaim is ignored.
The candidate freezes direction, rail, extreme, reclaim close, and ATR. Later bars accumulate close travel. Response is directional progress divided by frozen ATR, and efficiency divides positive response by total travel. Both thresholds must pass on the reclaimed side before timeout. Closing through the extreme also fails the candidate.
Confirmation creates a green support or red resistance box on that bar. Each new entry counts as a retest and increases transparency. Bullish zones invalidate below their extreme; bearish zones invalidate above it. Age stops extension, storage removes the oldest excess box, and warm-up shows no rail until ATR and a pivot exist.
How Multiple Indicators Work Together
The stages form one causal chain. Pivots supply pre-existing levels; ATR supplies scale; reclaim establishes rejection; displacement tests follow-through; efficiency rejects wandering paths; the time window links response to sweep. The box preserves that frozen evidence for retest and invalidation. Removing a stage changes the question, so the components are not an arbitrary mashup.
Trading Ideas and Insights
A circle records rejection, not completed follow-through. The amber bridge shows the pending interval while response develops. Green means a downside sweep received efficient upward confirmation; red means the inverse. Fading records more separate retests and can suggest wear for review. These states organize rejection, confirmation, retest, and failure, but do not define entries, targets, returns, or size.
Unique Aspects
The contribution separates event knowledge from outcome. A rail begins only when confirmed, a sweep consumes it once, and its facts are frozen. Promotion needs ATR-scaled progress plus path efficiency within a fixed window. The box starts at promotion, so history does not imply earlier confirmation. Retests count only new entries, not every bar inside. This is an auditable state sequence rather than a renamed pivot marker.
How to Use
Choose pivots for the intended structure horizon.
Watch armed rails; a circle marks a closed-bar pierce and reclaim.
Read bridge, response ATR, efficiency, and age while pending.
Treat a diamond and new box as confirmation on that bar; then monitor retests and failure.
Use Once Per Bar Close alerts with separate execution and risk rules.
Customization
Larger pivots select broader but later structure. Higher pierce or reclaim values filter shallow probes. Raising displacement or efficiency requires cleaner response but reduces events; longer windows weaken temporal linkage. Zone life sets the horizon, maximum zones bounds objects, and maximum retests changes wear shading only. Visual layers hide independently. Defaults are not universal optima.
Assumptions and Limitations
Confirmed pivots are assumed useful liquidity references and ATR an adequate scale. Pivot delay leaves recent structure unavailable. Only one candidate is tracked, and dual-rail sweeps are rejected. Bar-based efficiency cannot reveal intrabar order, actual liquidity, stops, or intent. Gaps, fast trends, thin markets, and poor settings can break interpretation. Closed bars drive state, but setting or data revisions can recalculate history. The script does not detect actual stop hunts, predict reversals, measure profitability, or decide whether to trade a zone.
Conclusion
The overlay turns a known swing, closed-bar reclaim, and bounded efficient response into a staged record. No zone exists before follow-through qualifies it; delay, wear, expiry, and failure stay visible.
Indicator

NASH BBv2: TRADE BY HAND FOR NOW### Overview
**NASH BBv2** is an all-in-one intraday market structure and trend-analysis script designed for futures and equity traders. It combines three distinct institutional concepts into a single chart overlay:
1. **Higher Timeframe Trend Anchoring:** A customizable HTF EMA filter (default: 15-minute 21 EMA) to keep trades aligned with the dominant trend.
2. **Session Open Basis Hierarchy:** Time-anchored opening price levels (Globex, Midnight, and NY Equities Open in Central Time) to score directional bias based on structural alignment.
3. **Automated Fair Value Gap (FVG) Engine:** Real-time 15-minute imbalance detection, complete with 50% equilibrium midlines and real-time mitigation tracking.
---
### Core Components & Mechanics
#### 1. HTF Trend Anchor (15m 21 EMA)
* **Calculation:** Fetches the 21-period Exponential Moving Average from a higher timeframe (default: 15m) using non-repainting `request.security` calls.
* **Trend Filtering:** Flags the market as bullish when price trades above the anchor line, and bearish when below.
* **Visuals:** Features an optional background shading gradient and serves as an execution filter for breakout signals.
#### 2. Session Open Basis Hierarchy (Chicago / CT Timezone)
Anchoring price relative to major institutional shift points provides crucial context for daily expansion:
* **5:00 PM CT (Globex Open):** Establishes the initial baseline for the trading day.
* **11:00 PM CT (MNO / Midnight Open):** Captures the European/London liquidity anchor.
* **8:30 AM CT (NY Open):** Marks the New York Cash Equities opening bell.
**Directional Scoring System:**
At 8:30 AM CT, the script automatically evaluates the spatial hierarchy of these three open levels:
* **Bulls Strong (`Score = +2`):** `5:00 PM Open < 11:00 PM Open < 8:30 AM Open` (Higher highs across session opens).
* **Bears Strong (`Score = -2`):** `5:00 PM Open > 11:00 PM Open > 8:30 AM Open` (Lower lows across session opens).
* **Mixed / No Edge (`Score = 0`):** Opens are out of sequence, signaling choppy or non-trending structural conditions.
#### 3. Intraday Breakout Signals
* **Logic:** Detects when intraday price pierces or closes beyond any of the three anchored open levels (5pm, 11pm, 8:30am CT).
* **Detection Modes:**
* `Wick/Touch`: Fires immediately when high or low crosses the level intraday.
* `Close`: Requires a full candle close beyond the level for strict confirmation.
* **Filter:** Breakout signals are aligned with the HTF EMA (Longs only above EMA, Shorts only below EMA).
#### 4. 15-Minute Fair Value Gap (FVG) Tracker
* **Imbalance Detection:** Identifies 3-bar price inefficiencies on the 15-minute timeframe (`High < Low ` for Bullish FVGs; `Low > High ` for Bearish FVGs).
* **Mitigation Tracking:** Dynamically extends FVG boxes and draws a 50% equilibrium line until price enters the zone. Once mitigated, the box dims to gray and stops extending.
---
### How to Use
1. **Determine Bias:** Check the 8:30 AM CT NY Open label and background tint. Look for **BULLS STRONG** or **BEARS STRONG** readings for high-conviction daily bias.
2. **Confirm Trend:** Ensure price is on the correct side of the HTF 21 EMA line before taking setups.
3. **Identify Key Zones:** Use the 15m FVG boxes and 50% midlines as high-probability entry or target zones during retests.
4. **Execute Breakouts:** Use the signal triangles (green/red) to catch momentum expansion off key session open lines.
---
### Key Inputs & Customization
| Parameter Group | Option | Description |
| --- | --- | --- |
| **EMA Settings** | `EMA Anchor Timeframe` | Timeframe for the higher timeframe EMA anchor (Default: `15`). |
| | `EMA Period` | Length of the anchor EMA (Default: `21`). |
| | `Filter Signals via EMA` | Enforces trend direction on breakout signals. |
| **Open Levels** | `Timezone` | Primary timezone for session anchors (Default: `America/Chicago`). |
| | `Breakout Detection` | Toggle between `Wick/Touch` or `Close` break modes. |
| | `Show Breakout Signals` | Plot/hide signal triangles on the chart. |
| **FVG Settings** | `FVG Master Timeframe` | Timeframe used for FVG detection (Default: `15`). |
| | `Bullish / Bearish Color` | Custom opacity and color schemes for gap boxes and midlines. |
---
### Alert Setup
This script includes pre-configured alert conditions for seamless execution monitoring:
* **NY Open Alignment:** Fires when the 8:30 AM CT structural score resolves to Bulls Strong, Bears Strong, or Mixed.
* **Breakout Alerts:** Fires real-time notifications on Long or Short open-level breakouts.
---
*Disclaimer: This indicator is designed solely for technical analysis, educational, and research purposes. It does not constitute financial advice, and past structural setups do not guarantee future market performance.* Indicator

VWAP A BE BOPVWAP A BE BOP — Every Anchor You'll Ever Need, One Indicator
VWAP A BE BOP consolidates the anchored VWAP toolkit that traders normally piece together from three or four separate scripts into a single, clean overlay. Instead of hunting for daily VWAP here, a weekly anchor there, and a rolling previous-day reference somewhere else, every timeframe you actually trade around lives in one place — fully customizable, fully synced.
Five calendar-anchored VWAPs — Daily, Weekly, Monthly, Quarterly, and Yearly — give you the institutional reference levels that price consistently reacts to, each with its own toggle and color so you can build exactly the confluence stack your strategy calls for. Layer a fast Daily VWAP against a slower Monthly or Quarterly anchor to instantly see whether you're trading with or against the higher-timeframe flow.
Daily and Previous Day deviation bands bring statistical context to the mix. Three independently adjustable standard-deviation multipliers (defaulting to 1, 2, and 2.5) mark the zones where price has statistically stretched from fair value — classic mean-reversion and breakout-confirmation territory, without cluttering your chart with bands on every single line.
A true Previous Day VWAP, anchored precisely at session open with zero configuration required, plus optional rolling lines going back a full week — perfect for spotting how current price stacks up against where the market was trading 2, 3, or even 7 sessions ago.
Fully adjustable labels turn a wall of colored lines into an instantly readable chart. Rename any line to whatever shorthand you like — "pDay," "M," "Q" — and control label size and horizontal offset so the tags sit exactly where you want them, whether you're on a widescreen monitor or a cramped mobile chart.
Built for traders who live and die by mean reversion, fair value, and institutional order flow, VWAP A BE BOP strips away the noise of over-engineered multi-panel scripts and gives you a single, elegant, endlessly configurable VWAP suite — the last VWAP indicator you'll need to add to your chart.
For educational and informational purposes only. Not financial advice. Indicator

Indicator

Indicator

Indicator

Multi Cycle Session Boxes
Multi Cycle Session Boxes is an overlay tool that frames freely defined time windows with a box that grows with the price inside it.
It is built for anyone who keeps drawing the same rectangle over the same hours — a trading session, the run-up to a weekly close, a month, a season — and would rather have that window marked on every repetition without touching the chart again.
The principle is a plain comparison: each session holds a start point and an end point, and while the current bar falls between them the box tracks the highest high and the lowest low reached since the window opened.
There is no indicator arithmetic behind this; the entire calculation is calendar arithmetic carried out in a timezone of your choosing, which is what allows the same window to repeat on a daily, weekly, monthly or yearly cycle.
Seven such sessions run independently of one another, each with its own cycle, its own window and its own colors.
Timezone
Timezone: the timezone all seven sessions are evaluated in; Exchange follows the timezone of the symbol itself.
SESSION 1 (present seven times, SESSION 1–SESSION 7, each instance identically structured)
Show boxes: switches the session on or off.
Repeat: the cycle the window repeats on — Daily, Weekly, Monthly or Yearly.
It also decides which of the time fields below are evaluated.
Session 1 Time (Start:End)
Month: first and last month of the window, evaluated in Yearly only.
Day: first and last day of the window, evaluated in Weekly, Monthly and Yearly. In Weekly the day is counted from 1 for Monday to 7 for Sunday, otherwise it is the day of the month.
Hour: first and last hour of the window.
Minute: first and last minute of the window.
Session 1 Graphic
Fill: color of the box area.
Border: switches the border on or off, and sets its color and its width.
A box opens on the first bar that falls inside the window and is redrawn with every bar that follows: its upper edge sits at the highest high reached since the window opened, its lower edge at the lowest low, and its right edge moves along with the last bar still inside.
Once the window closes the box stays where it is, so what builds up on the chart is a record of what each repetition of that window actually contained.
Every session keeps its last seventy boxes and removes the oldest as new ones open, which keeps all seven of them together within what the platform allows a single script to draw.
The end of a window is exclusive: a window ending at 15:30 contains the bar before it, not the 15:30 bar itself.
A window whose end lies before its start is not discarded but crosses the boundary of its cycle instead, which is how an overnight session from 22:00 to 06:00 remains a single box.
If start and end are set to the same point, the window is open at all times and each box then spans one full cycle before the next one begins.
In Weekly the two day fields count only up to seven, and higher values are read as Sunday.
In Monthly and Yearly a day the calendar month does not have is never reached: an out-of-range start skips that repetition altogether, an out-of-range end carries the box through to the end of the month.
One point worth knowing before the first attempt: a window can only be resolved as precisely as the chart's timeframe permits.
A window from 12:00 to 15:30 needs bars that fall inside those hours — on a daily chart no bar begins at 12:00, so nothing is drawn there.
This indicator is intended solely for market analysis and does not constitute investment advice or a guarantee of success.
Use it at your own discretion and risk; past results are not indicative of future performance.
Indicator

Candlestick Pattern ScannerCandlestick Pattern Scanner
Candlestick Pattern Scanner detects 28 classic Japanese candlestick patterns, 13 bullish, 13 bearish, 2 neutral, and qualifies every reversal pattern against its own prior-trend context, not candle shape alone. The same geometry (small body, long lower wick) reads as a Hammer after a downtrend and a Hanging Man after an uptrend.
HOW IT WORKS
Trend Engine, combines EMA slope, price displacement, market structure (higher-highs/higher-lows vs. lower-highs/lower-lows), and an optional efficiency-ratio directional weight into a 5-state trend read (Strong Downtrend to Strong Uptrend).
Off / Standard / Strict per pattern, every pattern is configured independently. Strict demands tighter geometric tolerance, a stronger prior trend, and better close/open placement than Standard.
Quality Score (0-100), geometry (40%), trend alignment (30%), proximity to a recent swing high/low (15%), and range-vs-ATR normalcy (15%). Ranks how far beyond the bare minimum a detection sits; it never changes whether a pattern fires, only how it's ranked and filtered.
Conflict resolution, when multiple patterns fire on the same bar, Display Mode picks what gets labeled: All, Highest Priority (multi-candle > two-candle > single-candle > neutral), or Highest Quality (default).
Built-in legend, a bottom-left table maps every abbreviation to its full pattern name.
BUILT-IN TRACKING
The Data Window keeps a running count of every pattern found, grouped Bullish/Bearish/Neutral with totals, a quick read on which patterns are actually showing up on this symbol/timeframe, not just single detections.
INPUTS
General: master Bullish/Bearish/Neutral toggles, Display Mode, Use Full Names, Show Quality Score, Minimum Quality.
Trend Engine: lookback, EMA lengths, strong/weak thresholds, efficiency-ratio toggle, ATR length, tolerance factors.
Pattern Configuration: Off/Standard/Strict per pattern, 28 total.
Appearance: bullish/bearish/neutral colors, label size/offset/transparency, legend table toggle.
Alerts: per-direction toggles and a minimum alert quality.
DISCLAIMER
This is an independent, original implementation of publicly known candlestick concepts, not a clone of, or claim of equivalence to, any specific commercial product. Every threshold is disclosed in the script itself. Classical candlestick patterns are not inherently predictive; use the Quality Score and your own back-testing to judge whether a given pattern/context combination has real edge on the symbol and timeframe you're trading, and always apply proper risk management.
Indicator

Multi-Timeframe FVG [Custom]
A configurable Fair Value Gap (FVG) indicator that plots FVGs from up to 4 independent timeframes simultaneously on a single chart, with full control over how each timeframe's gaps look and behave.
Key features:
4 independent timeframes — enable any combination (e.g. 1min, 5min, 15min, 1H) at once, each with its own full set of settings.
True multi-timeframe display — a lower-timeframe FVG (e.g. 1min) still displays correctly on a higher-timeframe chart (e.g. 5min), and vice versa. Each timeframe has a toggle to control whether its gaps remain visible once the chart's timeframe is larger than that FVG's own timeframe.
Non-repainting — every FVG is confirmed only after the relevant candle closes on its own timeframe; nothing is drawn or evaluated on a still-forming candle.
Fully customizable appearance per timeframe — independent fill colour, border colour, border width, and border style (solid/dashed/dotted) for bullish and bearish gaps.
Optional midline — toggle a midline through each gap; its colour and thickness automatically match that gap's border, with its own line style.
Rectangles with optional extension — FVGs render as boxes, either a fixed width (in that timeframe's own bars) or continuously extending to the latest bar.
Fully customizable labels — optional label per gap with custom text (supports a {tf} placeholder), vertical position (top/mid/bottom), and horizontal alignment. Label size is set once globally. When a box is extending, right-aligned labels float a fixed number of chart bars ahead of price instead of getting stuck inside the box.
Per-timeframe lookback — control how many bars (of that timeframe) of history each timeframe scans and keeps, independent of the others.
Precise mitigation rule — a gap is only removed once a candle of its own timeframe closes fully across the far boundary of the gap, in the opposite direction. Chart-timeframe noise doesn't trigger it.
Notes:
All settings are grouped by timeframe in the inputs panel for quick adjustment.
This script is intended as a visual reference tool and does not generate trade signals. It is not financial advice — always do your own analysis before trading. Indicator

Statistical Mapping - True + Midnight Open⚠️⚠️ IMPORTANT — READ BEFORE USING ⚠️⚠️
This indicator is an educational and analytical tool. It is not financial advice, not a signal service, and not a trading system. It does not tell you when to buy or sell.
Every number it shows is a HISTORICAL FREQUENCY measured on past data. It is not a probability, not a forecast, and not a guarantee. Markets change; a level that was reached on 70% of the last 90 days may be reached far less often over the next 90. Past behaviour never guarantees future behaviour.
Do not size positions off these levels alone. Do not treat a "Reach" percentage as an edge. Use this tool to understand context — how far this market normally travels — and combine it with your own analysis, your own risk management, and your own testing.
You are solely responsible for your trading decisions and any losses that result from them.
════════════════════════════════════════
WHAT THIS IS, IN ONE PARAGRAPH
Every trading day has a shape. Price opens, usually pokes a little way in the wrong direction, then travels in the direction it is actually going to close. Statistical Mapping measures both of those distances across the last N days and draws them on your chart as five levels around today's open. It tells you, before the day develops, roughly how far this market normally pulls back and roughly how far it normally runs.
════════════════════════════════════════
THE FIVE LEVELS
Working from the top of the screen down:
+D Upside distribution objective
-M Upside manipulation area
O The anchor open
+M Downside manipulation area
-D Downside distribution objective
"Distribution" (D) is travel in the direction the period closed. "Manipulation" (M) is travel against it, before the period resolved.
So on a day that closes UP:
- the run from the open up to the high is DISTRIBUTION
- the dip from the open down to the low is MANIPULATION
And on a day that closes DOWN, the mirror image.
That is why the levels are not symmetrical, and why -M sits above the open while +M sits below it. +D and -D are objectives. +M and -M are the areas where a move typically fakes out before doing what it was going to do anyway.
════════════════════════════════════════
CALCULATION METHODS:
BOTH MEDIAN & MEAN
MEAN ONLY
MEDIAN ONLY
---------------
TIMEFRAME EXAMPLES:
1 WEEK
4 HOUR
1 HOUR
---------------
OPTION TO CHOOSE THE NEW YORK MIDNIGHT OPEN AS THE DAILY OPENING PRICE
════════════════════════════════════════
HOW IT IS CALCULATED
For each of the last N completed periods (default 90 days), the script records:
Direction = up if close > open, down if close < open
If the period closed UP:
Distribution sample = high - open
Manipulation sample = open - low
If the period closed DOWN:
Distribution sample = open - low
Manipulation sample = high - open
It then takes the mean or the median of each set of samples and projects those two distances from the CURRENT period's open:
+D = today's open + distribution
-M = today's open + manipulation
+M = today's open - manipulation
-D = today's open - distribution
Mean is the arithmetic average — it is pulled around by outlier days such as CPI, FOMC or gap opens. Median is the middle value — it ignores those outliers and is usually the tighter, more realistic number.
"Both" mode draws a shaded zone spanning from the mean to the median instead of a single line. The WIDTH of that zone is itself information: a wide zone means the sample is skewed by a handful of violent days; a narrow zone means the market has been behaving consistently.
════════════════════════════════════════
THE STATISTICS TABLE — AND WHY IT MATTERS
For each level the table reports:
Level the level name
Price where the level currently sits
Dist how far that is from the anchor open, in price
Reach see below
Hit whether the current period has already traded through the level
In **Both** mode the chart draws a ZONE from the mean to the median, and the table reports the **near edge** of that zone — whichever of the two sits closer to the anchor open. That is the first price of the zone price actually reaches, so it is the number that matters in practice. Price, Dist, Reach and Hit all use that same near edge, so every column describes the same price, and the far edge stays visible on the chart as the other side of the band. Alerts use it too.
Hover any column header for a full explanation of that column. A compact footer row shows the mapping period, anchor mode, method, how many periods were actually usable, and how the sample splits between up-closing and down-closing periods.
IF YOU RUN BOTH MAPPING PERIODS AT ONCE
The table describes ONE mapping period at a time. Two periods have entirely different levels, distances and statistics, and interleaving them would produce a table nobody could read.
By default that is MAPPING PERIOD 1 — the first of the two timeframe slots. You can point it at period 2 instead with "Show Statistics For" in the statistics table settings.
If the period you pick is not on screen — its levels are hidden because your chart timeframe is not lower than it — the table falls back to the other one rather than showing you nothing.
The footer's first cell always names the period the table is describing, right next to the anchor mode and the calculation method, so you can confirm which one you are reading at a glance. The chart draws both sets of levels regardless; only the table is limited to one.
WHAT "REACH" MEANS, PLAINLY
Reach answers one question: out of the days in your lookback, how many of them actually got this far?
Worked example. Lookback is 90 days. +D sits 419 points above today's open, and Reach shows 25.6%.
That means: on 23 of the last 90 days, price traded 419 points or more above THAT day's open at some point during the day. On the other 67 days, it never got that far.
Nothing more than that. It is a count of past days, expressed as a percentage.
Why it is useful: a level on its own is just a line. Reach tells you whether that line marks something ordinary or something rare.
Low Reach (say 15-25%) — price rarely gets here. An extended target. If price
is already here, the day has done unusual work.
High Reach (say 70-80%) — price gets here on most days. Routine. Reaching it
tells you very little on its own.
The footer shows how many periods were actually usable and the up/down split, so you can always see the sample the numbers rest on.
Reach is a count of what happened on past days. It is not a probability of it happening today, and it is not a forecast.
════════════════════════════════════════
SAMPLE SELECTION — WHICH PAST PERIODS GET MEASURED
This is the setting that decides what the statistics actually describe, and it matters more than any other.
MATCHED (the default)
Only periods from the SAME SLOT are measured.
On an intraday mapping period that means the same time of day. With a 1H mapping at 09:15, the numbers come from the 09:00-10:00 hour of each of the previous days. At 10:00 the indicator switches to the 10:00-11:00 hour of those same days. On a 1D mapping period it means the same weekday — a Thursday is measured against previous Thursdays.
ROLLING
The last N periods in a row, whatever time of day they happened to be.
WHY THIS EXISTS
Markets do not behave the same at every hour. The New York open and the middle of the Asian session are different animals. Average them together and you get a number that describes neither.
The practical consequence is specific: on a 1H mapping, a rolling average of the last 90 hours is dominated by quiet hours, because most hours are quiet. Project that at 09:30 and the levels sit far too close in — price blows through them in the first ten minutes and the map looks broken. It is not broken; it was answering the wrong question. Matched sampling asks the right one: how far does THIS hour usually travel?
The same applies on a daily mapping. Mondays and Fridays do not behave like Wednesdays.
WHAT IT DOES TO "LOOKBACK"
In Matched mode, Lookback counts OCCURRENCES of the slot rather than consecutive periods. Lookback 90 on a 1H mapping means the last 90 appearances of that hour — roughly 90 trading days, not 90 hours. That is a much longer reach into history, which has one consequence worth knowing about, below.
WHEN IT DOES NOT APPLY
A 1W mapping period contains one of each slot, so there is nothing to match against. The indicator uses Rolling there and says so on the chart rather than pretending otherwise.
HONEST LIMITATION
Reaching back 90 occurrences of a slot means reaching back 90 days of data. On coarser mapping periods — 30m, 1H, 4H, 1D — that fits comfortably. On finer ones, 15m and below, it needs more intraday history than the script is given, so the sample comes up short.
The indicator does not hide this. The footer shows the real count as, for example, "n 46/90", and a notice explains that fewer samples were available and why. The levels remain valid; they simply rest on a smaller sample, and you can decide whether that is enough. Lowering Lookback removes the notice.
The table footer names the active slot, so you can always see exactly which pool the numbers came from — "1H 09:00" rather than just "1H".
ONE THING TO SET ONCE
That slot label has a time zone setting, in the statistics table section. It defaults to New York, which is the reference most index-futures and FX traders keep their charts on. If your chart is set to anything else, change it to match.
This is not laziness — Pine scripts genuinely cannot read TradingView's chart Time Zone setting. TradingView treats it as a display preference and gives scripts no access to it. So if you have changed your chart away from Exchange time, the label has no way of knowing until you tell it.
The practical case: MNQ trades on CME, whose exchange time zone is Chicago. A chart left on Exchange time therefore runs an hour behind New York. Set this to whatever your chart shows, once, and forget it.
It affects the LABEL ONLY. Slot grouping, every level, every statistic and every Reach figure are completely unaffected — changing time zone shifts every bar by the same amount, so exactly the same periods are grouped together either way.
════════════════════════════════════════
WHICH LEVELS GET REACHED ON WHICH KIND OF DAY
This falls straight out of how the levels are built, and it is worth understanding because it is most of what makes the tool useful.
+M and -M sit close to the open, because a typical day's counter-move is small. They get reached on most days — including slow, quiet, range-bound ones. Look at your own Reach column and they will usually be the two highest numbers in the table. That is exactly why price touching +M or -M, on its own, tells you very little. It is the normal texture of a day, not an event.
+D and -D sit much further out, because they represent a full typical day's directional travel. Price only gets there when the day has already moved further from its open than an average day manages. In practice that means TRENDING DAYS and HIGH-VOLATILITY DAYS — expansion sessions, news days, days that pick a direction in the morning and hold it. On a quiet range day price frequently never comes close to either one.
So the two pairs are answering different questions:
Price at +M / -M -> ordinary. The day is doing what days do.
Price at +D / -D -> this day is not ordinary. It has already
behaved like a trend or expansion day.
That second line is the practical one. Reaching a distribution level is itself information about the character of the session, before you form any view about what happens next.
Two honest caveats. First, this is a description of what the levels mean, not a prediction — nothing here says today will be a trend day. Second, "volatile" and "trending" are not the same thing and the tool does not distinguish them: a violent chop that swings 400 points in one direction and back can reach +D just as a smooth trend can. The level tells you the distance was covered, not how or in what order.
════════════════════════════════════════
HOW THIS DIFFERS FROM ADR / AVERAGE DAILY RANGE
ADR takes the average of (high - low) over N days and usually draws a band above and below either the open or the previous close. It answers one question: how big is a typical day?
Statistical Mapping answers a different and, I would argue, more useful set of questions.
WHERE IT GOES FURTHER THAN ADR
1. It compares like with like. ADR averages the last N days as one undifferentiated pool. On an intraday mapping period this indicator averages only the SAME TIME OF DAY — the 09:00 hour against previous 09:00 hours — and on a daily period only the same weekday. No ADR variant does this, and it is the difference between a projection that survives the New York open and one that price walks through in the first ten minutes.
2. It separates the range into direction. ADR gives you one number for the whole candle. Stat Map splits that candle into the part that travelled with the close and the part that travelled against it, and measures them separately. That is the difference between "the day is usually 300 points" and "the day usually pulls back 90 points before running 210".
3. It is asymmetric, and deliberately so. Because up-days and down-days are measured on their own terms, the upside and downside levels are not mirror images. ADR bands almost always are.
4. It offers the median, not just the mean. A single CPI day can inflate an ADR reading for weeks. The median is immune to that. Being able to flip between the two — and to see the gap between them in "Both" mode — is a diagnostic in its own right.
5. It reports how often each level was actually reached. This is the big one. ADR draws a line and stops. Stat Map tells you the historical frequency behind every line it draws.
6. It supports a NY Midnight anchor. For 24-hour markets the exchange's own daily open is often an arbitrary moment. Many traders work from 00:00 New York instead. The script rebuilds whole days around that time and recomputes every statistic from scratch, rather than just shifting a line.
7. It works on any mapping period, not only daily. Set it to 1W and you get the same decomposition for the weekly candle.
WHERE ADR IS THE BETTER TOOL, OR WHERE THIS ONE IS WEAKER
Being straight about this matters more than selling it.
1. It is more complicated. ADR is one number and anyone can use it in thirty seconds. This has five levels with a specific meaning each, and it will confuse a beginner who has not read the definitions above.
2. It needs a directional close to classify a period. A day that closes exactly at its open contributes to neither sample set. This is rare but it means the sample count can be slightly below your lookback setting.
3. The classification is only known in hindsight. A period is labelled up or down by its CLOSE. That is fine for building statistics from finished days, but it means the levels drawn on today's open are built on a mix of past up-days and past down-days — the script does not and cannot know which kind of day today will be. Both sides are drawn precisely because that is unknowable.
4. It is not adaptive within the period. The levels are fixed at the open and do not adjust as volatility develops during the session. ADR-style tools have the same limitation, but it is worth stating.
5. It says nothing about sequence or timing. It tells you how far, not when, and not in what order. A day that runs to +D at 09:45 and a day that grinds there by 15:55 look identical to this tool.
6. Regime changes take time to show up. With a 90-period lookback, a genuine shift in volatility takes weeks to be fully reflected. Shorten the lookback if you want faster adaptation — and accept a noisier, less stable reading in exchange.
Neither tool replaces the other. ADR sizes the day. This maps it.
════════════════════════════════════════
HOW TO USE IT — PRACTICAL
FOR BEGINNERS, START HERE
Put it on a 15m chart with the defaults, set Calculation method to Median, and just watch it for two weeks without trading it. Notice how often price dips to +M early and then turns. Notice how often +D holds as a high for the day. You are building an intuition for how far this market actually moves — which is the single most common thing new traders have no feel for.
There is no single "correct" way to trade this. The levels describe the shape of a period; which part of that shape is useful depends entirely on what you trade. The sections below cover the common approaches, and the range section is as important as the trend one.
INTRADAY / DAY TRADING
The manipulation levels (+M and -M) are where the tool earns its keep. If you are looking for longs and price has come down into +M, you are at the area where up-days have historically found their low. That is a location to look for your own entry trigger — not a signal by itself. The distribution levels (+D and -D) work the other way: they are where you consider taking profit rather than initiating, because price reaching there means the day has already done a typical day's work in that direction.
The anchor open (O) is a simple bias line. Above it, you are on the bullish side of the period; below it, the bearish side.
RANGE, CONSOLIDATION AND MEAN-REVERSION
This is the other half of the tool, and it is easy to miss if you only read the section above.
Most days are not trend days. On an ordinary session price spends its time between +M and -M, oscillating around the anchor open, and never comes close to +D or -D. That is not the tool failing — it is the tool telling you what kind of day it is.
For anyone trading ranges, consolidations, or short mean-reversion, the useful structure is the inner three levels and nothing else:
-M the upper edge of the ordinary daily range
O the middle, and the level price returns to most often
+M the lower edge of the ordinary daily range
Look at the Reach figures for +M and -M on your instrument. They are typically the two highest numbers in the table — commonly 55-80%. That is the whole point: these are levels price reaches on most days, including quiet ones. Approaches built around them are naturally higher-frequency and lower reward-to-risk than approaches built around +D and -D, which is a trade-off, not a flaw. Fading -M back toward the open, or buying +M back toward the open, is a coherent way to use this.
The anchor open is the natural target for that kind of trade, and often the natural invalidation for the opposite one.
TWO HONEST WARNINGS ABOUT THIS
First, and this matters: Reach measures how often price GOT to a level. It does not measure how often price REVERSED there. Those are completely different questions and this indicator only answers the first. A 75% Reach on -M means price traded there on three days in four — it says nothing whatever about what happened next. Do not read a high Reach as a high win rate.
Second, the trades that make range approaches work are the same trades that get destroyed on trend days. The day you fade -M is the day price runs to +D. That is precisely why the distribution levels are on the chart at the same time: if price is pushing through -M with conviction rather than stalling at it, the map is telling you this may not be a range day. Use the whole structure, not half of it.
SCALPING
Use the Reach column as a filter. If price is sitting just past a level with a 20% reach, the market is already in unusual territory for the session and further continuation in that direction has historically been the exception, not the rule. Conversely a level with 70% reach is barely a level at all — price gets there on most days and it is poor evidence of anything.
Also watch the Hit column. Once +D is ticked for the day, the remaining upside to a typical day's extension is spent.
SWING TRADING
Put 1W in mapping period 1, untick period 2, and drop the chart to 1D or 4H. (Slot
1 rather than slot 2 on purpose: alerts only ever fire from slot 1 — see ALERTS
below.) You now get the same decomposition for the weekly candle: how far a week typically pulls back before running, and how far it typically runs. Weekly +M often lines up with the sort of pullback entry swing traders wait for.
You can also run both at once — 1D and 1W together — on a 1H or 4H chart, to see where the daily and weekly structures agree.
CHOOSING MEAN vs MEDIAN
Median for normal conditions and for tighter, more conservative targets. Mean when you want the levels to account for the fat tail — around known event risk, for example. Both, when you want to see how far apart they are, because that gap is a direct read on how outlier-driven the recent sample has been.
════════════════════════════════════════
IMPORTANT BEHAVIOUR YOU SHOULD KNOW ABOUT
THE TIMEFRAME RULE — please read this one, it is the most common confusion
Your chart timeframe must be STRICTLY LOWER than the mapping period.
Mapping 1D -> chart must be 4H, 1H, 15m, 5m, 1m ...
Mapping 1W -> chart must be 1D, 4H, 1H ...
On a 1D chart the 1D levels will NOT appear. This is correct and intended: a period cannot be projected forward across a chart bar that already contains it. The script tells you so in a message at the bottom of the chart rather than failing silently. If you find that message annoying once you understand the rule, you can switch it off in the settings.
NY MIDNIGHT ANCHOR PRECISION
Days are rebuilt from 1-hour data, inside that data's own context rather than from your chart's bars. 00:00 New York falls on an hourly boundary for the futures, forex and crypto markets this mode is intended for, so the reconstruction is exact.
Because the reconstruction never touches chart bars, the anchor and every level are identical on every chart timeframe. A 5m chart, a 1H chart and a 4H chart all show the same prices.
The anchor mode applies to the 1D mapping only. Any other mapping period always uses that period's own true open.
DAYLIGHT SAVING TIME
Handled automatically, and worth explaining because it is a common source of doubt.
The script uses America/New_York, which is a full timezone rule rather than a fixed UTC offset. The anchor therefore tracks local New York clock time all year — EST in winter, EDT in summer — and its position relative to UTC shifts on its own at each changeover. You never need to adjust anything.
The two changeover days are 23 and 25 hours long. Days are rebuilt by watching the New York calendar date change, not by counting a fixed number of bars, so those two days are measured correctly as well: one simply contains one hour less of data, the other one hour more.
WHY THERE IS NO CUSTOM TIMEZONE OPTION
This is deliberate, for three reasons.
First, a technical one. Days are reconstructed from 1-hour bars, which is exact only because midnight New York lands on an hourly boundary. Several timezones are offset by a half or quarter hour — India, Iran, Nepal, parts of Australia — and there midnight falls in the middle of an hourly bar. The reconstruction would be quietly wrong rather than visibly broken, which is the worst kind of wrong.
Second, a conceptual one. The New York midnight open is a specific reference point that a large amount of flow actually keys off. It is not an arbitrary parameter. A free-form timezone box would imply every choice is equally meaningful, and most are not.
Third, an honest one about method. Offering a dial that changes every number in the table invites tuning it until the levels look good on the chart in front of you. That is curve-fitting, and it makes the statistics worse while feeling like it makes them better.
If you want a different anchor, the True Daily Open mode already gives you the exchange's own reference, which is the other genuinely meaningful one.
SAMPLE SIZE
If your data history cannot supply the number of periods you asked for, the table footer shows what was actually used and a message appears on the chart. The statistics are still valid, they are just built on fewer samples. Be more sceptical of a Reach figure built on 20 periods than one built on 200.
WHAT "TRUE DAILY OPEN" MEANS ON YOUR INSTRUMENT
It is the open of the 1D candle exactly as TradingView builds it for that symbol — so it follows each market's own session definition rather than imposing one:
US stocks 09:30 New York (regular session)
Euronext stocks 09:00 local exchange time
CME index futures 18:00 New York, previous day
Other futures that product's own session start, which differs by complex (grains, energy, metals and softs do not all open at the same time)
Forex and CFDs typically 17:00 New York
Crypto 00:00 UTC
One thing worth knowing: for instruments with a pre/post market, the daily candle follows YOUR CHART'S extended-hours setting. Turn extended hours on for a US stock and the daily open becomes the pre-market open rather than 09:30. That is consistent with what you see on the chart, but it does mean two traders looking at the same stock with different session settings will see different levels. If that matters to you, fix your chart's session setting and leave it alone.
If you trade something unusual and want to be sure, put the indicator on a 1H chart and compare the O line against the open of the daily candle on a 1D chart. They should match to the tick.
THE SAME ON EVERY CHART TIMEFRAME
Everything the script draws is read from the mapping period's own context, never rebuilt from chart bars. Put a 1W mapping on a 1D chart, then a 4H, then a 1H, then a 5m: the anchor, all five levels and every statistic are the same prices every time.
That is a deliberate design decision, not a detail. Rebuilding the anchor from chart bars cannot guarantee it, because bar alignment, session definitions, holidays and gaps all differ between timeframes — and a level that moves when you change timeframe is worse than no level at all.
REPAINTING
No level moves once it is drawn. Every level is fixed the moment its period opens and stays there until the next period begins.
Being precise about how that holds, since the script does use lookahead:
1. Every statistic — the means, the medians, the Reach percentages, the
sample counts — is computed from COMPLETED periods only. The forming
period's high, low and close never enter any of them. This is the part
that would leak the future, and it does not.
2. The five levels are built from those statistics plus the current period's
OPENING price, and drawn between its start and end timestamps. All three
of those are known the instant the period begins, so reading them ahead is
not future information. This is the standard, documented way to anchor a
higher-timeframe open.
3. One further value is read: the current period's running high and low. It
feeds exactly one thing — the Hit column, which reports whether the period
SO FAR has traded through a level — and that column is only ever drawn on
the last bar, where "so far" means right now. No level, no statistic and no
alert depends on it, and nothing about it is plotted historically.
Point 3 is worth stating plainly because it is the kind of thing that deserves scrutiny in an open-source script. It is read from the period's own context rather than rebuilt from chart bars for a concrete reason: on a live chart, a script is not guaranteed to calculate over the full period, so counting back through chart bars can silently measure only a recent slice of it — and do so differently in Bar Replay than in real time.
WHEN THERE IS NOT ENOUGH HISTORY
If the symbol does not have as many completed periods as your Lookback asks for — 90 weekly periods is nearly two years, and plenty of symbols do not have that — the script does not hide anything and does not error out.
It uses every period that does exist, shows the real count in the table footer as for example "n 47/90", and puts a notice at the bottom of the chart telling you the sample is smaller than you requested. The levels remain valid; they simply rest on fewer samples, and you can decide whether that is enough for you. Lowering Lookback to a number the symbol can actually supply removes the notice.
The statistics table never disappears because of missing data. If a value genuinely cannot be computed it reads n/a, so you can always see what the script is and is not able to do.
════════════════════════════════════════
SETTINGS
1 — MAPPING PERIODS
Two independent slots, each with its own on/off toggle. Defaults are 1D on, 1W off.
Daily anchor mode: True Daily Open, or NY Midnight Open (00:00 America/New_York).
Lookback: how many completed periods feed the statistics. Default 90. In Matched sampling this counts occurrences of the current slot.
Sample Selection: Matched or Rolling. Defaults to Matched. See the section above.
Calculation method: Mean, Median, or Both. Defaults to Both.
2 — "BOTH" MODE ZONES
Fill colours for the mean-to-median zones. Sits directly under Calculation method because it only has an effect when that is set to Both.
3 — LEVEL LINES, COLOURS & LABELS
Colour, line style and thickness for each of the five levels, listed in the same top-to-bottom order they appear on the chart. Level labels can be turned off.
4 — STATISTICS TABLE
On/off; which mapping period it describes (defaults to period 1); slot label time zone (defaults to New York; set it to match your chart); position (all eight edge and corner slots, including top and bottom centre; defaults to Middle Right); text size (defaults to Normal).
5 — ALERTS
Which levels can fire, and what counts as reaching one.
6 — WARNINGS
On/off for the on-chart notices described above. The warning panel automatically places itself away from the statistics table, so the two never overlap wherever you put the table.
════════════════════════════════════════
ALERTS
Six alert conditions are available:
+D reached
-M reached
Open crossed
+M reached
-D reached
Any enabled level
ALERTS COME FROM MAPPING PERIOD 1 ONLY . Worth stating plainly, because nothing on
screen will tell you otherwise: if you untick mapping period 1 and run only period
2, these six conditions still appear in TradingView's dropdown and you can still
create the alert — it simply never fires. If you want alerts on a particular
period, put that period in SLOT 1.
Settings section 5 controls two things. First, which levels are allowed to fire — untick a level and it will never trigger, even if you created an alert for it. Second, what counts as reaching a level:
Touches the level (wick) — fires as soon as any part of the bar reaches the
level. Earlier and more sensitive.
Closes beyond the level — fires only when a bar CLOSES past it. Later, and
fewer false triggers.
TO CREATE AN ALERT
1. Set the tickboxes in section 5 the way you want them, then press Ok.
2. Right-click the chart and choose Add alert (or press Alt+A).
3. In the Condition dropdown at the top, select "Stat-Map (Gigi)".
4. In the second dropdown, pick the level you want. Use "Any enabled level" if
you would rather have one alert covering all of them.
5. Set Trigger to "Once Per Bar Close" for confirmed signals, or "Once Per Bar"
for intrabar.
6. Press Create. Repeat for each level you want separately.
The levels jumping to new prices at the start of a period never by itself sends an alert. A genuine touch on that opening bar does, though — an opening bar that runs from the anchor open straight into a level is a real event, and both the Hit column and the alerts treat it as one.
════════════════════════════════════════
Open source under the Mozilla Public License 2.0. You are welcome to read, learn from and build on the code.
Feedback and bug reports are genuinely welcome — if you find a symbol or timeframe where something looks wrong, please say so.
— Gigi_Luigino Indicator

Trading ATR Framework# Trading ATR Framework
**Trading ATR Framework** is a rule-based volatility and market-location tool designed primarily for intraday futures trading.
The purpose of the indicator is not to generate automatic buy or sell signals. Instead, it provides a structured way to measure how far the current market has moved relative to its recent daily volatility and to identify predefined volatility expansion zones.
## Core Concept
The framework uses two main reference values:
1. **Previous Daily Close**
The previous completed trading day's close is used as the default reference price.
2. **Daily ATR(14)**
The indicator calculates the Average True Range over the last 14 completed daily bars. ATR measures the average daily price range and is used as a volatility reference.
From these two values, the indicator projects symmetrical volatility levels above and below the reference price.
The calculated levels are:
* +25% ATR
* +50% ATR
* +75% ATR
* +100% ATR
* -25% ATR
* -50% ATR
* -75% ATR
* -100% ATR
For example, if the previous daily close is 20,000 and the completed Daily ATR(14) is 400 points, the +25% ATR level would be:
**20,000 + (400 × 0.25) = 20,100**
The -50% ATR level would be:
**20,000 - (400 × 0.50) = 19,800**
This creates a standardized volatility map around the previous session's closing price.
## Why I Created This Framework
Many intraday traders evaluate price levels without considering how far the market has already travelled relative to its normal daily volatility.
This framework combines:
* previous-session price anchoring,
* completed Daily ATR volatility,
* fractional ATR expansion levels,
* tick-size normalization,
* directional location,
* and risk-to-reward calculations
into one visual framework.
The goal is to make market location more objective.
Instead of simply asking whether price is bullish or bearish, traders can evaluate questions such as:
* Is price still close to the previous daily close?
* Has the market already expanded 50% of its normal daily ATR?
* Is price approaching a 75% or 100% ATR expansion?
* Is a potential entry occurring early or late within the current volatility expansion?
* Does the available distance to the next relevant level justify the risk?
## Directional Context
The indicator also displays the current position of price relative to the ATR framework.
Price trading above the reference close indicates positive expansion, while price trading below the reference close indicates negative expansion.
This directional information is intended as **market context**, not as an automatic trend or trade signal.
A market trading above +50% ATR, for example, is in a very different volatility location than a market trading only +10% above the previous close.
The trader can use this information together with market structure to determine whether the market is:
* expanding,
* consolidating,
* approaching an extended volatility area,
* or returning toward its reference price.
## How to Use the Indicator
A typical workflow is:
**1. Identify market direction and structure**
Evaluate the broader session structure, previous highs and lows, trend direction, consolidation areas, or other structural references.
**2. Check the current ATR position**
Determine where price is currently located relative to the previous daily close and the projected ATR levels.
**3. Evaluate volatility expansion**
Consider whether the market is still in an early expansion area such as 25% ATR or has already reached a more extended area such as 75% or 100% ATR.
**4. Look for confirmation**
ATR levels are not intended to be traded mechanically.
They can be combined with tools such as:
* price action,
* support and resistance,
* volume,
* volume profile,
* order flow,
* footprint charts,
* delta,
* liquidity,
* session highs and lows,
* or other trader-defined confirmation methods.
**5. Evaluate risk-to-reward**
The built-in risk-to-reward tool can be used to compare the intended stop distance with a target based on a 2.5R reward-to-risk relationship.
## Tick-Size Normalization
ATR calculations can produce prices that do not correspond exactly to the minimum tick size of a futures contract.
The indicator therefore rounds calculated ATR levels to the instrument's valid tick size.
This makes the projected levels easier to use with futures contracts such as:
* NQ / MNQ
* GC / MGC
* CL / MCL
The framework can also be applied to other instruments where ATR-based volatility mapping is useful.
## Manual Reference Mode
By default, the framework uses the automatically calculated previous daily close and Daily ATR(14).
Optional manual inputs allow traders to override:
* the reference/settlement price,
* and the ATR value.
This can be useful when a trader wants to work with an exchange settlement value, an externally calculated ATR value, or another manually defined session reference.
## Risk-to-Reward Calculator
The indicator includes a simple **2.5R risk-to-reward calculation**.
This feature is intended to help traders evaluate whether sufficient price space exists between a potential entry, stop level, and target.
It is a planning tool and does not automatically determine whether a trade should be taken.
## Alerts
Alerts can be configured for important ATR level crossings.
This allows traders to monitor when price enters or crosses predefined volatility expansion zones without continuously watching the chart.
## Intended Markets
The framework was primarily developed for intraday futures markets, especially:
**Nasdaq**
NQ / MNQ
**Gold**
GC / MGC
**Crude Oil**
CL / MCL
However, because the calculations are based on price and ATR rather than instrument-specific signals, the framework can also be applied to other liquid markets.
## Important Interpretation
ATR measures volatility, not direction.
Reaching +75% ATR does not automatically mean price should reverse.
Likewise, reaching -100% ATR does not automatically mean a market should be bought.
Strong directional markets can continue beyond a full Daily ATR.
The ATR levels should therefore be interpreted as **volatility and decision zones rather than standalone entry signals**.
The framework is designed to answer:
**"Where is the market currently trading relative to its normal daily volatility?"**
The final trading decision remains dependent on market structure, confirmation, execution rules, and risk management.
Indicator

Volume Profile ML [PickMyTrade]🔷 WHAT IT MEASURES
🔸 A rolling volume profile — traded volume binned across price, weighted triangularly around each bar's typical price rather than spread evenly across its whole range
🔸 Nine properties of every ARRIVAL at a high or low volume node — its share of row volume, rank percentile, local thickness, approach displacement, distance from the Point of Control, position within the profile, volume surge on approach, profile concentration, and position within the Value Area
🔸 An arrival resolves as a hold or a break by real price movement, checked in that order — undecided arrivals are discarded, not counted as failures
🔸 The Point of Control, Value Area, and every high and low volume node redraw on a rolling cadence as the window moves
――――――――――――――――――――――――――――――――――――――
🔷 THE ML ENGINE
🔸 A Lorentzian K-nearest-neighbour classifier, weighted by distance rather than counted equally, trained continuously as arrivals resolve — no repainting, no lookahead
🔸 Nothing about a node's absolute price is used as a feature — only how price approached it and what the node itself looked like
🔸 The vote shrinks toward the chart's own base rate when few neighbours are close, so a thin library never reads as confident
🔸 When the nearest analogues in the library aren't actually close, the script says so — "no analogue" instead of a percentage built on a bad match
🔸 Below a configurable warmup count it reads LEARNING, not a guess
――――――――――――――――――――――――――――――――――――――
🔷 SIGNALS AND DISPLAY
🔸 A circle marks a high-conviction read, a triangle a standard one — shape carries strength, colour carries direction
🔸 Blue for acceptance, orange for rejection, grey for anything that hasn't earned a direction yet, the same three colours across the profile, the vote, and the dashboard
🔸 An info table with Point of Control, Value Area, library size, the chart's own base rate, and the live analogue distance against its configured ceiling
🔸 3 alertconditions, worded as observations of what the classifier's reading — never as trade instructions
――――――――――――――――――――――――――――――――――――――
🔷 INPUTS
Profile Lookback / Rows — bars the profile is built from, and how finely it's binned. Default 240 / 48.
Rebuild Cadence — bars between profile recalculations. Default 5.
HVN / LVN Percentile — the volume percentile a row must clear to count as a high or low volume node. Default 80 / 20.
Re-arm Distance — minimum bars before the same node can register a new arrival. Default 10, floored at the resolution timeout.
K Neighbours / Library Cap — how many analogues vote, and how many resolved arrivals are retained. Default 9 / 100.
Shrinkage Weight — how hard a thin neighbourhood is pulled toward the base rate. Default 4.0.
Max Analogue Distance — the ceiling above which the vote reads "no analogue" instead of a percentage. Default 4.0.
Reject / Break Threshold — how far price must travel back, or close beyond, a node to resolve a test. Default 0.8 / 0.5 ATR.
Resolution Timeout — bars before an unresolved arrival is discarded. Default 25.
Conviction Threshold — vote at or above which an arrival is marked high conviction. Default 0.65.
――――――――――――――――――――――――――――――――――――――
🔷 REQUIREMENTS AND LIMITATIONS
🔸 The library is built forward from the chart's own loaded history — scroll back to load more and the script relearns from the new starting bar, so earlier votes can differ from what you saw before. This is bar history dependence, not repainting — no value changes after its own bar closes within a single run.
🔸 On instruments with no volume feed the profile itself carries no meaning, and the dashboard says so rather than showing an empty one anyway
🔸 Below the warmup count a node's own read is thin — the library size travels with every vote so that's never hidden
🔸 This script reports how historical arrivals resolved. It does not predict, and it is not a trading system on its own.
――――――――――――――――――――――――――――――――――――――
Built in Pine Script v6. Open source — Mozilla Public License 2.0. Indicator

Coinbase Premium Barometer by tf1803 COINBASE PREMIUM — BAROMETER
WHAT IT DOES
This indicator measures the price difference between Coinbase — the regulated
US exchange where buyers pay in actual dollars — and an offshore reference
exchange quoted in USDT (Binance by default). That spread is a proxy for where
demand is coming from.
Above zero → Coinbase is more expensive. US buyers are paying up.
Below zero → Coinbase is cheaper. Selling pressure sits on the US side.
It is a context tool, not an entry signal. Its value lies in whether the spread
confirms or contradicts what price is doing.
HOW IT IS CALCULATED
Premium (USD) = Coinbase price − reference price
Premium (percent) = (Coinbase price − reference price) / reference price × 100
Both exchanges are requested on the timeframe of your chart, with no lookahead.
An optional USDT depeg adjustment converts the reference price into real dollars
via USDT/USD before comparing. This removes the portion of the spread that only
exists because the stablecoin itself is trading off its peg — useful during
periods of stablecoin stress, when a raw spread overstates the actual demand
imbalance.
FEATURES
- Absolute USD or percentage display
- Any symbol pair — works for ETH, SOL or anything listed on both venues
- Optional USDT depeg correction
- Signal moving average (EMA or SMA) to read the trend rather than the noise
- Extreme detection, either adaptive (standard deviation bands) or fixed
thresholds, with background shading
- Automatic trendlines connecting the last two pivot highs and pivot lows of
the premium itself, extended right — shows when a premium regime is losing
momentum before the zero line is crossed
- Markers at every zero crossing
- Info box with the current value, the signal MA and a Z-score
- Six alert conditions: zero crossings in both directions, signal MA crossings,
and entries into either extreme
HOW TO USE IT
Add it to a daily chart first. The daily is where the reading is cleanest; on
low timeframes the spread becomes noisy and the EMA smoothing input (try 5)
becomes necessary.
Then watch the relationship, not the number:
- Price rising while the premium stays negative — the move is not carried by US
spot demand. Weaker than it looks.
- Price rising with the premium turning positive — demand and price agree.
- Premium making higher lows while price chops sideways — accumulation building
under the surface. The automatic trendlines are there to make exactly this
visible.
- Extremes in either direction tend to mean-revert. They mark exhaustion more
often than continuation.
NOTES AND LIMITATIONS
Single spikes are noise. The signal is in the trend over days and weeks.
Part of any spread is structural rather than informational: USDT can trade off
its dollar peg, and the two venues differ in fees, liquidity and depth. The
depeg option addresses the first of these; the others remain.
The indicator reads the same on every chart it is applied to, because it pulls
both legs from the symbols set in the inputs rather than from the chart symbol.
This is a market-structure tool for context. It is not financial advice and
makes no claim about future prices.
COINBASE PREMIUM — BAROMETER
WAS ER MACHT
Der Indikator misst die Preisdifferenz zwischen Coinbase — der regulierten
US-Börse, an der in echten Dollar gekauft wird — und einer Offshore-Referenzbörse
in USDT (voreingestellt Binance). Diese Differenz ist ein Näherungsmaß dafür,
woher die Nachfrage gerade kommt.
Über null → Coinbase ist teurer. US-Käufer zahlen auf.
Unter null → Coinbase ist günstiger. Der Verkaufsdruck sitzt in den USA.
Es ist ein Kontextwerkzeug, kein Einstiegssignal. Der Wert liegt darin, ob die
Differenz bestätigt oder widerspricht, was der Preis tut.
BERECHNUNG
Premium (USD) = Coinbase-Preis − Referenzpreis
Premium (Prozent) = (Coinbase-Preis − Referenzpreis) / Referenzpreis × 100
Beide Börsen werden auf der Zeiteinheit des Charts abgefragt, ohne Lookahead.
Optional lässt sich der USDT-Depeg herausrechnen: Der Referenzpreis wird über
USDT/USD in echte Dollar umgerechnet, bevor verglichen wird. Das entfernt den
Anteil der Differenz, der nur daher kommt, dass der Stablecoin selbst von seiner
Bindung abweicht.
FUNKTIONEN
- Anzeige in absoluten USD oder in Prozent
- Beliebiges Symbolpaar — funktioniert für ETH, SOL und alles, was an beiden
Börsen gelistet ist
- Optionale USDT-Depeg-Korrektur
- Signal-MA (EMA oder SMA), um den Trend statt des Rauschens zu lesen
- Extremerkennung wahlweise adaptiv (Standardabweichungsbänder) oder über feste
Schwellen, mit Hintergrundfärbung
- Automatische Trendlinien auf dem Premium selbst, gezogen zwischen den letzten
beiden Pivot-Hochs bzw. -Tiefs und nach rechts verlängert — macht sichtbar,
wenn eine Phase ausläuft, bevor die Nulllinie gekreuzt wird
- Markierungen an jedem Nulldurchgang
- Info-Box mit aktuellem Wert, Signal-MA und Z-Score
- Sechs Alarmbedingungen: Nulldurchgänge in beide Richtungen, MA-Kreuzungen und
das Erreichen beider Extrembereiche
ANWENDUNG
Zuerst auf dem Tageschart. Dort ist die Ablesung am saubersten; auf kleinen
Zeiteinheiten wird die Differenz verrauscht, dann ist die EMA-Glättung nötig
(Startwert 5).
Dann auf das Verhältnis achten, nicht auf die Zahl:
- Preis steigt, Premium bleibt negativ — die Bewegung wird nicht von US-Spot-
Nachfrage getragen. Schwächer, als sie aussieht.
- Preis steigt und das Premium dreht ins Positive — Nachfrage und Preis stimmen
überein.
- Premium bildet höhere Tiefs, während der Preis seitwärts läuft — darunter baut
sich etwas auf. Genau dafür sind die automatischen Trendlinien da.
- Extreme in beide Richtungen neigen zur Rückkehr zum Mittel. Sie markieren
häufiger Erschöpfung als Fortsetzung.
HINWEISE UND GRENZEN
Einzelne Ausschläge sind Rauschen. Die Aussage liegt im Verlauf über Tage bis
Wochen.
Ein Teil jeder Differenz ist strukturell und nicht informativ: USDT kann von der
Dollarbindung abweichen, und die beiden Börsen unterscheiden sich in Gebühren,
Liquidität und Markttiefe. Die Depeg-Option adressiert den ersten Punkt, die
übrigen bleiben.
Der Indikator zeigt auf jedem Chart dasselbe, weil er beide Seiten aus den in
den Einstellungen gesetzten Symbolen zieht und nicht aus dem Chartsymbol.
Ein Werkzeug zur Marktstruktur-Einordnung. Keine Anlageberatung und keine
Aussage über künftige Kurse.
Indicator

LINK Above $12.20: Is $15 Back on the Table?Hey traders! 👋
After that solid push higher, LINK is now pulling back into the breakout zone, so $12.00–$12.20 is back on my radar. This was the area that kept a lid on price through most of August and I still see it as the key zone for keeping the bullish structure alive.
I’m definitely not the guy who wants to jump on a moving train just because everyone else is buying. 😄 My plan is simple and emotionless: close above $12.20, then checks three things before entering: price above the long-term SMA 200, RSI 14 above 50, and a bullish MACD 12/26/9.
This filter keeps us away from fake breakouts that lack real momentum.
For the trade itself, my preferred entry zone is $12.20–$12.30 after confirmation. With the strategy’s default settings, the SL is 1.5% below entry, which puts it around $12.02–$12.12, while the mechanical TP is 3% above entry, around $12.57–$12.67. These levels are calculated automatically from the actual entry price rather than being fixed on the chart.
📈 Where could LINK go next?
If LINK gets back above $12.20 and keeps the momentum going, $13.67 is the next level I’m watching closely. Above that, we have $14, and if buyers can push through that area cleanly, the bigger $15–$15.50 zone starts looking pretty interesting.
What about support?
🟢 $12.00 - key psychological support
🟢 $11.50 - first lower support
🟢 $11.00 - next support zone
🟢 $10.70 - deeper technical support
The beauty of this setup? No guessing tops or bottoms. We just wait for buyers to show up, let RSI and MACD confirm and execute.
So, what would you do here? 👀 Take the breakout above $12.20, or wait for LINK to clear $13.67 before getting involved? Drop your setup in the comments.
Disclaimer: Trading crypto involves substantial risk, and this is only my personal read of LINK’s market structure, not financial advice. I always define invalidation before entering, size positions carefully, and accept that price can do something different from my base case.
Strategy

Indicator

MOYA Quarterly Theory & Higher Timeframe [RealSebastianMoya]Hello traders!
Introducing: "MOYA Quarterly Theory & Higher Timeframe Suite"
Two tools in one indicator: a higher timeframe candle overlay projected directly onto your current chart, and a complete map of Quarterly Theory sessions (Q23/Q90/Q360) — the fractal time framework behind how many ICT/Smart Money traders read the trading day.
♦ Module 1 — Higher Timeframe Candle Overlay
What it does: Draws the candles of a higher timeframe (any of 35 options, from 1 minute to 7 months) directly on your current chart, without switching timeframes or opening another window. Each higher timeframe candle appears as its own box with a wick, updating live as it forms, and carries a text label showing exactly which timeframe it represents (e.g. "5D", "4H", "1W").
Why it matters: When trading on a lower timeframe (1m, 5m, 15m), losing sight of higher timeframe context is the most common mistake. Instead of constantly switching charts to check "what is the 4H candle doing right now?", you see it forming live, right next to your current price action, without breaking focus on your entry.
Settings:
• candlestick overlay — pick the timeframe to project (any of 35 options, from 1 minute to 7 months)
• Bullish/Bearish Fill Color and Line Color — independent colors for bullish and bearish candles
• Candle Body Transparency — how transparent the candle body is
• Line Thickness — border and wick width
• Show Timeframe Label — toggles the text label shown on each candle (e.g. "5D")
• Timeframe Label Color / Opacity / Size — color, opacity, and size of that label, fully independent from the rest of the styling
♦ Module 2 — Quarterly Theory (Q23 / Q90 / Q360)
The Theory
Quarterly Theory is a fractal analysis framework: the same 4-phase pattern repeats at different nested time scales within the trading day. The four phases are:
• Q1 — Accumulation: the initial range where a position is built, slow and contained movement.
• Q2 — Manipulation: a move that breaks outside the Q1 range (often a liquidity raid), designed to trap positions in the wrong direction.
• Q3 — Distribution: the real directional move — where price actually goes after the manipulation.
• Q4 — Continuation/Reversal: either continues the Q3 direction, or reverses — depending on higher timeframe context.
The Fractal Nesting — Q360 → Q90 → Q23
This indicator draws three levels of this same pattern, one nested inside the other:
Level 1 — Q360 (6-Hour Sessions): The full trading day divides into 4 six-hour sessions, each acting as one phase of the daily cycle:
• Asia (18:00-00:00 UTC) = Q1
• London (00:00-06:00 UTC) = Q2
• New York (06:00-12:00 UTC) = Q3
• CBDR / PM (12:00-18:00 UTC) = Q4
Level 2 — Q90 (90-Minute Sessions): Each of those 4 six-hour sessions subdivides into 4 quarters of 90 minutes — repeating the same Accumulation → Manipulation → Distribution → Continuation pattern, now at intraday scale within that specific session.
Level 3 — Q23 (~23-Minute Sessions): Each 90-minute quarter subdivides again into 4 micro-quarters of roughly 23 minutes — the same pattern, repeated a third time, at the finest scale.
The core idea: if you know which "quarter" of the larger cycle you're in, you know what behavior to expect from price at that moment — it isn't random, it's the same structure repeating fractally.
Settings
• UTC Offset — adjusts all session times to your own timezone
• Use Exchange Timezone — uses the symbol's exchange timezone
• instead of a manual offset
Show Q23 / Q90 / Q360 — toggles each fractal level independently
• Box Transparency / Border / Labels / Line Width — fully independent styling per level (Q23, Q90, Q360)
• Individual Sessions (Asia / London / New York / CBDR) — every quarter of every level has its own time window, label text, color, and show/hide toggle — so you can, for example, turn off just London's Q2 without touching anything else
Technical note: Q90 only displays on timeframes of 15 minutes or lower, and Q360 only between 15 and 60 minutes — this is intentional, since these quarters lose visual meaning on timeframes where a single candle already spans several hours.
♦ How To Use It — Practical Example
1. Identify which 6-hour session (Q360) you're in — for example, New York.
2. Within that session, identify which 90-minute quarter (Q90) you're in.
3. If you're in Q2 (Manipulation) of that 90-minute window, expect a move that breaks the prior range — don't take it as a genuine breakout yet.
4. Once you're in Q3 (Distribution), that's where the genuine directional move is expected — the highest-probability window to take an entry in the day's real direction.
5. Run Module 1 (HTF Overlay) in parallel — if the higher timeframe candle you're projecting confirms the same direction as your Q3, you have confluence between the fractal context and the higher timeframe context.
Indicator

Minawesome's Best lightweight, timeframe-adaptive overlay combining four structural concepts into one indicator, built with a deliberately restrained color palette (one hue for structure, one for bullish signals, one for bearish) so it stays readable instead of turning your chart into a wall of boxes.
WHAT IT PLOTS
- CRT / PO3 Range — plots the previous higher-timeframe candle's high and low (default 4H, adjustable to any timeframe) and flags when price sweeps outside that range and closes back inside it, the manipulation-then-reversal pattern the CRT/PO3 model is built around.
- Fair Value Gaps (FVG) & Inverse FVGs (IFVG) — detects standard 3-candle imbalances and tracks their full lifecycle: an FVG that gets closed through flips into an IFVG (its role inverts from support to resistance or vice versa), and an IFVG that itself gets reclaimed is removed from the chart entirely. Zones age out automatically after a configurable number of trading sessions (not bars), so the lifetime means the same thing whether you're on a 1-minute or 1-hour chart.
- SMT Divergence — compares swing highs/lows on your chart against a correlated symbol (default ES for NQ/MNQ charts, configurable to anything) and flags when the two disagree — e.g. your symbol makes a new high while the correlated symbol fails to confirm it.
- Prior Day High/Low & Session VWAP — standard reference levels, shown only on intraday timeframes since they don't mean anything on daily+ charts.
Every layer has its own on/off toggle, and hovering any marker shows a tooltip with the specific detail behind that signal, so the chart itself can stay clean.
DESIGNED FOR
Built and tested against NQ/MNQ futures, but the underlying logic (FVG/IFVG, SMT, CRT) is instrument-agnostic and works on any liquid symbol with a reasonable correlated pair for the SMT layer.
DISCLAIMER
This indicator is provided for educational and informational purposes only. It does not constitute financial advice, and nothing it plots — including FVG/IFVG zones, SMT divergence, or CRT signals — is a guarantee of future price direction or trading profitability. These are discretionary technical-analysis concepts (Fair Value Gaps, Inverse FVGs, SMT divergence, and the CRT/PO3 model originate from the ICT/Smart Money Concepts framework) and should be combined with your own risk management, not traded mechanically or in isolation. Past patterns are not indicative of future results. Trade at your own risk. Indicator
