MACRO HUDMACRO HUD — macro context, on your chart
Most indicators re-arrange the price you're already looking at. Macro HUD does the opposite: it puts the market's macro context on a single on-chart panel, so you're never reading price in isolation. It's a dashboard, not a signal generator.
WHAT IT SHOWS
MACRO ENGINE — the dollar (DXY), US 10Y and 2Y yields, oil, and the VIX, each with its current value and a direction arrow. The VIX also carries a regime band: Calm / Normal / Stressed / Panic.
REGIME — two plain-language reads derived from the engine: a dollar read (bid / offered) and a risk read (risk-on / risk-off / mixed).
WATCHLIST — up to five instruments of your choice, each flagged Bull or Bear versus an EMA, so you can see the state of your whole watchlist at a glance. Defaults to gold, EUR/USD, GBP/USD, USD/JPY and the S&P 500 — change them to whatever you trade.
EVENT — an optional manual countdown. Type in your next few key releases (name plus date/time) and the panel shows whichever is soonest, turning red inside a "stand-down" window you set. Pine can't read the economic calendar, so this part is filled in by hand.
HOW TO USE IT
Add it to any chart. Open the settings and point the symbols at feeds your plan supports, choose your watchlist instruments, and set the read timeframe — Daily by default, which gives the broad regime regardless of your chart timeframe. Everything else is automatic and updates live. Text colour is theme-aware, so it reads on light or dark charts.
WHAT IT DOES NOT DO
It does not generate buy/sell signals, predict direction, or tell you what to do. It assembles context; the read — and the decision — stay yours. There are no performance claims here, by design.
NOTES
Some data symbols (DXY, yields, VIX) depend on your PulseWire data plan. If a row shows "n/a", open the settings and swap that symbol for one your plan supports — the tool handles missing symbols gracefully rather than breaking.
Open-source. Read the code, fork it, adapt it to your own workflow.
MACRO HUD: "Built to support discretion, not replace it" Indicator

ICT London Liquidity & Structure Matrix PROICT London Liquidity & Structure Matrix PRO
ICT London Liquidity & Structure Matrix PRO is an ultra clean, professional charting tool built for traders practicing Smart Money Concepts and ICT methodologies. It isolates macro pivot points with clean blank badges, tracks Asian liquidity boundaries, highlights London Killzone sessions, and projects auto disappearing daily key levels.
Key Features Overview
1. Major High and Low Blank Badges
Marks key structural pivot extremes using clean, minimal solid badges without distracting text overlays. Major highs are marked with solid red badges, and major lows are marked with solid green badges for instant market direction identification.
2. Auto Mitigating Previous Day High and Low
Projects active daily boundaries across your chart. Previous Day High and Previous Day Low levels automatically clean up and vanish the moment price touches or mitigates them.
3. Clean Asian Session High and Low Boundaries
Tracks Asian range consolidation levels with subtle dashed lines and right aligned text labels, providing clear session liquidity targets.
4. Exclusive London Killzone Highlight
Keeps chart aesthetics clean by displaying a single, light background overlay strictly for the high volatility London Session window.
5. Dynamic Auto Mitigating Fair Value Gaps
Automatically identifies bullish and bearish price imbalances across all timeframes. Unmitigated imbalance boxes vanish as soon as price fills the gap.
How to Use
Step 1: Locate Structural Pivots
Identify major highs with red badges and major lows with green badges to assess macro trend bias and key liquidity pools.
Step 2: Monitor Asian Boundaries
Observe Asian High and Low lines created prior to the European open to anticipate potential liquidity sweeps.
Step 3: Execute During London Session
Focus on trade opportunities forming inside the highlighted London Killzone window upon retaps into active Fair Value Gaps.
Settings Overview
Pivot Badge Settings
- Show Major High / Low Blank Labels: Toggle visibility of pivot badges.
- Major Pivot Sensitivity Length: Adjust the pivot lookback period.
Previous Day High and Low Settings
- Show Active PDH / PDL: Toggle display of daily levels.
- Line Width and Style: Customize thickness and choosing between solid, dotted, or dashed lines.
Asian Session Settings
- Show Asian High & Low Levels: Toggle visibility of Asian boundary lines.
Session Highlight Settings
- Show London Killzone Highlight Only: Toggle background highlight for London trading hours.
Disclaimer
This script is built strictly for educational, analytical, and charting enhancement purposes. It does not provide financial advice, trade recommendations, or guaranteed results. Always apply proper risk management principles. Indicator

Gravity Bands [JOAT] Price orbits value. An anchored VWAP core with true volume-weighted deviation shells, on clean monochrome candles.
◆ WHAT IT IS
Gravity Bands treats fair value as a gravity core that price orbits and keeps returning to. The core is an anchored VWAP , and the bands around it are true volume-weighted standard deviations — not simple percentage or ATR envelopes. A signature "Lunar Mono" candle mode repaints the chart in clean white/grey so the gravity field is the only color on screen. It is a pure context tool with no buy/sell signals.
This is 100% original code, written from scratch. It is not a repackaged VWAP or bands script.
◆ HOW IT WORKS
1. The gravity core. A volume-weighted average price is accumulated from a chosen anchor — Session, Week or Month — resetting each new period. This is the center of value that price gravitates toward.
2. Volume-weighted shells. The bands are computed from the volume-weighted variance of price around the core, giving genuine ±1σ, ±2σ and ±3σ deviation shells. Because they are volume-weighted, the shells reflect where real activity occurred, not just where price ranged.
3. Stretch. The core distance is expressed in sigma — how many standard deviations price has escaped value. Small stretch means price is orbiting fair value; large stretch means it is extended and statistically stretched from the mean.
4. Lunar Mono candles. An optional mode repaints candles in white (up) and slate grey (down) so the colored gravity field reads instantly without competing with candle colors — the signature look of this tool.
◆ WHAT YOU SEE
• The gravity core (anchored VWAP) with a soft ±1σ / ±2σ / ±3σ gravity field
• Optional Lunar Mono monochrome candles
• An extreme-stretch background wash when price escapes the outer shell
• A resizable dashboard showing the core value, the stretch state and an orbit gauge, the upper and lower shell prices, the 1σ width in price and as a percent, the anchor mode, and a volume-feed check
◆ HOW TO USE IT
• Treat the core as the day's (or week's/month's) fair value — a magnet price often reverts to.
• Use the shells as objective stretch zones: reaching ±2σ or ±3σ marks a statistically extended condition where mean-reversion or exhaustion becomes more likely.
• Reclaiming or losing the core is a simple bias flip .
• Match the anchor to your horizon — Session for intraday, Week/Month for swing context.
• Requires a symbol with a real volume feed.
◆ NOTES & LIMITATIONS
Gravity Bands needs a genuine volume feed — without one the core approximates price and the shells lose meaning (the dashboard flags this). Deviation shells describe statistical stretch, not direction: price can stay extended in a strong trend. It is a context tool, not financial advice. Use it with your own method and risk management.
— made with passion by officialjackofalltrade
Indicator

Single Timeframe Multi-EMA Trend Table### Overview
The **Single Timeframe Multi-EMA Trend Table** displays the directional bias of 7 customizable Exponential Moving Averages (EMAs) calculated from a single, higher timeframe of your choice.
This allows traders working on lower execution timeframes (e.g., 1-minute or 5-minute charts) to effortlessly monitor macro trend alignment and EMA support/resistance zones from higher timeframes (e.g., 15m, 1h, or 4h) without switching charts.
---
### Key Features
* **Selectable Target Timeframe:** Choose any timeframe (1m, 5m, 15m, 1h, 4h, 1D, etc.) to fetch EMA data from.
* **7 Customizable EMAs:** Define 7 individual EMA lengths (e.g., EMA 9, 20, 50, 100, 150, 200, 800) to monitor full trend structure.
* **Consolidation Detection:** Identifies when price is compressing or trading close to a specific EMA line, marking it as a **RANGE 🟡** state.
* **Clean UI:** Displays chosen timeframe in the table header alongside active EMA lengths and clear color-coded statuses.
---
### How to Use
1. **Set Target Timeframe:** In the settings, choose the macro timeframe you want to base your analysis on (e.g., 15m).
2. **Configure EMAs:** Input your preferred EMA lengths.
3. **Gauge Trend Strength:**
* **Full Bullish Alignment:** All or most EMAs show `BULLISH 🟢`.
* **Compression/Ranging:** Multiple EMAs show `RANGE 🟡`, warning of choppy price action. Indicator

VWAP Reversal Probability Signals🟠 OVERVIEW
VWAP Reversal Probability Signals tracks price movements around an anchored VWAP and two volume-weighted standard deviation bands. It looks for price excursions outside these bands and waits for price to move back through the same band before marking a potential reversal.
Each reversal signal is paired with a fixed VWAP target. The script records whether price reaches that target within a user-defined number of bars and displays the historical success rate for each band independently. This allows traders to compare how different reversal distances have performed over time instead of treating every signal the same.
🟠 CONCEPTS
Anchored VWAP — A volume-weighted average price that resets at the selected session, week, month, quarter, or year and acts as the central reference level.
VWAP Deviation Bands — Upper and lower bands created from volume-weighted standard deviation multiples around the anchored VWAP to define progressively larger price extensions.
Reversal Signal — Generated when price first extends beyond a deviation band and then closes back through that same band, indicating that the extreme move has started to reverse.
VWAP Target — Every signal uses the current anchored VWAP as its fixed target, allowing completed signals to be measured using the same destination.
Reversal Probability — The historical percentage of completed signals from each individual band that reached the VWAP target before the expiry period.
🟠 FEATURES
Anchored VWAP and Reversal Bands — Displays the anchored VWAP together with two configurable upper and lower deviation bands.
Reversal Signal Markers — Shows bullish and bearish reversal signals after price returns back
through the selected deviation band.
Historical Probability Labels — Displays the historical VWAP target hit rate beside each new reversal signal for the corresponding band.
VWAP Target Lines — Draws a projected target from every signal to the current VWAP until the trade either succeeds or expires.
Target Confirmation Marks — Places a confirmation mark when a tracked signal reaches its VWAP target within the selected expiry window.
🟠 HOW TO USE
Choose the VWAP anchor period that matches your trading style, such as session, week, or month.
Watch for price to extend beyond a VWAP deviation band and then move back through that same band before considering a reversal signal.
Compare the probability label shown with the signal to understand how that band has performed historically.
Use the dashed VWAP target line as the expected mean reversion objective for the active signal.
Treat the displayed probability as historical context rather than a prediction of future performance.
🟠 CONCLUSION
VWAP Reversal Probability Signals combines an anchored VWAP, volume-weighted deviation bands, reversal signals, and historical outcome tracking. By measuring how often each type of reversal has returned to the VWAP, it provides both reversal locations and statistical context for those signals. Indicator

Multi-Timeframe Trend & Consolidation Table### Overview
The **Multi-Timeframe Trend & Consolidation Table** is a lightweight dashboard indicator designed to give traders a quick, multi-timeframe overview of the market trend and consolidation status directly on their chart.
Instead of switching between multiple timeframes or cluttering your chart with dozens of moving averages, this tool consolidates trend data across 10 different timeframes into a clean, customizable table.
---
### Key Features
* **Multi-Timeframe Analysis:** Monitors **1m, 3m, 5m, 10m, 15m, 1h, 4h, 1D, 1W, and 1M** timeframes simultaneously.
* **Customizable EMA Periods:** Set unique Exponential Moving Average (EMA) lengths for every individual timeframe (e.g., EMA 10 for 1m, EMA 50 for 1h, EMA 200 for 1D).
* **Consolidation Detection:** Built-in threshold logic identifies when price is hovering extremely close to the EMA line, signaling potential range-bound/chop market conditions.
* **Dynamic Table UI:** Displays the specific EMA length assigned to each timeframe directly inside the table for clear tracking. Fully customizable position (Top Right, Bottom Left, etc.) and text sizes.
---
### How It Works
The indicator compares the price of each timeframe against its assigned EMA line:
1. **BULLISH 🟢:** Current close price is above the timeframe's EMA (outside the consolidation zone).
2. **BEARISH 🔴:** Current close price is below the timeframe's EMA (outside the consolidation zone).
3. **RANGE 🟡:** Price percentage difference from the EMA is smaller than the set threshold (e.g., within 0.15%), indicating market consolidation or flat movement.
---
### How to Use
1. **Trend Alignment:** Look for timeframes aligning in the same direction (e.g., 1h, 4h, and 1D all green) to trade with the macro trend.
2. **Avoiding Chop:** When lower timeframes show `RANGE 🟡`, it indicates low volatility or moving average compression, warning you to avoid breakout trades or wait for confirmation.
3. **Execution Timeframes:** Tune lower timeframes (1m, 3m, 5m) to fast EMAs for scalp setups, while keeping higher timeframes (1D, 1W) on key levels like the 200 EMA.
---
### Settings & Inputs
* **EMA Lengths per Timeframe:** Set custom EMA periods for all 10 available timeframes.
* **Enable Consolidation Detection:** Toggle range detection on or off based on your strategy preference.
* **Consolidation Threshold (%):** Adjust the distance percentage between close price and EMA to define a range zone (default is 0.15%).
* **Table Display:** Adjust table placement on your screen and text font size. Indicator

Indicator

MSNR Bias HTFAKFX Storyline Alignment Dashboard (Multi-Timeframe Analysis)
The AKFX Storyline Alignment Dashboard is a multi-timeframe analysis tool designed to help traders quickly determine market bias and alignment across higher and lower timeframes using the concept of Market Storylines.
Instead of trading off single-timeframe signals, this indicator evaluates structural price action on higher timeframes (HTF) and confirms directional continuation via line-chart breakouts on the lower timeframe (LTF).
🟢 How the Storyline Logic Works
A Storyline is defined as the price movement initiated when price interacts with a higher timeframe zone and receives confirmation from the timeframe directly below it.
Weekly Storyline (Macro Bias):
Checks if Current Market Price (CMP) is reacting at a Weekly Support or Resistance zone.
Confirmed when a Daily line-chart breakout occurs (a Daily candle body closes past the local Daily swing high/low).
Daily Storyline (Intermediate Bias):
Checks if CMP is reacting at a Daily Support or Resistance zone.
Confirmed when a 4-Hour (H4) line-chart breakout occurs (an H4 candle body closes past the local H4 swing high/low).
Bias Alignment Status:
ALIGNED (BULLISH 🟢): Both Weekly and Daily storylines are confirmed Bullish. High-probability environment to look for Buy setups.
ALIGNED (BEARISH 🔴): Both Weekly and Daily storylines are confirmed Bearish. High-probability environment to look for Sell setups.
CONFLICTED 🔴: Weekly and Daily storylines point in opposite directions. Exercise caution or wait for alignment.
WAITING FOR SETUP ⚪: One or both storylines are in a neutral/unconfirmed state.
🎨 Key Customization Features
Customizable Dashboard Colors: Configure background fill, text, border, and header colors via the indicator settings.
Default High-Contrast Theme: Pre-styled with a dark gray fill, crisp black text, and a solid black border for maximum readability on any chart background.
Optional Status Highlighting: Includes a toggle (Use Green/Red Status Colors instead of Solid Gray) to instantly highlight alignment with green/red status boxes.
💡 How to Use in Your Trading Strategy
Add the dashboard to your preferred asset (Forex, Crypto, Indices, Stocks).
Check the Bias Alignment Status row:
When ALIGNED: Look for pullback entries at fresh Support/Resistance zones on your execution timeframe (e.g., H1 or 15m) in the direction of the alignment.
When CONFLICTED or WAITING: Sit on your hands or restrict trades to quick scalps, as higher timeframe momentum is divided. Indicator

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. Indicator

Hyperliquid-Ready Webhook Strategy TemplateMost webhook templates get you 80% of the way there — then your bot double-fills an order at 3am and you learn about the missing 20%. This template IS the missing 20%.
What this is
An open-source strategy template whose real value is the alert payload: a production-grade JSON webhook message with the fields most templates skip. The included strategy (EMA 21/55 cross + RSI filter, ATR-based SL/TP) is a simple demo — swap in your own logic. It happens to test reasonably on BTC 4H, but the point of this script is the plumbing, not the entry logic. Bring your own edge.
The payload — and why each field exists
→ id — unique per event (ticker + timeframe + action + bar time). Your backend treats this as an idempotency key: PulseWire sometimes retries the same alert when your server responds slowly. Dedupe by id (one Redis SET NX) and you'll never double-fill. The action is part of the id so an entry and its exit on the same bar can never collide — a bug I caught in live testing of this exact script.
→ ts — fire-time timestamp via {{timenow}}. Reject alerts older than N seconds so a delayed or replayed webhook can't trade a stale price.
→ secret — replace with a long random token and verify it server-side (or better, HMAC the body). Anyone who finds your webhook URL can POST to it. This field is your lock.
→ reduce_only — true on exits, so a close can never accidentally flip you into a new position if state desyncs.
Also included: leverage and qty fields for your backend (cap leverage server-side too — never trust the client alone), and an on-chart payload preview table so you can eyeball your exact JSON before wiring real money.
Setup (2 minutes)
Add to chart (crypto perps: BTC/ETH/SOL, 15m–4H)
Create alert → condition: this strategy → "Order fills events" → message box: {{strategy.order.alert_message}}
Point the alert's webhook URL at your execution backend or bridge
Works with any PulseWire→exchange webhook bridge. Important: alerts snapshot the script when created — if you edit the code, delete and re-create your alerts.
Who I am
I build custom PulseWire→Hyperliquid execution pipelines (Pine Script v6, non-custodial agent wallets). If you want this wired to live execution or adapted to your strategy, links are in my signature. Strategy

Heikin Ashi RSI Oscillator with Opposing AlertsHeikin Ashi RSI Indicator
The Heikin Ashi RSI Indicator combines price action with a Heikin Ashi RSI oscillator to highlight potential fake pullbacks within an established trend.
The indicator compares the direction of the normal price candle with the direction of the Heikin Ashi candle inside the RSI oscillator.
When both candles move in the same direction, momentum is aligned. When they oppose one another, the signal is classed as an Imposter.
An diversion appears when:
The price candle closes bearish, but the HARSI candle closes bullish.
The price candle closes bullish, but the HARSI candle closes bearish.
This difference suggests that the visible price move may not reflect the underlying momentum. When it occurs during a clear trend, the opposing price candle can be considered a potential fake pullback, rather than an immediate trend reversal.
The indicator includes chart markers and alert conditions for both types of candles.
Trend rules
signals should only be considered in the direction of the established trend.
Bullish trend
The RSI line is above the Heikin Ashi RSI candles.
In a bullish trend, focus on bearish price candles that close against bullish HARSI candles. These may represent fake bearish pullbacks before the upward trend continues.
Bearish trend
The RSI line is below the Heikin Ashi RSI candles.
In a bearish trend, focus on bullish price candles that close against bearish HARSI candles. These may represent fake bullish pullbacks before the downward trend continues.
Suggested use
The indicator is best suited to the:
30-minute timeframe
1-hour timeframe
For cleaner signals, allow the candle to close before acting and set PulseWire alerts to Once Per Bar Close.
This indicator should be used as a confirmation tool rather than a standalone entry system. Always assess the wider market structure, trend direction, support and resistance, and your own risk-management rules before taking a trade. Indicator

GEEN Smart Signal What it does
GEEN Smart Signal is not a single-indicator tool. It combines several classic analysis engines into one weighted Decision Engine that scores every trade candidate from 0 to 100, then only prints signals that pass a minimum confidence threshold. Every signal comes with a full breakdown showing exactly why it was accepted.
How it works
A signal candidate is generated by an ATR trailing-stop flip (with optional Heikin Ashi smoothing of the calculation source). The candidate is then evaluated by 8 engines, each contributing a weighted score:
Market Structure (20 pts) — pivot-based HH/HL/LH/LL classification, BOS and CHoCH detection
Trend (20 pts) — EMA 50/100/200 stack, classified into 5 states from strong bullish to strong bearish
Momentum (15 pts) — RSI position + ADX strength, used as confirmation only
Volume (15 pts) — current volume vs. 20-bar average, rewarding volume spikes
Liquidity (10 pts) — liquidity sweeps of prior swings, price inside a Demand/Supply zone or FVG, and Premium/Discount location vs. equilibrium
Volatility (10 pts) — ATR vs. its average, filtering out dead markets
Multi-Timeframe (10 pts) — 1H/4H/D trend alignment (closed-bar data only)
Risk (10 pts) — estimated reward-to-risk toward the nearest opposing swing
The total is normalized to 100. Below the minimum threshold (default 60) the signal is rejected (WAIT). 60–75 prints as weak, 75–85 as good, above 85 as strong. Clicking any signal arrow shows the per-engine score breakdown, entry, ATR stop, and 1R/2R/3R targets.
Chart elements
Structure labels (HH/HL/LH/LL, BOS, CHoCH), auto Order Blocks with mitigation removal, Fair Value Gaps, Equal Highs/Lows (EQH/EQL), session Kill Zones (Asia/London/New York, with an optional session filter), a main panel (decision, confidence, trend, momentum, risk, entry/SL/TP, RR, 5-timeframe view, active session, SMT check vs. a correlated symbol), and a monthly statistics panel that tracks how many signals reached TP1/TP2/TP3 or hit the stop — so you can measure performance yourself on any symbol and timeframe.
Anti-repaint design
Signals are confirmed on bar close only, higher-timeframe data uses closed bars with lookahead off, and structure breaks are evaluated on confirmed closes.
How to use
Works on any symbol and timeframe. Start with defaults, or raise the minimum confidence and enable the London/New York session filter for intraday trading. Alerts are included for buy/sell and for strong (85+) signals. This tool is for educational purposes and is not financial advice; no indicator guarantees results — always use proper risk management. Indicator

Prop Key Levels & Order Blocks - Buy Sell Signals with TP/SLA complete intraday trading suite built around one idea: the decision candle.
Instead of guessing where price might turn, the script marks the exact candles
where the market already made a decision, and then tells you what happened when
price came back to them.
Everything is evaluated on closed bars. Printed signals never move.
━━ WHAT IT DRAWS ━━
MAJOR KEY DETECTION
The origin candle of an impulsive displacement leg. Its body becomes a level
that extends to the right. Green for bullish decisions, red for bearish ones.
When price closes clean through a key, the level is greyed out — it failed, and
you can see that it failed. The detection level (1–100) sets how far price must
travel out of a candidate before it is accepted, so you can go from "every small
turn" to "only the moves that really expanded".
MAJOR ORDER BLOCKS
The last opposing candle before a structural break. Drawn as a box that survives
until price closes through it.
TREND DETECTION
A volatility-scaled trailing line under price, green while bullish and red while
bearish. It is the filter one of the two entry engines uses, and a weighted
component of the other.
ORDER POOL
Price levels that were rejected repeatedly and still hold unfilled resting
orders. Each pool is parked as an arrow at the right edge of the chart. You
decide what happens once price trades through one: remove it (the orders are
spent) or keep it dimmed, so you can still trade the reaction after the sweep.
SMART FVGS
Three-candle imbalances, filtered by a minimum size so the chart is not buried
under meaningless micro-gaps.
━━ THE ENTRY ENGINE ━━
Two independent algorithms, selectable in the settings.
PROP MODE — conservative. A signal needs the trend filter, a key level or order
block, and a confirmation candle to agree, and price must not already be
extended. Fewer trades, built for accounts where a handful of clean entries
beats constant activity.
AI-MODE — adaptive. Trend, momentum, key level, order block, pool sweep, fair
value gap and candle quality each contribute a weighted score. The engine fires
when the combined score clears a threshold you control, so it also takes the
reversals the conservative mode filters away.
Every entry comes with three take profits (Minor, Major, Highest) and a stop.
All four are expressed in volatility units — one unit is the ATR at the signal
bar — so the distances breathe with the market instead of being a fixed point
value that is wrong on half the days.
The reward box, the risk box and the projection line are drawn forward from the
entry, so one glance tells you whether the trade is worth taking. Hover any
signal badge to read why it fired and every price it produced.
━━ COOLDOWN ━━
After a signal, the engine mutes itself for a configurable number of bars. This
is what stops it from firing ten entries into the same move — the single
fastest way to run into a daily loss limit.
━━ DASHBOARDS ━━
A trade metrics table in the corner lists the live entry, all three targets, the
stop, the reward-to-risk and the cooldown state — the numbers you copy into your
order ticket.
A cockpit panel shows the live checklist (trend, key level, order block, pool
sweep, candle, cooldown), the running position, and a hit count across the whole
loaded history: how often each target was reached and how often the stop came
first.
━━ ALERTS ━━
Entry, take-profit hit and stop hit, as readable text or as a JSON object
carrying side, entry, all three targets, the stop and the reward-to-risk — the
format execution bridges expect.
━━ SETTINGS ━━
① Engine Control — strategy type, score threshold, cooldown, metrics table
② Trade Config — Minor / Major / Highest TP, SL, volatility unit
③ Insight Matrix — key detection and its level, order blocks, trend
④ Orderflow & Smart FVGs — order pool, touch count, tolerance, fill handling
⑤ Visuals — theme, candle colouring, boxes, price lines, panel, drawing budget
⑥ Alerts — what to fire and in which format
Every input carries a tooltip explaining what it does and what changes when you
move it.
━━ NOTES ━━
Designed for intraday work on index CFDs, gold and FX. The defaults were set up
on 1- to 15-minute charts; on higher timeframes raise the cooldown and the key
detection level.
This is an analysis tool, not financial advice. Past behaviour of any level or
signal says nothing about future results. Test any configuration on your own
instrument and timeframe before trading it. Indicator

UPDATED: COMBO - EMA/LRI/SuperTrend/HMA StrategyOverview
The EMA / LRI / SuperTrend / HMA Execution Suite is a streamlined overlay designed for intraday momentum traders, scalpers, and trend followers. It combines dynamic trend baselines, statistical breakout evaluation, and multi-tier moving average filters into a single, highly performant script.
By focusing purely on high-probability trend structure and dynamic fair value, this indicator keeps your chart visually clean and clutter-free for quick execution.
Key Features & Components:
Core Purpose: An advanced multi-indicator technical suite specifically designed for futures and stock trading.
Moving Averages & Momentum: Integrates a customizable Exponential Moving Average (EMA), a versatile Hull Moving Average (HMA) with both single and 3-HMA crossover modes, and a directionally-colored Linear Regression Index (LRI) for momentum tracking.
Breakout Probability Engine: Features a SuperTrend overlay enhanced with a relative volume Gaussian Kernel Density Estimation (KDE) model to calculate breakout strength and display confidence percentage labels.
Visual Adjustments: Includes fully customizable vertical offsets and connecting lines for the probability bubbles to maintain clear chart readability.
Comprehensive Alerts: Built-in alert conditions for trend flips, high-confidence breakouts, and moving average or price crossovers against the LRI.
Indicator

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 PulseWire'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 PulseWire'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.
Indicator

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 PulseWire 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. Indicator

EMA 25/68 BIST30 Futures# EMA 25/68 BIST30 Futures
I developed this strategy to test a straightforward and easy-to-understand moving average system on the 15-minute chart of the BIST30 futures contract.
The system monitors crossovers between EMA 25 and EMA 68. A crossover alone is not sufficient to open a position. For a long setup, the highest price of the crossover candle is recorded. For a short setup, the lowest price of the crossover candle is recorded. The signal is confirmed only if price breaks this level within the following four bars. If confirmation does not occur within four bars, the setup is cancelled.
EMA 160 is used solely as a directional filter. Long positions are opened above EMA 160, while short positions are opened below EMA 160. The purpose of this filter is to avoid taking short- and medium-term moving average crossovers against the broader market trend.
If a position has not been stopped out before the end of the session, it is closed at the close of the 17:45 bar, which corresponds to the 18:00 session price. A new position, including one in the opposite direction, cannot be opened on the same bar in which an existing position is closed.
The strategy has been designed so that different parameter settings can be tested for educational and research purposes. Users can change the EMA lengths, the number of confirmation bars, the directional filter and the trailing stop percentage to examine how these variables affect the number of trades, win rate, profit factor and maximum drawdown.
When evaluating parameter changes, users should not focus solely on the highest net profit. It is also important to examine whether neighbouring parameter values produce similar results and whether performance remains consistent across different market periods.
The code avoids calculation methods that could introduce look-ahead bias. The entire entry bar is not treated as price movement that occurred after the position was opened. The trailing stop is calculated using data from a completed bar and becomes active no earlier than the following bar.
Commission and tax on commission are displayed as separate settings. By default, the strategy assumes a commission rate of 0.020% per order leg and a 5% tax applied to the commission. Together, these produce an effective cost of 0.021% per order leg.
If the commission or tax settings are changed, the effective cost per order leg displayed in the table at the top-right corner of the chart must also be entered under Strategy Settings → Properties → Commission.
The strategy was developed for the XU030D1! symbol on a 15-minute chart. Similar results should not be expected on different markets or timeframes. The data source, continuous contract settings, commission, slippage and Bar Magnifier preferences may all affect backtest results.
This strategy is shared for educational and research purposes only. Past performance does not guarantee similar results in the future and should not be used as the sole basis for making investment decisions.
EMA 25/68 BİST30 VADELİ
Bu stratejiyi BIST30 vadeli kontratın 15 dakikalık grafiğinde, mümkün olduğunca sade ve anlaşılır bir hareketli ortalama sistemi denemek için hazırladım.
Sistem EMA 25 ile EMA 68’in kesişmesini takip ediyor. Kesişim tek başına işlem açmak için yeterli değil. Long tarafta cross mumunun en yüksek, short tarafta ise en düşük fiyatı kaydediliyor. Fiyatın bu seviyeyi sonraki dört bar içinde geçmesi halinde sinyal teyit edilmiş sayılıyor. Dört bar içinde teyit gelmezse aday iptal ediliyor.
EMA 160 yalnızca yön filtresi olarak kullanılıyor. Long işlemler EMA 160’ın üzerinde, short işlemler EMA 160’ın altında açılıyor. Amaç, kısa ve orta vadeli ortalama kesişimlerini daha geniş trendin tersine kullanmamak.
Pozisyon seans sonuna kadar stop olmadıysa 17:45 barının kapanışında, yani 18:00 seans fiyatında kapatılır. Pozisyonun kapandığı bar içinde ters yönde yeni pozisyon açılmaz.
Strateji, eğitim ve araştırma amacıyla farklı parametrelerin sonuçlar üzerindeki etkisini incelemeye uygun olacak şekilde ayarlanabilir hazırlanmıştır. EMA uzunlukları, teyit barı sayısı, yön filtresi ve trailing stop oranı değiştirilerek işlem sayısı, kazanma oranı, kâr faktörü ve maksimum düşüş gibi ölçümlerin nasıl değiştiği karşılaştırılabilir. Parametreler değerlendirilirken yalnızca en yüksek net kâra odaklanmak yerine, komşu değerlerde de benzer sonuçların oluşup oluşmadığı ve farklı dönemlerde performansın korunup korunmadığı ayrıca incelenmelidir.
Kodda geleceği görmeye yol açabilecek hesaplama seçenekleri kullanılmadı. Giriş barının tamamı, pozisyon açıldıktan sonra oluşmuş bir fiyat hareketi gibi kabul edilmez. Trail seviyesi tamamlanan barın verileriyle hesaplanır ve en erken sonraki barda çalışır.
Komisyon ve komisyon vergisi ayarlarda ayrı ayrı gösterilir. Varsayılan olarak bacak başına yüzde 0,020 komisyon ve komisyon üzerinden yüzde 5 vergi kabul edilmiştir. Bu ikisinin efektif bacak maliyeti yüzde 0,021’dir. PulseWire’in yerleşik komisyon alanı Pine kodunda dinamik bir inputa bağlanamadığı için bu değer değiştirildiğinde, Strateji Ayarları > Özellikler bölümündeki komisyon oranının da tabloda gösterilen efektif oranla aynı yapılması gerekir.
Strateji XU030D1! üzerinde 15 dakikalık grafik için hazırlanmıştır. Farklı piyasalarda veya zaman aralıklarında aynı sonucu vermesi beklenmemelidir. Bar Magnifier kullanımı, veri kaynağı, sürekli vade ayarları, komisyon ve kayma tercihleri backtest sonuçlarını değiştirebilir.
Bu çalışma eğitim ve araştırma amacıyla paylaşılmıştır. Geçmiş performans gelecekte aynı sonucun alınacağını göstermez ve tek başına yatırım kararı için kullanılmamalıdır.
Strategy

Volume Regression Channel [BOSWaves]Volume Regression Channel - Regression-Anchored Volume Flow Visualization with Inward Pressure Bars, Edge Flares, and Cumulative End Profile
Overview
Volume Regression Channel is a regression-anchored volume flow analysis system that fits a polynomial or linear curve to recent price history and maps buy and sell volume pressure inward from the channel boundaries toward the centerline on every bar, where bar height, coloring, edge flare intensity, and end profile distribution are all driven by actual volume participation and close-position-derived directional weighting rather than fixed histogram positions or arbitrary price levels.
Instead of displaying volume as a separate panel histogram detached from price context, this system integrates volume directly into the regression channel structure. Each bar's volume is split into buy and sell components based on where close sat within the bar's range, and those components are rendered as inward-pointing bars anchored to the upper and lower channel edges, with bar height proportional to normalized volume and coloring distinguishing above-average from below-average participation. The result is a channel where the volume activity on every bar is visible in spatial relationship to the channel boundaries that define the structural context.
This creates a complete price and volume framework within a single overlay. The regression curve defines the trend's expected path. The gradient channel fills communicate the statistical distance from the centerline. The inward volume bars reveal participation intensity and directional split at each bar. The flow-colored centerline segments expose directional pressure evolution across the window. Edge flares highlight exceptional volume events occurring near the channel boundaries. Bound diamond markers identify the first bar of each new boundary touch. And the cumulative end profile extending from the current bar provides a full buy-sell volume distribution summary across the channel's price range for the entire regression window.
Price is therefore evaluated not just for its position within the regression channel but for the volume participation and directional flow composition supporting its location at every bar across the full lookback window.
Conceptual Framework
Volume Regression Channel is founded on the principle that a regression channel becomes significantly more analytically powerful when volume participation is integrated directly into its structure rather than displayed separately, allowing the trader to simultaneously assess where price sits relative to the statistical trend expectation and how much and what type of volume supported each bar's position within that channel.
Standard regression channel tools provide structural price context through the curve and its standard deviation bounds but offer no volume intelligence, leaving traders to consult a separate panel to understand participation dynamics. This framework eliminates that separation by embedding volume directly into the channel geometry, with inward bars, edge flares, centerline flow coloring, and the end profile all deriving from the same volume and price data that defines the channel itself.
Three core principles guide the design:
Volume should be displayed in direct spatial relationship to the channel structure it relates to, with inward bars anchored to the boundaries and sized proportionally to participation intensity so that high-volume bars are immediately identifiable within their structural context.
Buy and sell volume should be separated using close position within the bar range, rendering the directional split of each bar's participation as distinct inward segments that reveal whether volume at each price location was predominantly absorbed by buyers or sellers.
A cumulative end profile should summarize the full window's volume distribution at the current channel position, providing a reference for where participation has been most concentrated across the regression window without requiring a separate profile indicator.
This shifts regression channel analysis from structural price context alone into an integrated price-volume framework where participation intensity, directional flow composition, and cumulative distribution are all visible within the channel geometry itself.
Theoretical Foundation
The indicator combines matrix ordinary least squares regression fitting to HL2 price data, standard deviation channel construction, close-position buy-sell volume splitting, volume SMA normalization for significance classification, three-layer gradient polyline fill construction, inward volume bar rendering with dynamic width scaling, flow-weighted centerline segment coloring, edge flare detection combining volume and boundary proximity conditions, and an overlap-weighted cumulative buy-sell profile with smoothing applied across the channel rows.
The regression is computed using the same OLS matrix approach as conventional polynomial regression, producing a prediction array covering all bars in the lookback window for both linear and quadratic modes. The channel width is scaled by the rolling standard deviation of HL2, ensuring channel boundaries adapt to the instrument's actual price variability. Volume splitting uses close position within the high-low range as the proxy for directional commitment, with bars closing near the high allocating more volume to buying and bars closing near the low allocating more to selling. The end profile smooths each row's accumulated buy and sell volume with a three-point weighted average before normalizing and rendering.
Four internal systems operate in tandem:
Regression Channel Engine : Computes OLS curve fitting in linear or polynomial mode, derives the standard deviation channel width, and constructs all polyline geometry for the gradient fills, glow boundary lines, and centerline using chart.point arrays that follow the regression curve.
Inward Volume Bar System : For each bar in the recent display window, normalizes volume against the window maximum, splits the normalized height into buy and sell components by close position, and renders inward lines from the channel edges with dynamic width scaling and above-average volume coloring.
Edge Flare and Bound Marker System : Monitors each recent bar for the combination of above-threshold volume and boundary zone proximity, rendering bright glowing line segments on the channel edge when qualifying conditions are met, and places diamond markers at the first bar of each new boundary touch.
Centerline Flow and End Profile Engine : Divides the centerline into sixty flow segments and computes volume-weighted directional bias for each, coloring segments by flow direction and strength. Simultaneously accumulates overlap-weighted buy and sell volume into channel rows across the full window, smooths the distribution, and renders horizontal profile bars extending from the current bar edge.
This design ensures volume participation is embedded into every layer of the channel visualization while the end profile provides a complete cumulative distribution summary that updates with each new bar.
How It Works
Volume Regression Channel evaluates price through a sequence of regression-aware and volume-integrated processes:
Regression Curve Fitting : On the last bar, the OLS matrix computation produces a prediction array covering all bars in the configured lookback window using either a linear or polynomial fit to HL2, providing the baseline curve that all channel geometry and volume positioning follows.
Channel Width Calculation : The standard deviation of HL2 over the regression window multiplied by the SD multiplier defines the channel half-width, establishing the upper and lower boundary distances from the curve at each bar position.
Gradient Fill Construction : Three polyline polygon regions are constructed for each of the upper and lower channel halves at proportional fractions of the standard deviation width, filled with progressively increasing opacity from inner to outer to produce a smooth visual gradient across the channel depth.
Boundary Glow Rendering : Triple polylines at the upper and lower channel boundaries create a glow effect using wide low-opacity outer lines and a narrow full-opacity core line, providing visually prominent boundary markers that follow the regression curve.
Volume Normalization and Splitting : For each bar in the volume display window, raw volume is normalized against the window maximum to produce a proportional height score. Close position within the high-low range splits this height into buy and sell components, with the buy portion anchored to the lower boundary and the sell portion anchored to the upper boundary pointing inward.
Inward Bar Rendering : Buy and sell component heights are rendered as inward-pointing lines from the respective channel edges with dynamic width scaling based on relative volume and opacity intensifying for above-average participation bars.
Edge Flare Detection : Each recent bar is tested for the combination of volume exceeding the flare multiplier threshold and price high or low reaching within the configured edge zone percentage of the channel boundary. Qualifying bars receive bright dual-layer line segments on the boundary edge with width scaling by relative volume strength.
Bound Diamond Placement : Each bar is tested for initial channel boundary contact, with a diamond marker placed at the first bar of each new upper or lower boundary touch to mark where price newly reached the statistical extremes.
Centerline Flow Coloring : The centerline is divided into sixty equal segments and each segment's volume-weighted close position bias is computed across its constituent bars. Segments are colored green, red, or neutral based on the directional flow value and intensity with line width scaling to strength.
End Profile Construction : All bars in the regression window contribute their volume to the profile rows based on price overlap between the bar range and each row boundary, with the contribution split into buy and sell portions by close position. The accumulated distribution is smoothed and normalized before rendering as horizontal buy and sell bars extending from the current bar.
Together, these elements form a continuously updating integrated price-volume framework where the regression structure, volume participation, flow direction, and cumulative distribution are all rendered within the same channel geometry on each bar update.
Interpretation
Volume Regression Channel should be interpreted as a regression-anchored structural framework with embedded volume participation intelligence at every level:
Regression Curve : The fitted centerline represents the trend's statistical best-fit path through the lookback window, with the flow-colored segments revealing whether volume-weighted directional bias above or below the curve was predominantly bullish or bearish across each portion of the window.
Channel Boundaries : The upper boundary with its red glow represents the upper standard deviation limit where price is statistically extended above the regression expectation. The lower boundary with its green glow represents the lower limit where price is statistically extended below.
Gradient Fill Depth : The three-layer gradient within each channel half provides visual depth cues, with the innermost near-transparent fill representing mild deviation and the outermost fully opaque fill representing maximum channel boundary proximity.
Inward Buy Bars (Green) : Lines extending upward from the lower channel boundary reflect the buy-attributed volume portion of each bar. Taller bars indicate greater buying participation. Brighter coloring indicates above-average total volume on that bar.
Inward Sell Bars (Red) : Lines extending downward from the upper channel boundary reflect the sell-attributed volume portion of each bar. Taller bars indicate greater selling participation. Brighter coloring indicates above-average total volume.
Neutral Volume Bars (Gray) : Below-average volume bars render in neutral gray regardless of direction, identifying periods of low participation where the directional split carries reduced analytical significance.
Edge Flares : Bright glowing line segments on the channel boundary mark bars where significant volume occurred close to the boundary edge, identifying high-participation boundary interaction events that frequently precede reversals or continuations from the statistical extremes.
Bound Diamonds : Small colored diamonds at boundary touch initiation bars mark where price first reached the channel edge after a period of interior activity, identifying the onset of boundary interaction sequences.
End Profile : The horizontal bar chart extending from the right edge shows the cumulative volume distribution across the channel's price range for the full regression window, with green segments showing buy-attributed volume and red segments showing sell-attributed volume at each price row. The longest bars identify the price levels with the greatest total participation concentration.
Colored Candles : Optional candle coloring reflects whether price is above or below the regression centerline, providing a continuous directional bias reference directly on the price chart.
Boundary proximity, inward bar height and direction, edge flare frequency, centerline flow coloring, and end profile distribution collectively provide more analytical depth than any element in isolation.
Signal Logic & Visual Cues
Volume Regression Channel does not generate discrete buy or sell signals but provides continuous structural and volume participation reference through several interaction cues:
Edge Flare Events : High-volume boundary proximity bars highlighted by bright edge flares identify exceptional participation at the statistical extremes, marking the bars most likely to precede structural reactions from channel boundaries.
Bound Diamond Initiation : Diamond markers at the first bar of new boundary touches identify where price has newly entered channel extreme territory, providing early warning of boundary interaction sequences before their outcome is determined.
Centerline flow segment coloring provides ongoing directional pressure context across the full window, with color and width encoding whether the volume-weighted bias at each point in the regression history was bullish, bearish, or neutral.
Strategy Integration
Volume Regression Channel fits within regression-informed structural and volume-participation-based analytical approaches:
Boundary Interaction Trading : Use channel boundary touches combined with edge flare presence as elevated-significance interaction events. High-volume flares at the boundary suggest meaningful participation at the statistical extreme that frequently precedes a reaction back toward the centerline or a volume-supported continuation beyond it.
End Profile Acceptance Reading : Use the end profile distribution to identify the price rows with the greatest cumulative participation concentration. Price returning to high-volume profile rows encounters levels where the greatest historical participation occurred within the regression window, making them structurally significant references for support, resistance, or reversion.
Inward Bar Volume Divergence : Monitor situations where price is approaching a boundary but inward bar height from the opposing direction is increasing, indicating growing participation against the directional move and potentially signaling that the boundary interaction will result in rejection rather than continuation.
Centerline Flow Direction : Use centerline flow coloring as a mid-channel directional bias indicator. Sustained green flow segments suggest dominant buying pressure within the regression window. Sustained red segments suggest dominant selling. Neutral gray segments indicate a contested equilibrium without clear directional participation weight.
Regression Mode Selection : Use Polynomial mode for markets with visible curvature in their trend structure where the quadratic bend produces a more accurate fit. Use Linear mode for markets trending in a straight consistent direction where the polynomial's additional degree of freedom would overfit noise.
Profile Distribution Skew Analysis : Compare the buy and sell distribution balance in the end profile to assess whether the window's participation was predominantly concentrated above or below the centerline, providing a volume-based directional bias reading that complements the price-based trend assessment.
Technical Implementation Details
Regression Engine : Matrix OLS with design matrix construction, normal equation formation, matrix inversion, and prediction array application for linear or polynomial curve fitting to HL2
Channel Construction : Standard deviation-scaled channel width with three-layer gradient polyline fills and triple-line glow boundaries following the regression curve
Inward Volume System : Window-maximum normalization with close-position buy-sell splitting, dynamic width scaling by relative volume, and above-average volume color intensification
Edge Flare System : Volume multiplier threshold combined with boundary zone percentage proximity testing with dual-layer glow line rendering and width scaling by relative volume
Centerline Flow : Sixty-segment volume-weighted close-position bias computation with directional color and width encoding
End Profile : Overlap-weighted row accumulation across the full regression window with three-point smoothing, normalization, and horizontal buy-sell bar rendering with curved outline polyline
Performance Profile : All rendering triggered on last bar with full object cleanup and rebuild each cycle, configurable regression length capped at 490 bars for object management
Optimal Application Parameters
Timeframe Guidance:
1 - 5 min : Intraday regression flow tracking with shorter length and tighter SD multiplier for fast-adapting channel that captures intraday trend structure with responsive volume distribution
15 - 60 min : Session-level structural volume analysis with balanced regression length and moderate SD multiplier for meaningful channel geometry across typical session directional moves
4H - Daily : Swing-level regression channel profiling with longer lookback and polynomial mode for a curve-following channel spanning multi-session trend structures
Suggested Baseline Configuration:
Regression Length : 236
SD Multiplier : 1.75
Mode : Polynomial
Volume SMA : 15
Bar Height (ATR×) : 2.1
Show Edge Flares : Enabled
Show Bound Diamonds : Enabled
Show Centerline : Enabled
Show End Profile : Enabled
Color Candles : Enabled (requires disabling original chart candles in chart settings)
These suggested parameters should be used as a baseline; their effectiveness depends on the instrument's volatility characteristics, volume behavior, and preferred channel sensitivity, so fine-tuning is expected for optimal performance.
Parameter Calibration Notes
Use the following adjustments to refine behavior without altering the core logic:
Channel too wide or narrow : Adjust SD Multiplier to expand or contract the channel width relative to the instrument's typical deviation from the regression curve, calibrating boundary distance to realistic price excursion ranges.
Curve fits too loosely to recent price : Decrease Regression Length to shorten the lookback window, producing a tighter curve that adapts more quickly to recent structural changes. Switch to Polynomial mode if visible trend curvature is present.
Inward bars too tall or short : Adjust Bar Height (ATR×) to scale the maximum inward bar height, making volume bars more prominent during high-participation sessions or more subtle on instruments with lower volume variance.
Too many or too few edge flares : Increase Flare Volume Multiplier to restrict flares to only exceptional volume events, or adjust Flare Edge Zone % to control how close to the boundary price must be before a flare qualifies.
End profile too wide or compact : Adjust Profile Width to control the maximum horizontal extent of the end profile bars, calibrating the profile size to the available chart space at the current zoom level.
Profile rows too coarse or granular : Adjust Profile Rows to increase or decrease vertical resolution, with higher values providing finer detail across the channel's price range and lower values producing broader, more readable rows.
Too many bound diamonds cluttering the chart : The diamond system marks only first-bar boundary touches. On instruments with frequent boundary contact the marker density may be high. Disable Show Bound Diamonds and rely on edge flares alone for boundary interaction identification.
Adjustments should be incremental and evaluated across multiple session types rather than isolated market conditions.
Performance Characteristics
High Effectiveness:
Trending markets where the regression curve provides an accurate fit to the directional price path and the channel boundaries represent meaningful statistical extremes with genuine participation significance
Liquid instruments with consistent volume where the buy-sell splitting produces reliable directional participation readings and the end profile accumulates a statistically meaningful distribution across the regression window
Boundary interaction strategies where edge flares and bound diamond markers identify high-participation channel extreme events that frequently precede structural reactions
Distribution analysis workflows where the end profile provides a regression-relative volume profile summary that replaces or complements standalone volume profile indicators
Reduced Effectiveness:
Choppy, directionless markets where the regression curve has no clear shape and channel boundaries are penetrated frequently without the sustained trend structure required for meaningful boundary interaction analysis
Low-liquidity instruments where thin volume produces unreliable buy-sell splits and end profile distributions that reflect random participation patterns rather than genuine directional flow
Markets with frequent gaps where the HL2 series used for regression produces curves distorted by discontinuous price events that shift the channel relative to actual price structure
Very short regression windows where insufficient bars per channel row produce end profiles dominated by noise rather than statistically meaningful participation concentration
Consolidation environments where price oscillates near the regression centerline without reaching channel boundaries, reducing the analytical value of edge flares and bound diamonds while producing uniformly short inward bars
Integration Guidelines
Confluence : Combine with BOSWaves momentum tools, order block analysis, or structural indicators to validate channel boundary interactions and edge flare events with broader analytical context
End Profile Reference : Use the end profile distribution as a volume-based reference layer for price levels visited by price within the regression window. High-volume rows in the profile identify price levels with the greatest historical participation concentration, making them structurally significant references for future interaction.
Inward Bar Divergence Monitoring : Monitor inward bar height on opposing sides as price approaches boundaries. Growing opposing-side bars during boundary approach suggest increasing counter-directional participation that may oppose the boundary continuation.
Regression Mode Consistency : Maintain a consistent regression mode when using the channel as an ongoing structural reference. Switching between Linear and Polynomial shifts the curve and redistributes the channel geometry, making successive comparisons of profile distribution and boundary levels unreliable.
Centerline Cross Awareness : Treat price crossing the regression centerline as a potential flow transition event. Combined with a centerline flow segment color change from one direction to the other, centerline crossings with above-average volume suggest genuine directional repositioning within the channel structure.
Disclaimer
Volume Regression Channel is a professional-grade regression-anchored volume flow analysis tool. It uses OLS curve fitting with close-position volume splitting and cumulative profile construction but does not predict future price movements. Results depend on market conditions, instrument volume characteristics, parameter selection, and disciplined execution. BOSWaves recommends deploying this indicator within a broader analytical framework that incorporates momentum context, order flow analysis, and comprehensive risk management. Indicator

Adaptive SuperTrend AI - Regime-Tuned [Dots3Red]📈 ADAPTIVE SUPERTREND AI — REGIME-TUNED
Classic SuperTrend uses one fixed ATR multiplier forever. That single number is a compromise: tight enough to track trends closely, it whipsaws during ranges; wide enough to survive ranges, it lags badly once a real trend starts. This script replaces the fixed multiplier with one that changes based on what kind of market is actually happening, using the same regime-detection engine shared across the Dots3Red catalog.
🧠 THE REGIME ENGINE
Every bar is classified into one of four states using ADX and the Choppiness Index together:
• 📈 TRENDING — ADX confirms directional strength and Choppiness confirms low chop
• 🔁 RANGING — the opposite: weak directional strength, high chop
• ⚡ VOLATILE — current ATR has expanded well beyond its baseline, regardless of direction or chop
• ❔ UNCERTAIN — none of the above conditions are clearly met
The raw regime reading is smoothed by taking the most frequent classification over a short lookback window, so a single noisy bar can't flip the regime label back and forth.
🤔 WHY RANGING GETS THE WIDEST BAND, NOT TRENDING
This is the part that looks backwards at first glance, so it's worth explaining directly. A ranging market chops back and forth around a mean — if the band were narrow here, ordinary noise would cross it constantly, causing false flips. So RANGING gets the widest multiplier (default 3.5×), letting normal chop stay inside the band. A TRENDING market is moving with genuine conviction, so a moderate multiplier (default 2.5×) tracks the move closely without giving back excessive profit before flipping on an actual reversal. VOLATILE conditions get the widest multiplier of all (default 4.5×) as a purely defensive setting, since sudden expansion is unpredictable by nature.
When the regime changes, the active multiplier doesn't jump to its new value instantly — it glides toward it over a configurable number of bars. This prevents the band from visibly teleporting on a regime transition, which would otherwise look jarring and could itself trigger a false flip right at the transition point.
The underlying band mechanics — the ratcheting upper/lower band logic, and a flip only when price closes beyond the active band — are the same as classic SuperTrend. Only the multiplier driving the band width is dynamic.
✅ THE CONFIDENCE LAYER
A SuperTrend flip is a single binary event: price crossed the band, direction changed. This script adds a secondary read on how convincing that flip actually is, using 8 independent checks against the new direction:
1. Close vs. a trend moving average
2. MACD histogram sign
3. Recent higher-high / lower-low structure
4. Close vs. the SuperTrend's own midline (hl2)
5. RSI side of 50
6. +DI vs. -DI dominance
7. Volume above its moving average on a trend-direction bar
8. Whether the regime is currently TRENDING
Every confirmed flip shows this count directly on its label — "▲ 6/8" means 6 of the 8 checks currently agree with the new uptrend. A flip with 7/8 agreement and one with 3/8 are treated identically by the raw band mechanics, but this layer gives a way to distinguish a well-supported flip from a marginal one at a glance.
🎯 FLIP WIN-RATE TRACKING
Each flip is graded once the following flip occurs: did price actually finish above the flip price (for an up-flip) or below it (for a down-flip) by the time direction changed again? This produces a running win rate — for example "58% (n=34)" — shown in the dashboard. It is a simple, honest measure of how the flips on this specific chart have actually played out, not a backtest or a promise about future flips.
🔒 NON-REPAINTING
Flips, confidence readings, and labels are all evaluated only on confirmed (closed) bars. A flip that appears on the chart will not later disappear or move to a different bar as new price data arrives.
🎨 VISUALS AND CUSTOMIZATION
The SuperTrend line and gradient fill are colored by current direction. Flip labels appear directly on confirmed flip bars with their confidence count. An optional background tint can shade the chart by current regime. All four core colors (bullish, bearish, volatile/warning, and uncertain/neutral) are fully customizable in settings, independent of the script's default palette.
The dashboard (position configurable) shows: current direction, current regime, the active ATR multiplier, the confidence count with a progress bar, the running flip win rate, and the raw ADX, Choppiness, and ATR ratio readings behind the regime classification.
🧭 HOW TO USE
👀 Reading the line and fill — the colored line and gradient fill show current direction at a glance. This is the same information classic SuperTrend gives you; the difference here is in how the band width behind that line was chosen.
🧠 Check the regime before trusting the band width — the dashboard's Regime row tells you why the band is currently as wide (or narrow) as it is. A band that looks unusually wide isn't a bug — it likely means the engine has classified the market as RANGING or VOLATILE and widened defensively. Knowing the current regime helps set expectations for how the band will behave if conditions stay the same.
✅ Use the confidence count to gauge flip quality, not to filter flips — every flip is real and non-repainting regardless of its confidence count. The count is a lens for judging how broadly supported a given flip is, not a gate that decides whether one occurs. A "▲ 7/8" flip and a "▲ 3/8" flip both mean the band was crossed; the number tells you how much independent agreement existed at that moment, which is useful context when deciding how much weight to put on that particular signal versus your own analysis.
🎯 Watch the flip win rate as a running self-check on this chart — because it only starts once flips have accumulated and been graded, treat an early or low-sample win rate as inconclusive rather than a verdict. It becomes more informative the longer the script runs on a given symbol and timeframe.
🔔 Regime changes are themselves informative — the alert for a regime change fires independently of any flip. A shift from RANGING to TRENDING, for example, can be useful context on its own, since it signals the band is about to glide toward a different multiplier even before any flip occurs.
🚫 This script describes band behavior, not entries or exits — it does not tell you when to open or close a position. Use it as one input alongside price action, structure, and whatever other analysis you already rely on.
⚙️ SETTINGS
📈 SuperTrend Core
• ATR Length
• Factor — Trending / Ranging / Volatile / Uncertain — the four regime-driven multipliers
• Factor Transition (bars) — how gradually the multiplier glides between regimes
🧠 Regime Engine
• ADX Length, Choppiness Length, ATR Baseline Period
• Trending / Ranging Thresholds — where the combined ADX+Choppiness score is classified
• Volatile ATR Multiple — how far above baseline ATR counts as volatility expansion
• Regime Smoothing — lookback window for the majority-vote smoothing
✅ Confidence Layer
• Trend MA Length, RSI Length, Structure Lookback — parameters for the 8 confidence checks
🎨 Visualization
• Gradient Fill, Flip Labels, Regime Background Tint — each toggleable independently
• Full color customization for all four regime/direction colors
🖥️ Dashboard
• Show/hide, position
📝 NOTES
The regime engine needs a short warm-up period before its smoothing window is fully populated; early bars on a fresh chart may show less stable regime labels than bars further along. The flip win rate starts empty and only becomes meaningful after several flips have occurred and been graded.
⚠️ DISCLAIMER
This is an analytical and visualization tool. It does not generate trade signals and does not constitute financial advice. Historical flip win rate does not guarantee future performance. Indicator

Indicator

Volume Forge█ OVERVIEW
Volume Forge is a modular volume flow analysis panel designed to assess the quality and direction of market activity by combining several complementary volume analysis methods.
Most volume tools answer only one question. Delta shows buying and selling pressure. RVOL indicates whether volume is above average. CMF measures capital flow. Weis Wave determines the direction of the dominant wave, while volume efficiency analysis helps detect absorption. Each of these tools is valuable, but when analyzed separately they present only a fragment of the market picture.
Volume Forge was designed as a modular system because a single volume indicator does not allow the market to be evaluated from a broader perspective. High volume does not yet mean buyer dominance. Positive delta does not necessarily mean capital inflow. Strong money flow does not always translate into an efficient price move. Only the mutual agreement of several independent methods makes it possible to determine whether the observed impulse is truly supported by volume.
Each module analyzes a different aspect of the same phenomenon, while the central element of the indicator is Flow Confluence – a weighted scoring system that compares the results of all components and evaluates the degree of their agreement. Instead of manually analyzing several separate indicators, the user receives one coherent panel that shows both the details of individual metrics and their final assessment.
The result is a tool that allows multidimensional volume analysis – from short-term buying and selling pressure, through relative market activity strength and capital flow, to the evaluation of signal agreement and the detection of potential signs of trend exhaustion.
█ CONCEPTS
Delta Oscillator
Delta Oscillator is the main module of the indicator and is responsible for assessing the direction of buying and selling pressure. Instead of using real delta from the futures market, it uses approximate directional volume calculated from the relationship between the candle's open and close, scaled by the candle's total range. The values are then accumulated and smoothed, creating an oscillator that shows the dominance of one side of the market.
Delta primarily answers the question:
Is buying or selling pressure currently dominant?
Relative Volume (RVOL)
RVOL compares current volume with its historical average, showing whether market activity is average, elevated or extreme.
The direction of a price move alone says little without information about the strength of market participation. RVOL allows impulses supported by high activity to be distinguished from moves that occur on low volume.
RVOL answers the question:
Is the current move taking place on sufficiently high volume?
Chaikin Money Flow (CMF)
CMF analyzes capital flow by taking into account both volume and the position of the close within the candle’s range.
Unlike Delta, which measures short-term directional pressure, CMF shows whether capital is actually flowing into or out of the instrument. This allows it to confirm or challenge signals generated by the other modules.
CMF answers the question:
Is money actually flowing into the market?
Volume Efficiency / Climax
High volume does not always lead to a large price move. Sometimes the market generates very high activity while the price remains almost motionless.
The Volume Efficiency module identifies exactly these situations by comparing the size of the price move with volume and filtering them relative to ATR. High volume with low efficiency may indicate absorption or the final phase of an impulse.
This is an informational module that provides additional context but does not affect the final Flow Confluence score.
Weis Wave
Weis Wave presents the direction of the dominant market wave instead of analyzing individual candles.
The module uses ATR-based volatility to determine moments of direction change and displays a subtle background that shows the currently dominant wave.
It answers the question:
What is the broader direction of market movement?
Flow Confluence
Flow Confluence is the most important element of the entire indicator.
It is not another oscillator, but analyzes the agreement of all the remaining modules. Delta, Delta direction, RVOL, CMF level, CMF direction and Weis Wave cast votes for the buying or selling side. Each component has its own weight, so the user can decide which elements should have the greatest importance.
The Flow Confluence table shows both the number of agreeing modules and the final point score. Signals appear only when the obtained score exceeds the defined threshold.
Flow Confluence answers the question:
Do all volume analysis methods point in the same direction?
Divergence Detection
The final layer is the analysis of divergences between price and the Delta oscillator.
If price makes a new extreme while Delta does not confirm the move, this may indicate weakening pressure from one side of the market and increase the probability of a correction or trend reversal.
Divergences serve a warning function and provide additional context when interpreting the other modules.
Why combine multiple volume tools?
Each method analyzes a different aspect of volume flow:
• Delta → Who currently dominates – buyers or sellers?
• RVOL → Is market activity high enough?
• CMF → Is capital actually flowing in or out?
• Volume Efficiency → Does volume translate into price movement, or is it being absorbed?
• Weis Wave → What is the dominant direction of the broader wave?
• Flow Confluence → Do all modules confirm the same scenario?
• Divergences → Is price starting to diverge from volume?
█ FEATURES
Oscillator Settings
• Show Delta Oscillator – displays the main Delta oscillator together with gradient fill. Hiding the oscillator does not disable its calculations – the module continues to participate in the Flow Confluence scoring.
• Cumulative Delta Length – number of bars used to calculate cumulative directional volume.
• Smoothing Length (EMA) – length of the EMA that smooths the Delta oscillator. Higher values produce a smoother but slower-reacting oscillator.
• Delta Area Gradient Transparency – sets the transparency of the fill between the Delta oscillator and the zero level.
RVOL Settings
• Show RVOL Histogram – displays the Relative Volume histogram. Hiding the histogram does not disable calculations – RVOL continues to feed the Climax and Flow Confluence modules.
• RVOL Average Length – number of bars used to calculate the average reference volume.
• Threshold – Weak – level above which volume is considered slightly elevated.
• Threshold – Medium – medium-high volume level. It is also used by the Flow Confluence scoring.
• Threshold – Strong – defines the strong Relative Volume level.
• Threshold – Extreme – defines the exceptionally high volume level used for the strongest histogram highlighting.
CMF Settings
• Show CMF – displays the Chaikin Money Flow wave above the overbought level and below the oversold level.
• CMF Period – number of bars used for Chaikin Money Flow calculations.
• CMF Gradient Transparency – sets the transparency of the CMF wave gradient fill.
Volume Efficiency
• Show Climax / Absorption Markers – displays markers on candles where very high volume did not translate into a correspondingly large price move, which may indicate absorption or culmination of activity.
• Efficiency Normalization Period – number of bars used to normalize volume efficiency.
• RVOL Threshold for Climax / Absorption – minimum Relative Volume required to classify a candle as potential absorption.
• Max Normalized Efficiency – maximum allowed price move efficiency. Lower values result in more selective absorption detection.
• Max Candle Range relative to ATR – prevents large impulsive candles from being marked as absorption by limiting their maximum range relative to ATR.
Weis Wave – Oscillator Background
• Highlight background by Weis Wave direction – colors the pane background according to the direction of the current Weis Wave.
• ATR Length – ATR period used to determine the minimum move required to change wave direction.
• ATR Multiplier – determines how large a price move is required to reverse the Weis Wave direction.
• Highlight Transparency – transparency of the Weis Wave background.
• Highlight Height – height of the highlighted area above the overbought level or below the oversold level.
Divergence Settings
• Enable Divergence Detection – activates detection of divergences between price and the Delta oscillator.
• Pivot Length (Left / Right) – number of bars required to confirm local pivots used when searching for divergences.
Threshold Levels
• Overbought Threshold – defines the Delta oscillator level considered market overbought.
• Oversold Threshold – defines the Delta oscillator level considered market oversold.
• OB/OS Line Width – thickness of the overbought and oversold level lines.
• OB/OS Gradient Transparency – Close to Level – sets line visibility when the oscillator is near the level.
• OB/OS Gradient Transparency – Far From Level – sets line visibility when the oscillator is far from the level.
Flow Confluence
• Show Flow Confluence Table – displays the table summarizing all modules participating in the scoring.
• Table Position – sets the position of the table on the chart.
• Table Text Size – sets the font size.
Flow Confluence – Weights
Each module can receive its own weight that determines its influence on the final point score.
• Weight: Delta Oscillator – points awarded for the oscillator position relative to the zero level.
• Weight: Delta Direction – points awarded for the rise or fall of the Delta oscillator.
• Weight: RVOL – points awarded when Relative Volume exceeds the medium threshold in line with candle direction.
• Weight: CMF Level – points awarded for confirmation of positive or negative capital flow.
• Weight: CMF Direction – points awarded for accelerating or weakening capital flow.
• Weight: Weis Wave – points awarded for agreement with the direction of the current Weis Wave.
Flow Confluence – Signals
• Enable Flow Confluence Signal – displays BUY and SELL diamonds after the score exceeds the defined threshold.
Signals appear while the candle is still forming, but due to price fluctuations they may also disappear during that time. The signal becomes permanent and does not disappear only after the candle closes.
• Minimum score for a signal – minimum number of points required to generate a signal.
• Signal only on first occurrence – prevents multiple signals from being displayed while the same condition remains active.
• Buy Signal Color – color of the bullish diamonds.
• Sell Signal Color – color of the bearish diamonds.
Colors
• Zero Line – color of the Delta oscillator zero level.
• Bullish Color – main color used by all positive elements of the indicator.
• Bearish Color – main color used by all negative elements of the indicator.
█ APPLICATIONS
Assessing the quality of market moves
The primary use of the indicator is to evaluate whether the current price move is truly supported by volume. By analyzing several independent metrics the user receives a much more complete picture than when using a single volume indicator.
Filtering weak impulses
Not every dynamic price move is backed by adequate volume. Volume Forge helps distinguish impulses supported by real market activity from moves that occur with weak volume confirmation.
Detecting volume absorption
The Climax module identifies situations in which very high volume does not translate into a correspondingly large price move. This may indicate order absorption by larger market participants, profit-taking or gradual exhaustion of the impulse.
Confirming trend direction
Simultaneous analysis of Delta, CMF and Weis Wave makes it possible to determine whether the dominant market direction is confirmed by different aspects of volume flow.
Detecting potential reversals
Divergences between price and the Delta oscillator can signal weakening buying or selling pressure even before a clear trend change appears.
Building a custom volume analysis model
Thanks to the ability to individually weight each module, the user can create their own market assessment model. For example, one trader may place greater emphasis on Delta and RVOL, while another may consider CMF and Weis Wave more important elements of their strategy.
█ NOTES
• Hiding a given module affects only its display. Calculations continue to run in the background and remain available to the Flow Confluence system.
• The Climax / Absorption module is purely informational and does not participate in the final scoring.
• Divergences indicate a discrepancy between price and the Delta oscillator and should be treated as a warning signal, not an automatic reversal signal.
• Flow Confluence signals are best used as a confirming element of market analysis together with structure, price action, support and resistance zones, momentum or other technical analysis tools.
• All module weights are fully configurable, allowing the user to adapt the volume assessment model to their own trading style while retaining the same multi-layered volume flow analysis logic. Indicator

Strategy

Razor Fractal MirrorHistorical analog projection and market-state intelligence
Razor Fractal Mirror scans the recent history of the current chart for past price structures that resemble what's happening right now, then projects how those historical structures resolved forward in time — as a probabilistic scenario, not a prediction.
What It Does
1. Structure Matching
The indicator normalizes the last Pattern Length bars (log-return or percent-change shape, user's choice) and compares that shape against thousands of historical windows going back up to the configured Historical Search Depth. Each candidate is scored on three components:
• Shape correlation — how closely the normalized price path matches
• Normalized error — RMSE between the current and candidate paths
• Regime compatibility (optional) — whether the candidate occurred in a similar trend/volatility regime, measured via EMA distance and ATR-normalized volatility
These three scores combine into a single composite similarity score, weighted by user-configurable inputs.
2. Analog Selection
The engine keeps the three strongest, non-overlapping matches — minimum spacing is enforced so it isn't just picking adjacent bars of the same move — that clear the minimum similarity threshold.
3. Forward Projection
For each matched analog, the indicator replays what price actually did in the bars after that historical structure, rescaled proportionally to the current price. These are blended into a similarity-weighted consensus path, with the individual analog paths shown as secondary "mirror" lines and a confidence cloud representing the spread between them.
4. Mirror Quality Scoring
A composite 0–100 score (graded A+ through D) built from average similarity, regime match, path stability (agreement between analogs plus cloud compactness), and outcome reliability (historical reward-to-risk and target-hit rates from those same analogs).
5. Decision Layer
Combines Mirror Quality, analog agreement, projected move size (in ATR), and optional multi-timeframe bias fusion (four configurable timeframes) into a state: ACTIONABLE, WATCH, or AVOID. Includes early and confirmation checkpoints plus a calculated invalidation level.
6. Live Lifecycle Tracking
Once a mirror is locked, the indicator tracks price adherence to the projected path bar-by-bar, flags drift or invalidation in real time, and records the eventual outcome into a rolling forecast library. That library feeds an adaptive "analog reputation" score that adjusts future decision scoring based on how this specific setup's projections have actually performed — and reports whether the model is trending IMPROVING, STABLE, or DEGRADING.
7. Projection Anchoring
Three modes control how projections behave once drawn: Locked Snapshot (freezes the projection at capture so it doesn't repaint as price moves), Hybrid (controlled refresh), and Live Projection (recalculates continuously).
Why It's Useful
Most "pattern matching" tools just eyeball similar-looking chart shapes. This engine quantifies similarity mathematically (correlation, error, and regime fit), requires multiple independent historical analogs to agree before calling a setup actionable, and — critically — tracks its own projections against real subsequent price action so traders can see adherence, drift, and invalidation as they happen rather than only in hindsight.
Why It's Unique
• Analog selection uses a three-factor composite score, not simple pattern-shape correlation alone.
• Self-tracking forecasts: locked projections are graded against real outcomes and feed an adaptive reputation score — the tool has a memory of its own track record.
• Snapshot anchoring prevents repainting of the displayed projection, addressing a common criticism of analog and projection-style indicators.
• Multi-timeframe fusion cross-checks the projected direction against bias and confidence readings from four additional timeframes before flagging a setup actionable.
Important Notes
Historical similarity does not guarantee a repeated outcome. Projections are analytical scenarios derived from historical analog behavior, not financial advice or a guarantee of future price action. Always combine with proper risk management and a trade plan.
Indicator
