Indicator

Rising & Falling Wedge Detector [HexaTrades]Overview
Wedge Detector automatically identifies and draws the two most actionable wedge patterns: the Rising Wedge (bearish) and the Falling Wedge (bullish). It marks each as a converging cone, validates the geometry, waits for a bar-close breakout, then plots a measured-move target and a structure-based stop without repainting the pattern structure.
It is built around quality over quantity: a strict, perfect-shape gate ensures only genuinely converging, textbook wedges appear. Every part of the logic is transparent and tunable. Ideal for swing and intraday traders who trade chart patterns and want an objective, rules-based way to spot wedges and define risk.
What it detects
Rising Wedge( bearish)
Higher highs and higher lows, but the lows rise faster than the highs (the lines converge upward). Signals a likely breakdown confirmed on a close below the lower trendline.
Falling Wedge ( bullish)
Lower highs and lower lows, but the highs fall faster than the lows (the lines converge downward). Signals a likely breakout confirmed on a close above the upper trendline.
How the Indicator Works
- Pivots: confirmed swing highs/lows (locked pivotLen bars after they occur).
- Boundaries: upper line from the two most recent swing highs; lower line from the two most recent swing lows, projected as straight lines.
- Slope & convergence: rising = both up, lows rising faster; falling = both down, highs falling faster (set by Convergence strictness).
- Perfect-shape gate: no crossing inside, real narrowing, minimum contraction, apex ahead, sensible duration, minimum ATR height.
- Forming preview: dashed shaded cone while developing.
- Breakout: bar-close below lower line (rising → bearish) / above upper line (falling → bullish).
- Filters: optional EMA trend, volume, breakout-candle ATR size.
- Targets/stops: measured-move target + opposite-boundary stop, drawn as persistent right-extending lines.
Features
- Automatic detection of rising & falling wedges from confirmed pivots.
- Perfect-shape validation rejects crossing, barely-narrowing, diverging, past-apex, too-small or too-long shapes.
- Forming preview dashed shaded cone before breakout.
- Bar-close breakout confirmation, no intrabar fakes.
- Measured-move target + structure stop (opposite boundary).
- EMA trend filter, volume filter, breakout-candle ATR filter (all optional).
- Theme-aware dashboard + shaded wedge zone + 3 alerts.
Dashboard
Status: Forming while developing → Confirmed on breakout
Last wedge: Rising Wedge / Falling Wedge
Bias: Bearish / Bullish
Target: Projected take-profit level
Stop: Structure-based invalidation level
Filters: EMA / Volume / ATR shown as On / Off
Settings
Detection:
Pivot length: swing sensitivity. Lower = more (and smaller) wedges.
Min wedge height (ATR): rejects wedges smaller than this many ATR.
Convergence strictness: how strongly the lines must converge (higher = stricter).
Min width contraction: minimum narrowing from start to breakout.
Max wedge duration: rejects over-stretched patterns.
Show forming wedge: preview wedges before breakout.
Filters:
EMA trend filter: only confirm breakouts aligned with the EMA (falling wedge above EMA, rising wedge below).
Volume confirmation: requires above-average volume on the breakout candle.
Min breakout candle size: require a breakout candle of at least N×ATR.
Visuals
Toggle target/stop lines, colors for bullish/bearish / forming, and the dashboard.
Alerts:
Rising Wedge breakdown:bearish confirmation.
Falling Wedge breakout: bullish confirmation.
Any wedge confirmed - either of the above.
Create alerts with “Once per bar close” for non-repainting behaviour.
Trading Guide
- Identify: dashboard Status = Forming + clean dashed cone.
- Enter: on the bar-close breakout (▲/▼) in the wedge's direction.
- Avoid: when filters reject the breakout, or in choppy ranges.
- Stop: the drawn SL (opposite boundary). Target: the drawn TP (measured move).
- Risk: size so breakout→stop is an acceptable risk; R:R = (TP−entry) ÷ (entry−SL).
Bullish Example (Falling Wedge)
Down-trend forms a dashed falling cone → a candle closes above the upper line → ▲ prints, wedge turns solid green, Status = Confirmed → enter, SL = lower line, TP = breakout + wedge height.
Bearish Example (Rising Wedge)
Up-grind forms a dashed rising cone → a candle closes below the lower line → ▼ prints, wedge turns solid red → enter short, SL = upper line, TP = breakout − wedge height.
Best Markets & Timeframes
Markets: works on crypto, forex, stocks, indices, futures, commodities. Best on liquid instruments with clean swings (the volume filter is most meaningful on stocks/indices).
Timeframes: 5m/15m = more signals, more noise (use stricter filters); 1H/4H = the sweet spot; Daily/Weekly = highest quality, fewer & slower.
We would love to hear your suggestions. If you have ideas for new features, indicators, analytics, or improvements, please share your feedback. Your input helps guide future updates and improve the indicator for all traders.
Wedge pattern detector indicator is for educational and analytical purposes only. It is not financial advice. Trading involves risk. Always use proper risk management and combine this indicator with your own analysis before taking any trade.
Indicator

Pressure Reversal Engine [JOAT]Pressure Reversal Engine
Introduction
Pressure Reversal Engine is an open-source pressure and absorption indicator. It estimates buy and sell participation from candle location, body behavior, direction, and volume, then looks for cases where aggressive participation fails to produce continuation.
The script is designed for traders who want to identify absorption, pressure mismatch, reclaim/reject behavior, and stacked imbalance areas without relying on true bid/ask data.
Core Concepts
1. Estimated Buy/Sell Pressure
The pressure model uses close position within the candle, candle body, direction, and volume. This creates a deterministic approximation that works on symbols where true bid/ask volume is not available.
2. Absorption Detection
Absorption is identified when strong estimated pressure fails to move price in the expected direction. Demand absorption and supply absorption are tracked separately.
3. Pressure Profile
A rolling profile divides the recent price range into rows and estimates where buy and sell pressure accumulated. The profile highlights skew, POC, value area, and imbalance zones.
4. Reclaim and Reject Logic
Swing references help identify whether price reclaimed a prior level or rejected from it. These events can combine with pressure mismatch to create long or short setup states.
5. Stacked Pressure Clusters
Consecutive bars with strong pressure and volume expansion create cluster boxes. These show areas where participation repeatedly appeared.
Features
Buy/sell pressure estimation: Uses candle anatomy and volume to approximate directional participation.
Absorption states: Detects when demand or supply fails to follow through.
Rolling pressure profile: Displays POC, value area, and pressure skew.
Stacked pressure boxes: Highlights repeated pressure bursts over several bars.
EMA regime filter: Optional trend filter for long and short setups.
Entry and exit state zones: Shows confirmed pressure reversal and risk-off states.
ATR stop/target rails: Uses volatility-adjusted projections for setup review.
Pressure candle coloring: Bars can reflect active pressure state.
Dashboard: Shows pressure state, profile skew, POC, value area, absorption, regime, volume, and stack status.
Alerts: Long setup, short setup, long exit, short exit, demand absorption, and supply absorption.
Input Parameters
Core: Pressure Profile Lookback, Profile Rows, Pressure Gate, Value Area.
Signals: Entry / Exit State Zones, EMA Regime Filter, Fast EMA, Slow EMA, Swing Left, Swing Right, Projection Bars, Signal Cooldown Bars, Stored Trade Plans.
Cluster, Risk, and Visuals: Stacked Pressure Boxes, Minimum Stack Bars, Stack Volume Boost, ATR Stop, Target 1 ATR, Target 2 ATR, Right Pressure Profile, Pressure Candle Color, Dashboard, Profile Right Offset.
How to Use This Indicator
Step 1: Read the pressure state
Use the dashboard to see whether bid pressure, ask pressure, absorption, or idle conditions dominate.
Step 2: Watch for failed participation
The strongest reversal information appears when pressure is high but price fails to continue in that pressure direction.
Step 3: Use value area and POC as context
Reversals near the pressure POC or value area edge can have different meaning than signals in empty areas.
Indicator Limitations
Pressure is estimated from candle and volume data; it is not true exchange order flow.
Rolling profiles are approximations and depend on lookback and row settings.
Signals can be delayed by confirmed-bar logic.
Markets with poor volume data can reduce profile usefulness.
Originality Statement
Pressure Reversal Engine is original in the way it combines candle-derived pressure, rolling pressure profile rows, absorption logic, reclaim/reject behavior, stacked pressure clusters, and ATR risk projections into one open-source Pine Script v6 tool.
Disclaimer
This script is provided for educational and informational purposes only. It is not financial advice or a recommendation to trade. Estimated pressure can be wrong, and all signals can fail. Use proper risk management.
Made with passion by jackofalltrades
Indicator

Auric Reference Crucible [JOAT]Auric Reference Crucible
Introduction
Auric Reference Crucible is an open-source reference-price state engine. It tracks daily open, weekly open, monthly open, and previous close, then classifies how price behaves around each anchor.
The indicator is built for traders who use opening prices and prior closes as decision levels but want a structured way to separate untouched levels, tests, reclaims, rejections, and active control.
Core Concepts
1. Multi-Timeframe Reference Anchors
Daily, weekly, and monthly opens are tracked as higher-timeframe anchors. Previous close is tracked separately. Each reference can be enabled or disabled.
2. Anchor State Classification
Each reference is classified by interaction state: untouched, touched, tested, reclaimed, rejected, or active control. This creates a state machine instead of a static horizontal-line tool.
3. ATR Touch and Reaction Bands
ATR defines touch distance and reaction band thickness so levels adapt to each symbol's current volatility.
4. Control Score
The script scores anchors using state, distance, pressure, and reaction behavior. The strongest anchor becomes the active control reference.
5. Reclaim and Reject Execution Zones
When the active reference and confirmation logic agree, the script can draw compact long or short execution rails with entry, stop, TP1, and TP2.
Features
Daily, weekly, monthly, and previous close references: Core anchors used for session and swing context.
Reference state machine: Tracks touch, test, reclaim, and reject behavior.
Dominant control anchor: Scores references so the most relevant level is emphasized.
ATR reaction bands: Volatility-adjusted zones around active references.
Confirmed state changes: Optional confirmed-bar logic reduces intrabar repaint risk.
Execution rails: Optional long/short plans with stop and target references.
Fade untouched anchors: Keeps inactive references less visually dominant.
Dashboard: Shows anchor state, bias, and control information.
Alerts: Anchor touch, reclaim, reject, long crucible, and short crucible.
Input Parameters
References: Show Daily Open, Show Weekly Open, Show Monthly Open, Show Previous Close.
Signals: Touch Zone ATR, Reaction Band ATR, Reclaim Confirmation Bars, Wick Rejection Multiple, Confirmed-Bar State Changes.
Execution and Visuals: Trend Filter EMA, Pressure Window, Minimum Control Score, Stop ATR, TP1 R, TP2 R, Execution Cooldown Bars, Stored Setup Zones, Reaction Bands, Dashboard, Execution Rails, Signal Zones, Reference Price Tags.
How to Use This Indicator
Step 1: Identify the active reference
Start with the dashboard. It shows which anchor is currently most relevant and whether price is treating that anchor as bullish, bearish, or neutral.
Step 2: Watch reclaim and reject states
A reclaim means price moved back through a reference with confirmation. A reject means price tested the area and failed to hold through it.
Step 3: Use execution rails after confirmation
When a long or short crucible appears, use the plotted entry, stop, and target references as a structured review plan.
Indicator Limitations
Higher-timeframe opens update according to exchange/session boundaries.
Reference levels are context zones, not automatic entries.
ATR bands widen during volatility expansion and narrow during quiet periods.
Confirmed-bar mode means some state changes appear after the bar closes.
Originality Statement
Auric Reference Crucible is original in its reference-state approach. It does not simply plot opens and closes; it classifies anchor behavior, scores active control, adapts reaction zones with ATR, and optionally converts confirmed reclaim/reject behavior into structured execution rails.
Disclaimer
This script is provided for educational and informational purposes only. It is not financial advice and should not be treated as a recommendation to buy or sell. Reference prices can fail, especially during news, gaps, and thin liquidity. Use proper risk management.
Made with passion by jackofalltrades
Indicator

Adaptive Forecast Bands [JOAT]Adaptive Forecast Bands
Introduction
Adaptive Forecast Bands is an open-source adaptive regression and mean-reversion framework. It estimates a live fair-value path from price, wraps that path in volatility-aware bands, and marks confirmed re-entry conditions only after the bar closes.
The problem this indicator solves is context around stretched price. A static moving average band can lag badly when volatility changes. Adaptive Forecast Bands uses a recursive regression engine, a live model error estimate, and an ATR blend so the envelope expands and contracts with current market behavior.
Core Concepts
1. Adaptive Regression Mean
The centerline is built from a persistent two-parameter regression state. The script uses normalized local time so the model does not depend on raw bar index growth over long histories.
forecastMean = beta0 + beta1 * xNorm
forecastErr = source - forecastMean
2. Error-Based Confidence Bands
Band width is derived from the model's exponentially weighted error plus an ATR component. This keeps the band reactive to both forecast error and realized volatility.
3. Confirmed Re-Entry Signals
The script arms a long or short setup when price reaches an outer band. A signal only prints when price confirms a re-entry back through the relevant band on `barstate.isconfirmed`.
4. Forecast Guide Lines
The right-edge guide projects the current regression slope forward for visual context. It is a guide, not a prediction, and is redrawn on the last bar to avoid object clutter.
Features
Adaptive fair-value line: Recursive regression centerline based on current price behavior
Volatility-aware envelope: Error variance and ATR combine to form dynamic upper/lower bands
Confirmed long/short labels: Re-entry signals use closed-bar logic
Right-edge forecast guide: Dashed and dotted guide lines show current slope context
Top-right dashboard: Bias, confidence, band width, slope, guide state, and signal state
Alert conditions: Long and short confirmed re-entry events
Input Parameters
Model:
Source: Price source used by the model
Forgetting Factor: How quickly the model adapts to new price information
Regression Horizon: Normalization horizon for the regression slope
Band Multiplier: Multiplier applied to model error
ATR Blend: Extra realized-volatility padding in the band width
Rebase Interval: Periodic reset to keep the adaptive model stable
How to Use This Indicator
Step 1: Use the centerline as an adaptive fair-value reference.
Step 2: Treat outer-band touches as stretched conditions, not immediate entries.
Step 3: Wait for confirmed re-entry labels when enabled.
Step 4: Read the dashboard confidence and slope before interpreting the signal.
Indicator Limitations
The right-edge guide is a visualization of current model slope, not a forecast guarantee
Mean-reversion signals can underperform during strong directional trends
The model periodically rebases by design to reduce long-history numerical drift
Signals are confirmed on closed bars and can appear after the intrabar extreme occurred
Originality Statement
Adaptive Forecast Bands is an original JOAT implementation combining normalized recursive regression, error-based confidence bands, ATR blending, confirmed re-entry logic, and a compact interpretive dashboard. It does not copy third-party source code.
Disclaimer
This open-source indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves risk, and historical behavior does not ensure future results. Always use proper risk management.
-Made with passion by jackofalltrades
Indicator

Breakout and Retest Signals - FloAlgoThis indicator detects breakout and retest signals by identifying key pivot zones and validating price rejection through wick sweeps and volume analysis.
How It Works
The script operates in three stages:
Pivot Zone Detection — Identifies swing highs and lows, then constructs zones anchored to the candle body and wick that formed the pivot. Demand zones span from body top down to wick low; supply zones span from wick high down to body bottom.
Rejection Validation — Confirms a valid signal when price sweeps beyond the zone extreme (wick tip) and closes back through the zone body, indicating institutional liquidity capture.
Volume Confirmation — Uses lower timeframe volume delta and buy/sell ratio to validate signal strength, filtering weak rejections with insufficient conviction.
Key Advantages
No Repaint — Single-period pivot detection ensures signals fire on confirmed historical bars, eliminating repaint delay between alert and visual.
Fixed Width Zones — Zones do not grow indefinitely; they are drawn with fixed horizontal width and trimmed only on signal, keeping charts clean.
Range-Based Overlap Guard — Demand and supply zones cannot overlap; range-based checking prevents conflicting zones from occupying the same price area.
Professional Visuals — No text labels or arrow clutter; only shaded zones and volume ratio splits for clean, professional appearance.
Accurate Zone Geometry — Zones anchored to actual candle body and wick formations, not flat ATR bands.
Auto-Cleanup — Zones are automatically removed one bar after signal or on expiry, preventing chart clutter.
Seconds Chart Support — Volume timeframe input guarded to prevent errors on sub-minute charts.
No Signal Conflicts — Removed confirmation divisor that caused opposing signals on the same bar.
Zone Lifecycle
Unlike traditional indicators that grow zones indefinitely, this script uses a fixed-width approach:
Zones are drawn from the pivot candle to a fixed future bar (born + maxLife)
Upon signal, the zone right edge is trimmed to the signal bar
The zone remains visible for one bar after the signal, then is automatically removed
Expired zones without signals are cleanly purged to prevent chart clutter
Visual Elements
Shaded boxes marking demand (green) and supply (red) pivot zones
Volume ratio split boxes within zones showing buy/sell pressure balance
Dashed target projection lines from signal bars
Zone borders fade and thin out after signal confirmation
Key Settings
Swing Length — Sensitivity of pivot high/low detection
Max Bars Active — Fixed horizontal width of zones in bars
Min Bars Between — Minimum bars between consecutive signals
Max Zones Per Side — Maximum active zones per direction
Volume TF — Frame for volume delta analysis
Show Ratio Split — Display buy/sell volume ratio inside zones
Show TP Line — Display target projection lines
Indicator

Aurelian Auction Ledger [JOAT]Aurelian Auction Ledger
Introduction
Aurelian Auction Ledger is an open-source range and auction analysis overlay designed to identify compressive trade zones, map their internal value structure, and show how price behaves when it tests the edges of that ledger. The script builds a live range shell, calculates a point of control and value area, tracks sweep events, and presents the active auction state in a top-right dashboard.
The problem Aurelian solves is hidden range structure. Consolidation zones are often treated as simple rectangles, but not all ranges are equal. Some are balanced, some lean toward accumulation, some toward rejection, and many fail through one-sided sweeps before resolving. Aurelian turns that internal auction structure into something visible.
Core Concepts
1. Compression-based ledger build
The script measures whether recent bars are tight enough in ATR terms, efficient enough in body structure, and balanced enough in directional pressure to qualify as a live auction ledger.
2. Range shell and internal value area
When a ledger is active, the script draws:
The outer ledger shell
The internal value area
The point of control
This separates broad range boundaries from the price zone where most business is actually being done.
3. Right-side auction profile
Volume is accumulated across profile rows inside the active ledger so the script can identify the highest-volume row and estimate the value area around it.
4. Sweep tracking
Upper and lower sweep events are tracked only on confirmed bars. This helps distinguish clean acceptance from failed range probes.
5. Ledger tilt
The indicator maintains a directional tilt metric so the range shell is not displayed as neutral by default. If the auction begins leaning toward acceptance or rejection, the color balance reflects that change.
Features
Compression-driven range detection: Searches for structured auction zones rather than generic boxes
Live range shell: Displays the active ledger high, low, and midpoint
Point of control and value area: Maps where the auction is most concentrated
Right-side profile: Extends the auction structure visually beyond the current bar
Sweep detection: Tracks confirmed probes beyond the ledger edges
Auction tilt readout: Shows whether the range is leaning toward acceptance or rejection
Top-right dashboard: Reports mode, compression, width, POC, value area, sweeps, and tilt
Non-repainting event logic: Sweep and breakout conditions are confirmed on bar close
Input Parameters
Ledger Core:
ATR Length
Ledger Build Bars
Compression Ceiling
Body Efficiency Ceiling
Directional Balance Ceiling
Breakout Buffer
Auction Profile:
Profile Rows
Profile Width
Value Area Coverage
Visuals:
Show Range Shell
Show Right-Side Profile
Show Sweep Marks
Tint Auction Bars
Show Dashboard
How to Use This Indicator
Step 1: Confirm that a ledger is live
Check the dashboard mode first. If the ledger is not active, the script is still scanning for a qualified auction structure.
Step 2: Watch the POC and value area
These levels show where the auction is concentrated and whether price is rotating inside value or challenging the edges.
Step 3: Track sweeps versus acceptance
Confirmed sweep events can mark failed probes. If price repeatedly sweeps one side and returns, the ledger is revealing where excess is being rejected.
Step 4: Use tilt as context, not prediction
Ledger tilt helps interpret which side has more pressure, but the actual resolution still depends on whether price ultimately accepts outside the shell.
Indicator Limitations
The script is designed for structured ranges and will naturally stand down during broad directional moves
Volume distribution inside a candle is approximated using row allocation rather than true intrabar order flow
A qualified ledger can still break without first producing a sweep event
Originality Statement
Aurelian Auction Ledger is original in how it combines a compression-qualified range state, an internal profile-derived value area, sweep tracking, and directional tilt into a single clean overlay. It is published because:
The script distinguishes a structured auction ledger from a generic consolidation rectangle
It combines shell, POC, value area, and sweep tracking in one coherent range workflow
The tilt metric provides additional auction context without cluttering the chart with heavy labels
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice and does not guarantee future market behavior. Range structures can fail abruptly, and volume-based value estimates are still interpretations of historical trading activity. Always use independent judgment and proper risk management.
Indicator

Opening Auction Ledger [JOAT]Opening Auction Ledger
Introduction
Opening Auction Ledger is an open-source session framework built to standardize how the opening range is measured, locked, evaluated, and managed throughout the day.
The indicator is designed around a simple institutional question:
Once the opening auction is complete, is price accepting away from it or failing back into it?
The script answers that by combining:
session-specific opening range capture
high-low or body-based range construction
breakout qualification
relative volume confirmation
objective extension ladders
session profile rendering
adaptive continuation trail management
historical breakout tracking in a dashboard
This makes the opening range usable as more than a static box.
It becomes a complete session ledger.
Core Concepts
1. Opening Range Capture
The script builds the opening range only during the specified session window and then locks that range when the session ends.
This preserves a fixed reference for the rest of the day.
2. Source Flexibility
Users can define the opening range using raw highs and lows or candle bodies.
This changes how strict the opening auction frame is and can make the indicator more stable on noisy instruments.
3. Qualified Breakout Detection
Breaks are not accepted simply because price crosses a range boundary.
The script can require a minimum displacement beyond the range and, optionally, a relative-volume lift compared with recent activity.
4. Objective Laddering
Once a breakout is confirmed, the script projects three extension objectives above and below the opening range using multiples of the locked range size.
5. Continuation Management
An adaptive ATR trail follows the accepted breakout so continuation quality can be monitored after the initial move is underway.
Features
Configurable opening session: user-defined session window and timezone
Opening range lock: session range freezes after the auction ends
Body or high-low source mode: choose the structure used to build the range
Relative-volume breakout filter: optional confirmation prevents weaker breaks from being counted
Minimum displacement filter: breakout must exceed a configurable fraction of the locked range
Extension ladder: three upside and three downside objectives
Session profile: profile-style rendering of activity inside the opening auction
Continuation trail: adaptive ATR trail tracks accepted move quality
Historical outcome counters: dashboard tracks breakout counts and objective hit rates
Institutional dashboard: top-right summary of session state, range size, direction, and objective performance
Input Parameters
Opening Auction
Opening Range Session
Session Days
Timezone
Range Source
Minimum Break % Of Range
Require Relative Volume Lift
Relative Volume Threshold
Extension Ladder
Show Extension Ladder
Objective One
Objective Two
Objective Three
Show Price Labels
Auction Profile
Show Session Profile
Profile Rows
Profile Width Bars
Profile Offset Bars
Continuation Management
Show Adaptive Continuation Trail
Trail ATR Length
Trail ATR Multiplier
Display
Range Fill Transparency
Shade Session State
Dashboard Position
Dashboard Size
How to Use This Indicator
Step 1: Wait for the Range to Lock
Do not treat the opening range as final until the configured auction window is complete.
Before that point, the frame is still forming.
Step 2: Measure the Quality of the First Break
The first breakout matters most when it clears the minimum displacement rule and is supported by the configured relative-volume threshold.
Step 3: Use the Ladder as an Objective Map
The projected targets are not predictions.
They are structured expansion references derived from the opening range itself.
Step 4: Follow the Trail for Acceptance
The continuation trail helps determine whether price is still accepting away from the opening auction or beginning to fail back toward it.
Step 5: Review the Dashboard Statistics
The dashboard can help users understand how often objective ladders are being reached under the current settings and instrument behavior.
Indicator Limitations
The usefulness of the opening range depends heavily on the selected session and market traded
Relative-volume logic is chart-volume based and depends on the instrument's available volume series
Very narrow opening ranges can create closely spaced objectives in low-volatility sessions
A qualified breakout can still fail quickly in event-driven or thin-liquidity conditions
Originality Statement
Opening Auction Ledger extends the classic opening-range idea into a broader session framework by combining range locking, breakout qualification, objective ladders, profile context, continuation management, and outcome tracking in a single open-source script.
Disclaimer
This indicator is provided for educational and informational purposes only.
It is not investment advice and does not guarantee that any breakout or target sequence will succeed.
All calculations are based on historical chart data and should be interpreted with appropriate risk management and independent analysis.
Indicator

Aegis Liquidity Ledger [JOAT]Aegis Liquidity Ledger
Introduction
Aegis Liquidity Ledger is an open-source liquidity pressure indicator built to answer a specific execution question:
Where is directional pressure being sourced, and where has that pressure already left behind a meaningful area of interest?
The script approaches that problem through two linked components:
a volatility-normalized pressure oscillator
shelf detection and origin-zone mapping
The oscillator explains whether participation is pushing in a bullish or bearish direction.
The shelf and origin logic explains where that pressure emerged from.
This separation is intentional.
It gives traders both the why and the where without forcing everything into a single overlay object.
Core Concepts
1. Composite Pressure Engine
The script blends multiple rate-of-change windows into one composite pressure signal.
Short-term impulse and slower campaign participation are both included so the output does not depend on a single lookback length.
2. Volatility-Normalized Thresholds
The pressure signal is measured against its own recent standard deviation rather than a fixed threshold.
This allows the expansion bands to adapt to the instrument and timeframe being viewed.
3. Shelf Detection
The script scans for repeated upper and lower interactions using body extremes and wick touches.
That makes the shelf logic more sensitive to areas where liquidity may have repeatedly rested.
4. Expansion Origin Zones
When pressure transitions through an adaptive bound on a confirmed bar, the script creates a source zone around the origin candle that preceded the release.
This zone remains relevant until price fully accepts through it.
5. Mitigation Logic
Shelves are not removed immediately.
They remain live until price fully accepts through the opposite side of the zone, after which they are visually de-emphasized as mitigated.
Features
Four-window pressure model: fast, medium, slow, and macro ROC blended together
Pressure smoothing: EMA smoothing controls oscillator responsiveness
Adaptive expansion thresholds: thresholds scale with recent pressure volatility
Normalized oscillator: pane output compresses pressure into an interpretable range
Demand and supply shelves: persistent shelf zones are drawn directly on the chart
Origin-zone logic: shelf creation is tied to confirmed expansion events
Touch and intensity tracking: shelf labels summarize interaction count and density
Mitigation state: zones are visually softened after full acceptance through them
Pressure-based candle coloring: optional chart bars reflect dominant liquidity pressure
Institutional dashboard: dashboard summarizes pressure, compression, shelf dominance, and state
Input Parameters
Pressure Engine
Fast ROC
Medium ROC
Slow ROC
Macro ROC
Pressure Smoothing
Expansion Threshold Multiplier
Liquidity Shelves
Shelf Window
Shelf Width ATR
Max Live Shelves Per Side
Show Expansion Origin Zones
Show Shelf Labels
Display
Show Pressure Fill
Show Expansion Glow
Show Zero Line
Color Candles By Pressure
Dashboard Position
Dashboard Size
How to Use This Indicator
Step 1: Read Pressure Before Reading Shelves
Start in the pane.
If the pressure engine is neutral or compressed, shelf interactions are more likely to behave as reaction zones than true continuation sources.
Step 2: Watch for Confirmed Expansion
New shelves matter most when they are created by a confirmed expansion through the adaptive threshold.
That is the moment the script treats the move as meaningful enough to register an origin.
Step 3: Distinguish Live From Mitigated Zones
Fresh shelves are stronger contextual references than mitigated shelves.
Once a zone has been fully accepted through, it should be treated as reduced context rather than untouched inventory.
Step 4: Compare Upper and Lower Density
The interaction counts and intensity values help frame whether the instrument has built more meaningful supply or demand shelves in the current environment.
Step 5: Combine With Structure
Aegis Liquidity Ledger is not a standalone regime classifier.
It works best beside structure or session tools that explain the broader context around the pressure source.
Indicator Limitations
Liquidity shelves are inferred from price behavior, not from direct order book or market-by-order data
Aggressive settings can create more shelves than slower traders may want to track
Pressure normalization adapts to the instrument, but abrupt volatility shocks can still distort thresholds temporarily
A shelf is an area of contextual interest, not a guarantee of reversal or continuation
Originality Statement
Aegis Liquidity Ledger is structured around the relationship between a normalized pressure oscillator and persistent source-zone shelves.
Its design emphasizes where pressure comes from, how dense liquidity has been on each side of price, and whether a prior source has been mitigated, rather than simply plotting another momentum line.
Disclaimer
This indicator is provided for educational and informational purposes only.
It is not a recommendation to trade and should not be interpreted as financial advice.
All shelf and pressure readings are model-based interpretations of chart data and can fail under changing market conditions.
Always use independent analysis and risk management.
Indicator

Parallax Covenant Strategy [JOAT]Parallax Covenant Strategy
Introduction
Parallax Covenant Strategy is an open-source, non-repainting PulseWire strategy that integrates multiple analytical engines into one realistic execution framework. It combines regime detection, pressure confirmation, mapped bias, structure context, wave release logic, and ATR-based risk management to produce entries and exits only when several independent conditions agree.
The problem this strategy solves is weak single-factor trading. A crossover alone is rarely enough. A structure break alone is often early. A momentum spike alone can be noisy. Parallax Covenant requires alignment between regime, internal pressure, mapped bias, structural context, and release behavior before taking a trade. This creates a more selective, context-aware model than a one-indicator strategy.
Core Concepts
1. Composite Regime Engine
The strategy builds a directional regime from a structural baseline, tolerance corridors, and expansion/compression state. This acts as the primary directional context.
2. Pressure Confirmation
An internal pressure model blends weighted candle force and channel position to avoid taking trades simply because price is above or below a baseline.
3. Mapping and Higher-Timeframe Bias
The strategy uses a mapped momentum framework and an optional confirmed higher-timeframe bias filter so lower-timeframe entries can align with broader conditions.
4. Structure and Release Filters
Demand and supply context, swing structure, and release-from-compression logic help prevent entries from firing in the middle of low-quality noise.
5. Realistic Risk Management
The strategy uses ATR-based stops, reward-to-risk targets, optional trailing logic after a minimum multiple of risk, and regime-failure exits. This makes the model more realistic than fixed-tick toy strategies.
Features
Multi-engine entry stack: Regime, pressure, mapping, structure, and release alignment
Confirmed-bar logic: Entry conditions are evaluated on confirmed bars
Optional higher-timeframe bias filter: Uses confirmed higher-timeframe values
Demand and supply context: Trade logic includes structural location awareness
ATR stop and target model: Risk adjusts to symbol volatility
Trailing stop activation: Trail can engage after a defined reward threshold
Regime-failure exit: Closes trades when core directional conditions break down
Maximum time-in-trade control: Avoids stale positions
Institutional dashboard: Top-right strategy state summary
Alertconditions: Regime shifts, releases, and setup confirmations
How to Use This Strategy
Step 1: Study the Dashboard
The dashboard shows whether the system currently sees bullish, bearish, or balanced conditions and how the internal engines align.
Step 2: Understand the Entry Stack
Trades only trigger when multiple conditions confirm together. If you see a setup fail to trigger, that is often intentional filtering rather than a bug.
Step 3: Respect the Risk Model
Stops and targets are volatility-based. Results will vary materially across symbols and timeframes because the strategy adapts to local ATR conditions.
Step 4: Evaluate by Regime, Not by Individual Trade
This strategy is meant to be judged over a broad sample. It is a context-and-confirmation model, not a scalping script trying to predict every turn.
Strategy Limitations
The strategy is intentionally selective and may skip many charts or periods
Higher-timeframe confirmation uses confirmed data and can therefore feel slower than live-developing bias models
ATR-based exits adapt to volatility, which means trade statistics can shift significantly across markets
No strategy can remove all adverse conditions, especially during sudden event-driven repricing
Originality Statement
Parallax Covenant Strategy is original in the way it integrates multiple distinct analytical engines into one non-repainting framework. It is not a basic moving average crossover, not a single-oscillator strategy, and not a toy example of ATR stops. Its value comes from requiring alignment between market regime, internal pressure, mapped bias, structure, and release conditions before entering risk.
Disclaimer
This strategy is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any instrument. Historical backtest results do not guarantee future performance. Always use realistic expectations, proper risk management, and independent judgment.
- Made with passion by jackofalltrades
Strategy

Cartograph Bands [JOAT]Cartograph Bands
Introduction
Cartograph Bands is an open-source price-space mapping overlay that translates internal momentum and regime pressure into adaptive bands around price. Instead of displaying momentum in a separate pane and forcing the user to mentally translate it back into price context, the script projects a composite regime score directly into layered price envelopes.
The problem Cartograph Bands solves is disconnected interpretation. Oscillators can show strength or weakness, but they often fail to communicate where that state matters on the chart. Cartograph Bands closes that gap by converting internal regime intensity into inner, outer, and far price-space bands, then combining that with multi-timeframe confirmation and volatility-state transitions.
Core Concepts
1. Composite Momentum Engine
The script blends several internal measurements including RSI, CMO, ROC normalization, and slope behavior to create a bounded momentum/regime score. This reduces reliance on any single oscillator.
2. Price-Space Mapping
That composite score is mapped into adaptive offsets around price using ATR and standard deviation inputs. The result is a set of bands that express regime intensity as chart structure rather than as a separate panel line.
3. Layered Band Geometry
Three band families are used:
Inner bands for local equilibrium
Outer bands for state extension
Far bands for exceptional displacement
4. Non-Repainting Higher Timeframe Confirmation
Confirmed higher-timeframe values are requested using offset expressions and lookahead handling intended to avoid future leakage on historical bars.
5. Compression and Expansion State Tracking
Cartograph Bands also classifies whether the current market state is compressing or expanding, which gives context to outer-band tests and re-entry events.
Features
Composite momentum model: Multiple internal regime factors instead of one oscillator
Mapped price-space bands: Regime intensity projected directly onto chart structure
Inner, outer, and far layers: Different depths of price displacement
MTF confirmation dashboard: Top-right summary with higher-timeframe agreement context
Compression and expansion tracking: Identifies volatility-state transitions
Outer-band re-entry events: Useful for exhaustion or reacquisition studies
State candle tinting: Visual context without heavy marker clutter
Gradient cloud system: Layered institutional-style fills
Confirmed-signal mode: Optional bar-close confirmation behavior
Alertconditions: Regime flips, re-entry, expansion, compression, and MTF conflict
How to Use This Indicator
Step 1: Read the Band State
Price inside the inner structure implies local balance. Sustained travel into outer and far layers implies stronger directional pressure.
Step 2: Check the Dashboard
Use the dashboard to confirm whether the chart-timeframe state aligns with higher-timeframe conditions.
Step 3: Watch Re-entry Behavior
Re-entry from outside the outer band can highlight exhaustion or failed extension, especially when expansion begins to fade.
Step 4: Use Compression and Expansion as Context
A compression state reduces the importance of directional interpretation. Expansion after compression matters more than random outer-band wandering.
Indicator Limitations
The mapping is adaptive, so band distance changes with symbol volatility
Higher-timeframe context is intentionally confirmed and may feel slower than live-developing HTF tools
Band interaction alone should not be treated as a complete trade system
The script maps internal regime state into price context, but it does not forecast exact reversal points
Originality Statement
Cartograph Bands is original in the way it blends multiple internal regime measurements and projects them into layered price-space geometry. Its value is not just an oscillator or just bands, but the interaction between regime scoring, mapped offsets, MTF confirmation, and state transitions.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. All mapped bands are analytical references derived from historical price behavior and should be used with sound judgment and risk management.
- Made with passion by jackofalltrades
Indicator

Auction Lattice Reserve [JOAT]Auction Lattice Reserve
Introduction
Auction Lattice Reserve is an open-source auction-context indicator built to classify where price is trading relative to accepted value. It maps a fixed-lookback volume distribution, calculates Point of Control and Value Area boundaries, scores the current auction state, and then projects that information back onto the chart using profile slices, equilibrium bands, acceptance boxes, and an optional confirmed-bar TP/SL scaffold.
The main problem this script solves is location. Many directional tools can detect trend, but they do not explain whether price is trading above value, below value, or rotating around equilibrium. Auction Lattice Reserve provides that context directly from a rolling auction profile and combines it with trend and volume expansion scoring so the user can distinguish balance, markup, and distribution states.
Core Concepts
1. Fixed-Range Auction Profile
The script scans a configurable lookback window, divides the price span into bins, and apportions each candle's volume into the bins it overlaps. This creates a rolling distribution of where volume was accepted:
int firstBin = math.max(0, math.min(auctionBins - 1, math.floor((localLow - auctionLow) / auctionBin)))
int lastBin = math.max(0, math.min(auctionBins - 1, math.floor((localHigh - auctionLow) / auctionBin)))
2. Point of Control and Value Area
The highest-volume bin becomes the Point of Control. Value Area is expanded outward from the POC until the chosen percentage of total profile volume is captured. This makes the script useful for identifying accepted value and dislocation:
auctionPoc := auctionLow + (auctionPocBin + 0.5) * auctionBin
auctionVaLow := auctionLow + leftBin * auctionBin
auctionVaHigh := auctionLow + (rightBin + 1.0) * auctionBin
3. Auction State Scoring
The indicator does not rely on value alone. It blends distance from POC, trend spread, and short-vs-long volume expansion into an auction score. This creates a more robust state engine than simply checking whether price is above or below the value area.
4. Acceptance and Rejection Context
Price trading outside the value area for consecutive confirmed bars is treated as accepted migration rather than a brief probe. When acceptance is confirmed, the script can project an acceptance box forward and optionally build a TP/SL ladder from the event.
5. Institutional Visualization
The script uses right-side profile slices, layered clouds around value, an equilibrium band, candle-state coloring, and a compact top-right dashboard instead of retail-style arrows or decorative markers.
Features
Rolling auction profile: Fixed-lookback volume profile rendered at the right edge of the chart
Point of Control and Value Area: POC, VA High, and VA Low plotted directly on price
Auction score: Blends volume expansion, trend spread, and distance from equilibrium
Equilibrium band: Mid-band around POC for visual balance context
Acceptance boxes: Forward-projected boxes when price confirms value acceptance above or below the value area
Optional TP/SL scaffold: Confirmed-bar entry, stop, TP1, TP2, TP3 rails with risk/reward fill
Top-right dashboard: Shows current state, POC, value location, volume pressure, trend, and score
Dark-mode visual design: Layered teal, rose, and gold tones tailored to auction concepts
How to Use This Indicator
Step 1: Check whether price is above value, below value, or inside value.
Step 2: Review the auction score and dashboard state. Strong positive values indicate markup pressure. Strong negative values indicate distribution or liquidation pressure.
Step 3: Watch for acceptance boxes. These show that price is no longer only probing value but may be migrating to a new area of acceptance.
Step 4: Use the optional TP/SL scaffold only as a contextual planning aid. It is not a promise of outcome.
Indicator Limitations
Because the profile is rolling, value levels adapt over time and are not static
A short lookback can make the auction map overly sensitive in volatile markets
Acceptance logic requires confirmed bars, so some moves will already be underway when the state changes
The TP/SL scaffold is informational and does not execute trades
Originality Statement
Auction Lattice Reserve is original in the way it combines a rolling auction profile, an equilibrium band, value-acceptance migration logic, and an institutional-style execution scaffold into one open-source indicator. The publication is intended to provide a reusable context layer for traders who want value-based location rather than a standalone entry system.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Auction context and value-area behavior are derived from historical price and volume data and do not guarantee future results. Always use independent judgment and risk management.
-Made with passion by jackofalltrades
Indicator

Retracement Lattice [JOAT]JOAT Retracement Lattice
Introduction
JOAT Retracement Lattice is an open-source retracement and extension framework designed to turn a confirmed swing into a live working map.
It does more than place Fibonacci levels on a chart.
The script manages swing anchors, highlights the OTE pocket, overlays confirmed higher-timeframe retracement structure, shades premium and discount halves, and evaluates response quality inside the active pocket.
The problem it solves is inconsistency.
Manual retracement drawing is useful, but it can also become subjective very quickly.
Anchors are often moved emotionally.
Higher-timeframe confluence is ignored.
The midpoint is overlooked.
The response inside the retracement is treated as equivalent even when it is not.
Retracement Lattice standardizes the active swing and continuously updates the derived structure.
That creates a cleaner framework for pullback analysis, continuation planning, and location-based decision making.
Core Concepts
1. Confirmed Swing Anchor Engine
The lattice begins with a confirmed swing.
Pivot logic and anchor-state management determine which high and low form the active range.
pivotHigh = ta.pivothigh(high, pivotLen, pivotLen)
pivotLow = ta.pivotlow(low, pivotLen, pivotLen)
2. Full Retracement Stack
The script calculates a broad set of retracement and extension levels rather than only the most common ones.
fib236 = levelAt(0.236)
fib382 = levelAt(0.382)
fib500 = levelAt(0.500)
fib618 = levelAt(0.618)
fib705 = levelAt(0.705)
fib786 = levelAt(0.786)
3. OTE Pocket Emphasis
The 0.618 to 0.786 region is emphasized as the main response pocket.
4. Higher-Timeframe Confluence
A confirmed higher-timeframe lattice is projected alongside the local one.
5. Premium and Discount Shading
The upper and lower halves of the swing are shaded relative to the midpoint.
6. Extension Objectives
The active swing also provides continuation targets beyond the range.
7. Response Qualification
The script evaluates whether price is reacting constructively inside the active pocket.
8. Chart-Edge Guidance
Labels and projected guide objects keep the live map readable near the right edge of the chart.
Features
Confirmed anchor-state engine: stable swing selection using pivot confirmation
Expanded retracement stack: 0.236, 0.382, 0.500, 0.618, 0.705, and 0.786
OTE pocket emphasis: the main response zone is highlighted
Extension objectives: continuation levels project beyond the swing
Higher-timeframe confluence: confirmed HTF lattice is shown
Premium / discount shading: auction halves are visible at a glance
Response qualification: pocket interaction is graded instead of assumed
Object-managed edge labels: the current range stays readable
Dashboard: anchor direction, confluence, and pocket state are summarized
Input Parameters
Swing Anchor:
Swing Lookback
Pivot Length
Reverse Orientation
Volume-Validated Pivots
Volume Baseline
Volume Threshold
Higher Timeframe / Display:
Show Higher Timeframe Grid
Higher Timeframe
Show Classic Retracements
Show Minor Levels
Show OTE Band
Show Extensions
Show Dashboard
Confluence Tolerance
Shade Auction
How to Use This Indicator
Step 1: Identify the active swing anchor pair.
Step 2: Check whether price is trading in premium or discount relative to the midpoint.
Step 3: Focus on the OTE pocket when the broader structure supports it.
Step 4: Compare the local lattice to the confirmed higher-timeframe lattice.
Step 5: Use the extensions to organize continuation targets after response.
Indicator Limitations
Anchors settle only after pivot confirmation, which is intentional non-repainting behavior
Strong trends can continue without deep retracement into the pocket
Confluence improves context but does not force a reaction
Retracement tools provide structure, not certainty
Originality Statement
This script is original in how it turns a retracement tool into an active framework with anchor-state management, OTE response logic, premium-discount shading, higher-timeframe confluence, and extension objectives.
The components are unified around one job:
to make pullback location more structured and less subjective.
Disclaimer
This indicator is provided for educational and informational purposes only.
It is not financial advice.
Retracement and extension levels are analytical references and do not guarantee support, resistance, or target completion.
Use risk management and independent judgment at all times.
Best Use Cases
Structuring pullback analysis after a confirmed directional swing
Comparing local retracement behavior to confirmed higher-timeframe levels
Locating the OTE pocket inside a stable swing map
Planning continuation targets with extension levels
Interpretation Notes
The midpoint is important because it quickly reveals whether price is trading in the premium or discount half of the current auction.
The OTE pocket is most useful when the broader structural narrative already supports the same directional idea.
Higher-timeframe confluence should be treated as context improvement, not as a guarantee that the level must react.
Publication Notes
This script is intended to be published with a clean chart showing the active anchor, the highlighted OTE pocket, and the higher-timeframe overlap when it exists.
The chart example should make the active swing easy to understand.
Avoid clutter from unrelated studies or excessive drawings.
-Made with passion by jackofalltrades
Indicator

Charter Execution Model [JOAT]Charter Execution Model
Introduction
Charter Execution Model is an open-source Pine Script v6 strategy that integrates the broader JOAT framework into a single non-repainting execution model. It does not rely on one trigger alone. Instead, it uses a hierarchy of filters: regime eligibility first, liquidity bias second, structure confirmation third, and imbalance or displacement triggers fourth. Only when those layers align does the strategy consider taking a trade.
The goal of this strategy is not to present a magical black box. It is to model a disciplined decision stack. Many strategies fail because they treat every trigger the same way regardless of context. Charter Execution Model is built around the idea that context should do most of the work. If the market is not in a mature directional regime, if the liquidity ledger is not skewed appropriately, or if local structure does not agree, then a trigger by itself is not enough.
The script uses realistic execution controls directly in the declaration: fixed initial capital, percent-of-equity sizing, non-zero commission, non-zero slippage, no pyramiding, confirmed-bar evaluation, and orders processed on close. Those defaults are intended to make the backtest more responsible and easier to interpret than an overly aggressive model with idealized execution assumptions.
This strategy is best understood as a research framework. It can help traders study how context filters, imbalance triggers, continuation pressure, and ATR-based exits behave when combined inside one model. It is not a guarantee of future profitability, and it should be evaluated thoughtfully across symbols, regimes, and timeframes.
Core Concepts
1. Regime Eligibility Layer
The first gate determines whether the market is mature enough to even consider longs or shorts. It uses a directional midpoint and structural midpoint built from EMA and HMA references, then normalizes their spread by ATR and combines that with heat positioning inside the recent price range.
bool bullRegime = directionalMid > structuralMid
float regimeStrength = clamp(spreadNorm * 0.60 + math.abs(heatNorm - 50.0) * 0.80, 0, 100)
bool matureBullRegime = bullRegime and regimeStrength >= regimeFloor and regimePersistence >= 12
That means the strategy does not allow triggers to fire in weak or undeveloped directional states. Context comes first.
2. Liquidity Bias Layer
Next, the strategy builds a rolling bin-based liquidity distribution and compares buy-side volume versus sell-side volume. A long context requires positive liquidity bias and price above the reference EMA. A short context requires negative liquidity bias and price below the reference EMA.
This adds an inventory-style filter so the strategy is not trading purely off price shape.
3. Structure Filter
Local structure is confirmed using pivot-derived reference points and a rolling swing lookback. Longs require price to hold above recent swing support and above the slow EMA. Shorts require the inverse.
This helps reduce cases where a regime and liquidity reading are still positive or negative, but local price structure has already started to degrade.
4. Trigger Stack
Once context aligns, the strategy allows three possible triggers: a confirmed imbalance gap, a displacement shift, or an optional continuation retest into the directional midpoint. This means the model can participate through both fresh displacement and controlled continuation.
Importantly, the trigger layer does not override the context layer. It only becomes active when the earlier filters already agree.
5. ATR-Based Exit Framework
Risk management is handled through ATR-sensitive invalidation and two fixed-R profit targets. When the regime is especially strong, an optional trailing rule tightens the stop using recent local price action.
This creates a trade structure with a defined stop, two staged exits, and optional adaptation in stronger conditions without relying on unrealistic all-in-all-out assumptions.
Features
Four-layer decision hierarchy: Regime, liquidity, structure, and trigger conditions must align before entry
Confirmed-bar logic: Entries are evaluated only on confirmed bars to avoid repaint-style execution logic
Non-zero execution costs: Includes realistic commission and slippage in the strategy declaration
No pyramiding: Prevents stacking multiple positions in the same direction
Partial profit framework: Uses two independent `strategy.exit()` orders to scale out at separate R multiples
Optional continuation triggers: Allows pullback-style participation inside already qualified context
Optional strong-regime trailing stop: Tightens exits when regime strength is elevated
Dashboard summary: Displays regime, liquidity bias, pressure, trigger state, position state, stop settings, and current risk fields
Clean visual overlay: Shows directional and structural mids with contextual fill directly on the chart
Open-source research design: Lets users inspect and adapt the full context-to-execution hierarchy
Default Strategy Properties
Initial capital: `100000` is used as the default starting capital in the script declaration
Position sizing: Orders use `strategy.percent_of_equity` with a default quantity of `10`, meaning the strategy allocates 10% of equity per position by default
Commission: Commission is modeled as `0.02%` per trade
Slippage: Slippage is modeled as `2` ticks
Pyramiding: Pyramiding is set to `0`, so the model does not stack entries in the same direction
Order timing: `process_orders_on_close = true` and `calc_on_every_tick = false`, so the model evaluates and processes with confirmed-bar logic
Input Parameters
Regime:
Fast Length: Controls the fast directional reference
Slow Length: Controls the slow structural reference
ATR Length: Sets the ATR normalization length
Heat Window: Defines the range window for heat normalization
Regime Strength Floor: Sets the minimum maturity threshold for context eligibility
Liquidity Filter:
Liquidity Lookback: Sets the rolling history used for the liquidity model
Liquidity Bins: Controls the liquidity distribution granularity
Liquidity Bias Floor: Sets the minimum skew required before liquidity counts as directional
Structure Filter:
Pivot Length: Sets pivot confirmation sensitivity
Swing Lookback: Defines the rolling structural context window
Trigger Stack:
Gap Sigma Filter: Sets the minimum imbalance displacement required for gap-style triggers
Shift Momentum Length: Controls the raw momentum lookback
Shift RSI Length: Controls the pressure RSI smoothing
Displacement Floor: Sets the threshold for shift-style triggers
Allow Continuation Triggers: Enables or disables pullback continuation entries
Continuation Pressure Floor: Sets the minimum pressure level for continuation logic
Risk Management:
Stop ATR Multiplier: Scales the ATR contribution to stop placement
Target 1 R: Sets the first partial profit target
Target 2 R: Sets the second partial profit target
Trail In Strong Regime: Enables optional trailing behavior when regime strength is elevated
How to Use This Strategy
Step 1: Evaluate Context Before Results
Begin by understanding what the strategy is trying to do rather than focusing immediately on performance output. It only wants to trade when a mature regime, directional liquidity bias, and confirming structure are all aligned. If that idea does not match your own process, the results will be hard to interpret.
Step 2: Study Trigger Type Distribution
Not all entries come from the same source. Some come from imbalance gaps, some from displacement shifts, and some from continuation pressure. Understanding which trigger type dominates on a given market can be more useful than simply checking net profit.
Step 3: Understand The Exit Framework
The model uses a staged exit approach. Half the position is managed toward the first target and half toward the second. A stop is always active, and strong-regime trailing can tighten the exit path further. Review this logic carefully before drawing conclusions from the backtest.
Step 4: Keep Expectations Realistic
The strategy includes commission, slippage, confirmed-bar logic, and no pyramiding, but that still does not make the backtest “real.” Results depend on the instrument, the timeframe, the data sample, and how well the context assumptions fit the market studied.
Step 5: Use It As A Research Framework
Charter Execution Model is best used as a framework for studying context-first execution logic. Adapt the filters, test the thresholds, and evaluate how the hierarchy behaves across different environments rather than assuming the defaults are universally optimal.
Strategy Limitations
The strategy relies on historical context filters that may adapt poorly to sudden regime shifts or atypical event-driven conditions
Liquidity bias is based on bar-level directional volume attribution rather than true exchange order-flow data
Processing orders on close simplifies execution and can differ materially from real fills on fast markets
Backtest results are sensitive to parameter choices, timeframe selection, instrument behavior, and dataset length
Originality Statement
Charter Execution Model is original in the way it organizes multiple analytical layers into a disciplined execution hierarchy. It is not published as a simple indicator mashup strategy:
It requires mature regime, directional liquidity bias, and local structure to align before any trigger is allowed to matter
It supports multiple trigger archetypes inside the same context framework rather than treating one trigger as universally sufficient
It combines staged exits, ATR-sensitive invalidation, and optional strong-regime trailing inside a consistent risk model
It exposes its internal context state on-chart so users can study why the strategy is active or inactive at any point
Disclaimer
This strategy is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Backtest results depend on assumptions, data quality, slippage, commission, bar resolution, and market conditions. Past performance does not guarantee future results. Always use independent judgment and proper risk management before using any strategy logic in live markets.
-Made with passion by jackofalltrades
Strategy

Prism Channel Architecture [JOAT]Prism Channel Architecture
Introduction
Prism Channel Architecture is a dual-channel overlay indicator that layers two mathematically distinct structural frameworks onto your price chart simultaneously: a best-fit Pivot Channel derived from actual price pivot points, and a Linear Regression Channel built from statistical least-squares fitting. Together they create a structural prism through which trend direction, channel quality, and breakout momentum can be evaluated from multiple angles at once.
Most channel tools force you to choose between objectivity and responsiveness. Pivot channels adapt to real market structure but can lag. Regression channels are statistically rigorous but ignore actual swing highs and lows. PCA runs both engines in parallel and highlights the moments when they agree — bull alignment and bear alignment states — as the highest-conviction reads in the system.
Core Concepts
Pivot Channel Fitting
The indicator collects up to a configurable maximum of confirmed pivot highs and pivot lows using PulseWire's built-in pivot functions:
float pivHigh = ta.pivothigh(high, pivLeft, pivRight)
float pivLow = ta.pivotlow( low, pivLeft, pivRight)
From those stored pivot arrays, it searches for the best pair of recent pivot highs to fit the upper channel boundary, and the best pair of recent pivot lows to fit the lower channel boundary. The quality score for each candidate pair is computed by checking how many of the recent bars were actually contained below the upper line (or above the lower line) within an ATR tolerance:
for k = 0 to checks - 1
float lineY = linePrice(x2, y2, x1, y1, bar_index - k)
if high <= lineY + atrVal * 0.3
contained += 1
float q = safeDiv(float(contained), float(checks), 0.0)
The pair with the highest containment ratio wins and becomes the drawn channel. This means the upper channel line is always the tightest valid resistance line through recent pivot highs, not an arbitrary parallel projection.
Linear Regression Channel
The regression channel computes a full manual least-squares fit over the lookback window, producing slope, intercept, and residual standard deviation:
float slope = safeDiv(n * sumXY - sumX * sumY, n * sumXSq - sumX * sumX, 0.0)
float intc = safeDiv(sumY - slope * sumX, n, close)
float stdDev = math.sqrt(safeDiv(ssRes, n, 0.0))
The upper and lower bands are drawn at `stdDev × Deviation Multiplier` distance from the regression midline, giving bands that are statistically calibrated to the actual spread of price around the trend. Color shifts from bull to bear when slope changes sign.
Channel Alignment Confluence
The system declares a Bull Alignment when both channels simultaneously agree price is in a bullish position — the regression slope is rising AND price is above the regression midline, AND price is in the upper half of the pivot channel (between the midline and the upper band):
bool lrBull = close > midNow and slope > 0.0
bool pivBull = close > uMid and close < uNow
bool alignBull = lrBull and pivBull
This confluence state is highlighted with a subtle background color — a quiet but meaningful signal that two independent structural frameworks are pointing in the same direction.
ATR-Based Breakout Detection
Breakout signals fire when price moves more than a configurable ATR multiple beyond the prior bar, provided the regression slope confirms direction:
bool brkUp = ta.crossover(close, close + crossTol * atrVal) and lrSlope > 0.0
bool brkDn = ta.crossunder(close, close - crossTol * atrVal) and lrSlope < 0.0
Breakout labels (▲ BRK / ▼ BRK) appear above or below the breakout bar and are alert-enabled.
Features
Pivot Channel — best-fit upper/lower boundaries through recent pivot highs/lows, quality-scored by containment ratio
Regression Channel — least-squares midline with statistically calibrated deviation bands, auto-colored by slope direction
Channel midline — dashed neutral midline bisecting the pivot channel for zone positioning
Bull and Bear Alignment detection — background highlight when both channels agree on direction
ATR-normalized breakout labels — ▲ BRK and ▼ BRK when price breaks out with trend confirmation
Channel Quality score — displayed in dashboard as percentage of recent bars contained
Pivot position classification — Bull Zone (upper half) or Bear Zone (lower half)
Up to 40 pivot highs and 40 pivot lows stored and evaluated
10-bar channel projection extended to the right of the last bar
Dashboard: LR direction, deviation mult, pivot quality, pivot position, alignment, breakout, ATR, pivot count
Alerts for bullish breakout, bearish breakout, bull alignment, and bear alignment
Webhook JSON alert format
Watermark
Input Parameters
Pivot Channel
Pivot Lookback Left — bars to the left required to confirm a pivot high or low (default 10)
Pivot Lookback Right — bars to the right required to confirm a pivot high or low (default 5)
Max Pivots Stored — maximum number of pivot highs and lows held in memory (default 30)
Quality Check Length — number of recent bars used to score channel containment (default 20)
Breakout ATR Mult — ATR multiplier threshold for breakout label generation (default 1.5)
Show Pivot Channel — toggle the pivot channel lines on/off
Regression Channel
Regression Length — bars used in the least-squares fit (default 50)
Deviation Mult — standard deviation multiplier for band width (default 2.0)
Show Regression Channel — toggle the regression channel lines and fill on/off
ATR Settings
ATR Length — lookback for ATR calculation used in breakout detection and containment tolerance (default 14)
Visuals
Bull Color — color for uptrending channels and bullish labels
Bear Color — color for downtrending channels and bearish labels
Neutral Color — color for channel midlines and neutral dashboard text
Show Dashboard — compact structural summary panel
Show Watermark
Show Breakout Labels — toggle ▲ BRK / ▼ BRK label markers
Alerts
Webhook JSON Format — switches alert messages to JSON format for automation pipelines
How to Use
Add PCA to your chart as a main-pane overlay indicator.
Let the chart load enough history so both channels initialize. A warmup period of at least 60 bars is enforced before channels begin drawing.
Use the Regression Channel to assess macro trend direction. If the midline slope is rising and price is above it, the macro environment is bullish.
Use the Pivot Channel to identify the structural support and resistance boundaries formed by actual price pivots. The upper pivot line is the tightest valid resistance. The lower pivot line is the strongest structural support.
Watch for Bull Alignment (cyan background) when both systems agree price is in a bullish structural position. This is the highest-conviction environment for long setups.
Watch for Bear Alignment (red background) for bearish structural setups.
Treat Breakout labels as momentum confirmation signals — they only fire when an ATR-significant price move occurs in the direction of the regression slope.
Check the Pivot Quality score in the dashboard. A quality above 65% means the channels are actively containing price well. Below 40% means the channel fit is loose and breakouts are less reliable.
Indicator Limitations
Pivot channel fitting evaluates only the 8 most recent pivot highs and the 8 most recent pivot lows when searching for the best pair. In very choppy markets with many closely-spaced pivots, the fitted channel may appear narrow or erratic.
The regression channel is recalculated on every bar over a fixed lookback window. It will repaint the past visually as new bars are added — the channel reflects the lookback window ending at the current bar, not a fixed historical period.
Channel quality scores can be artificially high in low-volatility trending conditions where price barely touches the edges of the channel.
Breakout signals require both an ATR threshold move AND a confirming regression slope. In sideways markets the slope condition filters out most breakout candidates, which may lead to missed signals on genuine horizontal range breaks.
Originality Statement
Prism Channel Architecture is an original Pine Script v6 publication. The dual-engine architecture combining a quality-scored best-fit pivot channel with an independently computed least-squares regression channel, and the definition of alignment confluence as agreement between those two distinct structural systems, is an original design. The pivot quality scoring methodology — measuring the containment ratio of recent bars within the candidate channel bounds with ATR tolerance — is an original technique not derived from any existing published indicator.
Disclaimer
This indicator is for educational and informational purposes only. Channels, alignment states, and breakout labels are analytical tools and do not constitute financial advice. Channel boundaries can and will be violated without warning. Always apply proper risk management and never trade solely based on indicator signals.
-Made with passion by jackofalltrades
Indicator

Torque Momentum Oscillator [JOAT]Torque Momentum Oscillator
Introduction
The Torque Momentum Oscillator is a sub-chart composite momentum engine that synthesizes four independent momentum perspectives into a single normalized 0–100 oscillator. Rather than relying on any one momentum calculation, it blends a stochastic-range oscillator, two RSI variants at different cycle lengths, and a Bollinger Band position reading into a weighted composite score — then colors the histogram on a gradient that instantly communicates whether momentum is building or exhausting.
The philosophy behind TMO is that any single momentum indicator can be fooled by choppy markets or unusual price action. When four different momentum frameworks all agree, the composite reading carries genuine conviction. When they diverge, the composite score gravitates toward the midline — a built-in disagreement signal that keeps you from over-committing to a directional bias.
Core Concepts
Component 1 — RSV (Raw Stochastic Value)
The RSV is a stochastic-style reading of where close sits within the highest high and lowest low range over the lookback period, smoothed with an SMA to reduce noise:
float hiRange = ta.highest(high, rsvPeriod)
float loRange = ta.lowest(low, rsvPeriod)
float rsvRaw = safeDiv(close - loRange, hiRange - loRange, 0.5) * 100.0
float rsvLine = ta.sma(rsvRaw, rsvSmooth)
The RSV line is also plotted independently as a fast overlay on the oscillator, giving it a secondary use as a crossover signal generator. When RSV crosses above 20, an Opportunity label fires. When it crosses back below 80, a Risk label fires.
Component 2 — RSI Fast
The standard Wilder RSI at the fast period (default 14) captures short-cycle momentum velocity. It contributes a responsive directional reading without being so short that it becomes noise.
Component 3 — RSI Slow (Blackcat-Style)
The slow RSI uses a blackcat-inspired manual construction: SMA of gains divided by SMA of absolute changes, rather than the standard Wilder smoothing:
float rsiSlowVal = safeDiv(
nz(ta.sma(math.max(close - prevClose, 0.0), rsiSlow), 50.0),
nz(ta.sma(math.abs(close - prevClose), rsiSlow), 1.0),
0.5) * 100.0
This produces a longer-cycle momentum trend bias that is less sensitive to individual candle extremes, creating a smoother counterpart to the fast RSI.
Component 4 — Normalized BB Position
Bollinger Band position tells you where price sits in its statistical envelope:
= ta.bb(close, bbLen, bbMult)
float bbPos = math.max(0.0, math.min(100.0,
safeDiv(close - bbLower, bbUpper - bbLower, 0.5) * 100.0))
At 100 price is at the upper band. At 0 it is at the lower band. At 50 it is exactly at the basis. This adds a volatility-relative momentum reading to the composite.
Weighted Composite Score
All four components are blended using user-configurable weights that are automatically normalized to sum to 1.0:
float wSum = wRsv + wRsiF + wRsiS + wBB
float composite = (rsvLine * (wRsv / wSum) +
rsiFastVal * (wRsiF / wSum) +
rsiSlowVal * (wRsiS / wSum) +
bbPos * (wBB / wSum))
Default weights: RSV 35%, RSI Fast 25%, RSI Slow 25%, BB Position 15%.
Gradient Histogram Coloring
The histogram is colored on a gradient that transitions from full bear red near 0 to transparent near 50, then from transparent bull green near 50 to full bull green near 100. This produces an immediate visual sense of momentum intensity — a faint histogram near midline means indecision, a saturated histogram near the extremes means conviction.
Features
Four-component weighted composite oscillator: RSV + RSI Fast + RSI Slow + BB Position
RSV component double duty: used in composite and plotted as independent fast line
Gradient histogram — color intensity scales with momentum conviction
Overbought (default 75) and oversold (default 25) zones with gradient fills
RSV Opportunity label when RSV crosses above 20 — potential upswing signal
RSV Risk label when RSV crosses below 80 — potential downswing signal
Per-component weight controls — customize the blend to your trading style
Midline reference at 50 and dashed OB/OS lines
Dashboard showing composite, RSV, RSI Fast, RSI Slow, BB position, and last signal
Auto dark/light theme detection
Alerts for Opportunity, Risk, entering Overbought, and entering Oversold
Webhook JSON alert format for automation
Watermark
Input Parameters
Oscillator Settings
RSV Period — lookback for the stochastic range calculation (default 20)
RSV Smoothing — SMA length applied to raw RSV before use (default 3)
RSI Fast Period — short-cycle RSI length (default 14)
RSI Slow Period — long-cycle blackcat-style RSI length (default 24)
BB Period — Bollinger Band lookback (default 20)
BB Multiplier — standard deviation multiplier for BB width (default 2.0)
Composite Weights
RSV Weight — relative weight of the stochastic component (default 0.35)
RSI Fast Weight — relative weight of the fast RSI (default 0.25)
RSI Slow Weight — relative weight of the slow RSI (default 0.25)
BB Position Weight — relative weight of the BB position reading (default 0.15)
Visual Settings
Overbought Level — upper threshold for OB zone and gradient fill (default 75)
Oversold Level — lower threshold for OS zone and gradient fill (default 25)
Show RSV Signals — toggles Opportunity and Risk label markers
Theme — Auto, Dark, or Light
Show Dashboard — compact panel with live component readings
Dashboard Position — four corner options
Show Watermark
Colors
Bull / Opportunity — color for bullish histogram bars and signal labels
Bear / Risk — color for bearish histogram bars and signal labels
RSV Line — color for the fast RSV overlay line
RSI Fast — color for the RSI Fast overlay line
How to Use
Add TMO to your chart below price as a separate sub-pane oscillator.
Watch the composite histogram for directional bias: readings above 50 favor longs, below 50 favor shorts.
Use the OB zone (above 75) and OS zone (below 25) as caution areas — not automatic reversal signals, but places where momentum is stretched and a mean reversion or consolidation becomes more likely.
Use Opportunity labels (RSV crossing above 20) as early warning that the stochastic component is turning up from deeply oversold — look for price confirmation before acting.
Use Risk labels (RSV crossing below 80) as early warning of a potential momentum rollover from overbought.
Check the dashboard to see exactly which components are driving the composite reading. If RSV and RSI Fast are both high but BB Position is low, the composite may not tell the full story.
Adjust the component weights in settings to emphasize the momentum style that best suits your market. For crypto, increasing RSV weight can be effective. For equities, RSI Slow weight can provide a smoother signal.
Indicator Limitations
The composite is a weighted average and can only be as accurate as the components that feed it. In strongly trending markets with low volatility, RSV and BB Position can both hover near extremes for extended periods — the composite will look overbought even when trend continuation is the correct read.
RSV Opportunity and Risk signals are generated by a single component (RSV) and should not be used in isolation as trade entries. They are high-probability turning-point flags that require price action confirmation.
Warmup bars are required before the oscillator becomes reliable. The indicator suppresses output until sufficient history is available.
This is a momentum indicator, not a trend direction indicator. It works best in liquid, active markets and may generate false signals during low-volume chop.
Originality Statement
The Torque Momentum Oscillator is an original Pine Script v6 publication. The architecture of combining RSV (stochastic-range), dual RSI cycles at different periodicities, and normalized Bollinger Band position into a single dynamically-weighted composite is an original design. The blackcat-style SMA-based RSI slow construction is an adapted technique included for its distinct noise characteristics, with full attribution. The gradient histogram coloring, RSV crossover signal system, and dashboard layout are original implementations built specifically for this publication.
Disclaimer
This indicator is for educational and informational purposes only. It does not constitute financial advice. Momentum readings are not predictions of future price direction. Always use proper risk management and never risk more than you can afford to lose.
-Made with passion by jackofalltrades
Indicator

Velox Structure Ribbon [JOAT]Velox Structure Ribbon
Introduction
Velox Structure Ribbon (VSR) is an open-source multi-band trend structure ribbon that uses a volatility-normalized, dynamically-spaced band system to visualize how far price has extended from its trend baseline and in which direction. The ribbon is anchored by a dual SMEMA core — a fast and slow double-smoothed moving average — and radiates six equidistant bands above and below the baseline, with spacing determined by the smoothed average candle range. Each band that price has penetrated adds one point to a 0-3 bull or bear structure score. A 0-100 composite trend strength score combines band penetration with RSI momentum. Volume confirmation and RSI filters are available to sharpen signal quality.
The problem VSR solves is that standard envelopes and Bollinger Bands use fixed or volatility-scaled offsets that can cluster bands too tightly in low-volatility environments and spread them too far in high-volatility ones. VSR normalizes band spacing using the market's own smoothed candle range, meaning band width automatically contracts in quiet markets and expands in active ones. This keeps the structure score meaningful across all conditions: three bands penetrated in a quiet market represents the same degree of extension relative to current volatility as three bands penetrated in a volatile market.
Core Concepts
1. SMEMA Ribbon Core
The ribbon center uses two SMEMA lines — slow (full period, default 20) and fast (half period). The slow SMEMA defines trend direction: sloping upward means the trend is bullish, downward means bearish. The fill between fast and slow creates a visual ribbon that contracts during consolidation and expands during trends:
float smemaSlow = smema(close, smemaLen)
float smemaFast = smema(close, math.max(int(smemaLen / 2), 3))
bool trendUp = smemaSlow > smemaSlow
bool trendDn = smemaSlow < smemaSlow
2. Volatility-Normalized Band Spacing
The step unit for band placement is SMEMA applied to the high-low range over a long smoothing period (default 100 bars). This produces an adaptive measure of the average candle body size. Each of the six bands is placed at integer multiples of this step above and below the slow SMEMA:
float step = smema(high - low, stepSmooth)
float up1 = smemaSlow + step * 1
float up2 = smemaSlow + step * 2
float up3 = smemaSlow + step * 3
Because the step automatically adjusts to market volatility, the bands always represent meaningful structural extensions rather than arbitrary percentage offsets.
3. Bull and Bear Structure Scoring
Each bar, the indicator counts how many upper bands price has broken through (bullish penetration) and how many lower bands (bearish penetration). Each penetrated band adds one point to the respective score:
int bullStr = (above1 ? 1 : 0) + (above2 ? 1 : 0) + (above3 ? 1 : 0)
int bearStr = (below1 ? 1 : 0) + (below2 ? 1 : 0) + (below3 ? 1 : 0)
A score of 0 means price is between the baseline and first band — neutral zone. Score of 1 means first structural extension. Score of 3 means full breakout beyond all three bands in that direction.
4. Composite Trend Strength Score (0-100)
The strength score combines two inputs: the band penetration score converted to a 0-50 scale (each band = 16.7 points) and the RSI deviation from 50 on a 0-50 scale. The combination rewards moves that have both structural extension (price has pushed through multiple bands) and momentum confirmation (RSI is moving away from neutral):
float bandScore = math.min(float(math.max(bullStr, bearStr)) * 16.7, 50.0)
float rsiScore = math.min(math.abs(rsiVal - 50.0), 50.0)
int strScore = int(math.min(bandScore + rsiScore, 100.0))
5. Distance-Based Band Coloring
Each band receives a gradient color whose intensity scales with how far price is from that band relative to its historical range. Bands that price has recently broken through or is pressing against are rendered more vividly. Bands far from price are nearly transparent. This creates a visual heat-map effect showing where structural tension exists:
bandColor(float src, color col) =>
float dist = math.abs(close - src)
float pctNorm = ta.percentile_linear_interpolation(dist, 400, 100)
float colSize = pctNorm > 0 ? dist / pctNorm : 0.0
showBands ? color.from_gradient(colSize, 0, 0.5, color(na), col) : color(na)
Features
Six-Band Structure Grid: Three bands above and three below the slow SMEMA baseline, dynamically spaced by the smoothed candle range
Dual SMEMA Core Ribbon: Fast and slow baseline with gradient fill, colored by trend direction
Trend Direction Diamond: A small diamond marker on the baseline at every trend flip (when the slow SMEMA changes slope direction)
Bull / Bear Structure Score (0-3): Real-time count of penetrated upper or lower bands displayed in signal labels and the dashboard
Composite Strength Score (0-100): Combined band penetration and RSI momentum score with Strong/Moderate/Weak label
RSI Momentum Filter: Optional filter requiring RSI alignment before a signal is confirmed (configurable threshold, default 52)
Volume Filter: Optional filter requiring above-average volume (configurable multiplier, default 1.1x the 20-bar SMA). Auto-disables on volume-free instruments
Signal Labels: Small numeric labels at bull and bear signal bars showing the structure score (1, 2, or 3)
Strength Bar (Bottom Right): A visual bar table showing filled cells proportional to the current bull or bear structure score
Candle Coloring: Bar colors reflect trend direction at reduced opacity
9-Row Dashboard (Top Right): Trend direction, last signal and bars-since count, strength score with label, bull and bear band counts, RSI value, timeframe, and version
Watermark: JackOfAllTrades signature at chart center-bottom
Alerts: Bull signal, bear signal, and trend-flip alertconditions with optional JSON webhook format
Input Parameters
Ribbon Engine:
SMEMA Length: Core period for the slow baseline (default: 20). Fast = L/2
Step Smoothing: SMA period for the candle-range volatility step (default: 100)
Filters:
RSI Length: Momentum confirmation period (default: 14)
RSI Threshold: Minimum RSI for bull signal confirmation (default: 52). Bear mirror = 100 - threshold
Volume Filter: Enable/disable volume confirmation (default: off)
Volume Multiplier: Required volume multiple of the 20-bar SMA (default: 1.1)
Visuals / Dashboard:
Theme: Auto, Dark, or Light
Show Distance Bands: Toggle the six structural bands
Show Core Ribbon: Toggle the fast/slow SMEMA ribbon and fill
Show Signals: Toggle the numeric signal labels
Show Strength Bar: Toggle the bottom-right score visualization
Show Dashboard: Toggle the 9-row information panel
Color Palette: Bull, Bear, and Neutral colors are individually customizable
How to Use This Indicator
Step 1: Read Trend Direction from the Ribbon
When the ribbon is green and sloping upward, the baseline trend is bullish. When red and sloping downward, bearish. A flat ribbon in neutral color indicates a non-trending market.
Step 2: Use Structure Score for Entry Timing
A bull signal fires when price is above the first upper band (score 1+) and the trend slope is upward with RSI and volume confirmation. A score of 2 or 3 indicates deeper structural extension — potentially overextended for entry, better for trailing a position.
Step 3: Watch for Pullbacks to the Ribbon
After a bull signal, price often pulls back toward the ribbon (slow SMEMA) before continuing. Entries from the ribbon during an active bull structure are higher-probability than chasing at the outer bands.
Step 4: Scale Position with Strength Score
A strength score above 70 (labeled Strong) indicates both structural extension and momentum alignment — use for higher conviction. Below 40 (Weak) may indicate a fading move or early-stage structure not worth full position sizing.
Indicator Limitations
The warmup period (SMEMA length x3 or step smoothing + 50, whichever is larger) means the indicator is inactive for the first several dozen bars on any chart
The band spacing adapts to the smoothed candle range with a 100-bar lookback. On instruments with sharp volatility regime changes, the bands may lag behind the new volatility environment for many bars
The volume filter is automatically disabled when volume data is unavailable (e.g., indices, some forex pairs). In those cases, volume confirmation is effectively always true regardless of the toggle setting
Signal labels fire on every bull or bear structure bar — this can be frequent in strongly trending markets. The labels are informational, not entry triggers, and users should apply their own discretion for entry timing
Originality Statement
VSR is original in its use of the SMEMA-smoothed candle range as the band spacing unit. This indicator is published because:
The volatility-normalized step unit (SMEMA of high-low range) is a unique approach to band spacing that differs from standard ATR envelopes, Bollinger Bands (which use standard deviation), and Keltner Channels (which use raw ATR). The SMEMA smoothing produces a more stable, noise-resistant step unit than raw ATR
The 0-3 integer band-penetration scoring is a discrete structural measure that complements continuous oscillators. It quantifies how far price has extended structurally rather than how fast it has moved
The distance-based gradient coloring using percentile normalization creates an adaptive visual heat-map — the same visual logic is computationally novel within the band-coloring approach
The composite strength score combining band penetration with RSI deviation creates a measure that rewards both structural extension and momentum alignment simultaneously
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Band structure scores are based on historical price position relative to smoothed averages and do not predict future price movement. A score of 3 (maximum bullish extension) can increase further or reverse immediately. Always use proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Auric Regime Classifier [JOAT]Auric Regime Classifier
Introduction
Auric Regime Classifier (ARC) is an open-source, multi-factor market regime detection engine that classifies every confirmed bar into one of five distinct market states: Strong Bull, Weak Bull, Ranging, Weak Bear, or Strong Bear — with a special Compression override that fires when volatility is contracting. The engine uses five independent data sources — adaptive ATR volatility ratio, Bollinger Band squeeze detection, SMEMA trend slope, ADX directional index, and RSI momentum bias — fused through a weighted scoring system into a single net score that drives the regime classification.
The problem ARC solves is that most traders apply a fixed strategy regardless of whether the market is trending strongly, drifting weakly, compressing before a breakout, or chopping without direction. Each of those conditions demands a completely different approach. Applying a trend-following system in a ranging market produces losses. Trading with tight stops in a compression phase produces whipsaws. ARC gives you a clear, real-time label for the current market phase so you can match your approach to the conditions rather than fighting them.
Core Concepts
1. SMEMA Adaptive Baseline
The indicator uses SMEMA (Simple Moving Average of Exponential Moving Average) as its core trend baseline — a proprietary double-smoothing construct used throughout the JackOfAllTrades indicator suite. SMEMA applies a standard EMA first to capture responsiveness, then a SMA over the same period to suppress noise. The result is a baseline that reacts faster than a raw SMA but is smoother than a raw EMA:
smema(float src, int len) =>
ta.sma(ta.ema(src, len), len)
Two SMEMA lines run in parallel: a slow line over the full period (default 20) and a fast line at half the period. Their slope comparison over three bars determines the trend direction score. When the slow SMEMA slopes upward for three consecutive bars, two bull points are awarded. When it slopes downward, two bear points are awarded.
2. Adaptive ATR Volatility Ratio
ATR over the input period (default 14) is compared against a long-run SMA of ATR (default 50 bars) to produce a volatility expansion/contraction ratio:
float volRatio = safeDiv(atrRaw, atrBase, 1.0)
A ratio above 1.1 in the direction of the existing trend awards a bonus point — recognizing that trend moves are more reliable when accompanied by above-average volatility. This prevents the engine from scoring weak, low-volume drifts as strongly as genuine impulsive moves.
3. Bollinger Band Squeeze Detection
The indicator measures Bollinger Band bandwidth (upper minus lower) and compares it against its own 100-bar SMA. When bandwidth falls below the configurable threshold fraction (default 0.75) of its smoothed average, the market is classified as Compressing. Compression overrides all other regime classifications — a compressing market has no valid directional edge regardless of what the other signals say:
bool isSqz = bbBW < bbBWAvg * sqzPct
A Squeeze Release signal fires when compression ends (isSqz transitions from true to false), marking the potential start of an expansion move.
4. ADX Directional Index
ADX (Average Directional Index) and the +DI/-DI directional lines are calculated using Pine Script v6's built-in ta.dmi() function. ADX above the threshold (default 25) confirms that the market is in a genuine trending regime rather than a sideways range. The directional bias of +DI vs -DI adds two bull or bear points to the regime score:
= ta.dmi(adxLen, adxLen)
bool isBullDir = diPlus > diMinus
bool isBearDir = diMinus > diPlus
5. Regime Scoring Engine
All five components feed a dual-sided scoring system. Bull and bear points are accumulated independently, and the net score (bull minus bear, range -6 to +6) determines the regime code:
int bullPts = (trendUp ? 2 : 0) + (isBullDir ? 2 : 0) +
(rsiBull ? 1 : 0) + ((volRatio > 1.1 and trendUp) ? 1 : 0)
int netScore = bullPts - bearPts
int regCode = isSqz ? 0 : netScore >= 4 ? 2 : netScore >= 1 ? 1 :
netScore <= -4 ? -2 : netScore <= -1 ? -1 : 0
Strong Bull requires a net score of +4 or higher (all four components aligned). Weak Bull requires +1 to +3. Ranging sits at 0. The mirror applies for bearish regimes.
6. Trend Strength Score (0-100)
Beyond the categorical regime label, ARC produces a continuous trend strength score that measures conviction within the current regime. It combines a distance score (how far price is from the SMEMA baseline in ATR units, capped at 50 points) with a momentum score (RSI deviation from 50 in the trend direction, capped at 50 points). A score of 70+ indicates a strong, high-conviction regime. Below 40 indicates a weak or transitional state.
Features
Five-State Regime Classification: Every bar labeled Strong Bull, Weak Bull, Ranging, Weak Bear, or Strong Bear with a Compression override — no ambiguity
SMEMA Ribbon: Fast and slow SMEMA lines with a gradient fill between them, colored by the current regime state for instant visual context
Regime Background Tint: Subtle, semi-transparent background coloring that shifts with the regime — green family for bull states, red family for bear, yellow for compression
Candle Coloring: Bar colors inherit the regime color at reduced opacity, giving every candle immediate regime context without obscuring price action
Squeeze Markers: Circle markers on the SMEMA baseline during compression, with a diamond signal at the moment of squeeze release
Trend Strength Score: A 0-100 numeric score with a Strong/Moderate/Weak label updated each bar, shown in the dashboard
Regime Change Alerts: Alert fires on every confirmed regime state transition with either plain text or structured JSON for webhook delivery
12-Row Dashboard (Top Right): Displays current regime, trend strength score, ADX value and trending/ranging status, +DI/-DI directional reading, volatility ratio, Bollinger Band state, RSI, timeframe, and version
Watermark: JackOfAllTrades signature rendered at chart center-bottom
Input Parameters
Core Engine:
ATR Length: Period for raw ATR calculation (default: 14)
ATR Smoothing Period: Baseline ATR lookback for volatility ratio (default: 50)
Directional Index:
ADX / DI Length: Period for +DI, -DI, and ADX (default: 14)
Trend Threshold: ADX level above which the market is considered trending (default: 25)
Volatility Band:
BB Length: Bollinger Band period (default: 20)
BB Multiplier: Standard deviation multiplier (default: 2.0)
Squeeze Threshold: Bandwidth fraction of its 100-bar SMA below which compression is declared (default: 0.75)
Trend Engine:
SMEMA Length: Period for the double-smoothed baseline (default: 20)
RSI Length: Momentum confirmation period (default: 14)
Visuals / Dashboard / Alerts:
Theme: Auto, Dark, or Light — auto-detects chart background
Regime Background Tint: Toggle the subtle background color
Show SMEMA Baseline: Toggle the ribbon plots
Show Squeeze Markers: Toggle the circle and diamond markers
Show Dashboard: Toggle the 12-row information panel
Show Watermark: Toggle the JackOfAllTrades signature
Webhook JSON Format: Switch alert messages between plain text and JSON
Color Palette: All six regime colors are individually customizable
How to Use This Indicator
Step 1: Read the Regime
The dashboard regime field and the background tint tell you exactly where the market stands. This single label is the most actionable piece of information — it drives which strategy is appropriate.
Step 2: Match Your Approach to the Regime
Strong Bull / Strong Bear: All four scoring components are aligned. High-conviction directional trades, trend-following entries on pullbacks to the SMEMA ribbon
Weak Bull / Weak Bear: Only one or two components agree. Lighter position sizing, wider stops, prepare for a possible regime shift
Ranging: Net score near zero — avoid directional trades, consider mean-reversion or wait for breakout
Compression: All directional analysis is suspended. Reduce exposure, prepare for a breakout in either direction, and watch the squeeze release signal for timing
Step 3: Use Trend Strength for Conviction
Within any directional regime, the strength score tells you how far into that regime the market has moved. A Strong Bull reading with a strength score of 85 is a very different trade environment from one with a strength score of 42. Use the score to scale position size or filter lower-conviction entries.
Step 4: Set Alerts on Regime Transitions
The regime-change alert fires the moment a new regime is confirmed on bar close. Enable the Strong Bull and Strong Bear alertconditions specifically to catch the high-conviction regime entrances.
Indicator Limitations
All five components are backward-looking. The regime label describes what has happened over the lookback windows — not what will happen. A Strong Bull classification can reverse on the very next bar
The warmup period (equal to the longest lookback, at least 50 bars) means the indicator produces no signals on the first several bars of any chart, including after switching timeframes
Compression detection uses a 100-bar SMA of bandwidth, which is a long-run reference. On very short or illiquid charts with few bars, the bandwidth average may not be reliable
The five-state classification uses fixed score thresholds (+4 for Strong, +1 for Weak). These thresholds are not auto-calibrated to the instrument. In range-bound markets where ADX rarely exceeds 20, the Strong Bull/Bear states may rarely appear
RSI and ADX both work with default periods. No single set of periods is optimal across all assets and timeframes. Users may need to adjust periods when applying to highly volatile assets or longer timeframes
Originality Statement
ARC is original in its synthesis approach and the use of SMEMA as the core trend baseline. This indicator is published because:
The SMEMA construct (SMA of EMA) is a proprietary double-smoothing formula used consistently across the JackOfAllTrades suite — it provides a smoother baseline than raw EMA while retaining more responsiveness than raw SMA, and it is not a standard available in typical indicator libraries
The dual-sided bull/bear point system scores each directional component independently before computing a net score. This is distinct from composite oscillators that blend components into a single signed value — the dual-side approach preserves information about how many bear components are active even when the net score is positive
The Compression override takes precedence over all directional scores, explicitly suspending regime analysis during volatility contractions. Most regime indicators simply produce lower directional readings in compression without explicitly declaring the compression state
The trend strength score combines an ATR-normalized price distance with an RSI momentum deviation to produce a conviction metric that is distinct from the categorical regime label
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Market regime classifications are based entirely on historical data and past behavior. A market classified as Strong Bull can and will reverse at any time. The Compression state does not guarantee a subsequent breakout, and the direction of any eventual breakout cannot be predicted from compression alone. Always apply proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Volumetric Structure Engine [JOAT]Volumetric Structure Engine
Introduction
The Volumetric Structure Engine is an institutional market structure tracker that fuses swing-point classification with real-time buy/sell volume delta analysis. Every confirmed swing high and swing low is measured not only by price, but by the net volume composition of the leg that produced it — revealing whether a structural move was driven by genuine institutional buying or selling, or whether it was a low-conviction, thin-volume probe. The indicator classifies market structure as HH/HL (bullish) or LH/LL (bearish), detects Break of Structure (BOS) and Change of Character (ChoCH) events on bar close, and renders each swing zone with a color gradient that reflects the underlying volume delta of that leg.
The core problem this solves: most market structure tools draw lines or arrows at swing points but say nothing about the quality of that swing. A break of structure on rising volume is categorically different from one on declining volume — the first signals institutional participation, the second suggests a liquidity grab. VSE quantifies that difference on every bar.
Core Concepts
1. Non-Repainting Swing Detection
Swings are confirmed using a lookback comparison pattern that resolves only on bar close:
float H = ta.highest(high, i_len)
float L = ta.lowest(low, i_len)
bool new_sh = high == H and high < H
bool new_sl = low == L and low > L
A swing high at bar N-1 is confirmed when bar N closes lower, meaning the prior bar's high was the highest in the lookback window. This approach never repaints because it always references the closed bar to the left.
2. Volume Delta Accumulation Per Leg
Between each confirmed swing, running buy and sell volume totals accumulate. On each bar, if close >= open the bar's volume is classified as buy-side; otherwise it is sell-side. When a new swing is detected, the accumulated totals are saved to that swing node, and the counters reset for the next leg:
if new_sh or new_sl
run_buy := 0.0
run_sell := 0.0
if close >= open
run_buy += volume
else
run_sell += volume
The delta percentage (buy minus sell divided by total volume) determines the color and transparency of each swing zone box. A leg with 80% buy delta renders as a vivid bull green; a leg with 20% buy delta renders as a vivid bear red. Neutral legs render in the neutral color.
3. BOS and ChoCH Detection
Break of Structure fires when confirmed price closes through the most recent confirmed swing extreme in the opposite direction. Change of Character fires when the first break occurs against the established trend — the earliest signal that the dominant structure may be shifting. Both signals are barstate.isconfirmed, preventing any lookahead.
4. Structure Cloud
A fill between the last confirmed swing high and swing low creates a visual structure range that updates dynamically. The cloud color matches the current trend direction and serves as an at-a-glance bias indicator for the session.
Features
Swing Zone Boxes: ATR-scaled zone boxes at every confirmed swing, colored by the net buy/sell delta of the producing leg
Volume Delta Gradient: Zone colors range from deep bull green (high buy delta) to deep bear red (high sell delta), with transparency encoding conviction
BOS Lines: Dashed horizontal lines drawn at the level where a Break of Structure closes, with text label
ChoCH Highlight: Change of Character events highlighted with a distinct yellow-amber color to distinguish them from continuation BOS signals
Structure Connection Lines: Lines connecting consecutive swing nodes, colored by the delta of each leg
Structure Cloud: Gradient fill between the last swing high and low showing current structural range
Candle Coloring: Optional candle tinting by current trend direction
9-Row Dashboard: Displays trend bias, last swing high/low price levels, structure range percentage, BOS bull/bear counts, ChoCH count, last leg delta percentage, and total swing node count
Alerts: BOS bullish, BOS bearish, ChoCH bullish, ChoCH bearish
Input Parameters
Structure Detection:
Swing Length: Lookback bars for swing high/low detection (default: 20, range: 5-200). Higher values identify fewer, stronger structural swings. Lower values are more reactive.
Show BOS Lines: Toggle BOS line rendering (default: on)
Show ChoCH: Toggle Change of Character highlighting (default: on)
Structure Cloud: Toggle the fill between swing high and low (default: on)
Visualization:
Bullish / Bearish / Neutral / ChoCH colors: Fully customizable
Zone Transparency: Control the base transparency of swing zone boxes (default: 78)
Color Candles: Optional candle tinting by structural trend (default: off)
Dashboard:
Position: Top Right, Top Left, Bottom Right, Bottom Left (default: Top Right)
How to Use This Indicator
Step 1: Read the Current Structure
The dashboard shows the current trend bias (BULLISH / BEARISH / NEUTRAL), the last confirmed swing high and low prices, and the structural range as a percentage. This gives you the directional context at a glance.
Step 2: Interpret Zone Colors
Zones colored in vivid green (high buy delta) represent legs driven by institutional buying. Zones colored in vivid red (high sell delta) represent institutional selling pressure. Faded or gray zones represent low-conviction legs — useful for identifying weak structure that is more likely to be swept.
Step 3: Trade BOS and ChoCH Events
A BOS in the direction of the existing trend is a continuation signal. A ChoCH (against the trend) is a structural shift signal and often marks the beginning of a reversal. Volume delta on the breaking leg adds conviction: a BOS on a high-buy-delta leg is more reliable than one on a low-delta leg.
Step 4: Use Swing Zones as S/R
Each swing zone box represents a price area where a structural pivot occurred. Institutional order flow often returns to these levels. High-delta zones in particular tend to act as meaningful support or resistance.
Originality Statement
This indicator is original in its combination of confirmed non-repainting swing structure with per-leg volume delta measurement. While market structure tools and volume analysis tools each exist independently, this indicator is justified because:
Volume delta is computed per structural leg — not per candle and not as a global indicator — creating a direct mapping between market structure quality and institutional participation
The swing confirmation method using the lookback comparison pattern eliminates repainting while maintaining responsiveness to genuine structural changes
Zone color encoding with delta-driven gradient creates an immediate visual hierarchy — strong zones versus weak zones — without requiring separate panels or indicators
BOS and ChoCH detection with volume delta context provides a more complete signal than either alone
Limitations
The buy/sell volume classification (close >= open = buy) is an approximation. True tick-level direction is not available in Pine Script. On very short timeframes where volume is sparse, classification may be imprecise
Swing length selection significantly affects structure quality. Too short produces noise; too long misses intermediate structure. Users should calibrate to their timeframe and instrument
BOS and ChoCH are confirmed on bar close, so they are identified one bar after the actual breakout candle closes. This is a deliberate trade-off for accuracy over speed
The indicator does not predict direction — it classifies the current structural state. A bullish structure can break down without warning
Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any instrument. All trading involves risk of loss. Past structural patterns do not guarantee future results. Always use proper risk management.
-Made with passion by jackofalltrades
Indicator

Liquidity Contour Engine [JOAT]
Liquidity Contour Engine
Introduction
Liquidity Contour Engine is an overlay indicator that identifies two distinct institutional price phenomena: liquidity sweeps at swing highs and lows, and order blocks formed before impulsive structural moves. Liquidity sweep zones mark levels where price reached beyond a prior swing, triggering stop orders, then reversed — the classic footprint of a sweep-and-reversal sequence. Order block zones mark the last opposing candle before a significant directional impulse, representing the area where a large position was initiated.
The underlying premise is that institutions build and exit positions through order flow that leaves identifiable marks on the chart. A liquidity sweep is one such mark: price extending beyond a well-established swing level, clearing stops, then reversing. This behavior is not random — it reflects deliberate order accumulation at levels where retail stops cluster. Similarly, order blocks at the origin of impulsive moves may act as re-entry areas when price later returns to them.
Core Concepts
1. Confirmed Swing Pivot Detection
Swings are identified using ta.pivothigh and ta.pivotlow with a configurable lookback. All pivot detections are confirmed — offset by the lookback bars — meaning no repainting occurs. Only when sufficient bars have closed on both sides of a potential pivot is it registered.
2. Liquidity Sweep Detection
A bullish sweep is confirmed when: price wicks below the most recent swing low by at least a configurable ATR multiple, and the bar closes back above that swing low. This captures the wick-past-and-close-back pattern that characterizes institutional accumulation at liquidity levels. A bearish sweep is the mirror condition at swing highs.
Upon detection, a zone is created at the swept level, rendered as a dual-width line (thin solid + thick transparent shadow). Zones remain active until price sustains a close beyond the swept level by 0.5 ATR, at which point they convert to dotted lines (mitigated state).
3. Order Block Detection
An order block is identified as the prior N candle(s) before a structural impulse. A bullish impulse is defined as a bar that closes above the most recent swing high. The order block is the last candle body before that impulse, rendered as a filled box from body open to the wick high. Mitigation occurs when price closes beyond the 50% level of the order block body, fading the box to indicate the zone has been traded through.
4. Zone Lifecycle Management
The indicator uses arrays to track active zones and enforces a maximum count. When the maximum is exceeded, the oldest zone is removed from the chart. This prevents chart clutter while keeping the most recent and relevant zones visible.
Features
Liquidity Sweep Zones: Dual-width line rendering at swept swing levels, self-managing lifecycle
Order Block Boxes: Filled zones at order block origin, with mitigation fading
Swing Level Dotted Lines: Current swing high and low extensions as dotted reference lines
9-Row Dashboard: Sweep state, active zone counts, order block counts, last swing levels
Configurable ATR Threshold: Adjusts how far price must reach beyond a swing to qualify as a sweep
Max Zone Limit: Prevents chart clutter with configurable maximum active zone count
Input Parameters
Swing Lookback: Bars required each side for pivot confirmation (default: 8)
Sweep ATR Threshold: Minimum sweep distance in ATR units (default: 0.3)
Max Active Zones: Maximum concurrently displayed liquidity zones (default: 8)
ATR Period: Period for ATR calculation (default: 14)
Show Order Blocks: Toggle order block rendering
OB Lookback: How many bars back to identify the order block candle (default: 3)
How to Use This Indicator
Sweep-and-Reverse Setups
When a bullish sweep fires (price wicked below a swing low and closed back above), the zone represents the level where stops were taken. If price subsequently builds structure above that zone and delta pressure is positive, the setup is a potential long entry with the swept level as reference for the stop.
Order Block Re-Tests
When price returns to a bullish order block zone (shown in teal), it is revisiting the area where an institutional position was likely initiated. If the zone has not been mitigated (box remains filled), a reaction from that zone is plausible. A mitigated order block (faded) is a less reliable reference.
Zone Confluence
When a liquidity sweep zone and an order block coincide at the same price level, the confluence represents a stronger structural reference than either zone alone.
Limitations
Swing pivot confirmation introduces a bar lag equal to the lookback period. Sweeps and order blocks are identified after the fact, not in the moment they form
Not every liquidity sweep produces a reversal. Price can continue through a swept level without reversing
Order block identification is mechanical and cannot account for all institutional order placement strategies
On higher timeframes, zones cover wider price ranges and may require adjustment of the ATR threshold
Originality Statement
The unified framework for tracking liquidity sweeps and order blocks within a single indicator with a shared zone lifecycle management system is the original design contribution. Zone mitigation logic that converts active zones to passive reference lines (rather than deleting them) preserves structural context while visually indicating that a zone's primary relevance has passed. The dual-width shadow line rendering for sweep zones provides depth that distinguishes them clearly from standard horizontal lines.
Disclaimer
This indicator is for educational and informational purposes only. Liquidity sweep detection describes a pattern in historical price data. Past occurrences of this pattern do not guarantee future reactions. Order blocks are hypothetical areas of interest, not confirmed institutional levels. Always use proper risk management.
-Made with passion by officialjackofalltrades
Indicator

Structural Momentum Bias [JOAT]
Structural Momentum Bias
Introduction
Structural Momentum Bias is an overlay indicator that combines pivot-based market structure classification with a double-smoothed momentum band system to identify the current market regime and its directional bias. The indicator continuously tracks swing highs and lows, classifies them as higher highs, lower highs, higher lows, or lower lows, and scores momentum strength on a 0-5 scale using band position and structure alignment. A break-of-structure detection system marks confirmed liquidity shifts in real time.
The core problem this indicator addresses is the disconnect between price structure and momentum. Many traders either follow structure without measuring momentum strength, or use oscillators without understanding what market structure those signals occur within. This indicator unifies both, producing a regime label (Bullish, Bearish, or Ranging) backed by a quantified score. A regime classification without a corresponding score is ambiguous. A score without regime context is incomplete. Together they provide a clearer picture of where the market is and how strongly it is in that state.
Core Concepts
1. Double-Smoothed Baseline (SMEMA)
The baseline uses a two-pass smoothing method: an EMA applied to price, followed by an SMA applied to that EMA. This reduces noise while maintaining responsiveness. It outperforms a simple MA in choppy markets because the double-pass eliminates high-frequency oscillations that cause false regime flips. The baseline slope (rising or falling) is one input into the regime classification.
2. Dynamic Step Channel
The channel bands are not fixed multiples of ATR. Instead, they use the 100-bar average of the high-low range as the step unit, producing three tiers of bands above and below the baseline. This approach adapts to each instrument's natural swing amplitude without requiring manual calibration per market. Each band tier has a gradient color that intensifies as price approaches that level from within the channel, providing visual distance context.
3. Pivot-Based Structure Classification
Swing highs and lows are identified using confirmed pivots (lookback left and right bars). The indicator classifies the relationship between successive pivots as HH (higher high), LH (lower high), HL (higher low), or LL (lower low). These four states are combined to determine whether structure is bullish (HH + HL), bearish (LH + LL), or mixed. Importantly, pivot detection is offset by the lookback period, so no repainting occurs — a pivot is only confirmed when enough subsequent bars have closed to validate it.
4. Momentum Strength Score (0-5)
The score adds one point for each of: price above band tier 1, price above band tier 2, price above band tier 3, higher high present, and higher low present (inverted for bearish scoring). This produces a 0-5 integer that quantifies how strongly the market is expressing the current regime. A score of 5 in a bullish regime means price is extended above all three band tiers with confirmed higher highs and higher lows — a strongly trending condition. A score of 1 or 2 suggests marginal or weakening conditions.
5. Break of Structure (BOS) Detection
A bullish BOS is confirmed when price closes above the most recent swing high on a confirmed bar. A bearish BOS is confirmed when price closes below the most recent swing low. The BOS line is drawn from the pivot bar to the current bar and extends right, with a thick transparent shadow line providing visual depth. BOS detection only fires on barstate.isconfirmed, preventing any repainting.
Features
Regime Dashboard: 9-row dark-themed table showing regime, baseline direction, bull score, bear score, structure state, ATR, and last BOS
Dynamic Momentum Bands: Six gradient-colored bands (three above, three below) that visually represent price position within the momentum channel
SMEMA Baseline: Color-coded by regime, changes in real time as regime shifts
Break of Structure Lines: Thin solid + thick ghost dual-line rendering at confirmed structural breaks, extending to the current bar
Confirmed Pivot Dots: Small circles at each confirmed swing high and low, plotted at the exact pivot bar
Bar Coloring: Candles are colored by current regime state
Band Fill Gradients: Fill between band tiers intensifies based on price proximity
Input Parameters
Structure Settings:
Pivot Lookback: Number of bars left and right required to confirm a pivot (default: 5)
Baseline Length: Period for the SMEMA double-smoothed baseline (default: 10)
Show Structure Breaks: Toggle BOS line rendering
Visual Settings:
Dashboard toggle and position
Momentum Bands toggle
Bullish, Bearish, and Ranging color inputs
How to Use This Indicator
Step 1: Read the Regime
The dashboard label and bar coloring immediately show the current regime. Bullish requires the baseline to be rising and a momentum score of 2 or more.
Step 2: Assess Score Strength
A score of 4-5 indicates a well-developed trend with band extension and confirmed structure. A score of 1-2 suggests the regime is marginal and may not sustain.
Step 3: Watch for BOS Events
A BOS in the direction of the regime adds confirmation that a structural shift has occurred. A counter-regime BOS is an early warning that conditions may be changing.
Step 4: Use Bands for Context
Price returning to the baseline from above in a bullish regime is a potential pullback entry area. Price extending above band tier 2 or 3 suggests overextension.
Limitations
The pivot confirmation delay (lookback bars) means BOS signals and pivot markers appear several bars after the actual swing point. This is a deliberate design choice to prevent repainting
The regime score of 2 as the minimum threshold for classification means borderline conditions will oscillate between Ranging and a directional regime on consecutive bars
The SMEMA baseline is smoother than a standard EMA but still lags price. In fast-moving markets this lag may cause regime flips after significant portions of a move have already occurred
Band width is determined by the 100-bar average of bar ranges. In markets with sudden volatility regime changes (such as after news releases), the bands may not reflect the new volatility environment for many bars
Originality Statement
This indicator is original in its specific combination of elements and the scoring framework it produces. The justification for combining structure detection with a band-based scoring system is that neither component alone provides actionable context. Structure alone (HH/HL) says direction but not strength. Bands alone say relative position but not structural validity. The 0-5 score synthesizes both into a single conviction metric. The double-smoothed baseline (EMA of EMA, then SMA) is a deliberate design choice that reduces false regime flips without the extreme lag of longer single-pass averages. The dynamic step channel uses bar range (not ATR) as its unit, which scales naturally with each instrument's price action characteristics.
Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any financial instrument. Past structural patterns do not guarantee their repetition. A bullish regime classification does not predict future price direction. Always apply proper risk management. The author is not responsible for any trading losses.
-Made with passion by officialjackofalltrades
Indicator

Volatility Regime Classifier [JOAT]Volatility Regime Classifier
Introduction
The Volatility Regime Classifier is an overlay indicator that continuously classifies the current market environment into one of four distinct volatility regimes — TRENDING , RANGING , VOLATILE , or MIXED — and adapts its visual output accordingly. Rather than simply measuring how much volatility is present, this indicator identifies what type of volatility environment is active, a distinction that is directly relevant to strategy selection.
The classification is built on three independent measures — ATR Z-score, ATR percentile, and EMA directional ratio — each capturing a different dimension of market behavior. Their combination produces a regime map that is both statistically grounded and practically actionable.
---
Core Concepts
1. ATR Z-Score — Detecting Statistically Extreme Volatility
The Z-score measures how far the current ATR deviates from its own historical mean, in units of standard deviation:
atrZ = (atr14 - ta.sma(atr14, lookback)) / ta.stdev(atr14, lookback)
A Z-score above the Volatile Z Threshold (default 2.0) means current volatility is more than two standard deviations above the recent average — a statistically uncommon spike. This is the trigger for the VOLATILE regime, indicating conditions where position sizing, stop distances, and strategy assumptions built around normal ranges may no longer apply.
The Z-score is a mean-reverting measure. An extreme reading does not tell you which direction price will move. It tells you the current volatility environment is atypical relative to recent history.
2. ATR Percentile — Identifying Volatility Compression
The percentile ranks current ATR linearly within its own recent range:
atrPercentile = (atr14 - ta.lowest(atr14, lookback)) / (ta.highest(atr14, lookback) - ta.lowest(atr14, lookback)) * 100
A percentile below the Ranging Percentile threshold (default 35%) means ATR is near its lowest levels of the lookback window — a compression signal. This is the trigger for the RANGING regime, which historically precedes expansion but does not predict its direction or timing. It is a descriptor of the current state, not a forecast.
Using percentile rather than a fixed ATR threshold makes the measure adaptive: it adjusts to the instrument's own volatility character and the current lookback window.
3. EMA Directional Ratio — Testing Movement Quality
Directional quality is measured by the separation between a fast and slow EMA, expressed in ATR units:
directional = math.abs(ema_fast - ema_slow) / atr14 > dirStrength
When the EMA separation exceeds the Directional Strength threshold (default 1.5 ATR units), the market is showing sustained, coherent movement in one direction relative to its current volatility level. This is the trigger for the TRENDING regime.
Expressing EMA separation in ATR units normalizes for volatility: a large EMA gap during a high-volatility period may be less directionally significant than the same gap during a low-volatility period.
4. Regime Classification Logic
The three measures are evaluated in priority order:
VOLATILE — if ATR Z-score exceeds the volatile threshold. Extreme volatility takes precedence over all other conditions.
RANGING — else if ATR percentile is below the ranging threshold. Volatility compression is checked next.
TRENDING — else if the EMA directional ratio is satisfied. Directional movement is confirmed if not in a spike or compression.
MIXED — else. The market does not clearly fit any of the above categories: volatility is average, not directional, and not compressed.
Regime transitions are confirmed on barstate.isconfirmed bars only, preventing labels and state changes from appearing on unfinished candles.
5. Adaptive Bands
Each regime applies a different ATR multiplier to a central EMA band:
VOLATILE: multiplier 3.0 — wide bands reflecting extreme range
TRENDING: multiplier 2.0 — moderate bands supporting trend context
MIXED: multiplier 1.5 — standard bands for undifferentiated conditions
RANGING: multiplier 1.0 — tight bands appropriate for compressed, mean-reverting conditions
upper = ema_center + baseMult * atr14
lower = ema_center - baseMult * atr14
The band envelope therefore scales automatically to the current regime, providing contextually appropriate support and resistance structure without manual adjustment.
6. Smooth Color Transitions
Regime colors are smoothed by applying a 10-period EMA to each RGB channel independently. This prevents abrupt color jumps at regime boundaries and provides a visual blending effect as the market transitions between states. The smoothing period is fixed at 10 bars and is not user-configurable, as it is a presentational feature rather than an analytical one.
7. Regime Transition Labels
A label is plotted at each confirmed regime change, marking the bar where the classification shifted. This creates a visual audit trail of regime history on the chart, allowing traders to review how conditions evolved across the session or swing.
8. Information Table
A compact table in the top-right corner displays the current state of all key measurements:
Current regime classification
ATR value (absolute)
ATR Z-score
ATR percentile
EMA trend direction (bullish/bearish based on fast vs slow EMA)
Band width (upper minus lower)
Directional threshold met (yes/no)
Active band multiplier
---
Features
Four-state regime classification: TRENDING, RANGING, VOLATILE, MIXED
ATR Z-score for statistical volatility spike detection
ATR percentile for volatility compression identification
EMA directional ratio normalized to ATR units
Priority-ordered regime logic with clear precedence rules
Adaptive ATR-based bands that scale multiplier per regime
Smooth RGB-channel EMA color blending at regime transitions
Regime transition labels at every confirmed state change
Per-bar color coding reflecting the active regime
Background tint per regime (high transparency, non-intrusive)
Real-time information table with all underlying metrics
---
Input Parameters
ATR Length (default 14): Period for all ATR calculations. Shorter values make the Z-score and percentile more reactive; longer values smooth them out.
Regime Lookback (default 100): The historical window used for Z-score (mean and standard deviation) and percentile (highest/lowest) calculations. Shorter lookbacks make the regime more sensitive to recent conditions; longer lookbacks require more extreme readings to trigger transitions.
Volatile Z Threshold (default 2.0): ATR Z-score level required to trigger the VOLATILE regime. 2.0 corresponds to a two-standard-deviation event relative to the lookback window.
Ranging Percentile (default 35%): ATR percentile below which the RANGING regime is triggered. Lower values require a tighter compression before classifying as ranging.
Directional Strength (default 1.5): EMA separation threshold in ATR units required for the TRENDING regime. Higher values require a stronger, more sustained directional move.
Fast EMA (default 20): Period for the fast EMA used in directional ratio and the band center.
Slow EMA (default 50): Period for the slow EMA used in directional ratio.
Band EMA (default 50): Period for the central EMA from which adaptive bands project. Can be set independently from the directional EMAs.
---
How to Use
Regime-to-strategy mapping: The four regimes map to four broad strategy postures:
TRENDING: Conditions are directional. Trend-following approaches — momentum entries, trailing stops, breakout continuation — have historically performed better in this state.
RANGING: Volatility is compressed. Mean-reversion approaches — fading extremes, range-bound entries — are more aligned with this environment. Be aware that compression often precedes expansion.
VOLATILE: Volatility is statistically extreme. Reduce position size. Wider-than-usual stops are required to avoid being shaken out by noise. Many strategies based on normal ATR assumptions will malfunction in this state.
MIXED: No strong signal. Conditions do not clearly favor trending, ranging, or risk-off postures. Waiting for a clearer regime or reducing exposure are reasonable responses.
Reading the bands: The adaptive bands are not support/resistance in a traditional sense. They represent a contextually appropriate price envelope for the current regime. In ranging conditions, expect price to interact with the tight bands; in volatile conditions, the wider bands reflect the expanded true range.
Using the table: The information table provides the underlying metric values at a glance. If a regime seems unexpected, check the raw Z-score, percentile, and directional values directly — this helps distinguish borderline cases from clear ones.
Transition labels: Regime transition labels mark where conditions shifted on historical bars. Reviewing these labels on historical data can help calibrate whether the default thresholds suit a particular instrument and timeframe.
---
Limitations
All three underlying measures are based on ATR and EMA — both of which are lagging indicators. Regime classification reflects recently confirmed conditions, not instantaneous market state.
The lookback window is critical to the behavior of both the Z-score and percentile. A short lookback makes the indicator reactive but prone to frequent transitions; a long lookback produces more stable regimes but may lag real condition changes.
The four-state classification is a simplification of a continuous, multidimensional market reality. Real market conditions exist on a spectrum; the regime labels are useful approximations, not rigid categories.
On instruments with low liquidity, thin volume, or irregular trading sessions (certain futures contracts, crypto on illiquid exchanges, small-cap equities), ATR behavior may be distorted by gaps or thin-market artifacts, producing unreliable Z-score and percentile readings.
Regime classification performs best when applied within a single session or consistent trading context. Applying it across major session boundaries (e.g., Asia open to New York close on forex) without adjustment may produce spurious transitions driven by liquidity changes rather than structural market behavior.
This indicator does not predict regime changes. It classifies the current regime after it has formed. The RANGING regime, for example, does not predict that expansion will occur — it describes that compression is currently present.
No indicator, including this one, predicts future price direction or magnitude. Regime classification informs which type of strategy is currently better aligned with conditions — it does not guarantee that any strategy will be profitable.
---
Originality Statement
Many volatility indicators answer the question "how volatile is the market?" — ATR, Bollinger Band width, historical volatility, and similar tools all provide variants of this measurement. This indicator answers a different question: "what type of volatility environment is the market currently in?"
The distinction matters because different volatility types require different responses. A spike in volatility during a strong trend calls for different handling than a spike caused by a news event in a ranging market. Compression before a directional breakout is a different environment than compression within an established range. The MIXED regime acknowledges that not all market conditions are clearly classifiable — a honesty that most binary volatility tools omit.
Three independent measures are combined by design, not convenience:
The Z-score is statistical — it grounds the VOLATILE trigger in the instrument's own distributional history rather than an arbitrary fixed threshold.
The percentile is rank-based and linear — it identifies compression relative to the full range of recent ATR values without being sensitive to individual outliers.
The EMA directional ratio tests movement quality in ATR-normalized units — a common EMA crossover system would classify direction identically regardless of whether price is moving coherently or chopping. Normalizing to ATR removes that ambiguity.
The adaptive band multiplier is a direct mechanical expression of the regime classification — not a cosmetic addition. It means the envelope drawn on the chart is always scaled to the current environment, rather than applying a single fixed multiplier that is simultaneously too tight for volatile conditions and too wide for ranging ones.
---
Disclaimer
This indicator is provided for informational and educational purposes only. It does not constitute financial advice, investment advice, or a recommendation to buy or sell any asset. Regime classification describes current market conditions based on historical data — it does not predict future conditions, price direction, or strategy outcomes. All trading involves risk. You are solely responsible for your own trading decisions.
-Made with passion by officialjackofalltrades
Indicator

Liquidity Zone Harvester [JOAT]Liquidity Zone Harvester
Introduction
Institutional order flow leaves footprints in market structure. When a large buyer or seller places a significant order, the execution of that order creates an imbalance between supply and demand at a specific price level — and markets frequently return to these levels to test whether the original interest remains. These price areas are commonly referred to as order blocks or liquidity zones, and they form one of the core concepts in institutional and Smart Money trading methodology.
The Liquidity Zone Harvester is an automated order block detection and management system that identifies these zones using statistically validated momentum signals rather than arbitrary manual placement. Instead of drawing boxes wherever a trader's eye thinks supply or demand may exist, this indicator uses Z-score cumulative impulse detection to identify when directional momentum has reached statistically significant levels — and only then marks the most recent opposing-close candle as the source order block. Volume quality gates ensure that only high-participation impulses create zones, filtering out low-conviction moves that are less likely to represent genuine institutional activity.
What sets this indicator apart from standard order block tools is what happens after zone creation. Every active zone is tracked through a dual-mechanism aging system. The Bayesian exponential decay model progressively reduces zone visual intensity over time with a configurable half-life, providing a continuous probability signal about zone freshness. Simultaneously, a Kaplan-Meier survival analysis engine — borrowed from medical statistics — estimates the probability that a given zone will survive future price tests, based on the historical survival rates of all previously observed zones in the training window. Each zone displays both its current age and its estimated survival probability directly on the chart, turning static boxes into dynamically updated probability estimates.
Core Concepts
1. Z-Score Cumulative Impulse Detection
Zone creation is triggered only when directional momentum reaches a statistically defined threshold. The system accumulates a running streak of directional closes — when consecutive bars close higher than their open, the bull accumulator grows; when consecutive bars close lower, the bear accumulator grows. The streak resets when direction reverses. This cumulative streak is then normalized against its own rolling mean and standard deviation, producing a Z-score that measures how unusual the current momentum streak is relative to recent history.
cumBull := close > open ? nz(cumBull ) + (close - open) : 0
cumBear := close < open ? nz(cumBear ) + (open - close) : 0
zBull = (cumBull - ta.sma(cumBull, zLen)) / ta.stdev(cumBull, zLen)
zBear = (cumBear - ta.sma(cumBear, zLen)) / ta.stdev(cumBear, zLen)
bullEvent = ta.crossover(zBull, zThresh) and barstate.isconfirmed and volOK
bearEvent = ta.crossover(zBear, zThresh) and barstate.isconfirmed and volOK
When a bullEvent fires (bull Z-score crosses the threshold with volume confirmation), the system looks backward to find the most recent down-close candle — the last bar where sellers were dominant before the impulse began. This becomes the demand zone. Similarly, a bearEvent marks the most recent up-close candle as the supply zone.
2. Volume Quality Gate
Not all Z-score impulses are created equal. An impulse that occurs on abnormally low volume represents weak conviction — possibly a thin-market price drift rather than genuine institutional momentum. The volume gate applies RSI to the volume series to normalize it against its own history. Only when volume RSI exceeds the configurable threshold is the volOK condition true, enabling zone creation.
volRsi = ta.rsi(volume, 14)
volOK = volRsi > volThresh
This filter meaningfully reduces the number of zones created during low-participation conditions such as pre-market sessions, lunch hours, or holiday-period trading — precisely the times when order block levels are least likely to represent significant institutional interest.
3. Order Block Zone Construction
When a signal event is confirmed, the most recent opposing candle is identified using ta.valuewhen(). For a bullEvent, the system finds the most recent bar where close was less than open (a down candle) — its high and low define the demand zone boundaries. For a bearEvent, it finds the most recent up candle — its high and low define the supply zone boundaries. A box object is created spanning from that historical bar to the current bar, with height defined by the candle's actual high-low range.
lastDnHigh = ta.valuewhen(close < open, high, 0)
lastDnLow = ta.valuewhen(close < open, low, 0)
lastDnBar = ta.valuewhen(close < open, bar_index, 0)
if bullEvent
newBox = box.new(lastDnBar, lastDnHigh, bar_index, lastDnLow, ...)
bullBoxes.push(newBox)
4. Overlap Prevention (f_no_overlap)
To avoid cluttering the chart with redundant zones that occupy the same price territory, an overlap check function evaluates whether a proposed new zone overlaps with any existing zone of the same type. The function iterates over all existing bull or bear boxes and compares the new zone's top and bottom against each existing box's top and bottom. A guard condition (nBull > 0) prevents the iteration from running on an empty array, which would cause an index -1 crash.
f_no_overlap(newTop, newBot, boxes) =>
noOverlap = true
if boxes.size() > 0
for i = 0 to boxes.size() - 1
b = boxes.get(i)
if newTop >= box.get_bottom(b) and newBot <= box.get_top(b)
noOverlap := false
noOverlap
5. Bayesian Exponential Decay
Each zone's visual transparency is driven by an exponential decay function that represents the diminishing probability of zone relevance over time. The half-life parameter (default: 75 bars) defines how quickly a zone fades. At age 0, the zone is fully opaque. At age 75 bars, the zone is at 50% opacity. At age 150 bars, 25% opacity. This continuous decay — rather than a binary active/expired switch — provides an analog probability signal directly encoded in the zone's visual intensity.
decayFactor = math.exp(-0.693 * age / halfLife)
zoneAlpha = math.round(decayFactor * 200)
box.set_bgcolor(b, color.new(zoneColor, 255 - zoneAlpha))
6. Kaplan-Meier Survival Analysis
The Kaplan-Meier estimator is a nonparametric statistical method originally developed to measure survival probabilities in clinical trial data. In this indicator, "survival" is defined as a liquidity zone remaining unmitigated (not breached by a closing price on two separate occasions). Each time a zone is mitigated, it is recorded as a "death event" at its current age. Zones that expire by age limit without mitigation are recorded as "censored events" — incomplete observations. The KM formula multiplies survival probabilities across all observed events up to a given age.
// For each completed event (death at age t_i with n_i at-risk zones):
S_t := S_t * (1.0 - d_i / n_i)
// Product over all event times <= query age
For each active zone, the indicator queries the KM estimate at the zone's current age and displays the result as a percentage label. A zone at age 40 showing "Age 40 | 72%" means that historically, 72% of zones survived to at least 40 bars without being mitigated — giving traders a quantitative assessment of how likely the zone is to hold on the next test.
Features
Z-Score Cumulative Impulse: Statistical momentum threshold using normalized cumulative directional streaks to gate zone creation.
Volume Quality Gate: Volume RSI filter ensures only high-participation impulses create zones.
Precise Order Block Identification: Most recent opposing candle (last down-close for bull event, last up-close for bear event) defines zone boundaries.
Overlap Prevention: f_no_overlap function checks all existing zones before creating a new one, preventing chart clutter from redundant levels.
Bayesian Exponential Decay: Zone opacity decays over time with configurable half-life, encoding freshness as a visual probability signal.
Kaplan-Meier Survival Analysis: Medical-statistics survival estimator applied to zone longevity, displayed as a percentage probability label on each active zone.
Dynamic Zone Extension: Box right edge extends to the current bar on every update, keeping zones visually connected to the present.
Mitigation Tracking: Zones that are closed through twice are flagged as mitigated and removed, with the event recorded for KM analysis.
Seven-Row Dashboard: Active demand count, active supply count, bull Z, bear Z, volume RSI, KM training size, and signal status.
Two Alert Conditions: Zone created alert and zone rejection (price tests and bounces back) alert.
Input Parameters
Z-Score Settings:
Z Lookback: Rolling window for Z-score normalization (default: 50)
Z Threshold: Sigma level required to trigger an impulse event (default: 2.0)
Volume Gate Settings:
Volume RSI Period: RSI lookback for volume normalization (default: 14)
Volume RSI Threshold: Minimum volume RSI for zone creation eligibility (default: 55)
Zone Management Settings:
Max Zone Age: Maximum bars a zone remains active before forced removal (default: 300)
Mitigation Count: Number of closes through a zone required for mitigation (default: 2)
Max Active Zones Per Side: Maximum simultaneous demand or supply zones displayed (default: 5)
Decay Settings:
Decay Half-Life: Number of bars at which zone opacity reaches 50% of initial value (default: 75)
KM Settings:
KM Training Window: Bar lookback for Kaplan-Meier training data collection (default: 500)
Show Survival Labels: Toggle KM probability labels on active zones (default: true)
Display Settings:
Show Demand Zones: Toggle demand (bull) zone boxes (default: true)
Show Supply Zones: Toggle supply (bear) zone boxes (default: true)
Show Dashboard: Toggle the seven-row information table (default: true)
How to Use This Indicator
Step 1: Understand Zone Creation Conditions
Zones are not created on every bar — they are created only when a statistically significant directional impulse (Z-score above threshold) occurs on above-average volume. This selectivity is intentional. In any given trading session, you will likely see only a few zone creation events, each backed by a genuine momentum surge that suggests institutional participation. When you see a new zone appear, note the Z-score values in the dashboard and the volume RSI reading — higher values on both indicate a stronger impulse and more confident zone placement.
Step 2: Prioritize Fresh, High-Survival Zones
Not all zones on the chart are equally relevant. A fresh zone (low age, full opacity) at a KM survival rate of 80% is a far stronger candidate for price reaction than an old zone (high age, near-transparent) at 30% survival probability. Use both the visual opacity and the KM label together: as a zone ages and fades, reduce your expectation that it will provide meaningful support or resistance. When price approaches a zone that is both visually fresh and shows high KM survival probability, the statistical expectation of reaction is at its highest.
Step 3: Watch for Zone Rejection Alerts
The zone rejection alert fires when price tests a zone (enters the box boundary) and then closes back away from it without mitigating it. This is the core trade setup: price returning to the institutional order block level, briefly penetrating it, and then reversing. The rejection alert provides a timely notification for potential entries in the direction of the original impulse that created the zone, with the zone's near boundary serving as the natural stop-loss reference.
Step 4: Monitor KM Training Size for Statistical Validity
The dashboard displays the KM training sample size — the number of completed zone events (both mitigated and aged-out) available for the survival analysis. With fewer than 10 training events, the KM estimate has high variance and should be treated as rough guidance. With 30 or more training events, the estimate becomes statistically stable. On instruments or timeframes where the indicator has run for extended periods, the KM estimates become increasingly reliable as the training dataset grows.
Indicator Limitations
The Z-score cumulative impulse and volume gate require sufficient chart history for the rolling normalization periods to be seeded. In the first Z-lookback bars of a new chart, zone creation signals may be less reliable as the mean and standard deviation are not yet fully established.
Kaplan-Meier survival estimates are only as reliable as the training dataset. On instruments or timeframes that have not accumulated many completed zone events, the survival probabilities should be treated as rough estimates rather than statistically precise values.
The mitigation definition (two closes through the zone) is a configurable approximation. In real order block theory, mitigation can be defined in several ways; this indicator's specific definition may not match every trader's conceptual framework.
Zones are based on the most recent opposing candle at the time of the impulse event. In fast markets where multiple large candles cluster closely together, the marked candle may not represent the most significant institutional order location.
This indicator requires volume data. On instruments where volume is unavailable or unreliable (some synthetic indices, certain forex pairs), the volume gate will not function as intended and should be disabled or its threshold lowered significantly.
The exponential decay model assumes a constant half-life across all market conditions. In reality, zone relevance can be regime-dependent — a zone formed during a trending market may remain relevant longer than one formed during a range, or vice versa.
Maximum active zones per side is a hard limit. If the limit is reached, new valid zone creation events will be rejected until an existing zone is mitigated or aged out.
Originality Statement
The Liquidity Zone Harvester is a genuinely original indicator that applies statistical and mathematical frameworks from outside the trading domain to a problem common in technical analysis.
The Z-score cumulative impulse detection — using consecutive close-open accumulation normalized against rolling sma/stdev — as the primary trigger for order block marking is an original signal architecture. Most order block indicators use visual pattern matching (e.g., a large candle followed by a gap) rather than statistical significance thresholds.
Applying the Kaplan-Meier survival estimator — a nonparametric method from biostatistics — to estimate the probability that a liquidity zone will survive future price tests is a novel application of medical statistics to market analysis. This provides a mathematically grounded probability estimate that no standard order block indicator offers.
The Bayesian exponential decay applied to zone visual transparency — using a configurable half-life to continuously encode zone freshness as opacity — is an original visual design that treats zone relevance as a continuously diminishing probability rather than a binary active/inactive state.
The overlap prevention function that iterates over all existing zone arrays before creating a new zone — with the index-crash guard for empty arrays — is a specific engineering solution to a concrete problem in box-based indicator design.
The volume RSI quality gate, applied specifically to filter Z-score impulse events rather than as a standalone signal, is an original confluence filter design that specifically addresses the problem of thin-market false signals in order block detection.
Disclaimer
The Liquidity Zone Harvester is provided for educational and informational purposes only. It is a technical analysis tool and does not constitute financial advice. Liquidity zones and order blocks are analytical constructs; they do not guarantee price reactions. Past zone behavior as encoded in Kaplan-Meier estimates does not predict future zone performance. All trading involves risk of loss. Users are solely responsible for their own trading decisions. Please consider your individual risk tolerance and consult a licensed financial professional before engaging in any trading activity.
-Made with passion by officialjackofalltrades
Indicator
