Liquidity Sweep Tracker | Smart Money Stop HuntsThis strategy identifies where retail stop-losses and breakout orders cluster (swing highs/lows), waits for price to sweep through that liquidity, and enters only after a confirmed rejection back inside the range. No repainting on the wick, no chasing breakouts — just structured, confirmation-based reversal trading built around genuine Smart Money Concepts (SMC) mechanics.
Core Features
Sweep Detection Engine
Tracks swing highs/lows as live liquidity pools, scored by touch count
ATR-scaled sweep buffer filters out noise — only meaningful stop-runs qualify
Configurable confirmation window (N bars) for the rejection close back inside range
7-Factor Confidence Score (0–100)
Every signal is graded on sweep depth, touch count, market structure alignment, ATR volatility regime, post-sweep displacement, volume spike magnitude, and HTF zone proximity — giving you a single, transparent quality metric per trade instead of a black-box signal.
Structure-First Exits
Adaptive stop placement anchored to the actual sweep wick + volatility regime (not a flat ATR multiple)
Targets pull from real market structure: nearest Fair Value Gap (TP1) and opposing liquidity pool (TP2)
Automatic exit on opposing Break of Structure — if the thesis is invalidated, you're out
Optional time-based exit for setups that stall
Fully Modular Filters — Everything Toggleable
Volume spike confirmation
HTF liquidity zone alignment
Engulfing / displacement / break-of-sweep-candle confirmation triggers
Minimum reward-to-risk gate before any entry fires
All filters default OFF or loosely set — tune restrictiveness to your own edge
Clean, Purpose-Built Visuals
Thin liquidity lines at unswept swing levels — opacity/thickness scale with touch count, so "thicker" lines mark heavier resting liquidity
Simple BUY/SELL labels only on confirmed signals (confidence % included, no chart clutter)
Confidence-scaled glow on active stop/target lines
Win-rate table auto-bucketed by confidence tier (Low/Med/High) — see if your high-confidence signals actually outperform
Ideal Usage
Best markets: liquid index futures (ES/NQ), high-volume large-cap equities, major crypto pairs (BTC/ETH), and major FX pairs during session opens — anywhere real stop-hunting order flow exists
Best timeframes: 15m–1H for intraday/swing entries paired with a 4H–Daily HTF filter; scale the ratio proportionally for scalping or position trading
Best conditions: ranging-to-trending transitions around obvious structure (prior session highs/lows, equal highs/lows) — avoid dead, illiquid instruments where "sweeps" are just noise
Recommended workflow: start with filters off to see raw signal frequency, then layer in volume/HTF/R:R gates while watching the win-rate table to find your own confidence threshold sweet spot
Notes
Pivot-based swing/structure detection carries an inherent confirmation lag (no repainting, but structure is confirmed slightly after the fact). This is a strategy script — backtest thoroughly across your target instrument and timeframe before any live use, and treat the confidence score as a filter to calibrate, not a guarantee. Strategia

Elliott Impulse Engine [WillyAlgoTrader]📊 Elliott Impulse Engine (EIE) is an overlay indicator that counts a full Elliott cycle — impulse 0-1-2-3-4-5 plus correction A-B-C — completely automatically, using a Change-of-Character (CHoCH) trigger to start each count, a strict state machine to accept every wave point, Fibonacci target boxes to show where the next point is expected, a dashed "ghost" projection of the entire remaining path, and a trailing red invalidation line that tells you the exact price where the current count dies.
The core insight: most Elliott Wave tools either repaint their labels endlessly or force you to draw everything by hand. EIE does neither. It treats every count as a hypothesis : a CHoCH break seeds it, each confirmed pivot advances it one wave at a time, and a single hard price level can kill it. When the hypothesis dies, the chart is wiped clean and the engine waits for the next CHoCH — no stale labels, no silent redrawing of history. You always know three things at a glance: what wave the market is in, where price should go next, and where the idea is wrong.
Works on any symbol and any timeframe. Free and open for everyone.
🧩 WHY THESE COMPONENTS WORK TOGETHER
A ZigZag alone gives you swings but no wave logic. A Fibonacci tool alone gives you levels but no structure. A CHoCH detector alone tells you the trend flipped but not what comes next. And a manual Elliott count gives you structure but demands hours of drawing and constant re-labeling.
EIE chains all of these into one pipeline:
Swing structure engine → CHoCH detection → count seeding (point 0 + point 1) → fib grid on leg 0-1 → target boxes for points 2/3/4 → pivot-based point acceptance with soft-marking → ghost projection of the remaining path → trailing invalidation level → reset with a stated reason
The swing engine finds structural highs and lows. A confirmed close through a swing level against the previous trend is a CHoCH — the only event allowed to start a new count, so counts always begin at genuine structure shifts, not random noise. The moment leg 0-1 is confirmed, the engine builds a Fibonacci grid on that leg and projects the whole expected structure forward as a dashed ghost path. Each subsequent wave point is accepted from a separate, faster pivot stream, checked against its expected fib range, and either labeled clean ("2") or soft-marked ("2~") if it landed outside the range. At every state the engine maintains exactly one critical price — the trailing invalidation level — and if price breaks it, the count is declared dead with an explicit reason (BELOW_0, BELOW_W2, W3_SHORTEST, and so on), the markup is wiped, and the engine returns to scanning.
No single public tool does this loop. The combination turns Elliott counting from a subjective drawing exercise into a rule-driven process you can watch unfold bar by bar.
🔍 WHAT MAKES IT ORIGINAL
1️⃣ CHoCH-seeded counting — every count starts at a real structure break.
The engine tracks swing highs and lows using symmetric pivots (default 10 bars left / 10 bars right). A break is registered only on a confirmed bar close through the swing level. If that break goes against the current internal trend, it is a CHoCH — and only then does the engine arm a new count: point 0 is set to the extreme of the run that preceded the break, and the engine waits for a with-trend pivot beyond the CHoCH level to lock point 1.
Anti-noise guards built into the seeding:
— a warm-up gate (no CHoCH before max(3 × swing length, 50) bars of history),
— an optional cooldown (N bars after any count ends before a new CHoCH may seed),
— a level lock: after an invalidation, the same CHoCH level cannot immediately re-seed a new count (compared with half-a-tick tolerance, so floating-point equality can never leak a duplicate seed).
Why this matters: counts started from random pivots produce random labels. Counts started from structure breaks start where trend logic actually changed.
2️⃣ Non-blocking Fibonacci ranges with soft-marking — geometry informs, price decides.
Each wave point has an expected fib range measured on the 0→1 grid (retracement for 2, negative extension beyond point 1 for 3, 5 and B; point 4 uses its own 2→3 grid; C uses 0→1 again):
— Point 2: 0.5 – 0.705 (retracement of 0→1)
— Point 3: −0.5 – −0.618 (extension beyond point 1)
— Point 4: 0.5 – 0.705 (retracement of leg 2→3)
— Point 5: −0.618 – −1.0
— Point B: −0.5 – −0.618
— Point C: 0.0 – 0.236
The fib level of any price p on the 0→1 grid is computed as L = (p1 − p) / (p1 − p0); on the 2→3 grid as F = (p3 − p) / (p3 − p2). A pivot inside its range is labeled clean ("3"); a pivot outside it is still accepted but soft-marked ("3~") — because in real markets a valid wave frequently overshoots textbook levels. Only the hard invalidation rules can reject a point. Every range is a user input (min/max per point), so you can tighten or widen the geometry to your market.
Why this matters: strict-range engines discard perfectly good structure; free-form engines accept garbage. Soft-marking keeps the count honest while telling you visually which points are textbook and which are stretched.
3️⃣ Ghost projection — the whole remaining path drawn before it happens.
As soon as leg 0-1 is confirmed, EIE draws a dashed projection of every remaining point: 2? 3? 4? 5? A? B? C?. Each ghost point is placed inside its fib range at a position you choose (Middle of the range, Near edge, or Far edge), and spaced horizontally at step = round((b1 − b0) × coefficient) bars — i.e., the time geometry of the projection scales with the actual duration of leg 0-1. Ghost point 5? sits at extension −1.0 plus a configurable offset.
The projection is re-anchored from every newly accepted real point : once point 2 locks, the ghost path redraws starting from the real 2; once point 3 locks, from the real 3, and so on. Point 4's ghost is computed on the 2→3 grid using the best available references (real points when confirmed, ghost estimates before that).
Why this matters: you see the expected shape of the entire move — including the A-B-C correction after the impulse — while the impulse is still in wave 2.
4️⃣ Trailing invalidation level — one red line that answers "where am I wrong?".
At every state the engine maintains exactly one critical level, drawn as a dashed red line with an "INVALID + price" label:
— waiting for 1 / wave 2 in progress: point 0
— wave 3 before point 1 is broken: point 0; after the break: point 2
— wave 4: point 2
— wave 5 before point 3 is broken: point 2; after the break: point 4
— correction A/B/C: point 2
A break of this level resets the hypothesis with a named reason. The check runs every bar, before pivot processing , so a violent bar cannot both break the invalidation level and sneak a new wave point into the count on the same bar. Wick-driven pivots that slip past a close-based check are caught by a second, pivot-level guard (a pivot beyond point 2 / point 4 in the protected phases also triggers the reset). Classic Elliott rules are enforced on top: wave 2 may never retrace below point 0, wave 4 may never enter below point 2, and if wave 3 turns out shortest among 1, 3 and 5 at the moment point 5 is proposed, the count is rejected with reason W3_SHORTEST.
Why this matters: an Elliott count without a falsification level is a story, not a hypothesis. EIE makes the falsification price explicit on every bar.
5️⃣ Two-speed pivot system — stable structure, fast confirmation.
Structure and CHoCH run on the main swing length (default 10/10). Wave points 1-5 and A-C are accepted from a separate, shorter pivot stream (default 5/5, always ≤ swing length — validated at load). This decouples two jobs that a single pivot length cannot do well simultaneously: the long pivots keep the structural skeleton stable, the short pivots confirm wave points with roughly half the lag.
A dedicated backfill scan (up to ~480 bars) closes the pivot-lag gap for point 2: when point 1 locks or repositions, the engine re-scans all bars since point 1 for the true retracement extreme, so the best low/high inside the confirmation window is never missed. If price breaks point 1 before any counter-trend pivot confirmed point 2, the tracked extreme itself is accepted as point 2 and wave 3 is activated immediately.
Why this matters: one pivot length forces a trade-off between stability and speed. Two lengths plus a backfill scan give you both.
6️⃣ Repositioning logic — labels refine forward, never silently rewrite history.
Until the next wave locks, the engine allows controlled repositioning: a higher high repositions point 1 (rebuilding the grid and the point-2 box on the new geometry), a deeper pullback repositions point 2 (only until point 1 is broken — after the break, a deeper pivot is an invalidation, not a reposition), point 3 extends while wave 4 forms, point 4 deepens until point 3 is broken, point 5 extends during the correction, A deepens until B appears, B rises until C appears. Every reposition deletes and redraws only the affected segment and label, and the associated target box and its center line are rebuilt on the fresh grid — no stale geometry is left behind.
Why this matters: this is the honest middle ground between "repaints everything" and "freezes wrong labels forever". The rules for what may move, and until when, are fixed and stated.
7️⃣ OTE target boxes for points 2, 3 and 4 — the next objective is always a zone, not a guess.
When point 1 locks, a yellow box covering the point-2 fib range appears with a dashed center line at the range midpoint. When point 2 locks, the point-3 target box (on the extension side) appears. When point 3 locks, the point-4 box appears on the 2→3 grid. Each box extends forward a configurable number of bars (default 20) and its right edge snaps to the bar where the point actually forms. Box fill transparency adapts to the theme (65 dark / 55 light); the border and center line stay fully opaque.
Why this matters: "wave 4 should come" is vague. "Wave 4 is expected inside this drawn box, centered here" is actionable.
8️⃣ Explicit reset reasons + persistent CHoCH history — the chart tells you why.
Every count ends with a machine reason: FALSE_CHOCH (price broke back through point 0 before point 1 formed), BELOW_0, BELOW_W2, BELOW_W4, W3_SHORTEST, DEEP_C (correction retraced beyond point 2), TIMEOUT (optional: state lasted longer than k × leg 0-1 duration), B_ABOVE_5 (the "correction" broke above point 5 — the impulse is closed as done), or DONE (point C accepted, full cycle complete). On invalidation a ✖ marker with the reason in its tooltip is placed on the bar, and the dashboard keeps showing the last reason.
The active markup is wiped on reset — but CHoCH lines and labels live on a separate persistent layer (FIFO history, up to 100, default 50). When price later closes back through a CHoCH level, that line is clipped to the mitigation bar and turns dotted. So your chart accumulates a clean structural map of every trend change while dead counts disappear.
A special same-bar case is handled explicitly: if a reset and a fresh opposite CHoCH land on the same bar (with cooldown off), the engine wipes first, then seeds the new count on that same bar — the new hypothesis is never lost to ordering.
Why this matters: most auto-counters just vanish or redraw without explanation. EIE always states its reason, and the CHoCH map survives as context.
9️⃣ Anti-repaint discipline — confirmed pivots, close-confirmed breaks, honest Wick mode.
Three independent mechanisms:
— All pivot values are consumed only on confirmed bars: a forming real-time bar can make a pivot flicker, so transient pivot values are masked out and can never trigger an irreversible state transition. Historical bars are unaffected (they are all confirmed).
— In the default Close confirmation mode, invalidation breaks and wave-top breaks are evaluated only on the confirmed bar close — an intrabar excursion of the close cannot fire a reset that "un-happens" seconds later.
— The optional Wick mode reacts to any intrabar touch — faster, and by design irreversible within the bar. This is stated openly so you can choose speed vs. strictness.
Zone-entry events (price entering the point-2 OTE zone, the point-4 box, or tagging the −1.0 target) intentionally use wick extremes — a touch is a touch — and are one-way flags.
🔟 Theme-adaptive visual system with auto-contrast labels.
Theme is Auto-detected from the chart background (or forced Dark/Light). By default, long counts use a theme-adaptive green (dark green on light charts, bright green on dark charts) and short counts use red. If you enable custom colors, label text color is derived from the luminance of your chosen background — luma = 0.299R + 0.587G + 0.114B, threshold 140 — so digits stay readable on any shade you pick. The fib grid uses role-based color inputs (red 0.236, teal 0.705 OTE, blue retracement levels, gray round levels), all editable. Label font size is selectable from Tiny to Huge.
⚡ HOW IT WORKS — CALCULATION FLOW
Step 1 — Structure scan: Symmetric pivots (default 10/10) maintain the latest swing high and swing low; the engine also tracks the running extreme since the last swing (the future point 0).
Step 2 — CHoCH: A confirmed close through a swing level against the internal trend flips the trend and — if the engine is idle, cooled down, and the level is not locked — seeds a count: direction, CHoCH level, point 0.
Step 3 — Point 1: The first fast pivot beyond the CHoCH level becomes point 1. The 0→1 fib grid, the point-2 target box, and the full ghost projection are drawn.
Step 4 — Impulse counting: Fast counter-trend pivots propose points 2 and 4; fast with-trend pivots propose 3 and 5. Each is checked against its fib range (clean or "~"), each unlocks the next state, target boxes appear for the next objective, and the ghost path re-anchors from every real point.
Step 5 — Hard rules per bar: Before any pivot is processed, the trailing invalidation level is checked (Close or Wick mode). Wave 2 below point 0, wave 4 below point 2, a broken point 4 in late wave 5, or a shortest wave 3 all kill the count with a named reason.
Step 6 — Impulse complete: Point 5 accepted → the impulse counter increments and the engine rolls into correction tracking.
Step 7 — Correction A-B-C: A forms on a counter-trend pivot, B on a with-trend pivot (a B at or beyond point 5 closes the whole structure as B_ABOVE_5 instead), C completes the cycle → DONE.
Step 8 — Reset: On any ending — invalidation or completion — the active markup is wiped, the cooldown starts, and the engine returns to scanning. CHoCH history stays.
📖 HOW TO USE
🎯 Quick start (works even if you have never counted a wave):
1. Add the indicator to a clean chart. Nothing to configure — defaults are ready to use.
2. Wait for a CHoCH label. That is the engine saying: "the trend character just changed, I am watching for a new impulse here."
3. When labels 0 and 1 appear, the count is live. The dashed gray path with 2? 3? 4? 5? A? B? C? is the expected roadmap of the entire move.
4. Watch the yellow box — that is where the next wave point is expected. The dashed line inside it is the center of the zone.
5. Keep one eye on the red dashed INVALID line at all times. If price breaks it, the count is over — a ✖ appears, the markup clears, and the engine starts hunting for the next CHoCH. Hover the ✖ to read the exact reason.
👁️ Reading the chart:
— 🟢 Green numbered labels (0, 1, 2, 3, 4, 5) = accepted impulse points of a long count; red labels = a short count. Letters A, B, C = the correction.
— A label with ~ (like "2~") = the point is accepted, but it landed outside its textbook fib range — the count continues, treat it with slightly more caution.
— Solid colored path = confirmed structure. Dashed gray path with "?" labels = the ghost projection of what is still expected.
— 🟡 Yellow boxes = target zones for points 2, 3 and 4, each with a dashed center line.
— Dotted horizontal grid = the Fibonacci grid of leg 0-1 (retracements 0.236…1.0 above, extensions −0.5 / −0.618 / −1.0 below), each level labeled with its ratio and price.
— 🔴 Red dashed line + "INVALID price" = the trailing invalidation level of the current count.
— Dashed horizontal CHoCH lines = historical structure breaks; a line that turns dotted has been mitigated (price closed back through it).
— ✖ = the count was invalidated on this bar (reason in the tooltip).
📊 Dashboard fields:
— State: current phase (Scanning / CHoCH · wait 1 / Wave 2…5 / Corr · A-B-C).
— Direction: Long, Short, or — when idle.
— Invalidation: the current critical price.
— Last Reset: why the previous count ended (reason, DONE, or B_ABOVE_5). Resets on chart reload.
— Impulses: completed 5-wave impulses on the loaded history. Resets on chart reload.
— TF: chart timeframe. Version: engine version.
🔧 Tuning guide:
— Counts appear too rarely: lower Swing Detection Length (structure forms faster, more CHoCH seeds) — or the market is simply ranging without character changes.
— Too many counts die instantly (FALSE_CHOCH / BELOW_0): raise Swing Detection Length, or add a Cooldown of 5-20 bars so the engine skips the chop right after a failed count.
— Points confirm too slowly: lower Point Confirmation (min 1); remember it must stay ≤ Swing Detection Length.
— Too many "~" soft marks: widen the fib ranges for those points — your market may simply run hotter than the defaults.
— Old counts hang around in dead phases: set Timeout k > 0 (e.g. 3.0) — any state lasting longer than k × the duration of leg 0-1 resets automatically.
— Chart feels crowded: toggle off the Fib Grid, OTE Boxes, or the Projection independently; reduce Historical CHoCH; shrink label font size.
⚙️ KEY SETTINGS
⚙️ Main Settings:
— Swing Detection Length (default 10): pivot length for structure and CHoCH. Higher = larger structure, fewer seeds.
— Point Confirmation, bars (default 5): the separate short pivot used to accept wave points. Must be ≤ swing length (validated).
— Breaks: Invalidation Mode (default Close): Close = confirmed bar close beyond the level (non-repainting); Wick = any intrabar touch (instant, irreversible within the bar).
📐 Point Ranges (fib): min/max expectation range per point — Point 2 (0.5–0.705), Point 3 (−0.5…−0.618), Point 4 (0.5–0.705 on the 2→3 grid), Point 5 (−0.618…−1.0), Point B (−0.5…−0.618), Point C (0–0.236). All validated at load (2 and 4 must be inside (0,1); 3, 5, B must be negative; C inside [0,1); no zero-width ranges).
👻 Ghost Projection:
— Show Projection (on), Point Inside Range (Middle / Near / Far), Time Step Coef (default 1.0 × leg 0-1 duration), 5?: Offset From −1.0 (default 0.05).
♻️ Reset:
— Cooldown After Reset, bars (default 0 = off) and Timeout, k × leg 0-1 (default 0 = off; in the wait-for-1 phase the timeout scales on swing length instead, since no leg exists yet).
🎨 Visual Settings: Theme (Auto / Dark / Light), Fib Grid toggle, OTE Boxes toggle, CHoCH layer toggle, Path Width (2), Box Length Forward (20), Historical CHoCH max (50), Label Font Size (Tiny…Huge), Watermark toggle.
📏 Grid Levels: individual on/off for 0.236, 0.382, 0.5, 0.618, 0.705, 0.786, 0.886, 1.0, −0.5, −0.618, −1.0.
🎨 Colors: Use Custom Colors switch (off = theme-adaptive defaults), long/short point label backgrounds (text auto-contrasts), target box color, path and ghost colors, bull/bear CHoCH colors, and role-based fib grid colors.
📊 Dashboard: on/off, position (5 anchors), font size (the version row renders one step smaller).
🔔 ALERTS
Ten alert conditions covering the full lifecycle:
— 🟢 1. CHoCH + projection — CHoCH confirmed, movement projection built
— 🟡 2. Price in W2 OTE — price entered the point-2 zone
— 🟢 3. Point 2 accepted
— 🟢 4. Break of point 1 — wave 3 active
— 🟡 5. Price in W4 box
— 🟢 6. Break of point 3 — wave 5 active
— 🎯 7. Target −1.0 reached
— 🟢 8. Impulse complete — point 5 locked
— 🎯 9. Target C — correction complete, full cycle done
— 🔴 10. Invalidation — hypothesis reset
In addition, the engine fires dynamic alert() messages on every reset and on B_ABOVE_5 completion, including the reason text. In Close mode these announce on confirmed bar close; in Wick mode once per bar.
⚠️ IMPORTANT NOTES
— 🚫 No repainting of confirmed structure. Pivots use equal left/right lookback and their values are consumed only on confirmed bars; CHoCH breaks require a confirmed close; in the default Close mode, invalidation and wave-top breaks are evaluated on confirmed closes only. A pivot is, by nature, confirmed N bars after the actual extreme — the indicator draws from the confirmed bar backward to the true swing point. This is delayed confirmation, not repainting of settled values.
— 📐 Controlled repositioning is part of the design. Until the next wave locks, the latest point may legitimately move to a more extreme pivot (e.g., point 1 to a higher high). The rules for what may move, and until when, are fixed and described above. Wick mode reacts intrabar by design and is irreversible within the bar.
— 📊 The Impulses counter and Last Reset field are computed on loaded chart history and reset when the chart reloads.
— ⚖️ EIE counts one impulse degree at a time from the latest CHoCH. It does not label nested sub-waves, diagonals, or complex W-X-Y corrections — it is a focused impulse + zigzag engine, and the fib ranges reflect one practical interpretation of Elliott guidelines, which you can re-tune.
— 🛠️ This is a wave-counting and projection tool, not an automated trading system. It identifies structure, projects expected zones, and shows the invalidation price — trade decisions remain yours.
— 🌐 Works on all markets (crypto, forex, stocks, indices, commodities) and all timeframes. Wskaźnik

Entry Point X500Entry Point X500 is an overlay envelope built on Nadaraya–Watson kernel regression with a Gaussian kernel. It smooths price into a local estimate of the underlying trend, draws volatility bands around that estimate using mean absolute deviation (MAD), and marks mean-reversion events when price interacts with those bands.
What makes it useful
Standard moving averages weight bars with fixed linear or exponential schemes. This script estimates price with a Gaussian kernel: bars closer to the estimation point receive higher weight, which helps reduce noise while still reacting to genuine structure changes.
Two calculation modes are included:
Fixed mode (default, non-repainting) — endpoint-anchored regression using past bars only. Historical bands and signals stay fixed after a bar closes. Use this mode for chart review, backtesting logic, and alerts.
Live mode (repainting) — full-window Nadaraya–Watson smoothing recalculated on every update of the last bar. The envelope can use a symmetrical neighborhood of bars around each point inside the lookback window. This can look smoother and more “responsive” on the current chart, but historical lines and signals may appear, move, or disappear as new data arrives.
How it works
Smoothing — a Gaussian kernel weight is applied across the lookback window to produce a regression estimate of price.
Bands — an envelope is built around the estimate using the mean absolute deviation of price from that estimate, scaled by the Deviation Multiplier. MAD reacts less aggressively to extreme outliers than a standard-deviation band.
Signals
Fixed mode: ▲ when close crosses under the lower band; ▼ when close crosses over the upper band. These mark breakouts into potential oversold/overbought extremes for mean-reversion context.
Live mode: ▲ when price returns inside the envelope from below the lower band; ▼ when price returns inside from above the upper band. These mark the start of a local move back toward the regression estimate.
A status label shows whether Live or Fixed mode is active.
Inputs
Kernel bandwidth — controls smoothness. Lower values follow price more closely; higher values create a slower, smoother filter.
Deviation multiplier — controls envelope width.
Price source — series used for the regression (default: close).
Live mode (repaints) — switches between Live and Fixed calculation. Default is OFF.
Live alert: last N bars — in Live mode, alerts fire only for newly appeared signals within the last N bars, to reduce noise while history is recalculated.
How to use
Use the envelope as a contextual overbought/oversold framework for mean-reversion analysis:
Price outside the bands = stretched relative to the local kernel estimate.
Signals highlight interactions with the bands; they are not standalone trade instructions.
Prefer Fixed mode when validating behavior historically or attaching alerts.
Treat Live mode as a real-time visual aid only, and always assume past signals can change.
Confirm with market structure, levels, volume, or other independent context. Do not trade the triangles alone.
Limitations (important)
Live mode repaints. Historical envelopes and triangles are redrawn on each last-bar update and must not be judged as stable historical signals.
Fixed and Live modes use different estimation methods and different signal rules; results will not match 1:1.
Like any smoothing tool, the script can lag or produce frequent signals in choppy markets, and fewer/later signals when bandwidth or deviation is high.
Non-standard chart types (Heikin Ashi, Renko, etc.) can distort signal interpretation; use standard candlesticks/bars for signal analysis.
Disclaimer
This script is for educational and analytical purposes only and does not constitute financial advice. Past visual behavior does not guarantee future results. Test settings carefully on historical data in Fixed mode before considering any real-money use. Wskaźnik

Supertrend Twincore [MachineSuiteAI]Supertrend Twincore
🟦 OVERVIEW
A fast Supertrend flips too often; a slow one flips too late. This script runs both at once and only signals when they agree — and then shows you, with win rates and sample sizes, how that agreement has actually performed on the chart you have loaded.
A signal only appears where the fast core (timing) and the slow core (structure) first align, and only if it passes a gate: clustered whipsaw flips always suppress, and every other filter blocks signals only where measurement shows it helps on this chart. Passed signals are graded A/B/C and draw an Entry / SL / TP1-3 ladder whose outcomes are tracked per grade. Suppressed candidates stay as grey ghost chips with the reason, and a five-row multi-timeframe strip shows the consensus state across timeframes from completed bars.
The idea throughout: the chart never claims more than the data supports, and anything the script believes is checkable in the panel.
🟦 WHAT IS A SUPERTREND?
Supertrend is a public-domain trailing-stop indicator: it offsets price by a multiple of the Average True Range and trails that stop behind the trend. Price above the stop means uptrend, below means downtrend; a close across it flips the state. This script computes its cores with the built-in ta.supertrend() — fast 2.0 × ATR(10) and slow 4.0 × ATR(20) by default.
Its known weakness is structural: in ranging markets the stop is repeatedly crossed and the indicator whipsaws. Filters are the usual answer; this script measures whether each one actually helps on the loaded symbol and timeframe, and the marks and the gate act only on that evidence.
🟦 WHY THIS SCRIPT IS ORIGINAL
The base calculation is a built-in, and the ingredients — win-rate panels, ADX gates, higher-timeframe confirmation, multi-timeframe dashboards, take-profit ladders, signal grades — are established ideas. What's different is the standard everything must meet: beyond one fixed whipsaw rule, nothing gets drawn, nothing blocks a signal, and nothing drives the engine unless the measurements on the loaded chart back it up.
- Graded ladder odds with the cost attached. Grades are fixed and published — A means structural confirmation plus volume, B one of the two, C neither; no opaque score. Every passed signal's ladder is tracked to resolution; the panel shows per grade: TP1-before-SL and SL-first rates, the median furthest level, the median heat (largest adverse move, in ATR units) and the median bars to TP1, each with its own sample size.
- An adaptive engine that has to beat the fixed one first. Both fast cores — fixed and adaptive — are measured as separate signal streams on the loaded chart, and the adaptive core only drives signals while it beats the fixed core by a set margin with enough samples. The A/B row shows the running comparison; on defaults it reports the adaptive layer as inert.
- Gates held to the same standard. The ✓ volume mark and ⚠ counter-trend warning only print where their split beats the base win rate by a configurable margin here. The ADX gate only blocks candidates where high-ADX candidates have beaten low-ADX candidates by that margin on this chart.
- Per-condition win-rate splits. The base candidate win rate, then the same measurement split by signal class, higher-timeframe agreement, volume confirmation, multi-timeframe alignment and volatility regime — six statistics, each with its own sample size, greyed below a minimum sample.
- Two kinds of signals, measured separately. A candidate exists only on the first bar the cores align and is classified as a structural confirmation (the slow core just flipped in) or a pullback rejoin (the fast core returned to a standing slow trend); a double flip on one bar is labeled same-bar. They are different trades, measured separately.
- Suppression you can audit. A gated-out candidate still prints — a hollow grey ghost chip with the specific reason — and still counts in every statistic, so the base rate is never inflated by counting only the survivors.
- Visual discipline. The band claims a direction only while both cores agree; its saturation drains as price nears the structural stop, so the exit warning arrives before the flip; NEUTRAL keeps a directional tint, so the last trend stays readable while standing aside. The price scale is held to the same rule — it carries the structural stop and the ladder's Entry, SL and TP1-3, each in its own colour, and nothing else; the band and the fast core draw on the chart but claim no axis label. Every visual property maps to something measured.
🟦 HOW IT WORKS
- Cores: two standard Supertrends — the fast core times entries, the slow core defines structure and is the ladder's trailing stop. Presets: Scalp 1.5×ATR(7)/3.0×ATR(14), Intraday 2.0×ATR(10)/4.0×ATR(20), Swing 3.0×ATR(14)/5.0×ATR(28), or Custom.
- Gate and state model: flip-cluster suppression (2+ fast flips in 10 bars, on by default), the measured ADX gate (default "Where it helps (measured)"), and an optional strict higher-timeframe gate (off by default). The band turns grey NEUTRAL on low ADX (default ADX(14) < 20) or flip clustering.
- Higher-timeframe filter: a third Supertrend one regime up (auto-mapped ≤15m→4H, ≤1H→1D, ≤4H→3D, ≤1D→1W, else 1M; or manual), read from the last completed HTF bar.
- Statistics: on confirmed bars, every candidate — passed and suppressed — resolves N bars later (default 10); a win means the close moved in its direction. Splits grey below the minimum sample (default 20). Chip marks need their split to beat the base rate by ≥3 points (configurable); the ADX gate needs the high-ADX split to beat the low-ADX split by the same margin; volume confirmation is volume above 1.5× its 20-bar average.
- Ladder: at a passed signal's close, Entry is the close, SL is the slow-core stop (or the fast core, or a fixed k×ATR cap), TP1/2/3 default to 1/2/3 × ATR. It trails, marks TP touches ✓, freezes ✕ on an SL break, dims when resolved or consensus is lost, and feeds the per-grade LADDER ODDS rows. A live ladder tracks the right edge of the chart; once its stop is hit it stops there, so it stays a bounded record of that trade — targets it never reached are not credited later just because price eventually passed them, and the frozen right edge makes clear the trade was already over. The stop's ray spans only the stretch where that level was actually in force, because a trailing stop is a staircase rather than one line: on a long it starts below the entry and can ratchet above it, locking in profit, and the amber slow core shows the whole path. Each level prints its exact price on the price scale, so the figure for an order ticket reads straight off the axis while the chart labels stay short. The colours carry the geometry: entry green, the targets in the trade's own direction and the stop in the opposite hue, so the level that ends a trade never reads like the levels that pay it — and the slow core keeps its amber, so the stop stays distinguishable from the line it trails.
- Adaptive engine: a per-volatility-regime fast core A/B-measured against the fixed one, as described above; default factors are inert.
- MTF strip: five rows of full consensus state (UP / DOWN / SPLIT / NEUTRAL, with bars-in-state), each read from that timeframe's last completed bar. Auto mode starts at the chart's own timeframe and climbs — 4H gives 4H/D/W/M/3M. Lower timeframes are omitted by default: their consensus flips many times during a single trade taken here, so it says little about an outcome measured over days. Manual mode accepts any five, defaulting to the classic 15m/1H/4H/D/W.
🟦 HOW TO USE IT
- Read the panel first: consensus state, cores, regime, HTF agreement, then the measured rows. An ↑ means that condition has earned its margin on this chart; its absence means it hasn't.
- Chips carry their evidence: grade letter, live per-grade TP1 odds at sufficient sample, ✓ where volume has helped, ⚠ where fighting the higher timeframe has hurt. Ghost chips mean the script stood aside — the reason is on the chip.
- NEUTRAL and SPLIT mean stand aside. The coach line says this in plain language, and notes that a retouch of the entry after TP1 does not invalidate a live ladder — only the SL does.
- Reversal-only signal mode reserves the headline presentation for slow-core reversals; Discipline display mode strips the chart to the band alone (note: TP/SL alerts only fire while the ladder is drawn).
- Defaults are tuned on liquid crypto from 15-minute to weekly charts; the multipliers and ADX threshold are worth reviewing on other asset classes.
🟦 SETTINGS
Grouped as in the inputs dialog: consensus core (presets or custom multipliers) · higher-timeframe filter · state model & signal gate (ADX, flip-cluster, optional HTF gate, ghost chips) · trade ladder (SL geometry, TP multiples) · grade engine (certified or dynamic wiring) · adaptive engine · MTF strip · visuals and display modes · volume multiple (default 1.5×) · signal stats engine (horizon, minimum sample, gating margin) · JSON webhook alerts.
🟦 ALERTS
Consensus long / short · confirmed reversal long / short · Grade A long / short · TP1 / TP2 / TP3 touched · SL break · NEUTRAL started / ended · volatility regime changed · adaptive engagement changed. Create the classic alert conditions with "Once Per Bar Close" — they evaluate on live bars, and an intrabar state can revert before it counts. Optional JSON alert() events via a single "Any alert() function call" alert: signal events carry grade, entry and levels; TP/SL events identify the touched level; all carry symbol, timeframe, regime and state. The JSON events are close-gated and fire for every passed candidate, including rejoins the Reversal-only display mode demotes.
🟦 REPAINT & DATA NOTES
- All bookkeeping runs on confirmed bars; chips, ladders and statistics commit at bar close. Inside a forming bar the panel's consensus, cores, agreement, volume and coach line update live and are therefore PROVISIONAL — they can revert before the bar shuts. Price can also sit beyond a ladder's stop for the rest of a bar without resolving it: in the core SL modes the stop breaks when that core flips, which needs a confirmed close. The coach line says so when it happens.
- Higher-timeframe and strip values come from each timeframe's last completed bar — no repaint; intrabar changes up there show after that bar closes. The design assumes the HTF sits above the chart's timeframe — with Manual selection, keep it there.
- Ladder TP touches — and the Fixed mode's hard-stop touches — are detected from confirmed bars' highs/lows, starting the bar after entry; a bar touching several levels credits TPs before the stop. In the core SL modes the stop is not touch-based: it resolves only when its core flips, which needs a confirmed close — so a wick through the stop does not end a ladder, and the touch-credited TP rates are structurally friendlier than a hard-stop backtest of the same levels. The Fixed k×ATR mode is the geometry closest to a real hard stop.
- Statistics cover the loaded history and reset when the chart reloads with different history; lower timeframes load fewer bars. Greyed rows just mean the sample is too small to trust.
- Only the most recent 250 chips and ghost chips stay on the chart, so a live ladder's own labels can never be pushed off by TradingView's drawing limit; deep history keeps its band and cores but not its markers. Ladder odds count each ladder when it resolves, and in the rare case that more than 30 are open at once the oldest is counted at its current state rather than discarded — the sample is never silently trimmed.
- On a live bar the volume ratio is partial; judge it near the close. Volume features require a feed that supplies volume.
🟦 CREDITS
The Supertrend concept is public domain (popularized by Olivier Seban); ATR, ADX and the DMI are J. Welles Wilder's. The fixed cores use TradingView's built-in ta.supertrend(); the adaptive core re-implements the same algorithm to accept a per-bar factor. The consensus model, candidate classes, statistics engine, gates, grades, measured ladder, ghost chips, strip and band rendering were written from scratch for this script.
🟦 LIMITATIONS
- Supertrend lags by construction, and requiring two cores to agree makes entries later still — fewer, later, more heavily filtered signals is the intended trade-off.
- The NEUTRAL state derives from lagging measures (ADX, flip counts), so the first signals of a new trend can still arrive grey or be suppressed.
- All statistics are direction-only measurements over a fixed horizon; ladder odds are level measurements (TPs credit on a wick touch, core-mode stops resolve only on a confirmed core flip) — no fees, slippage, sizing or equity math. They are not a strategy backtest, they differ per symbol and timeframe, and they do not predict future outcomes.
- Without volume data the volume filter and its split stay inactive, and certified Grade A (confirmation + volume) is out of reach — signals cap at Grade B on volume-less feeds. Sample sizes on higher timeframes are structurally small; expect greyed rows there.
- The same asset on two different venues can show opposite states. A Supertrend flip is a threshold event: when price sits within a fraction of a percent of the band, a normal inter-exchange spread of a few basis points decides whether it crosses, and once one venue flips its stop jumps to the other side of price, so two nearly identical charts diverge sharply. This is inherent to the calculation, not a data error — treat a signal as belonging to the feed it was measured on, and check the panel's sample sizes on the venue you actually trade.
🟦 DISCLAIMER
This is an educational analysis tool, not investment advice. Historical measurements, however carefully computed, do not predict future results. Trading involves substantial risk.
Wskaźnik

Liquidity Stress Exhaustion [MarkitTick]💡 A market-microstructure stress detector that flags moments of seller or buyer exhaustion by combining an Amihud-style illiquidity z-score with trend regime, a regression-based fair-value channel, and automated ATR trade levels. Rather than reacting to price alone, this script measures how much price is moving relative to the volume behind it, then cross-references that stress reading against trend direction and candle behavior to identify points where aggressive selling or buying is likely running out of steam.
✨ Originality and Utility
Most exhaustion-based tools on TradingView rely on oscillator extremes (RSI, Stochastic) or candlestick pattern recognition in isolation. This script takes a different route: it borrows a concept from academic market-microstructure literature — price impact per unit of volume, i.e., illiquidity — and turns it into a real-time, standardized stress signal. Instead of asking "is price overextended?", it asks "is price moving too much for the volume that's actually trading?" A large true-range on abnormally low volume is treated as a sign of thin, stressed liquidity, and it is this stress, combined with a counter-trend candle, that defines exhaustion here — not price level alone.
This is not a simple mashup of unrelated indicators bolted together for the sake of a new publication. The illiquidity stress engine, the trend filter, the regression channel, and the correlation/ADX filters are all working toward a single, coherent question: is the current directional move statistically and structurally likely to reverse or stall? The z-scored stress reading identifies unusual conditions, the EMA trend filter and candle-close direction confirm which side is under pressure, and the optional Pearson-R and ADX filters exist specifically to suppress signals when the broader price action lacks the statistical structure (trending correlation, directional strength) needed to make the exhaustion reading meaningful. Each component narrows the false-positive rate of the others; removing any one of them would meaningfully change what the tool measures.
The script goes further than a plain signal generator by translating each exhaustion event into a fully computed trade plan — an ATR-derived stop, a dynamically computed R (risk unit), and three R-multiple take-profit targets — visualized directly on the chart and exposed through a structured alert payload designed for automation.
🔬 Methodology and Concepts
• Illiquidity Stress Engine
The core of the script computes a proxy for market illiquidity on every bar: true range divided by volume (with a safe fallback when volume is zero or unavailable), then compressed with a natural-log transform to tame outliers. This raw illiquidity series is then standardized into a z-score using a rolling mean and standard deviation over the "Stats Lookback" period. A z-score above your chosen "Stress Threshold (σ)" marks the bar as being in a state of high stress — meaning price moved an unusually large amount for the volume that supported it, a hallmark of thin liquidity and potential exhaustion of the prevailing move.
• Trend Regime Filter
Direction is established by comparing price (optionally pre-smoothed by an adaptive filter, see below) against an EMA of configurable length. Price below the EMA defines a downtrend; price above defines an uptrend. Exhaustion signals are only valid when they occur against the backdrop of an established trend in the opposite direction — a seller exhaustion signal requires the prior bar to have closed in a downtrend on a red candle, while buyer exhaustion requires an uptrend and a green candle.
• Adaptive Price Filters (Optional)
Two optional smoothing methods can replace raw closing price throughout the trend calculation:
Kalman Filter: a lightweight recursive estimator that continuously balances trust between the incoming price and its own prior estimate, adapting its responsiveness based on a fixed process/measurement noise ratio derived from your chosen length.
LLAMA (Linear-Lag Adjusted Moving Average): a hybrid that takes a simple moving average and adjusts it by half the recent linear slope, aiming to reduce the lag inherent in plain moving averages.
These exist to give the trend filter a smoother, less noise-reactive input than raw closing price when desired.
• Regression Fair-Value Channel
On the most recent bar, the script performs a least-squares linear regression over a lookback window (either a fixed length, or a dynamic length measured from the most recent qualifying pivot, capped by "Max Lookback Cap") using hlc3 as the source. From this it derives the regression line itself, its standard deviation, and the Pearson correlation coefficient (R), which measures how well price actually fits a straight line over that window. Inner and outer channel bands are plotted at user-defined standard-deviation multiples above and below the regression line, giving a visual statistical envelope for the recent price trend.
• Correlation and ADX Filters
Two independent filters can suppress exhaustion signals when the broader trend lacks structural conviction:
Pearson R Filter: when the absolute value of the regression's correlation coefficient falls below your threshold, the trend is considered statistically weak/directionless, and the channel is recolored neutral to flag this — though note this filter affects only the visual channel coloring, not signal firing.
ADX Filter: when enabled, exhaustion signals are only permitted when ADX is at or above your threshold, filtering out exhaustion calls during periods of weak directional movement.
• Pivot Detection
Standard confirmed pivot highs and lows (requiring the specified number of bars on each side) are tracked internally to support the optional Dynamic Pivot Mode, which — when enabled — sizes the regression lookback to the distance since the most recent confirmed pivot rather than using a fixed length.
• ATR Trade Level Construction
When a qualifying exhaustion signal fires and is confirmed, the script computes a full trade plan: the entry is the closing price of the confirmed exhaustion bar, the stop-loss is placed one ATR-multiple away (your "ATR SL Multiplier" times ATR over "ATR Length"), and the resulting stop distance defines one Risk unit ("R"). Three take-profit levels are then placed at your chosen R-multiples (default 1R, 2R, 3R) from entry. This entire trade plan updates and redraws only when a new, unlocked exhaustion signal fires.
• Lock Signal
Enabling "Lock Signal" freezes the currently displayed trade plan on the chart, preventing new exhaustion events from overwriting the active levels — useful for manually tracking a single trade through to its conclusion without the visual being replaced mid-trade.
🎨 Visual Guide
● Exhaustion Labels
"SE" label below a bar (bullish color by default) marks a confirmed Seller Exhaustion event — sellers pushed price down under stress conditions, and the setup favors a potential upside reaction.
"BE" label above a bar (bearish color by default) marks a confirmed Buyer Exhaustion event — buyers pushed price up under stress conditions, and the setup favors a potential downside reaction.
● Regression Channel
The dashed center line is the linear regression fair-value line over the active lookback window.
The two dotted inner lines mark the "Inner Deviation" band (default 1.0σ).
The two solid outer lines mark the "Outer Deviation" band (default 2.0σ).
The shaded fill between the inner bands is colored by trend direction — bullish or bearish color when the trend is statistically valid, neutral gray when the Pearson R Filter flags the trend as too weak/uncorrelated to trust.
An optional floating "STATS" label above the current bar displays the regression length, Pearson R value, and current stress z-score (σ) numerically, when "Show Metrics Label" is enabled.
● Trade Level Lines
Plotted only after a qualifying exhaustion event, extending toward the current bar:
Red solid line and "✕ SL" label: the calculated stop-loss.
Blue dashed line and "▶ Entry" label: the entry price (signal bar's close).
Three teal dashed lines of increasing opacity/solidity, with "◆ TP1", "✦ TP2", "◆ TP3" labels: the three R-multiple take-profit targets.
A red-tinted fill between the stop and entry lines visualizes the risk zone.
A teal-tinted fill between the entry and TP3 lines visualizes the reward zone.
● Dashboard (Table)
A compact panel, positioned per your "Dashboard Position" setting, reporting in real time: Lock status, current Trend Regime (Bullish/Bearish), Seller Status and Buyer Status (Exhausted/Normal), a visual Channel Width bar-meter (color-graded green/amber/red by relative width), a visual Pearson R bar-meter (same color grading by correlation strength), and — when an exhaustion signal is currently active — the live Entry, Stop Loss, and TP1 price levels. ADX value and Adaptive Filter type are appended as additional rows only when those features are enabled in the inputs.
📖 How to Use
Watch for an "SE" (Seller Exhaustion) label — this suggests a downtrend that produced an unusually large price move for its volume, on a down candle, potentially signaling sellers are running out of conviction and a bounce could follow.
Watch for a "BE" (Buyer Exhaustion) label — the mirror case in an uptrend, potentially signaling an approaching pullback or reversal.
Use the dashboard's Pearson R and Channel Width meters as a quick sanity check on trend quality before acting on a signal — a low R reading (channel shown in neutral gray) suggests the recent price action lacks a clean directional structure.
If ADX filtering is enabled, only signals occurring during sufficiently strong directional movement (per your threshold) will fire, which can help avoid exhaustion calls inside choppy, low-ADX conditions.
Once a signal fires, the plotted SL/Entry/TP1-3 lines and the dashboard's live level readout offer a pre-built framework for position sizing and target-setting — always cross-check these levels against your own risk tolerance before acting on them.
Enable "Lock Signal" if you want to study a single active trade plan without it being replaced by a new signal appearing on a later bar.
All signals, dashboard values, and trade levels are calculated strictly on confirmed, closed bar data — nothing on this chart is repainted or recalculated retroactively into the past.
⚙️ Inputs and Settings
● Core Settings
Trend Length: EMA period used for the directional trend filter. Longer values smooth out the trend classification; shorter values make it more reactive.
Stats Lookback: rolling window for the illiquidity mean/standard deviation used to compute the stress z-score.
Stress Threshold (σ): the z-score level that must be exceeded for a bar to be classified as "high stress." Raising this makes exhaustion signals rarer but more extreme.
Dynamic Pivot Mode: when enabled, the regression channel's lookback length is derived from the distance to the most recent confirmed pivot instead of a fixed value.
Fixed Length: the regression lookback used when Dynamic Pivot Mode is off.
Pivot Left / Pivot Right: bars required on each side to confirm a swing high/low for Dynamic Pivot Mode.
Max Lookback Cap: hard ceiling on the regression window length, regardless of pivot distance, to control computation and keep the channel visually relevant.
Inner/Outer Deviation: standard-deviation multiples defining the two channel bands around the regression line.
● Filters
Filter Weak Correlations / Pearson R Threshold: controls the channel's neutral-color flagging when regression fit quality is below this threshold.
Use ADX Filter / ADX Threshold / ADX Length: optional directional-strength gate that must be satisfied for exhaustion signals to fire.
Adaptive Filter (None / Kalman Filter / LLAMA) and its Length: optional pre-smoothing applied to price before the trend/EMA calculation.
● Trade Tools
Lock Signal: freezes the current trade plan against being overwritten by new signals.
ATR SL Multiplier / ATR Length: controls stop-loss distance as a multiple of ATR.
TP1/TP2/TP3 (R Multiple): sets each take-profit target as a multiple of the initial risk (R).
● Visuals
Show Metrics Label: toggles the floating STATS label showing regression length, R, and z-score.
High/Low Volatility Width %: reference thresholds used to color-grade the dashboard's Channel Width meter.
Line Extension: controls whether regression channel lines extend left, right, both, or not at all.
● Dashboard
Dashboard Position: places the summary table in any of the four chart corners.
● Alerts
Six customizable action-tag fields (Seller/Buyer Exhaustion, TP1/TP2/TP3 Hit, SL Hit) let you rename the "action" field inside each alert's JSON payload to match your own automation or webhook naming scheme.
● Colors
Full palette control over bullish/bearish/neutral coloring, text and background colors, dashboard styling, and all trade-level line/fill colors.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
● Illiquidity as a Price-Impact Proxy
The stress engine's core calculation — true range divided by volume — is a simplified, bar-by-bar adaptation of the price-impact style illiquidity measures used in market microstructure research, most notably the Amihud illiquidity ratio, which relates absolute returns to trading volume as a proxy for how much a given amount of volume "costs" in terms of price movement. The underlying academic intuition is that in illiquid or stressed conditions, smaller volumes produce disproportionately larger price swings; the log transform compresses the resulting distribution to reduce the influence of extreme outlier bars before standardization.
● Z-Score Standardization and Statistical Anomaly Detection
Converting the raw illiquidity reading into a z-score against its own rolling mean and standard deviation is a direct application of statistical process control / anomaly-detection theory: rather than using a fixed, market-agnostic threshold, the script defines "abnormal" relative to each instrument's and timeframe's own recent behavior. This adaptive standardization is a common approach in quantitative finance for regime and outlier detection, since raw price-impact values are not comparable across instruments, timeframes, or volatility regimes without normalization.
● Ordinary Least Squares Regression and Goodness-of-Fit
The fair-value channel is constructed using closed-form ordinary least-squares (OLS) regression formulas computed directly from the summary statistics of the price series (sums of x, y, x², xy, y²) rather than an iterative solver — a standard, numerically efficient approach for simple linear regression. The accompanying Pearson correlation coefficient is the classical goodness-of-fit statistic for this regression: it quantifies how well a straight line explains the price action over the lookback window, providing a principled, quantitative basis (rather than visual judgment) for deciding whether "trend" is a statistically meaningful description of recent price behavior.
● Recursive State Estimation (Kalman Filtering)
The optional Kalman Filter smoothing option is a simplified, single-dimension implementation of the classical Kalman filter from control theory and signal processing — a recursive Bayesian estimator that maintains a running estimate of a system's true state (here, price) and continuously updates it by weighting new observations against the model's own uncertainty. This provides a theoretically grounded alternative to fixed-window moving averages for noise reduction.
● Trend-Following Directional Strength (ADX/DMI)
The optional ADX filter draws on Welles Wilder's Directional Movement System, a long-established technical framework for separating trend strength from trend direction. Using it as a gate rather than a signal generator reflects its intended academic role: ADX does not indicate direction, only the strength of whatever directional move is present, making it a natural confluence filter for suppressing signals during structurally weak, low-conviction price action.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Wskaźnik

Market Internals Status: TICK / ADD / VOLDThis indicator displays a real-time status table for three classic NYSE/Nasdaq
market-breadth internals: USI:TICK , USI:ADD (advance/decline issues, Nasdaq variant
by default) and USI:VOLD (up/down volume difference). It is designed for index
futures and index CFD traders (ES, MES, SPX, NQ, etc.) who use market
internals to confirm directional bias before entering a trade.
METHODOLOGY
Each internal is classified using a fixed absolute-level threshold you control
from the settings: a reading above the "bullish" threshold is tagged BULLISH,
below the "bearish" threshold is tagged BEARISH, and anything in between is
NEUTRAL. This is a simple level-based read, not a moving average, oscillator,
or percentile rank — the goal is to mirror how discretionary traders read raw
internals on a dedicated internals chart, but with an objective, repeatable
rule instead of a visual guess.
A CONSENSUS row aggregates the three readings: it shows "aligned bullish" or
"aligned bearish" only when at least two of the three internals agree in the
same direction past their threshold; otherwise it shows "mixed/flat",
flagging a session where internals do not confirm a clean directional bias.
DATA VALIDATION
Market-internal data feeds occasionally emit corrupted or placeholder values
when the underlying index has no valid tick (e.g., outside NYSE/Nasdaq
cash-session hours). The script validates every reading against a
configurable sanity ceiling per internal. A reading outside that realistic
range is treated as invalid and shown as N/A instead of being misclassified
as bullish or bearish, and it is excluded from the consensus calculation.
SESSION AWARENESS
USI:TICK , USI:ADD and USI:VOLD are breadth measures of the NYSE/Nasdaq cash equity
market and therefore only update during the 09:30–16:00 America/New_York
session. A SESSION row tells you at a glance whether the reading is live or
frozen from the prior session close — important context if you trade an
instrument (like index futures) that keeps trading outside cash-market hours.
HOW TO USE IT
Add the indicator to any chart — it does not need to be an internals chart
itself, it fetches its own data via request.security(). Open the settings to:
(1) pick the exact ticker for each internal your data plan provides, since
exchange-composite symbol naming can vary; (2) set your own bullish/bearish
thresholds; (3) adjust the sanity ceilings if you trade an internal with an
unusually wide typical range. Use the resulting table as a breadth
confirmation filter alongside your own price/volume-based setup — it is not
a standalone entry signal. Wskaźnik

Strategia

Wskaźnik

NATR (Normalized ATR) Oscillator🍀Overview
NATR (Normalized ATR) Oscillator converts Normalized Average True Range into a rolling 0–100 oscillator, making it easier to evaluate current volatility relative to recent market conditions.
NATR is calculated as ATR divided by the current closing price and expressed as a percentage. The indicator then compares that value with the highest and lowest NATR readings over the selected lookback period.
🍀Features
Displays normalized volatility on a 0–100 scale.
Highlights low- and high-volatility conditions with configurable threshold levels.
Includes a 50 midline to identify neutral relative-volatility conditions.
Uses gradient fills to visually emphasize elevated volatility above the midline and subdued volatility below it.
Works across markets and price ranges because ATR is normalized by price.
🍀Inputs
ATR Length — Number of bars used to calculate Average True Range. Default: 14.
NATR Min-Max Lookback — Number of bars used to normalize NATR into the rolling 0–100 oscillator range. Default: 14.
High Volatility Level — Upper threshold used to identify relatively high volatility. Default: 80.
Low Volatility Level — Lower threshold used to identify relatively low volatility. Default: 20.
🍀Usage
Readings above the High Volatility Level indicate that normalized volatility is near the upper end of its recent range. This may occur during breakouts, rapid price moves, or volatile market conditions.
Readings below the Low Volatility Level indicate that normalized volatility is near the lower end of its recent range. This may occur during consolidation, compression, or quieter trading conditions.
Readings near 50 suggest that volatility is relatively neutral compared with the selected lookback period.
Use the oscillator to adapt trade selection, position sizing, stop placement, or strategy expectations to the current volatility regime.
Combine it with trend, momentum, volume, and price-action tools for context. The oscillator measures volatility only; it does not determine market direction.
🍀Disclaimer
This indicator is provided for informational and educational purposes only. It is not financial advice, investment advice, or a recommendation to buy or sell any asset.
The oscillator measures relative volatility within the selected rolling lookback window. A high or low reading reflects recent context and does not guarantee future price movement, trend direction, or trading performance. Always use independent analysis and appropriate risk management before making trading decisions.
Wskaźnik

Supertrend + RSI Filter (Advanced TP/SL)OverviewThe Supertrend + RSI Filter (Advanced TP/SL) is a comprehensive trend-following indicator designed for TradingView (Pine Script v5). It combines the trend-detection power of the Supertrend with a dynamic RSI Momentum Filter to eliminate low-probability setups in overbought or oversold conditions.Unlike standard indicators that clear historical lines upon new signals, this script implements a Pine Script v5 Custom Type & Array-based Position Management System. It tracks every trade independently, drawing dynamic Entry, Take Profit (TP), and Stop Loss (SL) lines with centered price labels. Position lines persist on the chart and are ONLY removed when price action officially hits the TP or SL level.
Comprehensive Feature List
Supertrend Trend Detection:
Utilizes Average True Range (ATR) to measure volatility and establish dynamic trailing stop bands for precise trend-direction identification.
RSI Momentum Filtering:
- Buy Filter: Suppresses BUY signals when RSI exceeds the overbought threshold (Default: >70) to prevent buying at local tops.
- Sell Filter: Suppresses SELL signals when RSI drops below the oversold threshold (Default: <30) to prevent selling at local bottoms.
Can be toggled ON/OFF in the settings menu.
Multi-Position Tracking Arrays:
- Employs custom data structures () stored in an to track multiple open trades concurrently. type Position array
- Persistent Lines: Entry (Solid Gray), Take Profit (Dashed Green), and Stop Loss (Dashed Red) lines remain on the chart through opposite trend changes until hit. - Centered Price Labels: Displays label text (, , ) dynamically anchored at the midpoint of each active position line. Entry: XTP: YSL: Z
- Individual Removal: When a specific trade hits its TP or SL target, its corresponding lines and labels are erased immediately without affecting other active trades.
On-Chart Performance Dashboard:
- Displays an updated summary table in the top-left corner of the chart.
- Metrics Included:
Win Rate (%): Percentage of closed trades hitting TP.
Total Trades: Total number of completed historical signals.
Winning & Losing Trades: Count of successful vs. failed setups.
Total Profit (Pips): Cumulative net profit/loss expressed in pips.
RSI Filter Status: Visual indicator showing whether the filter is active ( / ).ONOFF
Dynamic & Multi-Parameter Alert System:
Uses Pine Script’s function to output real-time formatted text messages containing key execution metrics: alert()
Symbol / Ticker
Timeframe
Exact Entry Price
Target Take Profit Price
Target Stop Loss Price
including warnings. alertcondition()
Trading & Exit Logic
1. BUY Setup
Trigger: Supertrend flips from Bearish (Red) to Bullish (Green).
Filter Condition: $\text{RSI} \le \text{Overbought Threshold}$ (or RSI Filter disabled).
Entry: Closing price of the signal bar.
Stop Loss: $\text{Entry} - (\text{ATR} \times \text{SL Multiplier})$
Take Profit: $\text{Entry} + (\text{ATR} \times \text{TP Multiplier})$
2. SELL Setup
Trigger: Supertrend flips from Bullish (Green) to Bearish (Red).
Filter Condition: $\text{RSI} \ge \text{Oversold Threshold}$ (or RSI Filter disabled).
Entry: Closing price of the signal bar.
Stop Loss: $\text{Entry} + (\text{ATR} \times \text{SL Multiplier})$
Take Profit: $\text{Entry} - (\text{ATR} \times \text{TP Multiplier})$
3. Exit & Removal Logic
On every historical and real-time bar, the script checks if or crosses the target levels: High Low
BUY Hit TP: $\text{High} \ge \text{TP Price}$
BUY Hit SL: $\text{Low} \le \text{SL Price}$
SELL Hit TP: $\text{Low} \le \text{TP Price}$
SELL Hit SL: $\text{High} \ge \text{SL Price}$
Upon trigger, the specific position is logged into the performance table, and its lines/labels are deleted.
Settings & Inputs
How to Set Up Dynamic Alerts
Apply the indicator to your desired chart.
Click the Alerts icon (Clock) on TradingView $\rightarrow$ Create Alert.
Under Condition, select: .Supertrend + RSI Filter (Advanced TP/SL)
Select Any alert() function call in the dropdown menu.
Set the frequency to Once Per Bar Close.
Click Create. You will receive detailed alerts formatted like this:
🚀 BUY SIGNAL
Symbol: BTCUSDT
Timeframe: 15
Entry: 64250.50
TP: 65120.00
SL: 63815.25
Risk Disclosure & Limitations
Choppy / Ranging Markets: As a trend-following tool, Supertrend may produce consecutive false breakouts when the market moves sideways.
Backtest Statistics Notice: The statistics table measures theoretical performance based on bar high/low historical data. It does not account for slippage, spread, overnight funding fees, or broker commissions.
Repainting Disclaimer: Signals and position calculations are confirmed on bar close ( / ) to strictly avoid repainting. barstate. islastfreq_once_per_bar_close
Financial Disclaimer: This script is developed strictly for educational and analytical purposes. It does not constitute financial or investment advice. Always manage your risk responsibly. Wskaźnik

Advanced Realized Volatility (Crypto Stocks Indices Forex)**Advanced Realized Volatility — Detailed Guide**
### What This Indicator Does
Advanced Realized Volatility (Crypto) measures the actual historical price fluctuation of an asset over a user-defined calendar-day window and expresses it as an annualized percentage. Unlike simple standard-deviation tools, it offers six statistically grounded estimators (Close-to-Close, Parkinson, Garman-Klass, Yang-Zhang, Rogers-Satchell, and EWMA), automatically converts a calendar-day lookback into the correct number of bars for any timeframe, and applies the proper annualization factor (√365 for crypto by default, √252 for traditional assets).
The indicator places the current volatility reading in historical context through percentile rank, classifies the market into four regimes (Low / Normal / High / Extreme), calculates Expected Moves for 1-, 7-, and 30-day horizons, and allows direct visual comparison with up to three other symbols. All key metrics appear in a compact on-chart table.
### Core Concepts Explained Simply
- **Realized Volatility (RV)** shows how much the asset has actually moved in the recent past, scaled to a one-year basis. Higher RV means larger typical price swings.
- **Percentile Rank** answers the question: “Is the current volatility high or low relative to its own history?” A reading of 15 means the present volatility is lower than 85 % of the readings in the chosen historical window.
- **Volatility regimes** translate the percentile into actionable categories:
- Low (compression) — percentile below 20
- Normal — 20 to 80
- High — above 80
- Extreme — above 95
- **Expected Move** converts the current annualized RV into an approximate price range the market is statistically likely to traverse over the next 1, 7, or 30 days.
- **Relative Volatility** and multi-asset lines show whether the current instrument is quieter or more turbulent than its peers or its own longer-term average.
### How to Set Up and Read the Indicator
1. Apply the script to any chart (crypto, stocks, indices, and forex work correctly).
2. Choose the volatility method. Yang-Zhang is the recommended default because it efficiently incorporates overnight gaps, open-to-close drift, and the high-low range.
3. Select a lookback in calendar days (30 days is a balanced starting point; shorter windows react faster, longer windows are smoother).
4. Leave annualization on Auto unless you have a specific reason to force 365 or 252.
5. Optionally enable one to three comparison symbols (e.g., BTC vs ETH, SOL, or QQQ) using the same method and period.
6. Turn on background regime coloring and the information table for at-a-glance context.
7. Observe three primary visual elements:
- The main RV line and any comparison lines
- Horizontal reference levels (mean, 20th and 80th percentiles)
- Background color that changes with the regime
The table always displays the current annualized RV, percentile rank with regime label, relative volatility, Expected Moves, and the values of any enabled comparison assets.
### Practical Trading Applications and Patterns
**1. Volatility Compression → Expansion (Breakout Preparation)**
When the percentile rank falls below 20 and the background turns to the Low-volatility color, the market is in a compressed state. Historically, prolonged low-volatility periods are frequently followed by a sharp expansion in range. Traders watch for price to break a well-defined consolidation, range, or chart pattern while RV is still low or just beginning to rise. The Expected Move values help set realistic profit targets once the expansion starts.
**2. High / Extreme Volatility Regime (Risk Management & Mean-Reversion Bias)**
A percentile above 80 (especially above 95) signals elevated or extreme turbulence. In these conditions:
- Position sizes are typically reduced.
- Stops are widened or switched to volatility-based (ATR or Expected Move multiples).
- Mean-reversion or fade strategies become more attractive after a climax move, because extreme readings often revert toward the mean.
- Trend-following systems may stay in the market but with tighter risk controls.
**3. Regime Shifts as Timing Filters**
A cross of the RV line above its longer-term mean or a move of the percentile from Low into Normal/High can confirm that a new directional move has volatility support. Conversely, a drop back into the Low regime after an expansion often marks the end of a volatile phase and the start of a quieter consolidation.
**4. Cross-Asset Relative Volatility**
When the main asset’s RV line sits significantly above or below the comparison lines, relative volatility strength or weakness appears. Example patterns:
- BTC RV rising while ETH RV stays flat or declines → possible BTC leadership or capital rotation into Bitcoin.
- An altcoin showing persistently higher RV than BTC → higher-risk, higher-reward environment that may require stricter position sizing.
- Equity index (QQQ or SPX) RV rising together with crypto → broader risk-off or risk-on regime alignment.
**5. Expected Move for Targets and Option Structures**
The 1-day, 7-day, and 30-day Expected Move figures provide statistically derived price ranges. Common uses:
- Setting take-profit levels at approximately 1× or 1.5× the Expected Move.
- Judging whether an options premium is rich or cheap relative to recent realized movement.
- Sizing positions so that a 1–2 Expected Move adverse excursion remains within acceptable risk.
**6. Volatility of Volatility (VoV)**
When enabled, VoV highlights periods when volatility itself is unstable. Rising VoV often accompanies regime transitions and can serve as an early warning that the current quiet or elevated state is about to change.
### Typical Workflow for Discretionary Traders
1. Note the current regime and percentile rank.
2. Check whether RV is rising or falling and how it compares with the chosen benchmark assets.
3. Read the Expected Move numbers to gauge the probable size of the next swing.
4. Align the volatility picture with classical price action (breakouts from compression, exhaustion after extreme readings, relative strength between assets).
5. Adjust position size, stop distance, and profit targets accordingly.
6. Use the built-in alerts for regime changes, RV crosses of its mean, or sharp expansions so that monitoring can be partly automated.
### Recommended Starting Settings
- Method: Yang-Zhang
- Lookback: 30 calendar days
- Annualization: Auto
- Percentile lookback: 365 days
- Background coloring and table: enabled
- One or two comparison symbols relevant to the traded asset
These settings provide a balanced, responsive view on most crypto pairs while remaining stable enough for higher-timeframe analysis.
The indicator does not generate buy or sell signals by itself. It supplies a quantitative volatility context that improves timing, risk management, and cross-market comparison. When combined with price structure, volume, and a clear trading plan, the regimes, percentile extremes, and Expected Moves become reliable filters for identifying high-probability compression-to-expansion setups, managing risk during turbulent periods, and comparing the relative “temperature” of different assets.
⚠️ Disclaimer
This indicator is for *educational and informational purposes only*. It does not constitute financial advice. Always do your own research before making investment decisions.
*Indicator by:* iCD_creator
*Version:* 1.0
*Pine Script™ Version:* 6
---
Updates & Support
For questions, suggestions, or bug reports, please comment below or message the author.
*Like this indicator? Leave a 👍 and share your feedback!* Wskaźnik

Intraday VWAP, Multi-EMA & RSI Price TrackerOverview:
The Intraday VWAP, Multi-EMA & RSI Price Tracker is a clean, non-repainting indicator designed specifically for intraday traders. It combines essential session value, momentum tracking, and higher-timeframe context to give you key dynamic support/resistance levels at a glance—without cluttering your chart with extra windows or table overlays.
Key Features:
Intraday Session VWAP: Plots the session VWAP exclusively on intraday timeframes (1m to 240m) and automatically hides on Daily or higher charts to keep long-term charts clean.
Non-Repainting Daily EMAs: Calculates and overlays key daily Exponential Moving Averages (20, 50, 100, and 200 EMA) directly onto your intraday chart using historical daily closures ( ). This guarantees zero real-time repainting or shifting lines.
Intraday 200 EMA: Includes a dynamic 200 EMA based on your current chart timeframe to quickly identify short-term trend bias.
Dynamic RSI Tracking: Displays a clean Relative Strength Index (RSI 14) label that dynamically updates its background color to highlight Overbought (>70) and Oversold (<30) conditions.
Clean Right-Margin Labels: Displays color-coded price labels for all active EMAs, VWAP, and RSI in the right-hand margin. Labels update in real-time and automatically delete old instances to eliminate trailing chart clutter.
Fully Customizable: Easily toggle individual EMAs, VWAP, or the RSI label on/off directly from the indicator settings menu.
📊 Indicators & Labels Included
Session VWAP (Intraday Only) – Cyan Line & Label
Intraday 200 EMA – White Line & Label
Daily 20 EMA – Yellow Line & Label
Daily 50 EMA – Orange Line & Label
Daily 100 EMA – Pink Line & Label
Daily 200 EMA – Purple Line & Label
RSI (14) – Dynamic Right-Margin Label (Green / Red / Gray)
💡 How to Use
Trend & Confluence: Check if price is holding above/below key Daily EMAs (e.g., Daily 20 or 50 EMA acting as strong dynamic support/resistance during intraday pullbacks).
Session Value: Use VWAP as your institutional benchmark for value during the trading session.
Momentum Checks: Keep an eye on the RSI margin label for quick momentum context without taking up vertical panel space at the bottom of your chart.
At-a-Glance Levels: Look at the right margin to see exact numerical price levels instantly without having to trace lines back to the Y-axis.
Disclaimer:
For Educational and Informational Purposes Only.
This script is an open-source technical analysis tool designed for charting convenience and display optimization. It does not constitute financial, investment, or trading advice. Past performance of any indicator or strategy is not indicative of future results.
Trading stocks, futures, forex, and cryptocurrencies involves substantial risk of loss and is not suitable for every investor. Always perform your own due diligence, implement strict risk management, and consult a qualified financial advisor before making any live trading decisions. Wskaźnik

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.
Wskaźnik

Bolinger Bands Range RSI Oscillator [ChartPrime]🔶 OVERVIEW
Traditional oscillators live in a separate sub-window beneath your price chart, forcing you to constantly split your focus between market structure and momentum data. The BB Range RSI Oscillator solves this by projecting Relative Strength Index momentum directly onto an adaptive Bollinger Bands channel right on your main chart layout.
This indicator normalizes standard RSI readings and maps them directly into price coordinates, letting you track momentum extremes, zone expansions, and automated structural divergences directly over the candles.
🔶 HOW IT WORKS
The indicator executes its structural calculations through a multi-tier transformation pipeline:
Adaptive Channel Matrix: The engine computes a moving average basis and applies a standard deviation multiplier to project upper and lower outer boundaries, alongside half-deviation warning lines, framing the primary price canvas.
Normalized RSI Mapping: Instead of rendering a separate panel, raw RSI values are normalized on a standardized scale and mapped directly relative to the middle basis and band width, translating momentum oscillations into exact price-level coordinates.
Dynamic Transparency Engine: The core oscillator line features a dynamic fade factor based on its distance from the center, shifting opacities to visually emphasize when momentum is pushing toward outer band extremes.
Automated Pivot Divergence Logic: The script evaluates pivot points on the mapped oscillator coordinates against price highs and lows. It measures exact bar spacing intervals to flag regular and prime momentum divergences.
🔶 KEY FEATURES
On-Chart Core Oscillator: Plots a fluid momentum curve directly onto the price candles, complete with an optional smoothing signal line to track trend momentum changes.
Dynamic Zone Shading: Automatically fills the upper and lower channel boundaries with custom color fills when the oscillator breaks past half-deviation or outer band extremes.
Automated Divergence Callouts: Pins custom signal badges (+ Bull, Bull, Bear, + Bear) directly onto historical pivot points when structural momentum divergences are detected.
Customizable Palette & Layout: Full user control over band lengths, RSI lookbacks, divergence parameters, and accent color schemes to fit your preferred charting setup.
🔶 TRADING APPLICATIONS
Extreme Band Rejection Entries: When the core oscillator pushes outside the outer Bollinger Band boundaries and flashes zone shading, look for price action reversal confirmations to catch institutional exhaustion moves.
Momentum Divergence Reversals: Utilize the automated Bullish and Bearish divergence tags to spot hidden shifts in market pressure. A regular or prime divergence near outer bands often signals an impending trend reversal.
Signal Line Crossovers: Enable the signal line to track short-term momentum shifts relative to the core mapped oscillator, giving you clean cross-over execution triggers.
🔶 SETTINGS
Bollinger Bands Settings (Length / Multiplier): Controls the lookback window and standard deviation width of the primary channel boundaries.
RSI Oscillator Settings (Period Length / Signal Line): Adjusts the sensitivity of the underlying momentum engine and configures the optional signal line length and styling.
Divergence Settings (Pivot Lookbacks / Min-Max Bars): Fine-tunes the strictness and spacing constraints used by the pivot detection engine to filter out noise.
🔶 CONCLUSION
The BB Range RSI Oscillator unifies volatility bands and momentum oscillators into a single, cohesive on-chart tool. By mapping RSI directly to price structure, it gives you a clean, distraction-free environment for spotting momentum extremes and institutional divergence setups. Wskaźnik

Adjusted SuperTrendAdjusted SuperTrend | MisinkoMaster
The Adjusted SuperTrend is a refined, low-lag evolution of the traditional SuperTrend indicator. Standard SuperTrend formulas rely on classic Average True Range (ATR) calculations that treat all price ranges linearly. This often results in delayed trend shifts during explosive volatility spikes or premature whipsaws during choppy consolidation phases.
The Adjusted SuperTrend solves this issue by incorporating a specialized, smoothed True Range filter that balances extreme high-low spreads with close-to-close variations. By anchoring an exponential moving average baseline to this modified volatility metric, the indicator provides a more adaptive, reactive trailing stop line that keeps you aligned with genuine market trends while minimizing false breakout signals.
How It Works (The Core Architecture)
The indicator evaluates trend direction and trailing support/resistance through a three-stage framework:
Linearized True Range Volatility: Rather than using standard ATR, the engine evaluates the absolute maximum and minimum true range components on each bar and averages them. This balances intra-bar high-low expansion with bar-to-bar gap volatility, creating a smoother measurement of true market variance.
Exponential Baseline Alignment: The modified range is processed through an Exponential Moving Average (EMA) volatility lookback filter and applied as a multiplier factor around a core price EMA baseline, establishing dynamic upper and lower tracking boundaries.
Asymmetric Trailing Regime State: When the selected price source closes cleanly above the upper boundary, a bullish trend regime is locked in, plotting the lower band as an active trailing stop. Conversely, when the price drops below the lower boundary, a bearish regime is initiated, using the upper band as trailing overhead resistance.
Key Features
Low-Lag Volatility Smoothing: Uses a specialized True Range derivation to react faster to sudden breakout expansions while remaining resilient against minor noise.
Synchronized Candlestick Morphing: Automatically colors on-chart price bars (green for bullish, red for bearish) to give you instant visual feedback on the active trend bias.
Layered Diamond Breakout Markers: Highlights structural trend flip points with multi-layered diamond markers painted directly on the trailing support/resistance line.
Status Line Volatility Tracking: Includes an integrated ATR status reading for easy monitoring of real-time market expansion directly from your chart legend.
Input Parameters & Optimization Guide
Source: Sets the price series used for baseline calculations and band cross checks (Default: Close).
Baseline Lookback Period: Controls the lookback window for the core EMA trend line. A lower value makes the baseline more sensitive to immediate price action, while a higher value maps macro trend direction (Default: 14).
Volatility Lookback: Sets the length for the smoothed range calculation. Lowering this value makes the trailing bands expand and contract faster during volatility spikes (Default: 8).
Factor: The volatility band multiplier. Adjusting this parameter changes the distance between the baseline and the outer bands. Lower values (e.g., 1.5 - 2.0) work well for tight scalping, while higher values (e.g., 2.5 - 3.0) filter out noise for swing trading (Default: 2.5).
Trading Strategies & Execution
Trailing Trend Continuations
Use the active line as a dynamic trailing stop-loss or trend direction filter:
Bullish Alignment: When the green lower line is active, look for long entries on pullbacks toward the line, keeping your stop-loss placed just below the dynamic support.
Bearish Alignment: When the red upper line is active, look for short setups on rallies toward overhead resistance, trailing your stop along the red line.
Regime Flip Breakouts
A structural change in market bias occurs when price invalidates the active outer boundary:
A candle closing above the red upper band triggers a Bullish Trend Flip, marked by glowing green diamonds on the chart.
A candle closing below the green lower band triggers a Bearish Trend Flip, marked by glowing red diamonds.
Disclaimer: Trading financial markets involves high risk. This technical script is designed as an informational analytical tool to support your rule-based mechanical execution system and does not constitute financial advice. Wskaźnik

The Oloid (OWMA) Oloid Weighted Moving AverageThe Oloid (OWMA) — Oloid Weighted Moving Average
WHAT IT IS
The Oloid is a trend-following indicator built on the geometry of the oloid — a three-dimensional solid discovered by Paul Schatz in 1929. The oloid is the convex hull of two perpendicular circles, each passing through the center of the other. It is one of the few known solids that develops (unrolls) its entire surface onto a plane while rolling, touching every point of its surface exactly once per cycle — no point is missed, no point repeats.
This indicator translates that geometry into a novel, non-linear moving average: the Oloid Weighted Moving Average (OWMA).
MATHEMATICAL LEGACY
OWMA belongs to the lineage of geometry-inspired data analysis tools:
• Fourier Transform (1822) — decomposition of a signal into circular components.
• Wavelet Transform (1980s) — multi-scale analysis with shaped basis functions.
• OWMA (2026) — weighting of time-series data using the developable surface of a three-dimensional geometric solid.
The key innovation: using the coupling of two perpendicular circles as the weighting kernel. Fourier uses single circles. Wavelets use scaled and shifted basis functions. OWMA uses the interaction of two perpendicular oscillating systems to determine the informational value of each data point.
THE CORE IDEA
Every classic moving average weights bars by time: linearly (WMA), exponentially (EMA), or adaptively by a single volatility measure (KAMA, VIDYA). OWMA weights bars by their position on the oloid's developable surface, determined by two coupled market cycles simultaneously:
• Circle A — Momentum cycle. Each bar's local directional efficiency (a 4-bar Kaufman-style efficiency ratio) maps to an angle on the first circle.
• Circle B — Volatility cycle. Each bar's range relative to the recent average range maps to an angle on the second circle.
The oloid's center-of-mass height at the coupled position (alpha, gamma) is:
h(alpha, gamma) = h_min + dh * (0.5 + 0.5 * sin(2*alpha) * sin(2*gamma))
where h_max = sqrt(2)/2 and h_min = 3*sqrt(3)/8 are the exact geometric height extremes of a rolling oloid. The bar's weight is the INVERSE of this height:
• Bars at turning points (height minimum — the moment the rolling oloid "tips over") receive maximum weight. These are transition bars: pivots, regime changes, structure shifts.
• Bars during smooth rolling (height maximum) receive minimum weight. These are continuation bars, carrying less new information.
The result is a moving average that emphasizes market turning points and de-emphasizes continuation — behavior no linear, exponential, or single-factor adaptive MA produces, because the weight depends on the coupled state of two independent cycles, not on time or one factor alone.
HOW IT WORKS ON THE CHART
1. Oloid Line (center). The visible line does not plot OWMA directly — it tracks OWMA with adaptive speed derived from the oloid's current height. Two refinements prevent lag during strong trends:
— Velocity Lead: when adaptation is slow, the line aims where OWMA is going (target = OWMA + delta-OWMA * lead), like the contact point of an oloid rolling down a slope leading its center of mass.
— Adapt Floor: a strong trend (high efficiency ratio) guarantees a minimum tracking speed — gravity keeps the oloid rolling even at maximum height.
2. Oloid Field. ATR-based dynamic bands around the center line. The field narrows as trend efficiency rises (trending markets get a tighter channel) and widens in chop. Field color reflects price position: green above, red below, gray inside.
3. Energy metric (Data Window / dashboard). Energy = efficiency ratio * range regularity. It measures whether the oloid is "rolling" — whether the market has coherent, structured motion. Energy Up / Energy Down split it by the Oloid Line's slope direction. These values are not drawn as chart lines — they live in the dashboard and the Data Window, where the Pine Screener can also read them.
4. Slope Engine. Tracks the slope of RangeReg Bull% — the percentage of bars in the window that made new highs. The slope is classified as RISING / FLAT / FALLING. A flat-to-rising transition marks "momentum awakening": after a structural pause, bullish breadth resumes.
SIGNALS — TWO INDEPENDENT ENTRY ENGINES
• LONG-SLOPE (Pure Slope — enabled by default): RRB slope transitions flat-to-rising while close is above the Oloid Center. Catches "momentum awakening" — trend starts after a structural pause.
• LONG (OWMA Cross — off by default, optional): close crosses above the upper field boundary, with all filters passing. A dedicated filter blocks these entries while the slope is falling ("tired trend" protection). Enable this engine if you want additional breakout-style entries alongside the slope engine.
• SHORT / CLOSE: mirror logic below the field (part of the OWMA Cross engine, so they appear only when that engine is enabled); in "Long Only" mode a short signal closes the long instead. With the default configuration, positions are closed by the selected exit mode's stop.
Signal filters: an Energy window (default 0–20% — signals are suppressed when momentum is overheated), an optional minimum efficiency ratio, and a cooldown between signals.
EXIT MODES (selectable)
• Wide ATR (default, x3.5): a loose trailing stop that lets winners develop and captures more of the favorable excursion.
• ATR Trail (x2.0): classic tighter trail.
• Slope+Stop: exits when the RRB slope turns falling (momentum exhausting), with a fixed protective stop as the floor.
• Hybrid: fixed protective stop for the first N bars, then an ATR trail activates.
The current trailing stop is plotted as a step-line while a position is open.
HOW TO USE IT
1. Add to any symbol and timeframe. Defaults (Radius 21, Long Only, Pure Slope engine, Wide ATR exit) are a reasonable starting point for daily charts of trending assets.
2. Watch the dashboard (top right): Circle A (trend efficiency), Circle B (volatility state), Energy with its window check, Field width and direction, Slope state, and the active stop level.
3. Higher-quality entries tend to occur when: Energy is in the lower half of the window and rising, volatility (Circle B) is below ~110%, and the Field is narrow or narrowing (squeeze conditions).
4. Pine Screener: the "Energy Up Trend" value is exported to the Data Window — filter "Energy Up Trend between 3 and 20" to scan for symbols entering a sustained bullish momentum phase.
5. Alerts are provided for both entry engines, exits, the Bullish Trend Zone, and slope-state transitions (diagnostic).
INPUTS SUMMARY
• Oloid Geometry: Radius (base period of both circles, default 21), Circle Coupling (0.5 = the oloid's natural geometry), Meander Intensity.
• Signals: mode (Long Only / Short Only / Both), Energy window, minimum ER, cooldown.
• Slope Engine: enable/disable each engine, falling-slope filter, slope smoothing and flat threshold.
• Exit Mode: the four modes described above with their parameters.
NOTES
• The indicator is self-contained: all mathematics is computed from the oloid's parametric geometry (height function, surface development, coupling), plus standard building blocks (ATR, efficiency ratio, SMA/EMA smoothing).
• A square-root recency decay is combined with the oloid surface weight, so the total weighting respects both surface position and recency.
• Signals are generated on bar close and do not repaint: the position state machine uses confirmed values only.
• This is a technical analysis tool, not financial advice. Test on your instruments and timeframes before using signals in live trading.
Wskaźnik

[SkuldX] Average Daily RangeSkuldX Average Daily Range
by SkuldX Trading Systems
What is it?
SkuldX ADR calculates the Average Daily Range across three independent periods and projects statistical price targets directly on the chart. Instead of just showing a raw number, it tells you exactly where today's statistically likely high and low are — and how much of that range has already been consumed. This transforms a simple volatility measure into a practical decision-making tool for every session.
The core concept
Every instrument has a characteristic daily range — how far it typically moves from low to high in a single day. ADR measures this by averaging the daily High minus Low over a chosen number of past sessions. When today's price approaches the ADR High or Low level projected from the daily open, the market is statistically reaching its expected limit for the day. This is where momentum tends to slow, consolidate, or reverse.
The key insight: if the market has already consumed 90%+ of its average daily range, the probability of further directional movement drops significantly. Conversely, if only 20% of the range has been used, there is substantial room left to move.
Three periods — three perspectives
🟡 ADR 5 — 5-day average (one trading week) . Most reactive to recent conditions. Best for identifying short-term volatility shifts and current week behavior.
🔵 ADR 10 — 10-day average (two weeks) . Balanced view of recent momentum without excessive noise.
🟠 ADR 20 — 20-day average (one month) . The standard institutional reference. Most stable and reliable for setting daily targets and stops.
All three periods are independent and can be toggled on or off. When all three are active simultaneously, the spacing between their levels gives a visual read on volatility expansion or contraction — tight clustering means stable conditions, wide separation means the market is in a transitional phase.
What you see on the chart
Each enabled period draws two horizontal lines per day — an ADR High and an ADR Low — projected symmetrically above and below the daily open (00:00 NY time). A dotted midline marks the daily open itself.
Each label shows three pieces of information simultaneously:
ADR20 H 2415.50 72% used
The projected level price
The ADR value in brackets — how many points the average daily range is
The percentage of today's range already consumed
Lines are drawn fresh at the start of each day and historical days remain visible on the chart for reference and backtesting.
Daily Range Used %
This is the most actionable metric in the indicator. It answers the question: how much room does the market have left today?
Below 50% — significant range remaining, directional moves are still viable
50–80% — range is being consumed, momentum may slow near ADR levels
Above 90% — statistically exhausted, high probability of slowdown, consolidation or reversal at ADR levels
Above 100% — unusual day, range has exceeded the historical average, often signals a news-driven or institutional event
Alerts
A configurable alert fires when the daily range consumed exceeds your threshold (default 90%). This allows you to catch exhaustion points in real time without watching the chart constantly. The alert specifies which ADR period triggered and the exact percentage consumed.
Settings
ADR 5 / 10 / 20 — enable or disable each period independently with custom colors
Show ADR High / Low levels — toggle the projected level lines
Show Daily Open — toggle the dotted midline at 00:00 NY open
Show Daily Range Used % — toggle the consumption percentage in labels
Show Labels — toggle all right-edge labels
Label Size — tiny, small, or normal
Line Width / Style — visual customization
Alert threshold % — percentage of ADR consumed that triggers the exhaustion alert
How to use it in practice
As a take-profit guide — when price approaches ADR High or Low with 80%+ range consumed, consider taking partial or full profit rather than holding for further extension.
As a reversal filter — avoid entering new directional trades when the ADR Used % is above 85–90%. The statistical edge has diminished significantly.
As a stop-loss reference — place stops beyond the ADR High or Low to avoid being caught by normal daily volatility.
Combined with session analysis — ADR levels are most powerful when they align with session structures. An ADR High that coincides with London High or Asian High becomes a confluence zone with significantly higher reversal probability.
Combined with OI data — if price reaches ADR High while the OI Delta shows Short Squeeze conditions, the move is likely unsustained and a reversal is probable. If it reaches ADR High with Bullish Trend OI, the day may extend beyond the average range.
Why 00:00 NY as the daily open
Crypto trades 24/7 without a traditional open. The New York midnight open (00:00 NY) is used as the reference point because it aligns with institutional risk resets, matches the TDO used across the SkuldX suite, and provides a consistent reference across all instruments and timezones with automatic DST adjustment.
Built for SkuldX ecosystem
SkuldX ADR is designed to work alongside the full SkuldX suite. ADR levels combined with TDO/TWO session opens, OI Delta signals, and Level Patterns reactions give a complete picture of where price is likely to pause, reverse, or accelerate on any given day. Wskaźnik

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 TradingView'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. Wskaźnik

RSI + Bollinger BandsRSI + Bollinger Bands — RSIBB
RSIBB combines the Relative Strength Index with Bollinger Bands by projecting RSI momentum directly into price space. Instead of displaying RSI in a separate oscillator pane, this indicator places the RSI Flow alongside price and the Bollinger Band structure, allowing momentum, volatility, and price action to be evaluated together on a single chart.
How It Works
The RSI Flow is centered around the Bollinger Band basis:
RSI 50 aligns with the Bollinger Band basis.
The upper RSI threshold, set to 70 by default, aligns with the primary Upper Band.
The lower RSI threshold, set to 30 by default, aligns with the primary Lower Band.
RSI values beyond the selected thresholds extend into the outer momentum and volatility zones.
The yellow RSI Flow line represents projected RSI momentum. The white RSI Flow-Base line applies EMA smoothing to the projected RSI Flow, making momentum shifts and potential crosses easier to identify.
Bollinger Band Settings
The Bollinger Band system includes adjustable:
Length
Source
Basis moving-average type
Standard-deviation multiplier
Extended-band multiplier
Extended-band visibility
Supported basis moving averages include:
SMA
EMA
SMMA/RMA
WMA
VWMA
The optional Extended Bands highlight areas where momentum and price have moved beyond the primary Bollinger Band range.
RSI Settings
The RSI system includes adjustable:
RSI length
RSI source
Upper RSI threshold
Lower RSI threshold
EMA smoothing length
The default thresholds are 70 and 30, but they can be changed to make the projection more or less sensitive.
Interpretation
When the RSI Flow moves above the basis, momentum is positioned on the bullish side of its range. When it moves below the basis, momentum is positioned on the bearish side.
Movement near or beyond the primary bands indicates that RSI has reached or exceeded its selected upper or lower threshold. The extended zones can help identify stronger momentum expansion, volatility extremes, and possible exhaustion areas.
Crosses between the RSI Flow and its smoothed Flow-Base may help visualize changes in momentum direction. These signals should be evaluated alongside market structure, trend, volatility, and other forms of confirmation.
RSIBB does not provide automatic trade entries or guarantee reversals at the bands. It is designed as a visual analysis tool that places RSI momentum and Bollinger Band behavior into one unified price-chart display.
This indicator is intended for informational and educational purposes only and does not constitute financial advice. Wskaźnik

Caheeen Pulse v3.0Caheeen Pulse is a market-regime visualization tool designed to summarize trend structure, directional alignment and volatility-normalized price positioning in one compact view.
HOW IT WORKS
The indicator combines four independent observations into a composite regime score ranging from -4 to +4:
Price position relative to the long-term Trend EMA.
Alignment between the Fast EMA and Slow EMA.
Direction of the Trend EMA slope.
Price distance from the Trend EMA, normalized by ATR.
The combined score classifies the current market environment into five states:
• Strong Bull
• Bull
• Neutral
• Bear
• Strong Bear
This approach differs from a basic moving-average crossover. It evaluates several dimensions of market structure simultaneously and normalizes price displacement using volatility, allowing the same framework to adapt across instruments and timeframes.
VISUAL COMPONENTS
• Long-term Trend EMA
• Fast and Slow EMAs
• Regime-based chart background
• Confirmed regime-transition markers
• Dashboard displaying the composite score, ATR-normalized price distance, trend slope, EMA spread and ATR volatility
ALERTS
Caheeen Pulse includes alert conditions for confirmed transitions into Strong Bull, Strong Bear and Neutral regimes. Transition alerts and markers are confirmed only after the candle closes. When creating an alert, select “Once Per Bar Close.”
USAGE
Caheeen Pulse is intended to help users:
• Identify the prevailing market regime
• Distinguish directional conditions from transitional periods
• Compare trend structure with current volatility
• Apply an additional market-context filter to their own analysis
The indicator does not place orders, manage positions or provide personalized investment advice. It should not be used as a standalone instruction to buy or sell.
The live regime display can change while the current candle is forming. Confirmed transition markers and alerts are generated at candle close.
Historical or hypothetical observations do not guarantee future results. Trading involves risk, and users remain responsible for their own decisions and risk management. Wskaźnik

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. Wskaźnik

Time-Price Volume Heatmap with Liquidity SweepsWhat it does
Most volume tools compress everything into a single vertical profile, so you can see at which price volume traded, but not when. This script splits the lookback window into a grid of time columns × price rows and paints each cell by how much volume was actually traded inside it — producing a time-and-price heatmap of where activity concentrated as the market moved.
On top of that map it tracks the resting liquidity pools that price left behind, and flags the exact bar where each pool is taken.
How it is calculated
The heatmap
The lookback window (default 300 bars) is divided into Time Resolution columns (default 16) and Price Resolution rows (default 26), built between the highest high and lowest low of the window.
For every bar, its volume is distributed evenly across all price rows its high-low range covers. A bar spanning 5 rows adds one fifth of its volume to each. This approximates where inside the candle the activity sat, rather than assigning it all to the close.
Each cell is normalised against the busiest cell in the grid and coloured on a 3-stop gradient. Transparency scales with intensity, so cold zones stay faint and hot zones glow. Cells below Min Intensity are not drawn at all — this keeps the chart readable and stays inside the 500-object limit.
Point of Control Rows are summed across all columns; the heaviest row is drawn as the POC line. The panel also shows POC Density — that row's share of total mapped volume. A high number means volume is concentrated on one shelf; a low number means it is spread out.
Liquidity pools Confirmed pivot highs and lows (Pivot Strength, default 8) mark levels where stop orders typically rest. Each is drawn as a dotted line extending right, labelled with its price. When price trades through a level it is re-drawn solid grey and marked SWEPT, and the sweep counter increments. Levels older than Level Max Age are removed automatically.
Volume bursts Volume is converted to a z-score over Volume Window bars. Two dot sizes mark bars above the strong (2σ) and extreme (3.5σ) thresholds — useful for spotting which bar actually did the damage at a level.
Volume Pressure Volume of up-closes minus volume of down-closes across the window, expressed as a percentage of total. A rough directional bias for the mapped period.
How to read it
Hot zones = price spent time and volume there. They tend to act as magnets and as friction; moves through them are usually slower.
Cold gaps = thin areas. Price often travels through them quickly.
A sweep followed by an immediate move back inside the previous range is the classic liquidity-grab pattern. The sweep marker plus an extreme volume dot on the same bar is the strongest version of it.
POC as reference: the panel tells you whether price is above or below the heaviest shelf. Wskaźnik

Gravity Trend | ADX Strength Meter & Quality-Scored DMI SystemA fully modular DMI/ADX trend-following strategy built around a live Trend Quality Score rather than a raw crossover signal.
Instead of entering on the initial DI crossover, this script waits for pullback entries within an already-confirmed trend regime (DI direction + ADX strength + optional EMA filter), aiming to capture better average entry prices than chasing the initial signal.
Core features:
Pullback entry engine — enters on EMA reclaim within a confirmed DMI trend regime (toggle back to classic DI crossover anytime)
Trend Quality Score (0–100) — a weighted composite of ADX level, DI spread, ADX slope, and EMA slope, visualized as a glowing trend line whose brightness scales with signal quality
Peak-ADX decay exit — tracks the highest ADX reached since entry and exits once trend conviction decays a set percentage off its peak, independent of price action
True initial stop anchored to strategy.position_avg_price, transitioning into a Chandelier-style ATR trailing stop that only ratchets in your favor
Volatility- and quality-adjusted position sizing — risk per trade scales with ATR and with the current Trend Quality Score
Cooldown filter to avoid re-entering immediately after a stop-out in the same chop zone
Live dashboard table showing ADX, DI spread, trend score, position status, and a self-updating win-rate table bucketed by ADX strength regime at entry — so you can see empirically which trend-strength conditions are actually working on your instrument
Every major mechanic (EMA filter, DI spread minimum, pullback mode, Chandelier trail, ADX decay exit, cooldown, quality-based sizing, and each individual Trend Score component) is independently toggleable — designed for methodical A/B testing rather than a fixed black-box system.
This is a trend-following strategy, not mean-reversion. It is intended for educational and research purposes. Past performance shown in backtests does not guarantee future results — always forward-test and paper-trade before risking real capital, and adjust default parameters (ADX threshold, ATR multiples, EMA lengths) to suit your instrument and timeframe. Strategia
