Trender [IQ]IQ Trender - TradingIQ
🔹 OVERVIEW
IQ Trender is a non-repainting trend rail built around one simple visual language:
Flat = range. Ramp = trend. Brightness = conviction.
Most trend tools try to follow every movement in price. In sideways conditions, that can leave you reading a line that bends, twitches, and changes direction inside the same noise you were trying to filter.
IQ Trender is designed to behave differently. While the market remains inside its adaptive hold zone, the rail stays deliberately flat. When the underlying trend evidence becomes strong enough, it commits to a rising or falling leg and moves in one direction until that condition genuinely changes.
The result is a clean distinction between three market states:
Holding - the rail is flat and the market is being treated as a range or consolidation.
Rising - the rail has committed to an upward leg.
Falling - the rail has committed to a downward leg.
Direction is shown by color. Conviction is shown by color intensity and glow. The Trender Radar explains the current state numerically, while the Ghost Forecast extends the rail's present trajectory into a fading uncertainty cone.
This is a trend-reading and visualization tool, not a signal service. It does not issue buy or sell calls, and it makes no claim of profitability or predictive certainty.
🔹 THE ONE-LINE MENTAL MODEL
The fastest way to read IQ Trender is to ignore the mathematics at first and watch the shape of the rail:
A flat rail means the model is holding through noise.
An upward ramp means the model has committed to a rising leg.
A downward ramp means the model has committed to a falling leg.
A stronger glow means the estimated trend is showing greater statistical conviction.
This is the same sequence demonstrated in the walkthrough: a directional leg can flatten during a pause, pullback, or consolidation, then recommit if the broader move resumes. The bearish interpretation is the mirror image - falling leg, flat hold, then a renewed falling leg if downside evidence returns.
The flat section is important. It is not a prediction that a breakout is about to happen. It is the indicator saying that current movement has not earned a directional commitment.
🔸 HOW THE ENGINE WORKS
IQ Trender combines three separate jobs: estimating the trend beneath price, deciding whether that trend is statistically meaningful, and drawing a rail that cannot wiggle backward within a committed leg.
Track the underlying trend
A robust local-linear Kalman filter estimates the level and slope beneath the candles. Unlike a conventional moving average that applies a fixed weighting pattern, this is a state-estimation model: it updates its estimate from the difference between expected and observed price.
Large isolated deviations are reduced with a robust update, so a single wick cannot directly yank the rail to a new location. The model also adapts its measurement-noise estimate as conditions change.
⬞
Measure the uncertainty
The filter calculates an innovation deviation - a live estimate of how much movement is normal relative to its current model. IQ Trender uses that value to size the hold band.
When conditions are noisy, the tolerance can widen. When conditions are calmer, it can tighten. This lets the same mental model adapt across different symbols, price levels, and timeframes without using one fixed distance everywhere.
⬞
Test for commitment and change
The estimated slope is compared with its own uncertainty to produce conviction. Hysteresis uses separate thresholds for entering and leaving a committed trend, helping prevent repeated state changes near one boundary.
A two-sided cumulative change test also monitors standardized price surprises. That evidence helps the rail distinguish a genuine opposing change from ordinary counter-movement when a leg is already active.
⬞
Draw the rail
The visible rail is a separate, slew-limited ratchet guided by the Kalman center. Once an upward leg begins, the rail can only move upward until a valid reversal or hold condition is reached. Once a downward leg begins, it can only move downward.
That monotone-within-leg behavior is what creates IQ Trender's signature geometry: flat holds connected by clean directional ramps instead of a line that bends around every candle.
🔹 THE ADAPTIVE HOLD BAND
The shaded band is the rail's live range corridor.
While the rail is holding, the band opens around it to show the volatility-adjusted area in which price can move without forcing a directional leg. When the rail commits to a trend, the displayed band eases shut onto the rail because the model has left its holding state. When the rail becomes flat again, the band gradually reopens.
The band should be read as a model tolerance, not as conventional support and resistance. Price moving within it means the model can continue to hold. Movement beyond it contributes evidence for a new leg, but it is not, by itself, a guaranteed breakout or trade entry.
🔸 COLOR, GLOW & CONVICTION
IQ Trender communicates direction and commitment through one coordinated visual system:
Rising color - active upward leg.
Falling color - active downward leg.
Holding color - neutral, flat state.
Glow intensity - visual emphasis derived from the current conviction reading.
Conviction measures how strongly the estimated slope differs from zero relative to the model's uncertainty. It is a statistical strength reading, not the probability that a trade will win.
The palette is generated in the Oklab perceptual color space. Hue, lightness, and vibrancy can be adjusted as a coordinated system, while out-of-gamut colors are compressed toward neutral instead of clipping harshly.
Accessibility controls include deuteranopia, protanopia, and tritanopia modes, plus automatic contrast correction against the chart background. A selectable contrast target helps keep the rail and directional Radar accents legible across light and dark themes.
🔹 TRENDER RADAR
The Trender Radar is the live scorecard in the corner of the chart. It reports:
State - HOLDING, RISING, or FALLING.
Conviction - normalized trend commitment from 0-100%.
Slope - the rail's current rate of change per bar.
Hold Band - the current full width of the adaptive range corridor.
Behavior - the active Speed and Pursuit combination.
With Log Geometry enabled, slope is displayed as a percentage per bar and band width is expressed as a percentage of the rail. With linear geometry, both are shown in price units.
The Radar can be moved to any chart corner or disabled entirely.
🔸 GHOST FORECAST
The Ghost Forecast is a translucent forward projection of the rail's current slope.
Its centerline extends the rail's recent trajectory. The surrounding cone widens with distance to communicate increasing uncertainty, then fades away toward the horizon. Two growth modes are available:
√h - tighter near the live bar, then gradually widening like a random-walk spread.
Linear - uncertainty expands at a constant rate.
The forecast is rebuilt only at the live edge and never painted into historical bars. It can also be displayed while the rail is holding, where its centerline remains flat.
This feature is a trajectory read, not a price target. It answers, Where is the rail currently heading if its present slope persists? It does not answer, Where will price trade?
🔹 FLIP MARKERS & ALERTS
Optional markers identify confirmed changes in rail state:
▲ - committed to a rising leg.
▼ - committed to a falling leg.
◇ - flattened back into a hold, when hold markers are enabled.
Markers are created only on confirmed bars. Once printed, they do not move.
Matching alert conditions are included for:
Trender committed to a rising trend.
Trender committed to a falling trend.
Trender flattened into a hold.
These alerts report state changes in the model. They are not automated trade recommendations and should be interpreted in the context of the symbol, timeframe, market structure, and the user's own risk process.
🔸 SPEED - THE OVERALL TEMPO
Speed changes the rail's pursuit rate and the width of its hold zone together:
Glacier - calm, structural behavior for slower or higher-timeframe reading.
Slow - patient swing behavior with a wider hold zone.
Balanced - the recommended reference setting, balancing hold and tracking.
Fast - more reactive behavior for shorter intraday movement.
Scalp - the tightest and quickest micro follower.
Slower settings generally require more displacement and move the rail more gradually. Faster settings use a tighter band and pursue price more aggressively. A faster preset is not automatically better: responsiveness and noise rejection are opposing trade-offs.
🔸 PURSUIT - HOW A COMMITTED LEG MOVES
Pursuit changes the shape of an active leg without changing the underlying trend evidence:
Steady - a constant-speed ramp established when the leg begins.
Eased - pursuit speed scales with conviction and feathers toward the estimated center.
Snap - the most decisive pursuit, with a higher movement rate and faster conviction scaling.
On slower Speed presets, Snap can appear more step-like. Steady produces the cleanest constant ramps, while Eased creates a softer approach.
🔹 HOW TO READ IQ TRENDER
Start with state
Flat rail means the model is holding. Rising or falling rail means it has committed directionally. This gives the chart an immediate range-versus-trend read before any number is considered.
⬞
Weigh the leg
Use conviction, glow, and slope together. A bright rail with firm slope represents stronger model commitment. Fading conviction says the trend estimate is becoming less distinct from noise; it does not guarantee an immediate reversal.
⬞
Watch the sequence
One useful continuation framework is:
Rising rail.
Flat hold during consolidation or pullback.
New rising marker and renewed upward rail.
The bearish sequence is the inverse. This is a way to organize market context, not a complete entry system.
⬞
Keep the forecast in its proper role
Use the Ghost Forecast to visualize current trajectory and uncertainty. Do not treat the cone edge or centerline as a promised future level.
⬞
Confirm with your own process
IQ Trender can be combined with price structure, volume, liquidity, momentum, or a trader's existing risk framework. No single state, marker, or Radar value should replace position sizing and independent confirmation.
🔸 INPUTS
Behavior
Speed
Pursuit
Source & Geometry
Price Source
Use Log Geometry
Close with Log Geometry enabled is the recommended general-purpose setup for ordinary positive price series. Log mode keeps slope and band behavior proportional across different price levels.
Rail, Band & Glow
Hold Band on/off
Band transparency
Rail Glow on/off
Glow intensity
Glow spread
Rail line width
Colors
Rising, Falling, and Holding anchors
Global hue rotation
Lightness adjustment
Vibrancy adjustment
Conviction Color response
Accessibility
Color-Blind Mode
Auto Contrast
Contrast Ratio
State Readout
Show Trender Radar
Radar location
Forecast
Ghost Forecast on/off
Horizon in bars
√h or Linear cone growth
Show While Holding
Markers
Flip Markers on/off
Optional hold markers
Marker size
🔹 NON-REPAINTING BEHAVIOR
IQ Trender is calculated causally with no future-bar lookahead.
Confirmed historical rail values and confirmed flip markers remain where they were calculated. The current, still-open bar can update as new price arrives, as any live indicator can. The Ghost Forecast is intentionally rebuilt at the live edge because it represents the rail's current slope and uncertainty; it does not rewrite historical bars.
What was confirmed in history stays confirmed. What is still live remains live.
🔸 LIMITATIONS & HONEST NOTES
IQ Trender is an indicator, not a validated trading strategy. It makes no performance, win-rate, profit, or edge claim.
Kalman filtering is still a causal estimation process. It reduces noise but cannot remove lag, uncertainty, or false transitions.
Faster settings react sooner but can respond to more noise. Slower settings filter more movement but can confirm later.
A Holding state identifies insufficient directional commitment in this model; it does not guarantee that price will remain inside a range or that a breakout is imminent.
Conviction measures the strength of the estimated slope relative to uncertainty. It is not a probability of future direction or trade success.
The Ghost Forecast extrapolates the rail, not price. It is a visual scenario if the current trajectory persists, not a target or prediction.
Alerts and markers identify model state transitions only. They should not be treated as standalone entries or exits.
Results depend on symbol behavior, timeframe, data quality, and the selected Speed/Pursuit combination.
IQ Trender is built to make one difficult market question easier to see:
Is the market still ranging, or has a trend actually committed?
One rail. Three states. No hindsight redraws.
Indicator

ORB AI [PickMyTrade]ORB AI asks a question most opening-range tools skip: does this
breakout resemble the chart's own past breakouts that worked, or the ones that didn't?
Instead of firing on a single range-break condition, every qualified breakout is scored
across seven independent structural factors, then cross-checked against an on-chart
K-nearest-neighbour library built exclusively from this symbol's own resolved breakout
outcomes. Both numbers are shown — the rule score and the KNN vote — without either one
silently deciding the trade for you.
----------------------------------------------------------------------------------------------------------------
🔷 WHAT IT MEASURES
🔸 Opening Range
The range locks from a configurable session anchor — Exchange Session (the symbol's own
listed timezone), New York 09:30, New York 08:30 (data), London 08:00, Tokyo 09:00, or a
Custom session/timezone pair — over a configurable window (1–120 minutes). If the chart
timeframe is coarser than the chosen window, the range automatically expands to one full
bar and the dashboard notes the effective duration rather than silently misrepresenting
it.
🔸 Rule Confidence (7-factor score)
Every qualified breakout candidate is scored 0–100 across Trend, Momentum, Volume,
Volatility, Structure, Breakout Quality and Liquidity. Trend itself is a blend (35% EMA
alignment, 25% ADX, 25% higher-timeframe read, 15% slope) — the dashboard breaks out all
seven components individually so the score is never a black box.
🔸 Flow Marks — BO / RT / FBO / Sweep
BO tags the confirmed breakout bar. RT tags a retest of the broken range edge that holds
(with a running count). FBO tags a breakout that closed back inside the range — a false
breakout, not a win or loss judgement. Sweep tags a wick that pierced the range edge and
closed back inside — liquidity taken without a directional close.
----------------------------------------------------------------------------------------------------------------
🔷 THE KNN ENGINE (LORENTZIAN DISTANCE)
🔸 How the library is built
Every rule-qualified breakout gets a 6-feature fingerprint (trend, momentum, volume,
volatility, structure, breakout quality). Its outcome is then resolved forward, stop
checked first: 1R target reached before the stop = win, stop first = loss, neither
within the configurable outcome window (15–600 minutes) = discarded as undecided —
drifts are never counted as losses, so the base rate reflects only decisive breakouts.
Every qualified candidate is recorded regardless of outcome, so the library grows
without selection bias.
🔸 How a new candidate is voted
A new candidate is compared to the stored library (up to 300 records) by Lorentzian
distance. The K nearest historical analogues (3–15, default 5) vote, and the vote share
is shown on the signal label and dashboard.
🔸 Advisory vs. Gate
Advisory mode (default) displays the vote as context; it never blocks a signal, so the
set of signalling bars stays fully deterministic regardless of library state. Gate mode
(opt-in) also requires the vote to clear a minimum share before a signal fires — this
trades determinism for selectivity and is only meaningful once the library has grown
past a configurable minimum size.
🔸 Read honestly
With a 6-feature fingerprint, the nearest neighbours of a few-hundred-record library
span roughly half of each feature's range — the vote is a coarse regional tendency, not
a precise analogue match. Loading a different amount of chart history can change the
displayed vote (Advisory) or which candidates pass (Gate); this is inherent to on-chart
instance-based learning and is disclosed rather than hidden. The indicator requires a
symbol with volume data — volume-less feeds (some cash indices / spot FX) cannot render
the KNN engine.
----------------------------------------------------------------------------------------------------------------
🔷 SIGNALS AND DISPLAY
🔸 Dashboard
A compact table shows Session, Regime, ML Engine status (library size / warm-up state),
locked Range, Bias, the 7-factor Rule Confidence bar, Risk-per-Unit, the active Trade
Plan, and a Flow Marks legend. An optional Full mode expands all seven score components.
🔸 Trade Plan overlay
On a qualified signal the indicator draws an entry, stop, and take-profit levels using
one of three configurable methods: a fixed R ladder, an opening-range-width measured-move
projection, or an ATR-scaled EMA-dynamic trail. This is a reference overlay describing
one rules-based way to structure the trade *if* you choose to take it — it is not a
recommendation, and the levels are not a performance claim.
🔸 Non-repainting
Signals evaluate on confirmed closes only. Locked range levels never change once set.
Higher-timeframe reads use ` ` plus `lookahead_off`. The KNN library is built strictly
from already-resolved past outcomes — no future data is read at any point.
🔸 Alerts
19 `alertcondition()` calls cover long/short entries, false breakouts (combined and
per-direction), confidence-threshold crosses, range completion, trend-context changes,
take-profit and stop touches (combined and per-level), reversals, session-end exits,
approaching-breakout warnings, retests, and sweeps above/below the range. Recommended
alert setting: *Once Per Bar Close*.
----------------------------------------------------------------------------------------------------------------
🔷 INPUTS
🔸 Opening Range — Session anchor, custom session/timezone, range length (minutes).
🔸 Signal Engine — Minimum Rule Confidence threshold, TP method (R Ladder / OR Width
Projection / Dynamic EMA), R-ladder multiples, wide-range-OR filter.
🔸 KNN · ML Engine — Mode (Advisory / Gate / Off), K neighbours, history length,
minimum ML vote (Gate only), outcome window (minutes), Gate minimum library size.
🔸 Filters — Signal Blackout window (session-anchor timezone), max signals per
session, news filter.
🔸 Visual — Bull/bear colours, dashboard position and detail level, Zen mode (hides
text labels, keeps shapes/zones only).
----------------------------------------------------------------------------------------------------------------
🔷 REQUIREMENTS AND LIMITATIONS
Requires a symbol with volume data — the KNN engine cannot render on volume-less feeds
(some cash indices, spot FX). The KNN vote is a coarse regional tendency drawn from a
finite on-chart library, not a precise analogue match or a probability estimate; it is
advisory by default for that reason. Loading a different amount of chart history changes
the displayed vote in Advisory mode, and can change which candidates pass in Gate mode —
this is inherent to on-chart instance-based learning and is disclosed rather than hidden.
This is a decision-support toolkit: it does not place trades, and no element of the
dashboard, score, or trade-plan overlay is a claim about future performance. Always
apply independent risk management.
----------------------------------------------------------------------------------------------------------------
Built natively in Pine Script® v6. Seven-factor rule-based confluence scoring with an
on-chart, self-learning KNN engine using Lorentzian distance over resolved breakout
outcomes — no external libraries, no repainting, no lookahead.
Open source — Mozilla Public License 2.0. Indicator

Compression Breakout & Follow-Through Scoring [SlatinaTrades]🌀 Compression Breakout & Follow-Through Scoring — grades the coil, then checks its own homework.
Most squeeze/compression tools flag a tight range and stop there. This one also tracks what happens after the break — and separates completed setups by quartile to show whether the coil's tightness or the breakout candle's quality actually predicted the outcome, instead of assuming either one does.
THE MECHANICS
🧊 Compression detection — three conditions have to hold together: box range ≤ a multiple of base-ATR (C1), Bollinger Band width inside a squeeze percentile (C2), and a minimum dwell in confirmed bars (C3). All three gate the coil; none of them alone is enough.
🔒 State machine — COILING → PRIMED → BREAKOUT (up/down) → HELD or FAILED, with EXPIRED for coils that age out unbroken. The box freezes on arm (tighten-only re-lock while PRIMED — it can tighten further, never widen), so what you see is a committed level, not a moving target.
📊 Tightness score (0–100) — weighted blend of C1 margin, C2 depth, and dwell length. Grades how genuine the compression is, not just whether it cleared a threshold.
🎯 Break-quality score (0–100) — weighted blend of close location, body ratio, range expansion vs ATR14, and where volatility sits inside a regime band (mid-band scores highest; dead or chaotic extremes score low).
📈 Follow-through score (0–100) — tracks maximum favorable excursion beyond the broken edge over a fixed window, capped at a set ATR multiple. A break that reclaims the level before the window closes is scored FAILED instead.
SEPARATION HARNESS — the honesty check
A stats table bins every completed setup (HELD or FAILED) into quartiles two ways: by tightness score and by break-quality score. Each quartile reports mean follow-through in ATR units and reclaim rate. If a score's Q4 looks like its Q1, that score isn't doing the work it claims to — the table shows you that plainly instead of asking you to trust a single headline number.
NON-REPAINT
Every state transition and every follow-through update runs on barstate.isconfirmed. The box freezes the moment a coil arms. The optional HTF alignment read uses a closed-bar offset (lookahead_on + gaps_off on ) and is a flag only — it never gates the state machine.
WHAT IT IS NOT
Not a strategy. No entries, no stops, no targets, no risk sizing anywhere in this script. Bidirectional context only — it tells you a coil compressed and how the break resolved, not what to do about it. Settings are starting points, not recommendations; tune box length, dwell, and weights to what you're trading and validate before risking anything on it.
ALERTS
New Coil Primed · Bull Breakout · Bear Breakout · Follow-Through Confirmed · Reclaim. All gated to confirmed bars, all carry numeric state/score payloads for automation.
Still useful after it's been on your chart a while — every read maps to a concrete decision about whether this coil is worth watching. Indicator

STRX - Balance RangeSTRX - Balance Range is a price-structure indicator designed to identify and track balanced trading ranges directly on the chart.
It detects periods of compression by comparing the recent price box width to ATR-based volatility, then validates the structure using persistence, edge interaction, and price position inside the range.
The script draws historical range boxes, can optionally connect consecutive ranges, and includes a compact statistics table showing the last closed range, the average of the last 10 ranges, and the average of the last 100 ranges.
This makes it useful for traders who want to study how current balance conditions compare with recent and broader market structure.
How it works:
A reference range is built from the highest high and lowest low of the previous lookback window.
The range is accepted only when its width remains compressed relative to ATR and the current price continues to behave inside that structure.
Additional filters help reduce random consolidations by requiring repeated interaction with the range boundaries and a minimum confirmation period.
How to use it:
Use the boxes to locate areas where price is rotating in balance rather than expanding directionally.
Compare the latest closed range with the 10-range and 100-range averages to judge whether current balance conditions are relatively small, typical, or expanded.
The tool is designed for structure reading and contextual analysis, not as a standalone buy/sell signal generator.
Inputs overview:
Range Length controls how many bars are used to define the reference box.
ATR Length and ATR Multiplier control how strict the volatility compression filter is.
Center Distance, Edge Touches, and Confirmation Bars refine the quality of detected ranges.
Visual options allow you to show or hide historical boxes, range markers, connection lines, and the statistics table.
Notes:
The statistics table uses closed historical ranges, so the values remain stable and easier to compare.
This indicator is intended for standard chart types and discretionary structure analysis.
It does not guarantee future performance and should be used together with your own risk management and market context reading.
Indicator

Zone Radar [DefinedEdge]Price spends most of its time going nowhere. Zone Radar finds those stretches automatically, draws the range while it's still forming, and tells you the moment it breaks and how hard.
🎯 What it does
Zone Radar watches for price coiling inside a bounded range. When a genuine consolidation forms, it marks the zone with its support and resistance, then tracks it live. The instant price closes decisively outside the range, it flags the break and scores its strength from 0 to 100. Strong breaks get a bold label and a projected target.
It is a context and breakout tool, not a signal service. It shows you where the market is compressed and when that compression releases. What you do with that read is yours.
🧭 How a zone is found
A range only qualifies when two things are true at once:
Price stays inside an ATR normalised band for a minimum number of bars, so the width adapts to any symbol or timeframe on its own.
Price does not drift across that band from one side to the other, which filters out slow trends pretending to be ranges.
Once a zone is confirmed the box breathes to hug the real range, but it is capped at the width it formed with. That cap is what makes a breakout meaningful: a close beyond it is a true expansion out of compression, not just another bar inside the noise.
💥 Break strength (0 to 100)
Every break is graded on four things that separate a real breakout from a fake one:
Displacement how far beyond the edge it closed, in ATR
Range expansion the break bar's range against its recent average
Volume surge participation on the break (auto adjusted on symbols with no volume data, like spot FX)
Coil quality how long and tight the range was, since a longer coil breaks harder
Breaks at or above your Strong threshold get the bold badge plus a measured move target: the height of the range projected from the breakout point. Broken edges stay on the chart as polarity support and resistance for the retest.
⚙️ Under The Hood
Signals fire on the close of the breakout bar. No repainting, ever.
Fully adjustable: range length, width, break sensitivity, strength threshold, and how much history stays on the chart.
Works on any market and any timeframe. Tuned nicely for intraday out of the box.
🔔 Alerts
Zone formed, break up, break down, strong break up, strong break down. Wire any of them into your workflow.
📝 Notes
Lower timeframes produce far more zones than higher ones, so only the most recent are kept drawn to stay within platform limits. Raise the zone cap if you want more history, or drop to a higher timeframe for a cleaner chart. The ATR based settings are a starting point, not gospel. Tune them to how your instrument actually moves. Indicator

Volatility Regime Classifier [AFD]
**What it does**
It answers one question: *is this symbol moving more, or less, than it usually does?*
It measures how far this symbol's own bars have been travelling, ranks that against its recent history, and states the answer as a percentile from 0 to 100 plus a named tier — **QUIET**, **NORMAL**, **ELEVATED** or **EXTREME**. Alongside it you get how the recent stretch compares with the longer one, whether the reading is rising or falling, and a plain-English line saying what that amounts to.
Everything comes from the chart you have open. No VIX, no options data, no implied volatility, no other symbol, and no `request.*()` call of any kind — so it behaves the same on a currency pair, a small-cap, a future or a crypto chart, none of which have an index volatility proxy to borrow.
**How it works**
Realized volatility is measured over three rolling windows — short, mid and long — and one **Sensitivity** setting picks them: Fast 5/15/30, Normal 10/30/60, Slow 20/60/120. Fast is the default.
Four estimators, and this choice matters more than any other setting:
- **Parkinson** (default) — reads the bar's high-low range.
- **Garman-Klass** — reads the range and the open-to-close move.
- **Close-to-close** — reads the dispersion of returns.
- **ATR** — a plain N-bar average of true range. **Not Wilder's smoothing**, so it will
not match PulseWire's built-in ATR at the same length. Deliberate, not a bug.
Parkinson is the default because of a specific failure of the close-to-close default it replaced. Close-to-close measures how *scattered* returns are; a chart reader measures how *far* price went. A clean one-way slide has every return pointing the same way, so its dispersion is genuinely low — and a choppy bounce covering the same ground scores higher than the slide did. Range-based estimators read what the eye reads.
The short-window reading is ranked against the last **400 bars** to give the percentile, and the tier follows from that rank with a **band around each boundary**, so a reading parked on a threshold does not flip back and forth on sampling noise. The panel tells you when the band is holding a tier back.
There is a second route into EXTREME, and it exists because a percentile is self-normalising: roughly a tenth of all bars sit in the top tier however quiet the year has actually been. So a bar is also called EXTREME when the short window reaches a set multiple of the long one, whatever its rank. The multiple differs per estimator, because the four do not put that ratio on the same scale.
On intraday charts the **session-gap return is excluded**. It spans a close and the next open, so it is not a return over one bar of trading, and leaving it in made every session open read as a volatility event that never happened. It is dropped, not zeroed.
**How to use it**
Add it and read the dashboard. It starts compact at four rows; switch **Compact dashboard** off for the full nine, which name every window, bound and setting actually in force rather than the defaults. Hover the marker at the end of the line for a glossary of every number, also built from your current settings.
- **The percentile line** in the lower pane, tier zones shaded behind it.
- **Price-chart markers** — the bar column painted when a tier you have chosen is reached, or a box spanning the whole episode. EXTREME is marked by default; QUIET, NORMAL, ELEVATED and RISING are all available, and a marked tier always beats RISING so an overlapping bar's colour is never an accident of ordering.
- **The market context box** on the price chart, at the corner you pick or off. A headline names the character of the tape — `RANGE EXPANDING`, `RANGE COMPRESSING`, `WIDE AND HOLDING` and eight others — over a line naming what to re-check, a line stating what the short-to-long ratio amounts to in words, and a standing line reading **`Size only - this says nothing about direction.`**
That last line has no off switch, and the vocabulary above it never uses the words "up or "down". `EXPANDING` is equally what a hard rally and a hard sell-off look like.
**Three alerts**, all evaluated on confirmed bars only: the regime tier changed, the short-vs-baseline state changed, and the EXTREME tier was entered.
**Repainting**
The script reads nothing but the current chart's own bars. There are no `request.*()` calls, no higher-timeframe data and no `barmerge.lookahead_on` anywhere in it, so there is no future data for it to borrow. Once a bar closes, its reading is settled and does not change afterwards.
The bar still forming is the ordinary exception, and it is worth being explicit about: its high, low and close are still moving, so the reading on it moves too, and the tier on the live bar can change before the bar is done. The three alert conditions are gated to confirmed bars for that reason. Drawn elements — the panel, the context box, the episode box — are drawn at the last bar and update with it.
**Why it is original**
It is built for the **Pine Screener**, which is unusual in this category. The first ten plots are the contract — percentile, tier code, ratio, short-vs-baseline code, acceleration tier, regime-changed flag, the two raw RV levels, the percentile's sample count, and a flag saying whether the outputs are fully defined — so you can rank or filter a whole watchlist by volatility regime instead of reading one chart at a time. Zero `request.*()` calls, and the warmup is sized to fit the Screener's 500-bar window.
The other difference is that **the regime is a number, not a colour.** The visual layer is drawn *from* the percentile and never replaces it; every tinted panel row still states its value in words, and the whole visual layer switches off without a single reported number changing.
**Limitations**
- **It says nothing about direction, and it is not a signal.** No entries, no exits, no targets, no probability, win-rate or expectancy language anywhere in the script. It describes what has already happened on the chart in front of you.
- **It needs history.** At the default Fast preset the percentile is undefined until bar 404 and shows blank until then. The size-based EXTREME route is defined from bar 30, so **a bar can legitimately show an EXTREME tier beside a blank percentile row** — the panel says which is which, and the `Outputs fully defined` plot flags it.
- **A percentile is relative to this symbol's own recent history.** QUIET on one instrument and QUIET on another are not the same absolute amount of movement. The panel carries the absolute RV level next to the rank for exactly this reason.
- **ATR here is a simple average, not Wilder's**, as above.
**Licence:** Mozilla Public License 2.0. Indicator

Volatility Corridor - Quantized Equilibrium LevelsMost range and channel tools slide. The midline is a moving average, so it moves on every bar, and the levels drawn from it move with it. That makes them fine as a trend read and close to useless as levels, because the level you looked at ten bars ago is no longer where you left it.
Volatility Corridor does the opposite. It holds still, and then it jumps.
HOW THE CORRIDOR IS BUILT
An equilibrium anchor sits at the centre of the corridor. Once placed, it is frozen. It does not drift, it does not smooth, it does not respond to anything at all until price closes more than one volatility step away from it.
When that happens, the anchor jumps by a whole number of steps in the direction of the breach, lands at the new location, re-measures its step size from ATR at that exact moment, and freezes again.
Three bands are drawn one step apart above the anchor and three below, giving seven horizontal levels: S3, S2, S1, EQ, R1, R2, R3. Because the anchor and the step are both frozen between jumps, every one of those levels is a genuine flat horizontal line for the entire life of the corridor. Across a chart the result is a staircase of stable shelves rather than a wave, and the jump bars are marked so the history of the structure is readable at a glance.
The quantization matters. The anchor moves by whole steps, never by fractions, so successive corridors line up on a common grid instead of drifting off it. When price returns to an area it traded weeks ago, the corridor tends to rebuild on the same shelves rather than near them.
WHAT IS ON THE CHART
Seven stepline levels, thickest at the equilibrium.
Six filled bands between them, darkening toward the outer edges, so the corridor reads instantly without inspecting a single number.
Candles tinted by their position inside the corridor, running from the lower colour at the bottom edge through neutral at equilibrium to the upper colour at the top.
Background tint whenever price is trading fully outside the corridor.
Price labels on every level at the right edge, in four selectable sizes.
Jump markers at the top and bottom of the pane showing every bar the corridor re-anchored, and in which direction.
SETUPS
Two setups are defined, and either can be switched off.
Reversion. Price has pushed into the outer band and closes back inside it while still on its own side of equilibrium. The stop is the far outer level, and the targets are the levels above: equilibrium first, then the next band, then the one after that. The reasoning is that a corridor that is holding will pull price back toward its centre, and the level structure already provides the map for that journey.
Breakout. Price closes fully beyond the outer level of the corridor. The stop is the first level back inside, and the targets are projected one, two and three steps beyond the corridor edge, on the same grid the corridor itself uses.
In both cases the stop and the targets are structural levels, not multiples of risk. Nothing is placed at an arbitrary distance. The stop is where the structure would be wrong, and the targets are the next shelves on the grid.
Only one setup is tracked at a time. A new signal cannot silently replace an unresolved one.
The panel keeps a record of whether the first target or the stop was reached first, and prints collecting rather than a percentage until the sample is large enough to mean anything. That number is a narrow measurement of one mechanical rule, not a backtest, and it says nothing about what a trader who moved a stop or scaled out would have achieved.
SETTINGS
Step Size is the one dial that matters. It sets the width of a single band in ATR terms, and therefore how far price must travel to force a jump. Larger values give wider, rarer, more significant corridors. Smaller values give a tighter grid that re-anchors often.
Volatility Length sets the ATR lookback used to measure a step at each anchor. Longer is more stable.
Everything else is cosmetic: fills, candle painting, label size, level thickness, background tint.
REPAINTING
The anchor, the step size, the jumps, the setups and the alerts all evaluate on confirmed bars only. A level that is drawn is final for the life of the corridor and is never moved retroactively. The script requests no higher timeframe data.
READING IT
Equilibrium is the fair value the corridor is currently defending. Price oscillating around it is a market with no directional decision.
The outer bands are where the current corridor stops being an adequate description of price. Price reaching them means one of two things is about to happen: it is rejected and the corridor holds, or it closes through and the whole structure jumps to a new shelf. Both are tradable and both have a setup defined for them.
A corridor that survives many bars is a market that has agreed on value. A rapid sequence of jumps in one direction is a trend, and the jump markers make that sequence obvious even when the candles do not.
This is an analysis tool, not financial advice, and not a trading system. The setups are two mechanically defined patterns, and no pattern has an edge on its own. Use it with your own risk management and position sizing. Indicator

Range Budget [AFD]
Range Budget answers one question at a glance: **how much of a
typical session's range has today already used?**
A day that has spent 40% of its typical range and a day that has spent 130% are different trading environments. This indicator measures which one you are in, from this chart's own price history, and says so in one number, onecolour, and one word.
###What it does###
- **Headline percentage** — today's realized range so far, divided by thetypical completed-session range. Never clamped: a wide day reads 130%, not100%.
- **State word and meter** — ROOM → PAST HALF (50%) → NEAR FULL (80%) → OVER
TYPICAL (100%). The word, the meter and every state colour come from the same thresholds, so they cannot disagree.
- **Envelope levels** — session low + typical range, and session high − typicalrange, drawn as glowing lines with a gradient band between them. Aconditional identity, not a projection: IF the session finishes at itstypical size AND the low holds, the high lands exactly on the upper level. Once the day crosses its typical range, the levels take the state colour.
- **Percentile ladder** (optional) — where a finished day of each size (p25 /p50 / p75 / p90 of the lookback window) would top out, measured up fromtoday's low. Nearest-rank percentiles: every rung is a session range thatactually occurred, never an interpolation.
- **Dashboard** — distance left to (or past) typical in both price points andpercent, how many of the last N sessions ran wider than typical, and optional detail rows (range so far, typical range, percentile standing,widest/narrowest, envelope and ladder values). Compact by default; everycryptic cell explains itself on hover; the whole panel can be switched off.
###How it works###
- **Typical range is user-selectable**, and the chart always names the activestatistic:
- **ADR** — the average of the last N completed session ranges (high − low).
- **ATR RMA** — the average true range, so overnight gaps count. Seeded withthe first true range rather than an initial SMA, which is why it is labelled "ATR RMA" and will not match `ta.atr()` to the last digit. Under ATR the numerator is the live session's true range too, so the percentageis never a ratio of two different measures.
- **Median** — the middle completed session range, which is also theladder's p50 rung.
- The three are identical on a symbol that never gaps and diverge as gaps grow — on heavily gapping symbols ATR can run near 2.5× ADR. That is why the choice exists and why the active one is named on the chart.
- **Completed sessions only.** The live day never feeds its own denominator —a partial day would drag the typical range down as the day progressed and bias the percentage upward with no symptom. Statistics update when a session completes; the live day contributes only its running range.
- **One session rule for everything.** Regular hours or regular + extended:history and the live day follow the same rule, and if the filter cannot change anything on your chart (no extended-hours bars loaded), the dashboard says so instead of staying silent.
- **The sample is what your chart holds.** n is capped by the sessions actually loaded — roughly 64 completed regular-hours sessions on a 5-minute chart from 5,000 bars on a Basic plan, more on higher plans and higher timeframes. The dashboard shows the n actually in use, plus a spread figure ((p90 − p25) ÷ p50) that says whether recent sessions were similar in size
or mixed.
- Eleven plotted values sit in the Data Window (percentage, ranges, envelope percentiles, sample size and more), so every number on the panel can be read, checked and exported.
###How to use it###
1. Add it to a liquid intraday chart. The defaults are the intended reading: compact dashboard, ADR(20), regular hours.
2. Read the headline first. ROOM means the day is still small next to its recent finished sessions; OVER TYPICAL means it has already run further than a typical one.
3. Use the envelope as context for the day's remaining room under the stated conditions — the tooltip on every input spells those conditions out.
4. Turn on the ladder to see today against the whole recent distribution instead of one average: price between p50 and p75 means today has already matched a mid-sized finished day.
5. Hover the bottom row of the dashboard whenever a figure is unclear — the statistic, the sample and any active caveat (gap counted, filter inert, no completed session yet) are explained there.
###What it deliberately does not do###
**Realized range from OHLCV — not an implied or expected move.** Every number is measured from this chart's own price history. Nothing comes from options pricing, and the typical range describes completed sessions — a description of what happened, not a statement about what happens next.
- No alerts, no signals, no entries or exits.
- Counts stay counts — "Sessions over typical: 4 of last 20" describes this chart's history, and the indicator never converts a count into odds.
- The percentage is never capped at 100%, because a day past its typical range is the most informative reading the tool produces.
###Why it is original###
Range tools usually hand you one number (an ADR level pair) or one overlay (an ATR band). Range Budget treats the session range as a budget and reports its consumption: one percentage against a user-chosen, chart-named statistic, computed from completed sessions only, with its sample size, its spread and every degeneracy disclosed on the panel itself. The three statistics are not interchangeable and the tool is built around that fact rather than hiding it: the active one is named on the chart, the ATR path measures true range on both sides of the ratio, and the ladder shows the whole recent distribution so one average never has to stand in for it.
Open source under the Mozilla Public License 2.0. All calculations are native
Pine v6 — no security() calls, no external data. Indicator

Macro MagicianMacro Magician — Hourly Macros (:50 → :10)
Short description
Marks the :50 → :10 hourly macro windows, shades the opening minute of each, and can carry a chosen macro's opening range across the rest of the session.
Full description
What it does
Macro Magician draws the twenty-minute windows that run from :50 of one hour to :10 of the next — the periods intraday traders commonly call hourly macros. Each window gets a shaded box tracking its high and low, and the opening candle of the window is shaded separately in a darker tone, so you can see where price opened the window from relative to where it finished.
Beyond marking the windows, two features do the work that usually gets done by hand:
Carried-forward opening ranges. Any macro can have its opening-candle high and low projected to the right across the rest of the session, turning that one minute into a horizontal reference band. The macro's time is reprinted along the band at a cadence you set, so it stays identifiable hours later without hovering over it.
A standalone highlight candle. One candle per session — 09:30 by default, matching the equity cash open — can be recolored, given a vertical backdrop and a marker, and boxed with its own carried-forward band. This runs independently of the macro slots, so it works whether or not that minute falls inside a macro window.
Nothing here produces signals or predicts direction. It is a time-and-level marking tool that puts the windows and their opening ranges on the chart automatically.
Settings
General
Timezone — all times are interpreted in this zone, so boxes land correctly regardless of your chart's display timezone. Defaults to New York; "Exchange" follows the symbol.
Timeframe limit — hides the drawings above a chosen timeframe. Default 15 minutes.
Style
Fill, opening-candle fill, and border transparency, plus border width.
Opening-candle level — projects the window's opening candle's open, close, or midpoint as a dotted line across the window.
Label visibility and size.
Chart theme — Auto, Light, or Dark. Auto reads the chart's background brightness and flips the extended-macro label text between the two colors you choose, so the script is legible on either without touching anything else.
Optional alert when a macro opens.
Macro windows Eight independent slots, each with an on/off toggle, a session, a color, and an extend checkbox. Defaults cover 06:50 through 14:10 New York time. The session field accepts day filters, so 0850-0910:23456 restricts a window to Tuesday through Saturday for futures. One "extend through" session sets where all carried-forward bands stop, 16:00 by default.
Extended opening range Controls the band label cadence — either at a fixed minute interval from the macro open, or once an hour at a clock minute you choose so the prints stay clear of the other macro windows — along with the text size, which applies to both the label above the box and the prints along the band.
Highlight candle Hour and minute for the candle, its color, an optional full-height vertical backdrop with its own transparency, an optional triangle marker above or below the bar, and an optional carried-forward box with independent fill, border, and width settings. The box can start on the candle or just after it, so its fill doesn't wash out the candle's own color.
How to read it
The lighter box shows what the window did — its full high and low. The darker box shows the range it opened from. When a window closes well outside its opening range, the two together show the displacement at a glance. A carried-forward band lets later sessions be read against an earlier opening range without redrawing it each day.
Notes and limitations
Intraday charts only. On a 1-minute chart the darker box is exactly the :50 candle; on a 5-minute chart it is the first five minutes of the window, which is wider by design.
The highlight candle is drawn with barcolor plus a candle overlay, so it survives chart settings that override bar colors. On timeframes above one minute it paints whichever bar carries that opening time.
PulseWire caps drawings at 500 boxes, lines, and labels, so the oldest sessions eventually drop off the left of the chart. Running fewer macro slots keeps more history visible.
Windows in progress update until they close, as you would expect. Nothing recalculates on historical bars.
This is a charting aid, not a strategy, and not financial advice. Test how these windows behave on your own instrument and timeframe before relying on them. Indicator

Midnight Open Suite+ (M1D)Midnight Open — is ICT's primary intraday bias reference.
Price trading above it is at a premium to that open; price trading below it is at a discount. It is a level the market returns to often enough that where price sits relative to it is worth knowing before anything else about the day.
This script marks that open and the three that follow it, measures the range the first half hour builds, and reports where price stands against each. It takes no directional opinion of its own.
THE OPENS
Four New York opens are drawn, each on its own settings:
- 12am, the Midnight Open.
- 3am, the London open.
- 8:30am, the release time that begins the New York morning.
- 9:30am, the cash open.
Each is a ray beginning at the candle that genuinely opened on its own time, carrying that candle's opening price. No level is drawn back across bars that closed before the price it marks existed, and no price is borrowed from a neighbouring bar.
Each open also carries an optional vertical line marking the minute itself, stamped with its own time. That stamp is derived from the time the open is configured to, so it cannot drift out of agreement with the level it names — move an open to a different minute and its stamp moves with it.
By default a level stops where the following day's level begins, so only one of each is ever live. It can instead be set to run on indefinitely.
THE OPENING RANGE
The 12:00–12:30am window is drawn as a single zone from its own high to its own low, with an optional equilibrium — the 50% — running across it. The window opens on the Midnight Open's own time and its length is adjustable, so moving the open moves the range with it.
The 50% of a range is its equilibrium.
Zone and equilibrium are both kept for several days. Four days is the default, which leaves the previous three equilibria on the chart behind the current one.
WHY A LEVEL IS SOMETIMES WITHHELD
An open can only be read from a bar that opens on that exact minute. A bar that merely contains the minute opened earlier and carries an earlier price. On a 60-minute chart there is no bar that opens at 8:30 or at 9:30, so those two are not drawn at all rather than being placed a few points out — a level that is slightly wrong still looks right, which makes it worse than one that is visibly absent.
Withheld levels are never silent. The dashboard names each one and states the bar size that dropped it, so an empty row reads as "this timeframe cannot measure it" rather than "it has not happened yet".
An open is placeable when the chart's bar length divides evenly into the minutes between midnight and that open. With the four default times and the half-hour range, that means any bar length dividing 30 minutes — the 1, 2, 3, 5, 10, 15 and 30 minute charts. Move an open to a different minute and the arithmetic follows it.
THE DASHBOARD
Bias is read from the Midnight Open alone, and is stated as both a direction and the premium or discount it implies.
Below it each open is listed with its price and the signed distance price currently sits from it, in points or in ticks. The opening range is listed with its size and whether price stands above, inside or below it, and the equilibrium with its own price and distance.
A level carried in from a previous day is still the level drawn on the chart, so it is still listed — but it is named as carried over, because reading a stale open as today's is how it gets traded by mistake.
WHAT IT DRAWS
- Four opens as dotted rays, each from the candle that set it, named above its own line.
- An optional full-height vertical line on each open, stamped with its time.
- The 12:00–12:30am range as a soft zone whose border matches its fill, captioned with the window it covers. The caption re-centres on the span the zone currently occupies, so it tracks across with it rather than trailing at the left edge.
- The equilibrium as a thin dashed line through the zone, named inline on its own level so the text sits exactly at the price.
- Optional rays extending the range's high and low.
- A dashboard carrying bias, every open with its distance, and the range with its position.
Labels are transparent callouts throughout: nothing carries a background, and every offset is in pixels rather than price, so the spacing holds at any zoom level.
SETTINGS
- Each open has its own show toggle, name, hour and minute, ray colour, style and width, and the same four controls again for its vertical line and time stamp.
- How many days of levels stay on the chart, and whether a ray stops at the next day's level or runs to the right edge.
- Opening range: window length, zone colour and transparency, how far the zone extends, whether the high and low extend as rays, and the zone's caption.
- Equilibrium: visibility, colour, line style, and whether it is named.
- Labels: whether levels are named, whether the price is included in the name, whether every kept day is named or only the newest, time stamp position, and label size.
- Dashboard: position, text and background colours, header fill, the two directional colours, text size, and whether distance is reported in points or ticks.
NOTES
- Non-repainting. Levels are set on confirmed bars only and none is revised once its bar has closed.
- All times are New York and resolve through the exchange-independent New York clock, so they stay correct across daylight saving on any symbol.
- At the default times every level is measurable on the 1, 2, 3, 5, 10, 15 and 30 minute charts. Any other timeframe drops whichever levels its bars cannot open on, and names them.
- Four alert conditions: price crossing the Midnight Open, price crossing the opening range equilibrium, and the range's high or low being closed through.
- Every drawn element is black by default. Only the dashboard's directional readings carry colour, and all of them are inputs.
- This is a mapping tool. It draws reference levels and reports where price sits relative to them; it produces no entries, targets or stops.
Disclaimer-
This is not financial advice. A level drawn by a model is context, not a recommendation to trade, and where price opened yesterday says nothing certain about where it goes today. Indicator

Session Range Completion ClockThis indicator measures WHEN, inside a chosen intraday session, that session's range is actually
built. It answers a question that session tools normally skip: by a given time of day, how much of
the day's eventual range is typically already spent, and has the extreme that will define the day
usually already printed?
It draws no levels, marks nothing on price, and produces no signals. It is a measurement
instrument that reports descriptive statistics over the sessions in your loaded history.
THE UNDERLYING PRINCIPLE
A session's range is not built at a constant rate, and how it is built differs by symbol, by
session and by contract. The script assumes nothing about the shape - it measures it on whatever
instrument and window you point it at.
"How much range is left" and "is the extreme already in" are two different statistics, and the
script keeps them separate. For every completed session in the loaded history it records the
running high and low at the end of each time bucket, then waits for the session to close so the
FINAL range is known. It then attributes, for each bucket:
- the fraction of the final range that had been traversed by the end of that bucket;
- whether the session's high had already been made at or before that bucket;
- whether the session's low had already been made;
- whether both were already in place, meaning the range was finished and everything afterwards
happened inside it;
- the traversed range expressed in units of daily ATR or of the previous day's range, which makes
the figure comparable across volatility regimes.
These are accumulated across sessions and reported as means and frequencies.
HOW TO READ THE TABLE
The table is drawn once, on the last bar of the chart. Each row is a point in time, labelled with
the clock time at the end of that bucket.
"n" is the number of sessions contributing to that row. "Range built" is the mean percentage of
the session's final range already traversed. "High set" and "Low set" are the percentage of
sessions in which that extreme was already established. "Both set" is the percentage of sessions
in which the entire range was already complete; that column is shaded by value. "Range/unit" is
the mean range so far in the normalization unit selected in the inputs, which is named in the
bottom-right cell.
If the session contains more buckets than the row limit, buckets are sampled at an even stride so
the table still ends on the session's final bucket.
The pane also plots two lines during a live session: the current session's range so far, and the
mean range so far of all prior qualifying sessions at the same point in the session, both in the
same unit. That is a like-for-like comparison at equal elapsed session time. It is not a
projection and the script does not extend either line forward.
On a daily or higher chart the table prints a message instead of statistics: the whole measurement
is defined on intraday bars and there is nothing to compute.
WHAT IT DOES NOT DO
It does not predict where price will go, does not identify breakouts, and does not mark levels. A
high "Both set" figure at a given time means only that historically, on this symbol and this
session, the range was usually already complete by then. It is a frequency over past sessions, not
a statement about today, and nothing in the script says whether acting on it would be a good idea.
METHOD, AND WHY IT DOES NOT REPAINT
A session is folded into the statistics only after it has closed, so the session in progress never
contributes to its own statistics.
Historical values are never recalculated. The statistics accumulate forward in time, which means
the historical-mean line on early bars was computed from a smaller sample than the same line on
recent bars. That is deliberate; the alternative would be a curve that silently rewrites its own
past.
The daily normalization unit comes from a single bundled request on the daily timeframe. The
requested expression is offset by one bar and the request uses lookahead, which is the pair the
Pine Script documentation specifies for confirmed higher-timeframe values: the offset discards the
daily bar that is still forming and returns the one before it, which was already final. Historical
and realtime bars therefore receive the same value. This matters more here than it looks, because
the unit is latched once at session start and then used for that whole session - a unit that
differed between live and reloaded charts would give a session two different "Range/unit" figures
depending on when you looked at it.
Time buckets are anchored to the declared session start time rather than to the first bar
observed. This keeps the time-of-day axis stable on illiquid symbols, on sessions that run through
midnight, and on continuous 24-hour sessions where there is no gap between sessions to detect. A
session string containing more than one range, such as 0900-1130,1230-1500, is treated as a single
window running from the first start to the last end; buckets falling inside the break carry the
pre-break state forward, which is what you want, because the range does not reset over lunch. An
optional day mask such as 0930-1600:23456 is respected.
SETTINGS
Session and Session time zone define the window. Use the exchange's own time zone so buckets stay
aligned across daylight-saving changes.
Bucket size should be a multiple of the chart timeframe. A bucket narrower than the chart
timeframe contains no bars of its own and simply carries the previous bucket's state forward.
Minimum session completeness excludes half-days, early closes and partially loaded history, which
would otherwise depress the late-session figures. Lower it if a market you are studying
legitimately has short sessions.
Normalise range by chooses between daily ATR and the previous day's range. ATR is smoother; the
previous day's range reacts faster.
ORIGINALITY
The session and time-of-day category on this platform is overwhelmingly made of level-drawing
tools: opening-range boxes, session high/low lines, session shading. Those draw where. Very little
published measures when, and the two are different objects - this script plots nothing on price at
all.
There is a small existing family of scripts that chart the distribution of the hour at which the
daily high or low prints, and the "High set" and "Low set" columns overlap with that idea. This is
not a reskin of any of them: the accumulator here is cumulative by elapsed session time rather
than a histogram of one timestamp, it is folded only on session close, it is keyed to a
user-supplied session string with mid-session-break handling and a day mask, and it is combined
with final-range-fraction and volatility normalization. No code is borrowed from any published
script.
LIMITATIONS
Requires an intraday chart timeframe.
The sample is whatever history the chart has loaded, which on lower timeframes may be only a few
hundred sessions - check "n" before reading anything into a row.
Results are sensitive to the chart timeframe, because the exact bar on which an extreme prints is
resolution-dependent. Coarser timeframes will place extremes in later buckets than they truly
occurred.
The "Range/unit" column can be based on a smaller sample than the percentage columns, because the
earliest sessions in the loaded history have no completed daily bar to normalize against and are
skipped for that column only.
Sessions spanning a daylight-saving transition can be misattributed by one hour for a single day.
On non-standard chart types - Heikin Ashi, Renko, Kagi, Point and Figure, Range - the highs and
lows are synthetic, so the statistics describe the synthetic series rather than traded prices.
The statistics describe the loaded history only and carry no assumption that the distribution is
stable over time.
Source is open and commented. Indicator

True Strength Index Ribbon
True Strength Index Ribbon: A new way to visualize momentum
Most TSI indicators answer a simple question:
"Is momentum bullish or bearish?"
The True Strength Index Gradient Ribbon was designed to answer a much more useful question:
"How committed is momentum to that direction?"
Instead of displaying two ordinary oscillator lines that constantly cross and overlap, this indicator transforms the relationship between the TSI and its signal line into a continuously expanding and contracting gradient ribbon.
The result is an oscillator that allows traders to recognize momentum shifts almost instantly while dramatically reducing the visual clutter common to traditional TSI implementations.
Why a ribbon?
Momentum isn't simply bullish or bearish.
It has strength.
It has conviction.
It accelerates.
It weakens.
It compresses before expanding again.
The width of the ribbon naturally visualizes the distance between the TSI and its signal line.
A widening ribbon suggests increasing directional commitment.
A narrowing ribbon often indicates weakening momentum or an approaching transition.
Instead of mentally measuring the distance between two moving lines, your eyes recognize it immediately.
Designed for mean reversion and trend trading
While the indicator performs well as a traditional trend-following oscillator, it was specifically developed with mean reversion trading in mind.
Markets spend surprisingly little time at statistically stretched levels.
By combining directional momentum with configurable extension zones, traders can quickly identify when momentum is beginning to reverse after reaching unusually extended conditions.
The indicator intentionally avoids telling traders what to buy or sell.
Instead, it provides objective information that can be combined with price action, structure, moving averages, VWAP, volume, or any existing trading methodology.
Key Features
• Innovative gradient ribbon visualization
• Multiple signal moving average options:
EMA
SMA
WMA
RMA
HMA
VWMA
ALMA
• Higher-timeframe smoothing without changing your chart timeframe
• Four display modes:
Ribbon Only
Signal Line Only
Solid Signal Line Only
Ribbon + Signal Line
• Customizable bullish, bearish, neutral, and extreme colors
• Configurable extension levels for progressively stretched market conditions
• Optional extension-zone shading
• Live Extension Grade panel showing:
Direction
Degree of extension
Current TSI value
• Bullish and bearish crossover alerts
• Extension alerts for every major threshold
Timeframe smoothing
One of the more unique capabilities of this indicator is timeframe-based smoothing.
Instead of requiring traders to constantly switch chart timeframes, the script can internally scale its smoothing calculations to approximate the behavior of a higher timeframe while remaining on the current chart.
This produces cleaner momentum structure while preserving the convenience of lower-timeframe execution.
Extension Grades
Rather than treating all overbought and oversold conditions equally, this indicator classifies momentum into progressively stronger extension levels.
Examples include:
• Moderately Extended
• Extended
• Very Extended
• Extremely Extended
The goal isn't to predict reversals simply because a market reaches an extreme.
Instead, these classifications provide context so traders can better judge when momentum has become unusually stretched.
Built for customization
Every trader sees momentum differently.
Nearly every visual element can be customized, including:
Colors
Signal moving average
Signal smoothing
Ribbon visibility
Timeframe smoothing
Extension thresholds
Zone shading
Signal line appearance
This allows the indicator to adapt to different markets, different trading styles, and different visual preferences.
Design Philosophy
The best indicators don't make trading decisions.
They improve the trader's ability to understand market behavior.
The True Strength Index Ribbon was built around one simple objective:
Transform momentum from something you calculate...
into something you can immediately see.
If this script helps your trading, consider leaving a Like and sharing your feedback. Suggestions for future improvements are always welcome.
Disclaimer
This indicator is provided for educational and informational purposes only. It is designed to assist with market analysis and should not be considered financial or investment advice. No indicator can predict future market movements or guarantee profitable trades. Always conduct your own research, use appropriate risk management, and consider multiple factors before making any trading decisions. Indicator

Session Range BoxSession Range Box
A universal tool that draws the range of a chosen session as a box. The trader
sets the conditions: the session, the timezone, and the window. The borders are
built from the session highs and lows - an area of potential liquidity, since
resting orders tend to build up above the highs and below the lows.
This is a tool, not a signal system. It gives a clean, non-repainting map of the
range. How to use it is up to the trader's own strategy.
How It Works
1. Accumulation window. The trader sets the session time in their own timezone.
The highest high and the lowest low inside this window become the box borders.
2. Freeze. Once the window closes, the borders are locked and never repaint.
What you see on history is what actually happened at that moment.
3. Extend. The frozen box is stretched to the right until the end of the day, so
you can watch price test the borders after the session. A new day starts a new box.
What It Pairs With
Smart Money logic and the accumulation - manipulation - distribution model. The box
shows where potential liquidity sits; the trader applies their own scenario on top.
Applications
- Trading the Asian range
- Trading the European and US range
- First-hour range
- Mean reversion (from the box midline)
Settings
- Timezone: city entries (which adjust automatically for daylight saving) or fixed
UTC offsets (to match a broker's server time).
- Accumulation window: any length, from one hour to a full session.
- Extend box to end of day: on/off.
- Style: color, fill, borders, midline, label.
To show several sessions at once (Asia + Europe + US), add the indicator to the
chart more than once with different settings.
Notes
- Recommended timeframe: M1 to H1, depending on the strategy.
- Time is based on the selected timezone; city entries adjust for daylight saving,
fixed offsets do not. Indicator

STRX - Session Range TrapsSTRX - Session Range Traps is a session-based market structure tool designed to map the main intraday sessions (Asia, Frankfurt, London, New York), measure their ranges, and highlight potential liquidity traps around those ranges.
The goal is not to provide automatic entry signals, but to help traders read intraday structure, liquidity pools, and potential manipulation zones more clearly.
How it works
For each configured session, the script:
draws a box from session high to session low, displaying the live range in points;
optionally plots a 50% midline to show the session’s equilibrium;
extends the session range into a defined “hunting” window, where price interaction with the box is monitored.
During the extension window:
When price trades above the session high and then closes back below it, the script flags a potential bearish liquidity trap.
When price trades below the session low and then closes back above it, the script flags a potential bullish liquidity trap.
A compact on-chart dashboard summarizes for each session: current status (ACTIVE / HUNT / DONE), range size and whether price is trading above, below or inside the session range.
Inputs and customization
Session times for Asia, Frankfurt, London and New York are fully configurable so you can adapt them to your broker feed, timezone or instrument (FX, indices, crypto, etc.).
Midlines, trap detection and the dashboard can be individually toggled on/off to match your workflow.
Colors and label sizes are customizable to keep the indicator readable on both light and dark chart themes.
How to use it
Treat the “TRAP” labels as context around liquidity and failed breakouts, not as standalone buy/sell signals.
Combine this tool with your own price action, HTF levels, order-flow or risk management rules.
Always validate the session times for your market and adjust them if necessary.
Limitations & disclaimer
The script does not account for specific exchange holidays or instrument-specific trading halts.
All logic is derived from price behaviour around session highs and lows only.
This script is for informational and educational purposes only and does not constitute financial advice or a guarantee of performance.
You are fully responsible for any trading decisions you make when using this tool.
Indicator

Range Breakout Pro [JOAT]═══ RANGE BREAKOUT PRO ═══
Range Breakout Pro is a universal breakout engine. It defines a reference range from the Previous Day , Previous Week , an Initial Balance window, or a Custom Session , draws that range on the chart, and only fires a trade idea when price confirms a close beyond the edge. Every signal is scored 0–10 for conviction and shipped with a full trade plan: stop, three R-multiple targets, and live outcome tracking.
▎ WHAT IT DOES
It turns a simple "price broke the range" event into a structured, filtered, and scored decision. The chosen range basis is projected onto the current period as a box with edge rails and a midline. A confirmed break becomes a clean LONG or SHORT label with a stop, TP1/TP2/TP3 zones, and a running performance panel — all built to keep the chart readable.
▎ HOW IT WORKS
— Range basis : Previous Day / Previous Week project the prior completed period's high-low forward. Initial Balance and Custom Session accumulate the high-low inside a session window (in your chosen timezone) and lock the range at the window close.
— Break detection : a bar must close beyond the range edge, not just wick through it. In direct mode the close must clear the level by a Break Buffer measured in ATR.
— Optional retest : with retest confirmation on, price must break, pull back within a tolerance of the level, then close beyond it again before a signal arms — decisive reversals back through the level cancel the setup.
— Strength score (0–10) : each candidate is graded on candle body dominance, candle range vs ATR, volume vs its average, 3- and 5-bar momentum agreement, penetration depth past the level, RSI posture, higher-timeframe trend alignment, whether it is the first break of the period, and range size vs ADR. The score maps to a ★ rank and a tier from FORMING to ELITE.
— Filters/gates : minimum strength to signal, optional "strong only" threshold, HTF EMA trend alignment (longs above, shorts below), a range-vs-ADR gate (skip ranges too tight or too wide), and a max-signals-per-period cap.
— Trade model : entry at the confirming close. Stop from Structure (opposite range edge), Mid (range midline), or ATR , with an ATR buffer plus min/max risk clamps. Targets are placed at your TP1/TP2/TP3 R-multiples off the measured risk.
— Outcome engine : each trade is tracked bar by bar for TP1/TP2/TP3, stop, or end-of-period flatten, including same-bar stop handling, and the result feeds the stats panel.
— VWAP overlay : session-anchored VWAP with ±1σ bands and an optional ±2σ outer channel, tinted to the side price is trading.
▎ HOW TO USE IT
— Pick the range basis that fits your style: intraday traders often use Initial Balance or Custom Session; swing traders use Previous Day or Previous Week.
— Wait for a LONG / SHORT label. The ★ rank and score tell you how much confluence backed that break — treat higher tiers as higher conviction.
— The entry line is the confirming close, the dashed line is the stop , and the three solid lines are targets tagged 🎯 TP1 , 🥈 TP2 , 🏆 TP3 . The green zone is the reward area; the red zone is risk.
— Use the range box, midline, and rails as context: reclaims of the midline, failed breaks, and edge retests are all readable at a glance.
— Layer the VWAP bands as confluence — breakouts extending away from VWAP with room to the outer channel read differently than breaks stalling into a band.
— Result labels (TP / SL / EOP with the R outcome) close each idea so you can review what worked.
▎ KEY SETTINGS
— Engine : range basis, session timezone, IB / custom windows, retest toggle, break/retest tolerances, max signals per period.
— Strength & Filters : ATR length, minimum score, strong-only threshold, HTF trend alignment (timeframe + EMA length), and the range-vs-ADR gate.
— Trade Model : stop basis and buffer, ATR stop distance, min/max risk caps, TP1/2/3 in R, and how many past trades to keep drawn.
— Visuals : Ice / Emerald / Mono theme, box, rails, midline, measured-move ×1/×2 guides, projection length, label size, and toggles for signal, lines, zones, level labels, and result labels.
— VWAP & Candles : VWAP source, σ multiplier and lookback, outer channel, and optional RSI-gradient candles.
— Dashboard : show/hide, position, text size, and the outcome breakdown row.
▎ DASHBOARD
A chrome-accented panel reports the active range basis, current range size and % of ADR, price vs VWAP (with σ distance), engine status (forming / armed / trade active), the active and last signal with its score, and live stats: win rate , profit factor , average R per trade, long vs short win%, best direction, total signals, current and max streaks, plus an optional TP1/TP2/TP3 · SL · EOP outcome breakdown.
▎ ALERTS
— RBP Long and RBP Short on a confirmed, filtered breakout.
— TP3 Hit , Partial TP (protected exit), SL Hit , and EOP Exit (end-of-period flatten).
▎ NOTES
— Works on any market and any timeframe.
— Higher-timeframe data uses confirmed prior values, so signals are evaluated on bar close and do not repaint after the fact.
— Clean-by-default: measured-move guides, extra rails, gradient candles, and the outer channel all sit behind toggles so you can strip the chart down or build it up.
— Drawn history (ranges and trades) is capped to keep the chart light.
This tool is for research and education only. It is not financial advice. No indicator can predict the future, and any statistics shown reflect historical signals on your chart — past behavior does not guarantee future results. Always do your own analysis and manage your own risk.
Made with passion by JackOfAllTrades ⚡ Indicator

Average Daily Range ProjectionWHAT IT DOES
The Average Daily Range (ADR) Projection converts a historical average range into live price levels based on the range already realized during the current session.
Rather than anchoring fixed ADR bands to the session open or another single reference price, the indicator conditions each projection on the session's developing high and low. It answers a specific question: given the range already traded, where would price need to reach for this session to equal its recent average range?
Two independent sets let you compare separate baselines, such as the regular trading session versus the full futures session or a short lookback versus a longer one. This shows when price has satisfied one definition of its typical range while remaining below another.
CALCULATION
For each set, the indicator averages high minus low over up to the most recent N completed session windows. The ADR is fixed at the start of a new session; only the projected prices change as the current high and low develop. A partial session encountered when the script first loads is excluded.
Let ADR be the historical average, H the current session high, and L the current session low:
remaining = max(ADR - (H - L), 0)
upper projection = H + remaining
lower projection = L - remaining
Before the session has completed its ADR, these reduce to:
upper projection = L + ADR
lower projection = H - ADR
These are conditional range-completion thresholds. A new high raises the lower projection, while a new low lowers the upper projection. As realized range expands, the additional movement required to equal ADR decreases. A reached threshold freezes and is labeled FILLED.
HOW TO READ IT
An open projection marks the price that would complete the configured average range in that direction, assuming the opposite session extreme does not change first. Its distance from price represents remaining range relative to the benchmark, not a prediction that price will reach it.
A FILLED label means the session range has reached or exceeded that set's trailing mean. If one set is filled while the other remains open, the session has satisfied one baseline but not the other.
Previous-session lines may be retained to review completed thresholds on the selected instrument and timeframe.
INPUTS
ADR Period sets the maximum number of completed sessions in each average. During initial data collection, the indicator starts after one complete session and uses the available sample until the selected period is populated.
Session Start, Session End, and Timezone define each measurement window; overnight windows are supported. Set 1 and Set 2 may use different windows, ADR periods, and styling. Show Previous Sessions retains completed levels, while Max Previous Sessions limits their number. Other controls manage labels, first-fill emphasis, and the optional information table.
The default Pacific-time windows are:
Set 1: 06:30 to 13:55, 14-session ADR
Set 2: 15:00 to 13:55, 14-session ADR
ALERTS
Four alert conditions cover upper and lower fills for both sets.
LIMITATIONS AND CALCULATION BEHAVIOR
ADR is a trailing sample mean, not a percentile, confidence interval, forecast, or estimate of reversal probability. Reaching it does not establish that a move is rare, exhausted, or likely to reverse. Outliers and volatility-regime changes can materially affect the average.
The script does not use future data or lookahead and does not repaint completed levels from future information. Active projections intentionally update as the session high or low changes, including during an open realtime bar. Completed-session lines show final or filled levels, not every level occupied intraday. Label Offset moves labels to the right for readability only; it does not reference future prices.
Calculations use extended-hours data so a full-session window remains intact on a regular-hours chart. Results depend on the data supplied by the symbol's feed, and an off-chart fill may already be marked when the next visible bar opens.
Designed for intraday charts with standard candles. Synthetic chart types can produce ranges and alerts based on synthetic prices rather than actual traded OHLC values. Indicator

Market Compass - Dynamic Range FrameworkHello English readers, the English version is provided below. Please scroll down to view it.
Market Compass - Dynamic Range Framework
市场指南针 · 动态区间框架
版本:1.0 | 类型:非预测性价格结构定位工具 | 作者:
绝大多数交易亏损,根源并非方向判断错误,而是 “位置感”的缺失 。本指标旨在为您解决这一核心痛点——它不告诉您涨跌,但它告诉您 “此时此刻,价格在地图上的精确坐标” 。
---
本指标并非传统的均线或动量振荡器,而是一个 基于固定回溯周期的价格百分位区间定位系统 。它以最近 N 根 K 线(默认 252 根,对应约 1 个交易年度)的最高价与最低价为天然边界,构建出一个覆盖 0% 至 100% 的 动态箱体网格 。
该网格并非平均分割,而是采用 非对称的黄金分割与极值锚定法 ,精确定制了 9 条关键水平轨道。这些轨道以彩色矩形色带和右侧实时浮动标签的形式,干净利落地叠加于主图 K 线之上:
100% 顶部极值轨 (红色):回溯周期内的绝对天花板。
89% 超买警戒轨 (橙色):情绪极度亢奋区,多头衰竭高发带。
75% 强势分界轨 (黄色):牛熊分水岭,站上此线意味中期趋势转强。
62.5% 强界枢轴轨 (紫色):多头趋势中的次级回踩支撑位。
50% 多空中轴轨 (白色):价值均衡线,长线资金的成本密集区。
37.5% 弱界枢轴轨 (青色):空头趋势中的次级反弹阻力位。
25% 弱势分界轨 (亮蓝):跌破此线意味中期趋势正式转入空头。
11% 超卖警戒轨 (浅绿):情绪极度恐慌区,空头衰竭高发带。
0% 底部极值轨 (深蓝):回溯周期内的绝对地板。
随着新 K 线的生成,整个框架会 滚动迭代 ,始终锚定最新的价格活动范围,确保参考坐标永不失效。
---
传统价格图表存在严重的 视角局限性 ,导致交易者频繁陷入误判:
“绝对值幻觉”与锚定效应 :股价 100 元是高是低?脱离近期波动区间谈绝对价格毫无意义。本指标将价格转化为 0~100 的相对百分位数 ,消除了价格基数的干扰,让您客观评判当前价格是“相对高位”还是“相对低位”。
“区间失忆症”与近因偏好 :人类大脑天然对最近 5~10 根 K 线赋予过高权重,极易遗忘前期关键的支撑与阻力结构。本指标通过固定窗口的滚动计算,强制将 过去 N 根 K 线的价格极值 醒目地绘制在当前图表上,纠正了这种认知偏差。
均值回归与极端磁吸理论 :金融市场价格长期遵循 “极端值向中轴(50% 均衡线)回归” 的统计规律。当价格进入 89% 以上或 11% 以下的极端尾部区域时,统计概率上必然面临向 50% 中轴的牵引力。本框架为这种“牵引力”提供了精确的量化刻度。
---
本指标是 趋势过滤、盈亏比评估与动态止盈止损 的绝佳辅助工具。请勿将其视为独立入场信号,而应作为 “价格行为决策的量化底座” 。
3.1 基于市场环境的三种经典战法
【趋势跟踪战法】—— 适用于强势单边行情
当价格经过充分调整后,以放量大阳线有效突破 75% 强势分界轨 时,视为中期趋势由震荡转强的关键确认点。若后续价格回踩 75% 轨并获得支撑(收出长下影线),则为绝佳的 顺大势、逆小势 加仓机会。此时可将止损设于 62.5% 强界枢轴轨下方。
【均值回归战法】—— 适用于宽幅震荡行情
当价格快速冲高至 89% 超买轨 上方,且 K 线出现明显滞涨形态(如射击之星、看跌吞没)时,可视为短线高空机会,第一目标位看向 75% 轨,第二目标位看向 50% 中轴。反之,价格急跌至 11% 超卖轨 下方并出现止跌反转形态时,可视为短线低吸机会。
【突破回踩确认战法】—— 适用于关键阻力支撑转换
任何一条百分比轨道都具备动态支撑/阻力的属性。当价格自下而上突破某一轨道(如 62.5% 轨)后,若随后缩量回踩该轨道且未跌破,则说明该轨道已由阻力转换为支撑,此处是风险收益比极高的 “0 级入场点” (止损极小,空间极大)。
3.2 动态止盈与止损设置指南
波段多头持仓 :可将 37.5% 弱界枢轴轨 设为最终的硬性离场线。只要价格在此轨之上,多头头寸便可安心持有,避免被早期震荡洗出。
短线空头持仓 :可将 62.5% 强界枢轴轨 设为硬性止损线。一旦价格强势反抽并站上此轨,则空头逻辑被证伪,需果断离场。
3.3 参数动态调整建议(针对不同交易周期)
日线级别(中长线 / 波段) :建议保持默认 252 (约 1 年交易日),用于捕捉年度大箱体的牛熊转换。
周线级别(大趋势 / 仓位布局) :建议调整为 52 (约 1 年周线),用于识别超大周期的价格百分位极值。
小时 / 分钟级别(日内短线 / 剥头皮) :建议调整为 50 ~ 100 ,过长的周期在分钟图上会导致框架钝化,失去短线参考意义。
---
4.1 最佳适用场景
流动性充裕的权益市场 :沪深 300、中证 500、标普 500 等主流指数及成分股。
高流动性大宗商品与外汇 :黄金、原油、欧元/美元等主要交易对。
高市值加密货币 :比特币(BTC)、以太坊(ETH)等。
4.2 禁用与慎用场景(风控红线)
严禁用于上市不足 N 根 K 线的新股/次新股 :尽管代码内置了自适应缩窄逻辑,但新股价格极不稳定,高低点极易被操纵,百分位框架参考价值极低。
慎用于连续无量涨跌停的极端行情 :在极强的单边轧空或流动性枯竭的踩踏中,价格可能长期粘合在 100% 轨之上或 0% 轨之下,此时指标出现 “钝化” 现象,需立即切换至趋势跟踪指标(如 SAR 抛物线或均线系统)进行二次印证。
慎用于高度控盘的“庄股”或低成交量仙股 :稀疏的成交导致价格跳跃性极大,计算出的区间极易失真。
---
本指标严格遵循 PulseWire 最佳实践, 完全不包含未来函数 ,所有信号均基于确定性的历史数据实时滚动计算。
5.1 自适应周期核心算法
系统优先读取用户设定的 `lookbackLength`(默认 252)。然而,当图表加载的品种上市天数不足时,引擎会自动触发保护机制:
effectiveLookback = math.min(i_lookbackLength, bar_index + 1)
该行代码确保指标在上市首日即能工作,且随着新 K 线增加,窗口期自然增长,直至达到用户设定的标准周期。
5.2 九宫格线性映射(百分位分割数学)
首先确定箱体极值与范围:
periodLow = ta.lowest(low, effectiveLookback) // 底部 0%
periodHigh = ta.highest(high, effectiveLookback) // 顶部 100%
priceRange = periodHigh - periodLow
随后基于 斐波那契数列与统计学标准差启发式阈值 进行非均匀切割:
priceL89 = periodLow + priceRange * 0.89 // 极值警戒
priceL75 = periodLow + priceRange * 0.75 // 强市分界
priceL625 = periodLow + priceRange * 0.625 // 黄金分割枢轴
priceL50 = periodLow + priceRange * 0.50 // 均衡中轴
// ... 下方对称切割同理
注:62.5% 与 37.5% 的选取来源于对 0.618 黄金分割率的整数微调,旨在提供比传统 61.8% 更为清晰且易于记忆的刻度。
5.3 图形渲染引擎优化(内存与性能管理)
为了避免在大量历史 K 线上重复绘制矩形和线条导致图表卡顿,引擎采用 “惰性删除与单次实例化” 策略:
if barstate.islast
// 仅当加载完成且运行至图表最右侧时触发绘制
box.delete(boxMain) // 先销毁旧句柄
line.delete(lineL100) // 清理旧线
// ... 重新创建新对象
所有标签采用 label.style_label_left 右对齐样式,确保在图表最右侧整齐排列,绝不遮挡最新的 K 线实体,同时提供精确至交易所最小报价单位(`format.mintick`)的实时读数。
---
它不是占卜未来的水晶球,而是衡量当下的卡尺。
在充满不确定性的金融市场中, “位置感” 是纪律执行的基石。`Market Compass` 为您提供的不是圣杯,而是一张永远保持更新的 战场态势感知地图 。请将它融入您现有的交易系统中,作为过滤低质量交易机会的第一道关卡。
---
本指标及此说明文件仅供教育及技术分析参考之用,绝不构成任何形式的买入、卖出或持仓建议。金融衍生品及证券交易蕴含巨大风险,过往价格结构及百分位分布不构成对未来走势的绝对保证。您必须结合自身财务状况、风险承受能力及独立研判做出交易决策,盈亏自负。作者不承担任何因使用本指标而产生的直接或间接损失。
---
如果您认可这套价格定位逻辑,欢迎点赞、收藏并关注!
期待您在评论区分享将该框架融入实战交易后的心得体会。
Market Compass - Dynamic Range Framework
Version: 1.0 | Type: Non-Predictive Price Structure Positioning Tool | Author:
The vast majority of trading losses stem not from incorrect directional judgment, but from a lack of "positional awareness" . This indicator addresses this core pain point — it does not tell you whether price will go up or down, but it does tell you "the precise coordinates of price on the map, at this very moment" .
---
This indicator is not a traditional moving average or momentum oscillator. Instead, it is a price percentile range positioning system based on a fixed lookback period . It uses the highest high and lowest low over the most recent N bars (default 252, corresponding to approximately one trading year) as natural boundaries, constructing a dynamic box grid spanning from 0% to 100%.
The grid is not evenly divided. It employs an asymmetric golden ratio and extreme-value anchoring methodology to precisely define 9 key horizontal threshold levels. These levels are cleanly overlaid on the main price chart using colored rectangular bands and real-time right-aligned floating labels:
100% Peak Threshold (Red): The absolute ceiling within the lookback period.
89% Overbought Warning Zone (Orange): Extreme euphoria zone; high probability of bullish exhaustion.
75% Bullish Boundary (Yellow): The bull-bear dividing line; breaking above signals medium-term strength.
62.5% Bull Pivot Threshold (Purple): Secondary retracement support level within an uptrend.
50% Equilibrium Axis (White): The value equilibrium line; a dense area of long-term capital cost.
37.5% Bear Pivot Threshold (Cyan): Secondary retracement resistance level within a downtrend.
25% Bearish Boundary (Light Blue): Breaking below signals a confirmed medium-term bearish trend.
11% Oversold Warning Zone (Light Green): Extreme panic zone; high probability of bearish exhaustion.
0% Floor Threshold (Dark Blue): The absolute floor within the lookback period.
As new bars are generated, the entire framework rolls forward iteratively , always anchored to the most recent price activity range, ensuring the reference coordinates never become obsolete.
---
Traditional price charts suffer from severe perspective limitations , leading traders into frequent misjudgments:
"Absolute Value Illusion" and Anchoring Bias : Is a price of $100 high or low? Discussing absolute price without reference to the recent trading range is meaningless. This indicator converts price into a relative percentile from 0 to 100 , eliminating the distortion of price magnitude and allowing you to objectively assess whether the current price is "relatively high" or "relatively low."
"Range Amnesia" and Recency Bias : The human brain naturally assigns excessive weight to the most recent 5–10 bars, easily forgetting key prior support and resistance structures. Through rolling window calculations, this indicator forcibly and prominently plots the price extremes of the past N bars on the current chart, correcting this cognitive bias.
Mean Reversion and Extreme Magnetic Attraction Theory : Financial market prices have long exhibited a statistical tendency to "revert from extreme values toward the center (50% equilibrium line)" . When price enters the extreme tail regions above 89% or below 11%, statistical probability dictates an inevitable gravitational pull toward the 50% axis. This framework provides precise quantitative刻度 for this "magnetic force."
---
This indicator serves as an excellent auxiliary tool for trend filtering, risk-reward assessment, and dynamic stop-loss/take-profit placement . Do not treat it as an independent entry signal; instead, regard it as a "quantitative foundation for price-action decision-making."
3.1 Three Classic Strategies Based on Market Context
【Trend Following Strategy】— For Strong Directional Markets
When price, after sufficient consolidation, breaks decisively above the 75% Bullish Boundary with a high-volume bullish candle, this serves as a key confirmation that the medium-term trend is shifting from consolidation to strength. If price subsequently retests the 75% level and finds support (forming a long lower wick), it represents an excellent "go with the macro trend, counter the micro pullback" add-on opportunity. In such cases, place your stop-loss below the 62.5% Bull Pivot Threshold.
【Mean Reversion Strategy】— For Range-Bound Markets
When price spikes rapidly above the 89% Overbought Warning Zone and simultaneously exhibits clear exhaustion patterns (such as shooting stars or bearish engulfing), this can be viewed as a short-term selling opportunity. The first target is the 75% level, and the second target is the 50% Equilibrium Axis. Conversely, when price plummets below the 11% Oversold Warning Zone and shows reversal signals, a short-term buying opportunity emerges.
【Breakout-Pullback Confirmation Strategy】— For Key Support/Resistance Transitions
Every percentage threshold possesses dynamic support/resistance properties. When price breaks upward through a given level (e.g., the 62.5% level) and subsequently retests that level on diminishing volume without breaking back below, this confirms that the level has successfully transitioned from resistance to support. This represents a highly favorable "Grade-A Entry Point" (minimal stop-loss, substantial upside potential).
3.2 Dynamic Stop-Loss and Take-Profit Placement Guide
Swing Long Positions : Use the 37.5% Bear Pivot Threshold as your ultimate hard exit line. As long as price remains above this level, you can confidently hold your long position, avoiding premature exits caused by early-stage volatility.
Short-Term Short Positions : Use the 62.5% Bull Pivot Threshold as your hard stop-loss line. Should price stage a strong rally and close above this level, the bearish thesis is invalidated, and you must exit decisively.
3.3 Parameter Adjustment Recommendations (By Trading Timeframe)
Daily Chart (Swing / Medium-to-Long Term) : Keep the default 252 (approximately one trading year), ideal for capturing annual bull-bear transitions.
Weekly Chart (Macro Trend / Position Sizing) : Consider adjusting to 52 (approximately one year of weekly bars) for identifying extreme percentiles within broader cycles.
Hourly / Minute Charts (Intraday / Scalping) : Consider adjusting to 50–100 . Longer lookbacks on lower timeframes cause the framework to become overly rigid, diminishing its short-term relevance.
---
4.1 Optimal Use Cases
Highly Liquid Equity Markets : CSI 300, S&P 500, major index constituents, and liquid individual stocks.
High-Liquidity Commodities and FX : Gold, Crude Oil, EUR/USD, and other major pairs.
Large-Cap Cryptocurrencies : Bitcoin (BTC), Ethereum (ETH), and similar assets.
4.2 Scenarios to Avoid or Use with Caution (Risk Red Lines)
Strictly avoid newly listed stocks with fewer than N bars of history : Although the code includes a built-in adaptive shortening mechanism, new issues are extremely unstable, and their highs/lows are vulnerable to manipulation, rendering the percentile framework nearly worthless.
Use with caution during continuous limit-up/limit-down extreme conditions : In powerful short squeezes or liquidity-driven crashes, price may remain persistently glued above the 100% level or below the 0% level. In such cases, the indicator becomes "blunted" , and you must immediately switch to trend-following tools (such as SAR or moving average systems) for secondary confirmation.
Avoid low-float "pump-and-dump" penny stocks : Sparse trading volume leads to erratic price jumps, causing the computed range to become highly distorted.
---
This indicator strictly adheres to PulseWire best practices and contains absolutely no future functions . All signals are computed in real time based on deterministic historical data.
5.1 Adaptive Lookback Core Algorithm
The system first reads the user-defined `lookbackLength` (default 252). However, when the loaded instrument has fewer total bars on the chart than the configured period, the engine automatically triggers a protective mechanism:
effectiveLookback = math.min(i_lookbackLength, bar_index + 1)
This single line ensures the indicator functions from the very first trading day, and the window gradually expands as new bars are added until it reaches the user's desired standard period.
5.2 Nine-Level Linear Mapping (Percentile Segmentation Mathematics)
The process begins by determining the box extremes and range:
periodLow = ta.lowest(low, effectiveLookback) // Floor at 0%
periodHigh = ta.highest(high, effectiveLookback) // Peak at 100%
priceRange = periodHigh - periodLow
The range is then divided using a heuristic blend of Fibonacci ratios and statistically inspired thresholds :
priceL89 = periodLow + priceRange * 0.89 // Extreme warning
priceL75 = periodLow + priceRange * 0.75 // Bullish boundary
priceL625 = periodLow + priceRange * 0.625 // Golden ratio pivot
priceL50 = periodLow + priceRange * 0.50 // Equilibrium axis
// ... Symmetrical lower-level calculations follow the same logic
Note: The selection of 62.5% and 37.5% is derived from a slight integer adjustment to the 0.618 golden ratio, intended to provide cleaner and more memorable reference刻度 than the traditional 61.8%.
5.3 Rendering Engine Optimization (Memory & Performance Management)
To prevent chart lag caused by repeatedly drawing rectangles and lines across numerous historical bars, the engine employs a "lazy deletion with single-instantiation" strategy:
if barstate.islast
// Only triggered when loaded and running at the rightmost edge of the chart
box.delete(boxMain) // Destroy old handles first
line.delete(lineL100) // Clean up old lines
// ... Then create new objects
All labels use the label.style_label_left right-aligned format, ensuring they line up neatly on the far right of the chart without ever obscuring the most recent price bars. Prices are displayed with precision down to the exchange's minimum tick size (`format.mintick`).
---
It is not a crystal ball for predicting the future; it is a caliper for measuring the present.
In the inherently uncertain financial markets, "positional awareness" is the cornerstone of disciplined execution. `Market Compass` does not offer you a holy grail; it offers you an ever-updating situational awareness map of the battlefield . Integrate it into your existing trading system and use it as the first filter to eliminate low-probability trade setups.
---
This indicator and its accompanying description are provided for educational and technical analysis purposes only. They do not constitute, and should not be construed as, any form of investment advice or recommendation to buy, sell, or hold any financial instrument. Trading securities and derivatives involves substantial risk of loss. Past price structures and percentile distributions do not guarantee future results. You are solely responsible for your own trading decisions, taking into account your financial situation, risk tolerance, and independent judgment. Neither the author nor the hosting platform accepts any liability for losses arising from the use of this indicator.
---
If you find this price-positioning logic valuable, please like, bookmark, and follow!
I look forward to hearing how you integrate this framework into your live trading. Feel free to share your experiences and feedback in the comments section below.
Indicator

Session Runway & Volatility Expansion Matrix🛫 Session Runway & Volatility Expansion Matrix — runway isn't one number. It's two, and they fail for different reasons.
Most session/exhaustion tools give you a single verdict: room left, or not. But a trade can run out of space (price already covered its expected range) or run out of time (the session's ending) — and those call for opposite responses. One says wait, the other says stand down. This tool splits them so you know which one you're looking at.
WHAT'S UNDER THE HOOD
📏 Average Session Range engine — one continuous London-open→NY-close envelope per day (single anchor, DST-safe via timezone-aware session windows). Realized range from the last N valid sessions feeds a rolling average; a completeness gate throws out holiday/half-day pollution before it can skew the number.
📐 Space axis — Ceiling = sessionLow + m·ASR, Floor = sessionHigh − m·ASR. Each edge freezes the instant a confirmed close breaks it, so "+N beyond" measures real travel past the edge, not drift from the opposite extreme still extending.
⏳ Time axis — not a straight-line clock. Session range accrues early (London/NY opens), so achievable distance = 1 − elapsed^p: late-session minutes buy less runway than their share of the clock implies. A structural gate also suppresses false time-outs in the two windows where a fresh range burst is still ahead of price (pre-NY, and NY's own fill-window) — this is about where orders fill, not a forecast.
📊 The 2×2 verdict
🟩 CLEAR — SPACE ok + TIME ok → room in both; green light to look for an entry on your system
🟨 TIME LOW — SPACE ok + TIME running out
🟨 EXHAUSTED — range spent + TIME still ok
🟥 NO RUNWAY — both gone; a fresh trade likely can't reach target
🔁 Regime split — directional efficiency (net session displacement ÷ realized range, signed) separates ROTATION days, where the ASR-exhaustion read holds, from EXPANSION (trend) days, where a broken edge stops being a danger zone and flips into a trend-continuation reference instead. The 2×2 stands down on expansion days and a separate flag takes over, so the tool never fights a trend day with a rotation-day read.
🧭 H4 direction gate (optional, non-repainting) — decides which side of the matrix is live.
WHY THIS IS ONE TOOL, NOT FOUR
Space, time, direction and regime aren't independent in practice — a space-based verdict on a trend day is backwards, and a time-axis read that ignores which side is live tells you nothing. Fusing them is the point: the matrix exists to resolve how these four interact into a single session-native verdict, which is exactly the reconciliation you'd otherwise have to do by hand, every session, on every chart.
🔔 Alerts — Runway Clear and Low Runway (rotation-gated, so they never fire against a trend day), plus a separate Expansion Day flag for the regime flip. All confirmed-bar. Payload carries runway in pips, % ASR consumed, and % session elapsed.
📐 Built for FX majors and crosses that trade the London and New York sessions — EURUSD, GBPUSD, USDJPY, AUDUSD, NZDUSD, USDCAD, USDCHF, EURGBP, EURJPY, GBPJPY and similar. JPY pip sizing is automatic. It also runs on metals (e.g. XAUUSD) and indices/futures, which read in ticks — set the Pip size override to your instrument's real pip/tick for correct numbers, and note that in Fixed-pips target mode this override sets the actual target distance, not just the displayed numbers, so metals/index users on Fixed mode should set it. Designed for the M5 to H1 timeframes.
Indicators that pass the "still useful after it's been on your chart a while" test — every read maps to a decision, no decoration.
— SlatinaTrades Indicator

Opening Range Formation Trace - ORB & Initial BalanceOpening Range Formation Trace is an intraday research indicator that records a configurable opening range, preserves the chronology of its formation, and tracks neutral post-range evidence after the range is complete.
It is intended for users who want to study more than the final opening-range high and low. The script focuses on how the range was built, when its extremes formed, how efficiently price traveled during the opening window, and what occurred after the range locked.
The default opening-range duration is 15 minutes. Setting Range duration to 60 minutes provides an Initial Balance-style workflow.
Session configuration
The script includes reference presets for:
- US equities open
- Tokyo cash open
- London cash open
- CME equity regular trading hours
- Exchange-time opening
- Custom IANA timezone and opening time
The opening time, duration, active weekdays, projection period, and sampling resolution are configurable.
Session presets are editable reference anchors. They are not an exchange holiday or early-close calendar. Users should confirm that the selected opening time and chart session match the instrument being studied.
What makes this implementation distinct
Cumulative formation trace
A conventional opening-range display normally shows only the completed high and low. This script also preserves cumulative high-low envelopes at configurable elapsed-time checkpoints during the opening window.
Each trace slice shows the range that had been reached by that point in time. The slices are cumulative and are not treated as independent mini-ranges.
The trace colors distinguish whether a checkpoint added:
- Upper-side expansion
- Lower-side expansion
- Expansion on both sides
- No new final extreme
This makes it possible to inspect whether the opening range developed through an early directional move, alternating expansion, late acceleration, or rotation.
Independent research checkpoints
The visual trace can use between two and eight time slices. Formation classification does not depend on the selected number of visual slices.
Classification uses separate fixed research checkpoints:
- The halfway point of the opening-range duration
- A user-configurable early checkpoint
This separation allows users to change visual detail without unintentionally changing the definition of the formation classification.
Opening-range measurements
The script calculates the following transparent measurements:
Opening-range width
The completed high-low distance. It is available in native price units and as a percentage of the sampled opening price.
Width percentile
The current width is compared with prior complete opening ranges calculated from the same current configuration.
At least five prior complete observations are required before a percentile is displayed. Equal values receive a midpoint rank. The current observation is ranked before it is added to the comparison history.
The percentile is a relative description of recent opening-range width. It is not a probability of a breakout, target, or profitable result.
Sampled path efficiency
Path efficiency compares the absolute distance from the opening sample to the final sampled close with the cumulative sampled closing-price path traveled during the opening window.
A higher value indicates a more direct sampled path. A lower value indicates more back-and-forth movement.
Path efficiency is descriptive. It is not a confidence score or prediction.
Close location
Close location expresses where the final sampled close sits inside the completed range.
A value near zero is close to the range low. A value near one is close to the range high.
Expansion skew
Expansion skew compares the distance expanded above the opening price with the distance expanded below it.
Positive values indicate more upper-side expansion. Negative values indicate more lower-side expansion. Values near zero indicate more balanced expansion.
Late expansion share
Late expansion share measures how much of the final opening-range width was added after the halfway checkpoint.
This value describes when the range expanded. It does not forecast the next move.
Early checkpoint width share
This measures how much of the final width had already formed at the independent early checkpoint.
Final extreme order
The script records whether the final high or final low was first established earlier in the sampled sequence. When both final extremes are first observed in the same sampled interval, the order is reported as simultaneous rather than inventing a more precise sequence.
Formation classifications
Completed and non-partial opening ranges are assigned to one of eight descriptive formation states:
- Upper-led drive
- Lower-led drive
- Late upper expansion
- Late lower expansion
- Late two-sided expansion
- Rotational formation
- Two-sided formation
- Mixed formation
The classifications are derived from path efficiency, close location, expansion skew, late expansion share, and early checkpoint width share.
All classification thresholds are exposed as user inputs. The classifications are descriptive research labels and are not buy or sell signals.
Research equilibrium
The script can display one of four opening-range equilibrium references:
- Volume-weighted sampled HLC3
- Arithmetic mean of sampled HLC3
- Opening-range midpoint
- Sampled opening price
When usable volume is unavailable, the volume-weighted method falls back to the arithmetic mean of sampled HLC3.
Post-range evidence
After a complete opening range locks, the script can track a neutral sequence of observable events.
Accepted departure
The first accepted departure can occur above or below the completed range.
Users can define acceptance using:
- Sample close
- Sample wick
- A buffer measured as a fraction of the completed range
- A required number of consecutive samples
The word accepted refers only to this configurable operational definition. It does not claim institutional participation or predict continuation.
Re-entry
After the first accepted departure, the script records whether price returns through the departed range boundary.
Opposite-edge traverse
After re-entry, the script records whether a later sample reaches the opposite opening-range edge.
Re-entry and opposite-edge traversal are not credited from the same sampled interval. The opposite edge is evaluated only from a later sample so the script does not invent an intrabar order that the available data cannot prove.
Additional post-range observations include:
- Upper-edge test count
- Lower-edge test count
- Closing-sample dwell inside, above, and below the range
- Maximum upper reach measured in completed-range units
- Maximum lower reach measured in completed-range units
Visual research panel
The fixed research panel summarizes the rightmost relevant opening range in the current chart view.
It can display:
- Formation classification
- Width percentile
- Path efficiency
- Late expansion share
- Current post-range state
- Accepted-departure, re-entry, and traverse progression
- Upper and lower edge-test counts
- Maximum reach above and below the range
- Sampling or fallback resolution
The panel is a research summary. Its colors and state labels do not constitute trade instructions.
Realtime and historical behavior
The script is designed for standard intraday candlestick charts.
It intentionally disables processing on synthetic chart types and daily-or-higher charts because their price construction or session assumptions can make opening-range chronology ambiguous.
Lower-timeframe sampling can be selected from 1, 3, 5, or 15 minutes. When the selected sampling timeframe is higher than the chart timeframe, the chart timeframe is used instead.
During a live opening window, the developing high, low, trace, equilibrium, and panel can update as new completed samples become available. Developing values should therefore be treated as provisional until the configured range has ended.
The script does not request future data and does not use lookahead.
Historical lower-timeframe bars contain finalized OHLC values. They do not reproduce every update that occurred while those bars were live.
Visible chart adaptive mode
In Visible chart adaptive mode, the script uses the current chart viewport to prioritize opening-range sessions that intersect the displayed period. Scrolling or zooming causes the visual layer to be recalculated for the newly visible history.
Most recent sessions mode is also available for users who prefer a rolling, live-first display.
Confirmed chart-bar fallback
The amount of available lower-timeframe history depends on the symbol, chart history, and PulseWire plan.
When lower-timeframe arrays are unavailable on older confirmed bars, the optional fallback can continue the study with confirmed chart-timeframe bars if the chart timeframe can fit inside the configured opening-range duration.
Fallback sessions are identified as coarse-resolution observations in the research panel. They should not be interpreted as having the same chronological precision as lower-timeframe sessions.
If the first available sample begins after the configured session open, the session is marked as partial. Formation classification, width-history inclusion, and post-range evidence are intentionally disabled for that incomplete session.
Alerts and Data Window outputs
Neutral alert conditions are available for:
- Opening range locked
- Accepted departure above
- Accepted departure below
- Range re-entry
- Opposite-edge traverse
The alert conditions describe observable events and are exposed on confirmed chart bars.
Research measurements are also available in the Data Window without adding values to the chart status line.
Suggested workflow
1. Use a standard intraday candlestick chart.
2. Select the session preset or custom timezone and opening time that match the intended research window.
3. Set the opening-range duration. Use 60 minutes for an Initial Balance-style study.
4. Select the finest practical sampling resolution available for the chart and instrument.
5. Review the formation trace before interpreting the completed classification.
6. Use the panel to compare width, path efficiency, late expansion, and the post-range event sequence.
7. Treat all readings as market-context observations and combine them with independent analysis and risk controls.
Limitations
The script does not maintain an official exchange calendar and does not automatically adjust for holidays or early closes.
Results depend on the selected session, duration, sampling timeframe, chart session, and classification thresholds.
Historical lower-timeframe availability varies by symbol and PulseWire plan.
Coarse chart-bar fallback has lower chronological resolution than lower-timeframe sampling.
Volume-weighted equilibrium depends on the quality and meaning of the volume data supplied for the instrument.
Width percentile describes the script's available comparison sample and is not a probability of future behavior.
Formation classifications and post-range evidence describe observed price behavior. They do not guarantee continuation, reversal, support, resistance, or profitability.
The script does not place orders, calculate position size, generate targets or stops, produce a strategy backtest, or provide financial advice.
日本語説明
Opening Range Formation Traceは、設定した寄り付きレンジを記録し、そのレンジがどのような順序と速度で形成されたか、完成後に価格がどのように推移したかを研究するための日中足インジケーターです。
完成した高値と安値だけでなく、形成途中の累積高安、最終極値の記録順序、経路効率、上下拡張の偏り、後半拡張比率などを表示します。
既定の形成時間は15分です。形成時間を60分に設定すると、Initial Balance型の研究に使用できます。
セッション設定
以下の基準時刻プリセットを備えています。
- 米国株式市場
- 東京現物市場
- ロンドン現物市場
- CME株価指数RTH
- 取引所時間
- IANA時間帯と開始時刻を指定するカスタム設定
これらは編集可能な基準時刻です。取引所の祝日や短縮取引日を自動判定する公式カレンダーではありません。
累積形成トレース
形成時間を2から8個の経過時間区間に分け、各時点までに到達していた累積高値と累積安値を保存します。
各区間は独立した小レンジではありません。
色によって、上側拡張、下側拡張、両側拡張、新しい最終極値なしを区別します。
形成分類で使用する50%地点と初動チェックポイントは、表示トレースの分割数から独立しています。そのため、表示の細かさを変更しても分類定義が意図せず変化しません。
主な研究値
レンジ幅
完成した高値と安値の差です。価格単位と始値比率で確認できます。
幅パーセンタイル
現在の設定で計算された過去の完全なレンジ幅と比較します。
表示には最低5件の過去観測が必要です。同値は中間順位として扱い、現在値を履歴へ追加する前に順位を計算します。
この順位は過去レンジ幅に対する相対位置であり、ブレイクや利益の確率ではありません。
経路効率
寄り付きサンプルからレンジ内最終終値までの純移動距離を、形成中に終値が移動した累積経路で割った値です。
高い値は比較的直接的な経路、低い値は往復の多い経路を示します。予測の信頼度ではありません。
終値位置
完成レンジ内での最終終値位置を0から1で表します。
拡張偏り
始値より上へ拡張した距離と、始値より下へ拡張した距離を比較します。
後半拡張比率
形成時間の50%地点以降に追加された最終レンジ幅の比率です。
初動幅比率
ユーザー指定の初動チェックポイント時点で、最終レンジ幅の何割が既に形成されていたかを示します。
形成分類
完全なレンジを以下の8状態へ分類します。
- 上側主導ドライブ
- 下側主導ドライブ
- 後半上側拡張
- 後半下側拡張
- 後半両側拡張
- 回転型形成
- 両側形成
- 混合形成
分類は経路効率、終値位置、拡張偏り、後半拡張比率、初動幅比率から判定します。
すべての基準値をユーザーが変更できます。分類は研究用の記述であり、売買シグナルではありません。
レンジ後の検証
レンジ完成後は、以下の順序を中立的に記録します。
受容離脱
完成レンジの上側または下側への最初の受容離脱です。
終値またはヒゲ、レンジ幅に対する余白、必要な連続サンプル数を設定できます。
受容という言葉は、この設定による操作的な判定だけを意味します。機関投資家の参加や継続を保証するものではありません。
再侵入
最初の受容離脱後に、価格が離脱したレンジ境界を通って戻ったかを記録します。
反対端到達
再侵入後の、より後のサンプルで反対側のレンジ端へ到達したかを記録します。
再侵入と反対端到達を同一サンプルから同時に認定せず、利用可能なデータから証明できない時系列を作らない設計です。
上端と下端のテスト回数、レンジ内外の終値滞在比率、レンジ幅を1Rとした上下最大到達量も記録します。
リアルタイムと過去表示
標準の日中足ローソク足チャートを対象としています。
合成足および日足以上では、セッション時系列が曖昧になるため処理を停止します。
サンプリング足は1分、3分、5分、15分から選択できます。
リアルタイムのレンジ形成中は、新しい確定サンプルに応じて高値、安値、トレース、均衡値、研究パネルが更新されます。形成終了までは発展中の値として扱ってください。
将来データやlookaheadは使用しません。
表示中チャート適応モードでは、スクロールまたはズームした期間と交差する過去セッションを優先して再描画します。
古い履歴で下位足を取得できない場合、条件を満たす確定チャート足を使うフォールバックを選択できます。フォールバックを使用したセッションは、研究パネルで粗い解像度として明示します。
開始前半のデータがないセッションは不完全レンジとして表示し、形成分類、幅履歴への追加、レンジ後検証を停止します。
制限事項
取引所の祝日や短縮取引日を自動判定しません。
結果はセッション、形成時間、サンプリング足、チャートセッション、分類しきい値によって変わります。
利用できる下位足履歴は、銘柄、履歴量、PulseWireプランによって異なります。
チャート足フォールバックは、下位足処理よりも時系列解像度が低くなります。
出来高加重均衡値は、銘柄から提供される出来高データの品質に依存します。
幅パーセンタイルは利用可能な過去標本内の順位であり、将来の確率ではありません。
形成分類とレンジ後イベントは観測された値動きを記述するものであり、継続、反転、支持、抵抗、利益を保証しません。
このインジケーターは注文、ポジションサイズ、利益目標、損切り、ストラテジーバックテストを提供せず、金融助言を行うものではありません。 Indicator

Wyckoff Architectural Range - erdensedatThe "Wyckoff Architectural Probability Range" is an advanced, non-overlapping consolidation detector and liquidity sweep identification system. Designed to keep charts clean, it dynamically adapts to market volatility and focuses solely on the current active trading range.
Key Features:
- Dynamic ATR-Based Range Width: The indicator automatically adjusts its maximum allowed range width based on the asset's current volatility, ensuring it works seamlessly across both major assets (BTC, ETH) and highly volatile altcoins.
- Non-Overlapping Architecture: Historical ranges are completely removed upon a confirmed breakout, leaving only the active, actionable consolidation zone on your chart.
- Premium & Discount Zones: The range is mathematically divided into Premium (Top 25%), Equilibrium (Middle 50%), and Discount (Bottom 25%) zones. Internal EQ levels (0.4 and 0.6) are also projected.
- Advanced Retest Signals:
> Buy Signal: Prints when price crosses below the Discount EQ and subsequently retests and closes above it.
> Sell Signal: Prints when price crosses above the Premium EQ and subsequently retests and closes below it.
- Smart Liquidity Detection (Spring & UTAD): Automatically identifies and labels wick-based liquidity sweeps outside the range.
- Mean Reversion Probability: A dynamic stats panel calculates the mean reversion probability based on the current deviation from the main Equilibrium level.
- Built-in Alert System: Provides any() alert conditions for Buy/Sell signals, Spring/UTAD sweeps, and Range Breakouts.
- Optional VWAP: Toggle a standard VWAP line on or off directly from the settings for additional confluence.
How to Use:
Use the statistical panel and structural boxes to identify institutional accumulation (Discount Zone) and distribution (Premium Zone). Wait for confirmed retest signals (Triangles) or liquidity sweeps (Spring/UTAD) for high-probability mean-reversion entries.
Disclaimer:
The information and scripts provided in this indicator are for educational and informational purposes only and do not constitute financial advice. Trading cryptocurrencies, forex, and other financial markets involves a high degree of risk and may not be suitable for all investors. Past performance is not indicative of future results. Always conduct your own research and consult with a certified financial advisor before making any trading decisions.
Indicator

Indicator

IQ Session Bayesian Particle Filter [TradingIQ]🔹 OVERVIEW
This indicator runs a genuine Sequential Monte Carlo particle filter; the Bayesian architecture used in robotics and signal tracking... on your chart! Session by session, it learns where trading volume concentrates and paints a forecast of the coming session's entire volume-by-price distribution before that session unfolds: every expected high-volume level at once, not a single line.
It is not a moving average wearing a costume. Each finished session is treated as evidence: hundreds of particles are weighed against what actually traded, resampled, and mutated. Predict → observe → update, honestly Bayesian, every session.
🔹 HOW IT WORKS
Two particle swarms run side by side:
• A shape swarm learns the form of the distribution; one lump or several, wide or tight, and where each volume node sits.
• A drift swarm learns how far from the open the session's center of gravity tends to land.
An empirical-Bayes trust term scales the drift forecast by how much it has actually earned: when its track record is poor, the forecast automatically hugs the open. The prediction you see is the shape swarm's density, re-anchored by the trusted fraction of the drift forecast, rendered through a kernel density estimate whose bandwidth follows Silverman's rule.
🔸 HOW TO READ IT
• Session heatmap — the predicted density painted from the session open to the profile. A two-tone gradient split at the open; the tones swap roles across it, so each side mirrors the other. Bold color = expected business, fade = expected quiet.
• Mirrored profile — the forecast on the left, split bullish/bearish at the session open; the realized session volume on the right in a single neutral color.
• Confidence honesty — the prediction's glow scales with the filter's live confidence. When it has been wrong lately, its side visibly goes quiet. The realized side never fades, because reality doesn't.
• Bias info box — seated between the halves: the share of predicted volume above vs below the open (🢁 / 🢃).
• Expected levels — dashed lines at the probability-weighted average predicted price of each half: the session's expected bull and bear magnets.
• HVN lines + POC — the predicted high-volume levels. The point of control always shows; the HVN Threshold input is your dial between a few safe targets and every level worth watching.
🔹 SELF-TUNING
Every statistical free parameter tunes itself from data: the KDE bandwidth (Silverman's rule for visual convenience), the observation noise, the swarms' search domain (tracks the observed session spread), the mutation rate (genetic adaptation), the scout rate (scales with recent error), and the center trust (regression shrinkage). The inputs you are given are visual preferences plus a compute preset. There is nothing statistical to fiddle with, on purpose.
🔸 INPUTS
• Session Engine — Session Timeframe (the session boundary; must exceed the chart timeframe), Prediction Quality (particles per swarm, Fast 100 → Max 4000), Sessions to Keep.
• Volume Profile — toggles for the profile, bias box and expected levels; width, offset, info-box width, transparency.
• Session Heatmap — toggle, faint/bold density transparencies, Tone A / Tone B.
• High Volume Nodes — toggle, HVN Threshold %, reach, color.
• Colors — Bullish, Bearish, Realized.
🔹 VALIDATION
The filter was tested on real intraday data; 10 large-cap symbols, three session horizons, every prediction one-step-ahead and out-of-sample, against uniform, yesterday's-profile, Gaussian-fit, rolling-average and EWMA baselines, with the test harness itself audited too.
• Against naive prediction (uniform prior, yesterday's profile) it wins every metric tested at every horizon.
• Against the strongest profile-averaging methods it trades wins: they edge the single-lump fit metrics; the filter captures materially more of the session's actual traded volume with its predicted levels, and is the only method that reliably names multiple simultaneous targets .
• On sessions with two or more real volume peaks; roughly 4 in 10 sessions, its targets covered 19–42% more realized volume than the best alternative.
🔸 LIMITATIONS AND HONEST NOTES
• The forecast for a session is set when that session opens and is not repainted ; the realized half updates live as the session trades.
• It estimates a distribution of volume , not a promise of direction. The bias %, expected levels and HVN set are probability-weighted readings of that distribution.
• The filter is stochastic by nature: two chart reloads can differ in fine detail, the way two runs of any Monte Carlo method do. The structure it finds is stable; the pixel-level noise is not.
• Requires volume data from your data feed. Not supported on non-standard chart types.
• The chart timeframe must be lower than the session timeframe.
Indicator

Session Kill Zone Volume Map [StrixEDGE]Session Kill Zone Volume Map
A session-aware overlay that maps institutional kill zones — London, New York, and Asia — directly onto your chart with volume-weighted session boxes, Opening Range Breakout levels, and a unified analytics dashboard. Built to give intraday traders immediate visual context on where volume clusters, how sessions develop relative to their historical norms, and when a confirmed breakout is underway.
🔍 What This Indicator Does
The indicator automatically detects the three major forex/futures sessions based on UTC time and draws color-coded session boxes whose fill intensity scales dynamically with real-time volume. High-volume sessions appear visually heavier; low-volume sessions fade into the background. This gives you an instant read on whether today's session is running hotter or cooler than average — without checking a single number.
On top of each session, it tracks the Opening Range (first 15, 30, or 60 minutes) and plots ORB-High and ORB-Low levels as dashed reference lines extending through the session. When price breaks an ORB level with volume confirmation, a directional marker (▲ or ▼) prints on the chart and an alert fires.
▲
▼
A single unified dashboard panel consolidates everything: live session volume, percentage distribution with a visual bar, historical average range, ORB win rate, and session sample count — all in one clean table.
⚡ Key Features
Session Auto-Detection
London (08:00–17:00 UTC)
New York (13:00–22:00 UTC)
Asia (00:00–09:00 UTC)
are detected automatically. All session start and end times are fully customizable down to the minute, so you can adjust for DST shifts or align to your broker's server time.
Volume-Weighted Session Boxes
Each session box fills with the session's assigned color at a transparency that adjusts in real time based on cumulative volume relative to the historical session average. A session running at 2× its normal volume will render noticeably more vivid than one at 0.5×. The base transparency is user-controlled.
Opening Range Breakout (ORB) Levels
The indicator captures the high and low of the first N minutes of each session (configurable: 15 / 30 / 60 min) and draws them as horizontal reference lines. These extend through the rest of the session, serving as the breakout thresholds traders watch for directional continuation.
Volume-Confirmed Breakout Signals
When price closes beyond an ORB level and the breakout bar's volume exceeds the 20-period SMA × a user-defined multiplier (default 1.5×), a directional triangle prints on the chart. No volume confirmation = no signal. This filters out low-conviction breaks.
Unified Session Dashboard
A single professional table displays all session data at a glance:
- Live session volume (absolute + percentage share)
- Volume distribution bar per session
- Historical average session range over your chosen lookback
- ORB win rate (percentage of confirmed breakouts that held direction through session close)
- Session sample count
Table position, text size, and visibility are all input-controlled.
Session High/Low Break Alerts
Separate alert conditions fire when price crosses the previous session's high or low with volume confirmation, giving you an additional layer of inter-session breakout detection.
9 Alert Conditions
Individual bull/bear ORB break alerts per session, a unified "any ORB break" alert, and session high/low break alerts — all configurable in PulseWire's alert manager.
⚙️ Inputs & Settings
| Group | Setting | Description |
|---|---|---|
| Session Times | Start/End Hour & Minute | Full control over each session's UTC boundaries |
| ORB Settings | Period (15/30/60 min) | Opening range duration |
| ORB Settings | Line Style / Width | Visual style of ORB levels |
| Display | Show/Hide Sessions | Toggle individual session boxes |
| Display | Base Box Transparency | Controls how transparent session boxes are at normal volume |
| Display | Dashboard Position | Table corner placement |
| Display | Dashboard Text Size | Tiny / Small / Normal / Large |
| Display | Stats Lookback | Number of past sessions for avg range and ORB win rate |
| Alerts | Volume Confirm Multiplier | How far above SMA(20) breakout volume must be |
| Colors | Session & Breakout Colors | Full color customization per session and direction |
📖 How To Use
Session Context
Load on a 5m–1H chart. The session boxes immediately frame where London, New York, and Asia operated. The fill intensity tells you which session carried the most conviction — use that to weight your analysis toward the active kill zone.
ORB Strategy
After the opening range completes, the ORB-H and ORB-L lines become your breakout thresholds. A volume-confirmed break (▲/▼ marker) signals directional intent. Traders often look for price to retest the broken ORB level as support/resistance before committing to a continuation trade.
▲
▼
Dashboard Read
Check the Vol % column to see which session is dominating flow. The ORB WR column tells you how reliable ORB breakouts have been historically for each session on the current instrument — if London shows 85% and Asia shows 50%, that's actionable edge for session selection.
Alerts
Set up any of the 9 alert conditions to get notified without watching the chart. Combine the unified "Any ORB Break" alert with a mobile notification for hands-free monitoring.
📋 Notes
- Designed for intraday timeframes (15m and below recommended for ORB accuracy). A warning displays if loaded on Daily or higher.
- During the London/NY overlap window (13:00–17:00 UTC by default), volume is attributed to both sessions. The percentage distribution shows relative contribution, not mutually exclusive slices.
- ORB win rate is a binary metric: did price close beyond the broken ORB level at session end? It does not measure how far price traveled.
- The volume gradient uses transparency modulation, not a multi-stop color gradient, due to Pine Script rendering constraints.
- Works on any instrument with volume data (forex via tick volume, futures, crypto, equities). Indicator
