Williams Variable A/D Pressure [MarkitTick]💡 This tool reframes Larry Williams' Variable Accumulation/Distribution concept as a fully adaptive, confluence-filtered oscillator, then extends it into a complete ATR-based trade-management layer with a live on-chart dashboard. Rather than reading a single fixed-formula line, traders get a volume-weighted pressure reading that can be reshaped through eight different smoothing engines, gated by a trend-strength filter and a higher-timeframe bias check, and translated directly into projected entry, stop, and take-profit levels the moment a qualifying signal appears.
✨ Originality and Utility
The core value of this script is not the Variable A/D formula itself — that calculation is decades old — but the pipeline built around it. Three distinct engineering layers are stacked with a specific purpose each, which is what justifies combining them into a single publication rather than three separate scripts:
A selectable adaptive-smoothing stage that lets the trader choose how the raw pressure sum is denoised — from simple averaging to cascaded, lag-reduced, and custom recursive estimators — instead of being locked into one fixed filter shape.
A dual confluence gate (trend-strength via ADX and directional bias via a higher timeframe) that suppresses crossovers occurring in weak or conflicting conditions, rather than firing on every raw cross of the smoothed line against its signal average.
An execution layer that converts a confirmed crossover into a concrete, volatility-scaled trade plan (entry, stop, three take-profit tiers) with automatic on-chart tracking of which levels have been touched, plus JSON webhook payloads for each event so the signal can drive external automation without manual re-entry of parameters.
None of these layers is arbitrary window-dressing: the adaptive filter changes what "the trend" looks like, the confluence gate decides whether that trend is tradeable, and the trade-management layer answers the practical question of where to actually place risk once a decision has been made. Removing any one of the three would leave either a raw unfiltered oscillator, an unfiltered signal, or a signal with no execution framework.
🔬 Methodology and Concepts
• Williams Variable Accumulation/Distribution Core
For every bar, a raw pressure value is calculated as the bar's directional efficiency — (close − open) divided by the bar's full range (high − low) — multiplied by that bar's volume. This produces a signed, volume-weighted read of how much of the bar's traded volume pushed price toward its close relative to its open, scaled by how decisively the bar closed within its own range. This raw series is then summed over the WVAD Period using a simple moving average multiplied by the period length, which reconstructs a rolling total (rather than an average) of accumulated buying or selling pressure over that window — consistent with Williams' original "variable" accumulation/distribution concept, where the weighting factor varies bar to bar instead of using a fixed multiplier.
• Adaptive Filter Engine
The rolling WVAD sum is then optionally reshaped by one of eight selectable smoothing methods before it becomes the tool's working "WVAD" line:
SMA / EMA / RMA — standard simple, exponential, and Wilder-style moving averages applied directly to the WVAD sum.
Double WMA — a weighted moving average applied to the output of a first weighted moving average, compounding the weighting to reduce lag further than a single WMA pass.
Triple VWMA — a volume-weighted moving average cascaded through itself three times, so the smoothing itself continues to lean on volume at each stage rather than only at the raw-pressure stage.
HMA — a Hull Moving Average pass, used here for its reduced-lag response relative to standard averages.
LLAMA — a proprietary in-house filter unique to this script. It combines a simple moving average of the WVAD sum with a linear extrapolation term: the average per-bar slope of the WVAD sum across the lookback window, scaled by half that window's length, is added back to the moving average. In practice this projects the average forward along its recent trend rather than leaving it lagging behind price the way a plain moving average would.
Kalman Filter — also a proprietary, simplified single-state implementation rather than a textbook multi-variable Kalman filter. It maintains a running error estimate and a fixed process-noise term equal to the reciprocal of the selected length; on each bar it computes an adaptive gain from the ratio of predicted error to that error plus a fixed measurement-noise constant, then nudges its estimate toward the new WVAD value by that gain. Shorter lengths raise the process-noise term and make the filter react faster to new data; longer lengths make it progressively smoother and slower to adapt.
Selecting "None" bypasses this stage and the raw WVAD sum is used directly.
• Signal & Confluence Logic
A Signal Length moving average of the (optionally filtered) WVAD line produces the Signal line, and the difference between the two produces the histogram. A raw long or short bias is registered when the WVAD line crosses above or below its Signal line. That raw bias only becomes an active Long/Short signal when both confluence conditions pass: the ADX Filter, when enabled, requires the prior bar's ADX reading to be at or above the ADX Threshold before a crossover is accepted, filtering out signals born in low-trend-strength conditions; the HTF Confirmation filter, when enabled, requires the previous, fully closed candle on the selected higher timeframe to have closed bullish for long signals or bearish for short signals, filtering out crossovers that fight the higher-timeframe bias.
• Confirmation & Non-Repainting Design
The script is built so that no decision depends on data that has not yet closed. The crossover check itself compares the previous bar's WVAD and Signal values, the ADX gate reads the previous bar's confirmed ADX value, and the higher-timeframe request pulls the prior, already-closed candle on that timeframe rather than the currently forming one. Entry price for a new trade plan is likewise taken from the previous bar's close rather than the live price. Entry/exit alerts only fire once a bar is fully confirmed. One practical consequence worth understanding: because the crossover and entry reference both use the prior bar, there is a small, consistent one-bar delay between the moment the underlying pressure line actually crosses its signal and the bar on which the trade plan is drawn and the alert can fire — this is a deliberate confirmation design choice, not an inconsistency. Take-profit and stop-loss "hit" detection, by contrast, is checked against each bar's own intrabar high/low as it happens and can alert in real time, since that behavior simply reports a price touching an already-fixed level rather than altering a prior signal.
🎨 Visual Guide
• Oscillator Pane
The WVAD line plots the (optionally adaptively filtered) pressure sum.
The Signal line plots its moving average.
The Histogram, drawn as columns, shows the difference between the two and cycles through four shades: a solid strong color when rising above zero, a faded shade when falling but still above zero, a solid opposite color when falling below zero, and a faded shade when rising but still below zero — giving an at-a-glance read of both direction and momentum change.
A flat Zero Line marks the neutral pressure boundary.
BULL and BEAR text markers appear directly on the oscillator at the bar where a confirmed long or short signal registers.
• Price Chart Overlay Elements
Several elements are pushed onto the main price chart even though the indicator's native pane is the oscillator below it:
Heatmap Candles optionally recolor the actual price candles' bodies, wicks, and borders based on whether the WVAD line is above, below, or equal to its Signal line — turning the price chart itself into a running visual of the underlying bias.
A second copy of the BULL/BEAR marker is placed directly below or above the corresponding price bar, so the signal is visible on the price chart without needing to also watch the oscillator pane.
• Trade Level Projection
When a confirmed signal fires (and levels are not locked), five horizontal lines and matching labels are drawn from the signal bar forward: the Stop-Loss line and label, the Entry line and label, and three Take-Profit lines and labels (TP1–TP3). A shaded Risk fill spans the zone between stop and entry, and a shaded Reward fill spans between entry and TP3, giving an immediate visual sense of the risk/reward geometry. All five lines automatically extend to the right as new bars form. Once a take-profit or stop level is touched, its label text updates in place to show a hit confirmation and the resulting percentage gain or loss from entry — the lines are not redrawn or repositioned, only the label text and the ongoing color state update.
• Dashboard Panel
An optional table (position configurable) summarizes, in real time: the symbol and timeframe, whether Lock Signal is active, the current directional Bias, the raw WVAD and Signal values, the Histogram value, a filled-bar Strength readout (WVAD magnitude relative to its own 100-bar high), current Volume and a filled-bar Volume Ratio (versus its 20-bar average), the Higher-Timeframe Bias (only shown when that filter is enabled), the current ADX reading (only shown when the ADX filter is enabled), the active Adaptive Filter name (only shown when one is selected), and the live Trade direction with Entry, SL, and TP1–TP3 prices, each recoloring once its corresponding level has been hit.
📖 How to Use
Treat a WVAD-over-Signal cross, confirmed by a BULL/BEAR marker and matching histogram color flip, as the core directional bias; the heatmap candles offer the fastest visual confirmation of that same bias directly on price.
Enable the ADX Filter to require a minimum trend-strength reading before a crossover is accepted — useful for avoiding signals generated during flat, low-conviction chop.
Enable HTF Confirmation and choose a higher timeframe to only accept longs when that timeframe's last closed candle was bullish, and shorts when it was bearish — this narrows signals to those aligned with the broader trend context.
Use the Adaptive Filter dropdown to trade off responsiveness against smoothness: SMA/EMA/RMA are the most transparent baseline options, Double WMA and Triple VWMA add extra lag reduction (the latter leaning more heavily on volume), HMA targets minimal lag, and LLAMA and Kalman Filter are the script's proprietary adaptive options for traders who want the smoothing itself to react to changing conditions rather than stay fixed.
Lock Signal freezes the currently displayed trade-level lines and labels so a new opposite signal will not replace them while it is enabled; it does not stop new BULL/BEAR markers, histogram behavior, or alert conditions from continuing to register — it only holds the visual trade plan in place.
The Entry price used for any trade plan is the previous bar's close, not the live price at the moment the signal appears, so real-world fills will vary from the plotted entry level depending on slippage and gap risk.
Configure the Alerts group's action-tag fields to match whatever automation system consumes the webhook payloads, then build a TradingView alert on this script using "Any alert() function call" to receive the JSON messages for entries, exits, and each TP/SL event.
⚙️ Inputs and Settings
• Core Settings
WVAD Period — the summation length for the raw Variable A/D pressure calculation.
Signal Length — the moving-average length used to derive the Signal line from the (filtered) WVAD line.
• Filters
Use HTF Confirmation / HTF Timeframe — enables the higher-timeframe directional gate and sets which timeframe it checks.
Use ADX Filter / ADX Threshold / ADX Length — enables the trend-strength gate and sets its minimum qualifying reading and DMI length.
Adaptive Filter / Adaptive Filter Length — selects which of the eight smoothing methods (or none) is applied to the WVAD sum, and its lookback length.
• Trade Tools
Lock Signal — freezes the current trade-level projection against replacement by a new signal, as described above.
Show Trade Levels — toggles whether entry/SL/TP lines, labels, and fills are drawn at all.
SL × ATR — sets the stop distance as a multiple of ATR from the entry reference price.
TP1 × R / TP2 × R / TP3 × R — set each take-profit distance as a multiple of the initial risk (R) defined by the stop distance.
ATR Length — the lookback used for the ATR value driving stop and target distances.
• Visuals
Show Histogram, Show WVAD/Signal Lines, Show Signal Markers, Show Zero Line, and Color Candles independently toggle each corresponding chart element described in the Visual Guide.
• Dashboard
Show Dashboard and Position control whether the summary table is displayed and which corner it occupies.
• Alerts
Long / Short / Close Long / Close Short Action and TP1 / TP2 / TP3 / SL Hit Action — free-text tags inserted into each event's JSON webhook payload (alongside ticker, timeframe, and relevant price fields) so external automation can route each message correctly.
Colors for every line, fill, label, candle state, and dashboard element are independently configurable and are purely cosmetic.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The foundation is Larry Williams' Variable Accumulation/Distribution concept: a price-volume flow measure in the same family as Chaikin's Accumulation/Distribution Line, but weighting each bar's volume by its own directional efficiency — (close − open)/(high − low) — rather than the Close Location Value used in Chaikin's version, making the "variable" weighting bar-specific rather than fixed.
The adaptive-smoothing stage draws on several established ideas from technical filtering theory: cascaded weighted and volume-weighted averaging (repeated WMA/VWMA passes) as a lag-reduction technique, Alan Hull's reduced-lag moving average construction, and the broader concept of adaptive filters that vary their responsiveness with market conditions rather than using a static weighting scheme — the category popularized by adaptive moving-average research such as Kaufman's work. Within that category, this script's LLAMA and Kalman Filter options are simplified, single-parameter, in-house approximations: LLAMA borrows the linear-extrapolation logic underlying least-squares/regression-adjusted moving averages (projecting a simple average forward using its own recent slope), while the Kalman Filter option implements a single-state recursive estimator in the spirit of Kalman filtering — updating an estimate and its error term each bar based on a fixed process/measurement noise ratio — rather than the multi-state, matrix-based formulation used in full Kalman filter implementations.
The ADX/DMI confluence gate is drawn from Welles Wilder's Directional Movement System, using ADX as a proxy for trend strength independent of direction. The higher-timeframe confirmation gate reflects standard multi-timeframe analysis practice, where aligning a lower-timeframe signal with a higher-timeframe directional read is used to reduce signals that contradict the broader trend. Finally, the ATR-based stop and R-multiple take-profit structure reflects standard volatility-adjusted position and risk management practice, sizing trade levels to each instrument's own recent average range rather than to a fixed point or percentage value.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Coppock Curve Multi-Filter [MarkitTick]💡 A dual-momentum oscillator built on the classic Coppock Curve, extended with an optional adaptive source pre-filter, an ADX strength gate, and a full ATR-based trade-management layer with staged take-profits, on-chart price levels, and a live dashboard. The core wave is a weighted moving average of two rate-of-change readings, but everything measured downstream of that wave — signal timing, trend bias, and risk levels — can be reshaped by up to eight independent, toggleable filters, giving traders a single oscillator that can behave anywhere from "classic long-term Coppock" to a tightly gated, multi-condition entry engine.
✨ Originality and Utility
The stock Coppock Curve is a single-purpose, long-only momentum tool: sum two rate-of-change readings, smooth with a weighted moving average, and watch for crosses above zero. This script keeps that foundation intact but restructures it into a bidirectional signal engine with a stack of independent confirmation layers that the original concept never included.
The key structural change is the adaptive source stage. Rather than feeding raw closing price directly into the rate-of-change calculations, the script offers a choice of eight different smoothing methods — including a custom Kalman Filter estimator and a custom LLAMA (Linear-Lag Adaptive Moving Average) function — that first condition the price series before Coppock's ROC math is applied. This means the character of the entire curve can be tuned from responsive to heavily smoothed without altering the underlying two-ROC-plus-WMA structure that defines the Coppock method.
Layered on top of that are seven optional gating and confirmation mechanisms (ADX strength, divergence, slope acceleration, volume, higher-timeframe alignment, volatility-adjusted zero line, and signal persistence) that traders can combine in any subset. Because each filter operates independently and can be switched on or off, the same core wave can be configured for a slow trend-confirmation approach or a fast, tightly-filtered signal generator, giving the tool a much broader utility range than a standard Coppock plot.
Beyond signal generation, the script converts each qualifying cross into a full trade plan: an ATR-derived stop-loss, three R-multiple take-profit tiers, live price levels drawn on the chart, and a real-time dashboard summarizing bias, filter states, and trade levels — none of which exist in the original Coppock Curve concept or in standard TradingView implementations of it.
🔬 Methodology and Concepts
● Core Wave Construction
The engine begins with an adaptive source stage. If no adaptive filter is selected, the raw chosen source (default: close) feeds directly into the calculation. If a filter is selected, the source is pre-smoothed using one of the following:
Simple, Exponential, or RMA-based moving averages
A Double WMA (a weighted moving average applied twice in succession, producing extra lag reduction)
A Triple VWMA (three successive volume-weighted moving average passes)
A Hull Moving Average
A custom LLAMA function, which computes a simple moving average over the lookback window, then adds a linear slope term (calculated from the change in price across the window divided by the window length) scaled by half the window length — effectively projecting the average forward along its own recent trajectory
A custom Kalman Filter estimator, which maintains a running estimate and error variance, calculates a Kalman gain each bar from the ratio of predicted error to total error, and blends the new price into the estimate proportionally to that gain — placing more weight on new data when the filter's own uncertainty is high, and more weight on the existing estimate when it is low
Once the (optionally smoothed) source is established, two Rate of Change values are calculated against it — a long lookback and a short lookback, independently configurable. These two ROC values are summed and passed through a weighted moving average, producing the final Coppock Curve value. This is structurally identical to the classic Coppock formula, but with the adaptive pre-filter as an optional intermediate step.
• ADX Strength Filter
When enabled, the script calculates the Directional Movement Index (+DI, -DI, ADX) over a configurable length. A signal — whether a slope change, a cross, or a zero-line cross — is only considered valid if the ADX reading is at or above the user-defined threshold. This filters out Coppock movements that occur during weak or directionless conditions.
• Slope and Cross Detection
The script tracks whether the curve is rising or falling bar-to-bar, and separately detects two types of crosses: a cross of the curve against its own prior value (used as the primary bull/bear signal) and a cross of the curve against the zero line (used as a secondary trend-state signal). Both cross types respect the ADX filter when it is active.
• Signal Locking
A "Lock Signal" input freezes the active signal and trade levels on the most recent bar, preventing new signals from overwriting the currently displayed trade plan — useful for holding a specific setup visible while monitoring live price action.
● Trade-Level Automation
Every new bullish or bearish cross (confirmed and unlocked) triggers a full trade-plan calculation:
Entry is set to the prior bar's close
Stop-loss is placed at a configurable multiple of ATR away from entry, in the direction opposing the trade
Three take-profit levels are calculated as configurable R-multiples of the initial risk distance (the entry-to-stop distance), projected in the trade's favor
Each level's distance from entry is also expressed as a percentage for quick reference
These levels persist on the chart until a new opposing signal fires (or, if Lock Signal is active, until manually released), and are dynamically extended to the current bar so the trade plan remains visible in real time. Take-profit and stop labels update their text once price actually touches each respective level, marking it as hit along with the realized percentage move.
● Optional Confirmation Filters
Seven additional filters exist as inputs in the script but should be understood as configuration flags a trader can layer onto the core signal logic depending on their own methodology:
Divergence Filter — intended to suppress cross signals that run counter to a detected price/Coppock divergence
Slope Acceleration Filter — intended to require the curve's slope itself to be increasing, not merely positive, before validating a signal
Volume Confirmation Filter — intended to require current volume to exceed its moving average before a signal is accepted
HTF Alignment Filter — intended to require a higher-timeframe Coppock reading to agree with the signal's direction
Volatility-Adjusted Zero Line — intended to require zero-line crosses to clear a noise band derived from the indicator's own recent volatility, reducing whipsaw signals near the zero line
Signal Persistence Filter — intended to require the curve's direction to hold for a minimum number of bars before a signal is treated as valid
Traders should treat these as intended-purpose toggles per their input tooltips and confirm behavior against the ADX filter and core cross logic, which are the two filters fully wired into the signal path in this build.
🎨 Visual Guide
● Main Panel (Separate Pane)
The primary line plot shows the Coppock Curve itself. It is colored using the Bull Color when the curve is rising and the ADX filter (if active) passes, the Bear Color when falling under the same condition, and the Neutral Color otherwise.
A histogram of the same Coppock value is plotted in columns beneath the line, using a four-tier color scheme: strong bull shading when the curve is above zero and rising, weak bull shading when above zero but not rising, weak bear shading when below zero but rising, and strong bear shading when below zero and falling.
A dashed horizontal zero line marks the neutral threshold that separates bullish and bearish curve territory.
Small triangle markers appear directly on the curve at the exact bar where it crosses zero — an upward triangle in Bull Color for an upward zero-cross, and a downward triangle in Bear Color for a downward zero-cross.
● Price Chart Overlay
When candle coloring is enabled, the price candles themselves are recolored using the same four-tier histogram coloring described above, turning the price chart into a visual heatmap of underlying Coppock strength and direction.
When a new signal fires and trade levels are enabled, five horizontal lines are drawn directly on price: a solid stop-loss line, a dashed entry line, and three dashed take-profit lines with progressively increasing opacity from TP1 to TP3. Each line carries a right-aligned label showing its role and exact price.
A shaded "risk zone" fills the area between the stop-loss and entry lines, and a "reward zone" fills the area between the entry and TP3 lines, giving an immediate visual sense of the risk-to-reward geometry of the active trade plan.
Once a take-profit or stop level is touched by price, its label updates in place to show a hit confirmation along with the realized percentage gain or loss.
● Dashboard Table
A compact table (position configurable) displays, in real time: the current symbol and timeframe, the Lock Signal state, the raw Coppock value, the current bias (Bullish / Bearish / Neutral, color-coded), the individual long and short ROC readings, whether the curve is currently above or below zero, and — when trade levels are enabled — the live Entry, SL, TP1, TP2, and TP3 prices. If the ADX filter is active, its current reading is shown alongside a pass/fail color cue. If an adaptive filter is selected, its name is displayed for quick reference.
📖 How to Use
Treat a bullish cross (curve turning up) as a potential long-side signal, and a bearish cross (curve turning down) as a potential short-side signal, especially when it aligns with a zero-line cross in the same direction.
Use the zero line as a broader trend-state filter: readings above zero generally reflect positive intermediate-term momentum, while readings below zero reflect negative momentum, independent of the immediate slope.
Enable the ADX filter to restrict signals to periods of measurable trend strength, reducing signals generated during flat or choppy conditions.
Select an adaptive filter method to change the responsiveness of the underlying source feeding the Coppock calculation — faster methods like EMA or the Kalman Filter increase sensitivity, while methods like the Triple VWMA or SMA produce a smoother, slower curve.
When a signal fires, use the automatically plotted Entry, SL, and TP1–TP3 lines as a starting reference for trade structure, and adjust position sizing according to the displayed stop distance and your own risk tolerances.
Use candle heatmap coloring as a quick visual scan across the chart to spot where momentum has historically been strongest or weakest, independent of reading the oscillator pane directly.
Configure the webhook alert action strings in the Alerts group to match the payload keys expected by your automation or webhook receiver before relying on the JSON-formatted alerts for execution.
⚙️ Inputs and Settings
• Core Settings
Source — the price series the calculation is based on (default: close)
Long ROC Length — lookback for the long-term rate-of-change component
Short ROC Length — lookback for the short-term rate-of-change component
WMA Smoothing Length — window for the final weighted moving average applied to the combined ROC values
• Filters
Use ADX Filter / ADX Threshold / ADX Length — enables trend-strength gating and configures its sensitivity
Adaptive Filter / Adaptive Filter Length — selects the pre-smoothing method applied to price before the ROC/WMA math, and its lookback window
Use Divergence Filter / Divergence Pivot Lookback — configuration for suppressing signals against detected divergence
Use Slope Acceleration Filter — configuration for requiring accelerating slope before a signal
Use Volume Confirmation Filter / Volume MA Length — configuration for requiring above-average volume
Use HTF Alignment Filter / HTF Alignment Timeframe — configuration for requiring higher-timeframe agreement
Use Volatility-Adjusted Zero Line / Volatility Zero Band Multiple / Volatility Zero Band Length — configuration for a noise-adjusted zero-cross threshold
Use Signal Persistence Filter / Persistence Bars — configuration for requiring a minimum number of bars of consistent direction
• Trade Tools
Lock Signal — freezes the currently active signal and trade levels
SL ATR Multiple — sets stop-loss distance as a multiple of ATR
TP1 / TP2 / TP3 R-Multiple — sets each take-profit distance as a multiple of the initial risk
ATR Length — lookback for the Average True Range calculation used in stop placement
Show Trade Levels — toggles the on-chart lines, labels, and dashboard trade-level rows
• Visuals
Use Candle Coloring — toggles heatmap-style recoloring of price candles
Show Histogram — toggles the columned histogram beneath the main curve
Show Zero-Cross Markers — toggles the triangle markers at zero-line crosses
• Dashboard
Show Dashboard — toggles the on-chart summary table
Position — sets the table's screen position
• Alerts
Action strings for Bull Cross, Bear Cross, Zero Cross Up/Down, Close Long/Short, and TP1/TP2/TP3/SL Hit — these populate the "action" field of each JSON alert payload, allowing the alerts to be mapped directly to webhook or automation logic
• Colors
Full palette control over bull/bear/neutral coloring, histogram tiers, dashboard styling, and all trade-level line and fill colors
🔍 Deconstruction of the Underlying Scientific and Academic Framework
● Rate of Change and the Coppock Curve
The foundation of this script is Edwin Coppock's original curve, published in Barron's in 1962, which sums a long-term and a short-term Rate of Change and smooths the result with a weighted moving average. Rate of Change itself is a first-order momentum measure — the percentage difference between the current value and its value N bars ago — rooted in the broader technical-analysis principle that the velocity of price change often leads price direction itself. Coppock's original design used a WMA specifically because it weights recent data more heavily than a simple average while remaining less reactive to single-bar noise than an exponential average.
● Weighted and Hull Moving Averages
The Weighted Moving Average used both in the final smoothing stage and optionally in the adaptive pre-filter assigns linearly decreasing weights to older data points, a technique long used to balance responsiveness against noise rejection. The Hull Moving Average, developed by Alan Hull, extends this idea by combining WMAs of different lengths in a way designed to reduce lag while preserving smoothness — a documented refinement of the general weighted-average family.
● Kalman Filtering
The Kalman Filter, originally developed by Rudolf Kálmán in the context of control and estimation theory, is a recursive algorithm for estimating an unknown value from a series of noisy observations. In this implementation, the filter maintains a running estimate and an error term, computes a Kalman gain from the ratio of predicted error to total error each bar, and updates the estimate by blending new price data in proportion to that gain. This gives the estimate more responsiveness when its own uncertainty is high and more smoothness when uncertainty is low — the same estimation principle underlying Kalman's original work, applied here to a single noisy input series rather than a multi-variable state system.
● Directional Movement and Trend Strength (Wilder)
The optional ADX filter is built on J. Welles Wilder's Directional Movement System, which derives +DI and -DI from directional price movement smoothed with Wilder's own moving average technique, then compresses their divergence into the Average Directional Index (ADX) as a bounded measure of trend strength independent of direction. Using ADX as a gating condition reflects the broader academic distinction between trend-following and mean-reverting market regimes — Wilder's system was explicitly designed to help separate the two.
● Average True Range and Volatility-Based Risk Sizing
Stop-loss and take-profit distances in this script are derived from Average True Range, also introduced by Wilder, which measures volatility by accounting for gaps as well as intraperiod range. Sizing risk as a multiple of ATR — rather than a fixed point or percentage value — is a widely documented approach in position-sizing literature because it scales stop distance to the instrument's actual recent volatility rather than an arbitrary constant.
● R-Multiples and Risk-Reward Structuring
The three-tiered take-profit structure expresses reward as a multiple of initial risk (an "R-multiple"), a framework popularized in trading risk-management literature to normalize outcomes across trades of different sizes and volatility regimes, allowing performance to be evaluated in terms of risk-adjusted return rather than raw price movement.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

NRTR Adaptive Trailing Reverse [MarkitTick]💡 An adaptive trailing-stop and reversal system built around the Nick Rypock Trailing Reverse (NRTR) algorithm, extended with a configurable smoothing engine, ADX confluence filtering, automatic risk-based trade level projection, and a live position-sizing dashboard. Rather than applying NRTR to raw closing price, this tool lets the trailing calculation run on top of one of eight selectable smoothing methods, giving traders control over how reactive or how filtered the underlying trend estimate is before the trailing stop is derived from it.
✨ Originality and Utility
The classic NRTR trailing stop is normally computed directly from price. This script decouples the "source" the trailing calculation reacts to from raw price by routing it through a selectable adaptive filter stage first — SMA, EMA, RMA, Double WMA, Triple VWMA, HMA, a custom LLAMA slope-projection filter, or a Kalman filter. This means the trailing envelope itself can be smoothed, decoupled from tick-level noise, or shaped to lag less than a conventional moving average, without changing the core NRTR ratchet-and-flip mechanic.
Beyond the trailing engine, the script closes the loop between "signal" and "trade management," which most trailing-stop tools leave to the user. Once a trend flip is confirmed, it automatically derives a stop-loss from the NRTR level itself and projects three risk-multiple take-profit targets, tracks whether each has been hit, calculates a suggested position size from a risk percentage or fixed-dollar risk model, and optionally suppresses new signals for a cooldown period after a stop-out. An ADX confluence filter can additionally require a minimum trend strength reading before a flip is treated as valid. The combination is justified because each component consumes the output of the one before it: the adaptive filter conditions the source, the NRTR logic converts that source into a trailing stop and flip signal, the ADX filter validates the flip's context, and the risk/sizing engine turns the validated flip into an actionable, fully quantified trade plan — a single coherent pipeline rather than an arbitrary bundling of unrelated indicators.
🔬 Methodology and Concepts
• The Adaptive Source Filter
Before any trailing-stop math happens, closing price is optionally passed through one of these transformations, selected from the "Adapt Filter" input:
SMA / EMA / RMA — standard moving averages, included as familiar baselines.
Double WMA — a Weighted Moving Average applied twice in succession (a WMA of a WMA), which produces a lower-lag response than a single WMA of the same length.
Triple VWMA — a Volume Weighted Moving Average cascaded three times, folding volume-weighting into a lower-lag smoothing chain.
HMA — the Hull Moving Average, using weighted-moving-average differencing to reduce lag relative to standard smoothing.
LLAMA — a proprietary two-part filter that combines a simple moving average of the source with a linear slope term measured over the same lookback (the rate of change between the current source value and the value from `length` bars ago, divided by `length`). The slope is scaled by half the filter length and added to the SMA, producing a trend-projected estimate that leans ahead of a plain average in the direction of the recent slope.
Kalman Filter — a lightweight recursive estimator that updates a running estimate of the "true" price using a prediction/correction cycle. It maintains an internal error estimate and a gain term derived from the ratio of process noise (set by the inverse of the filter length) to measurement noise, blending each new price observation into the estimate proportionally to that gain.
None — the trailing logic operates directly on closing price.
When "None" is selected, the tool behaves as a standard price-based NRTR. Any other selection substitutes that smoothed series as the "source" for every downstream calculation.
• NRTR Trailing Calculation
The script offers two modes for sizing the trailing offset, chosen via "NRTR Mode":
Percent — the offset is a fixed percentage of the (lagged) adaptive source value.
ATR — the offset is a multiple of the Average True Range over a configurable lookback, scaling the trailing distance to current volatility rather than a fixed percentage.
In an uptrend, the script tracks the highest adaptive-source value reached since the last flip (the "extreme") and subtracts the offset from it to produce a trailing level that can only rise or stay flat — never fall — while the trend persists. In a downtrend, the mirror logic tracks the lowest extreme and adds the offset, producing a level that can only fall or stay flat. A trend flip occurs the moment the prior bar's adaptive source closes beyond the trailing level: closing below it in an uptrend flips the state to a downtrend (and vice versa), at which point the extreme and trailing level reset and begin tracking in the new direction. Because the ratchet only ever tightens toward price, this produces the classic NRTR "stair-step" trailing behavior rather than a smooth curve.
• Confirmation and Non-Repainting Behavior
The trend-state comparison that triggers a flip always references the previous bar's confirmed adaptive-source value, and every alert condition is additionally gated behind `barstate.isconfirmed`. This means a signal only fires once its triggering bar has fully closed — the trailing level and trend state do not repaint once a bar is confirmed, and alerts cannot fire prematurely intrabar.
• ADX Confluence Filter
When enabled, a flip is only accepted as a valid trading signal if the prior bar's ADX reading (calculated over the same configurable length for both DI and ADX smoothing) is at or above the threshold input. This is intended to suppress flips that occur while the market lacks directional strength, where trailing-stop whipsaws are most common.
• Cooldown Guard
When enabled, a stop-loss hit on one side of the market starts a bar-count cooldown during which a new signal in that same direction is suppressed, intended to reduce immediate re-entry into a level that has just failed.
• Trade Level Projection and Position Sizing
On a valid signal, the entry is taken at the current close, the stop-loss is set to the NRTR trailing level at that moment, and the initial risk distance (entry-to-stop) is multiplied by three independently configurable multiples to project TP1, TP2, and TP3. Each target and the stop are tracked bar-by-bar for whether price has traded through them, updating their on-chart labels accordingly. A suggested position size is calculated from either a percentage of a user-defined account size or a fixed dollar risk amount, divided by the entry-to-stop distance in price, giving a size that risks a consistent dollar or percentage amount regardless of current volatility.
🎨 Visual Guide
NRTR Line — a grey step-line plotting the current trailing-stop level.
Heatmap Candles — the chart's candles are recolored using the Bull/Bear color inputs (teal/red by default) to reflect the current trend state directly on price, rather than requiring a separate indicator pane.
Cooldown Background — a shaded background tint appears while a directional cooldown is active after a stop-out, using the Cooldown BG color.
Trade Level Lines and Labels (on signal) — a solid red Stop Loss line, a dashed blue Entry line, and three dashed green Take Profit lines (TP1 lightest, TP3 most opaque) extend from the signal bar. Each carries a right-aligned label showing its exact price; once a target or stop is touched, its label updates in place to show the hit and the resulting percentage gain or loss from entry.
Risk/Reward Shading — a light red fill shades the zone between Entry and Stop Loss (the risk side), and a light green fill shades the zone between Entry and TP3 (the full reward side), giving an immediate visual sense of the trade's risk-to-reward geometry.
Dashboard Table — a corner-anchored panel (position configurable) summarizing, in real time: current trend direction, Lock status, the live NRTR level, active entry/stop/TP1 prices, the current ADX reading (colored by pass/fail against the threshold), the active adaptive filter, cooldown status and remaining bars, the calculated risk amount, the suggested position size, and a filled bar-graph showing how close price currently sits to the trailing stop as a percentage of the total offset distance.
📖 How to Use
A flip from red to teal candles (and the NRTR line stepping below price) signals a potential long entry; the mirror flip signals a potential short.
Use the auto-drawn Entry, Stop Loss, and Take Profit lines as a starting risk/reward framework — the SL is anchored to the trailing level at the moment of the flip, not an arbitrary distance.
Enable the ADX Filter if you want flips confirmed only during periods of measurable trend strength, which reduces (but does not eliminate) signals generated in choppy, low-ADX conditions.
Enable Cooldown Guard if you want to avoid immediate re-entry into a direction that was just stopped out — useful in ranging conditions prone to repeated whipsaws.
Enable Lock Signal to freeze the currently displayed trade levels in place (rather than having them update to the latest signal), useful for reviewing a specific historical setup without it being overwritten by newer signals.
Watch the "Dist Trail" bar in the dashboard as a quick visual read of how far price currently sits from the trailing stop relative to the configured offset — a nearly full bar means price is close to triggering a flip.
The built-in alert payloads are formatted as JSON and include action, ticker, timeframe, direction, entry, stop, and target fields, making them usable directly as webhook bodies for external automation without additional parsing.
⚙️ Inputs and Settings
NRTR Mode — switches the trailing offset calculation between a fixed Percent of price and a volatility-adaptive ATR multiple.
NRTR % / ATR Len / ATR Mult — control the magnitude of the trailing offset in each respective mode; larger values produce a looser trail with fewer, later flips, smaller values produce a tighter trail with more frequent flips.
Use ADX Filter / ADX Len / ADX Thresh — toggle and configure the trend-strength confluence filter described above.
Adapt Filter / Adapt Len — select the smoothing method applied to price before the NRTR calculation, and its lookback length.
Cooldown Guard / Cooldown Bars — toggle and configure the post-stop-out re-entry suppression window.
Lock Signal — freezes the currently plotted trade levels rather than letting them advance to the newest signal.
Position Sizing / Sizing Mode / Risk % Trade / Fixed Risk $ / Account $ — configure whether suggested size is derived from a percentage of account equity or a fixed dollar risk figure, and the inputs feeding that calculation.
TP1/TP2/TP3 Mult — the risk multiples applied to the entry-to-stop distance to project each take-profit level.
Heatmap Candles / NRTR Line / Trade Levels — independently toggle each visual layer on or off.
Dash Pos / Show Dash — position and visibility of the dashboard table.
Alert Action fields (Long/Short/Close Long/Close Short) — customize the "action" string embedded in each webhook JSON payload, useful for matching the field names expected by a specific external automation system.
Color inputs — independently customize every plotted and dashboard color.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The NRTR mechanic itself belongs to a family of stop-and-reverse trailing systems related conceptually to Wilder's Parabolic SAR and to chandelier-style trailing stops: all three share the property that the trailing level is a one-directional ratchet — it can only move in the direction that tightens toward price — which is what mechanically prevents the trailing stop from ever "giving back" more than the configured offset once a trend is underway. Where NRTR differs is in decoupling the ratchet from a fixed acceleration curve (as in Parabolic SAR) and instead deriving it directly from a percentage or volatility-scaled offset off a tracked local extreme, which is closer in spirit to a Donchian- or Chandelier-style trailing construction.
The ATR-based offset mode draws on Welles Wilder's concept of using recent true-range volatility, rather than a fixed percentage, to size a trailing distance — the rationale being that a constant percentage offset is too tight in high-volatility regimes (generating premature stop-outs) and too loose in low-volatility regimes (giving back excess profit), while an ATR-scaled offset expands and contracts with the instrument's own recent behavior.
The Double WMA and Triple VWMA filters are cascaded-smoothing constructions in the same family as Hull's differencing approach: repeatedly passing a series through a weighted average and recombining the outputs is a general technique for pushing a smoothing filter's group delay down without simply shortening its lookback (which would otherwise increase noise sensitivity). The Kalman filter option applies a simplified, single-state version of the classic recursive Bayesian estimator from control theory, where each new observation is blended into a running estimate according to a gain term balancing assumed process noise against assumed measurement noise — conceptually the same estimation framework used in tracking and signal-processing applications outside of finance. The custom LLAMA filter combines a central-tendency estimate (a simple moving average) with a first-order trend term (a discrete slope measured over the same window), an approach related in principle to linear trend-projection and regression-based smoothing techniques that attempt to reduce lag by explicitly modeling the direction a series is moving rather than only its recent average level.
The ADX component derives from Wilder's Directional Movement System, in which ADX quantifies the strength (not direction) of a trend by smoothing the divergence between positive and negative directional movement — using it as a confluence filter reflects the broader technical-analysis principle that trend-following and trailing-stop methods perform better in the specific market regime (trending, directional) they are designed for, and using a strength filter is one common approach to distinguishing that regime from a ranging one.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

QQE Trend Confluence [MarkitTick]💡 A dual-engine QQE (Quantitative Qualitative Estimation) confluence oscillator that layers eight selectable pre-smoothing algorithms, a secondary confirmation QQE pair, ADX and higher-timeframe bias gating, and a fully automated ATR-based trade planner with webhook-ready alert payloads on top of the classic Wilder RSI-trailing-stop concept.
✨ Originality and Utility
This script does not simply reproduce the stock QQE oscillator. It restructures the calculation into a layered decision pipeline where a signal only qualifies after passing through several independent, user-toggleable filters, turning a single momentum flip into a multi-factor confluence check.
The source price is first routed through a selectable pre-smoothing stage offering eight distinct algorithms, ranging from classic moving averages to a proprietary slope-projection method and a recursive Kalman estimator, before it ever reaches the QQE math. This changes the responsiveness and noise profile of every signal generated downstream.
A second, independently parameterized QQE instance runs in parallel purely as a confirmation gate, meaning a raw crossover on the primary pair is discarded unless a slower QQE pair already agrees with its direction.
An ADX/DMI strength filter and a non-repainting higher-timeframe bias filter can each independently veto a signal, so traders can require trend strength and multi-timeframe agreement without writing their own confluence logic.
The script goes beyond signal generation into trade management: a built-in ATR trade planner converts a qualifying cross into a full stop-loss and three-tiered take-profit plan, drawn directly on the chart and tracked bar by bar.
A structured JSON alert payload system is built into every signal and trade-management event, making the tool usable as the signal engine for an external automation or webhook pipeline without any manual message formatting.
The combination of these components is deliberate rather than incidental: the pre-smoothing stage shapes what "signal" means, the dual-QQE and filter stack decides which of those signals are trustworthy, and the trade planner and alert system decide what to do once a signal is accepted. Removing any one layer would leave a materially different and less complete tool, which is why they are published together as a single confluence system rather than as separate scripts.
🔬 Methodology and Concepts
• Adaptive Pre-Smoothing Engine
Before the source price reaches the QQE engine, it can optionally be passed through one of eight smoothing or prediction methods, selectable from a dropdown. This determines how "clean" or "responsive" the underlying momentum reading is.
Simple, Exponential and Wilder (RMA) moving averages behave as their standard definitions.
A double weighted moving average applies a WMA to the result of a first WMA pass, compounding the weighting effect for extra lag reduction.
A triple volume-weighted moving average chains three successive VWMA passes, folding volume into the trend estimate at each stage.
The Hull Moving Average uses the standard weighted-difference technique to reduce lag relative to a simple weighted average.
The proprietary LLAMA method computes a simple moving average baseline over the lookback window, then measures the linear slope of price across that same window (the difference between the current source and the value from "length" bars back, divided by length). That slope is then projected forward by half the lookback length and added to the SMA baseline. The practical effect is a moving average that leans ahead of price during a steady trend and collapses back toward a standard SMA when price is flat or choppy.
The Kalman Filter option treats the source price as a noisy observation of an underlying "true" trend state. It maintains an internal estimate and error variance, computes a Kalman gain each bar from a length-derived process-noise assumption and a fixed measurement-noise assumption, and blends the new price observation into the estimate proportionally to that gain, producing a smoothing curve that adapts its own responsiveness over time.
• Dual QQE Core
The QQE concept itself works by smoothing an RSI reading with an EMA, then measuring the average magnitude of bar-to-bar changes in that smoothed RSI (a Wilder-style double-smoothed "ATR of RSI"), and multiplying it by a factor to build a trailing envelope around the smoothed RSI line. This trailing level only moves in the direction the RSI is already travelling and locks in place, ratchet-style, whenever RSI reverses, similar in spirit to a classic ATR trailing stop but applied in RSI space rather than price space. A cross of the smoothed RSI over or under this trailing level marks a momentum shift. This script runs two such QQE instances simultaneously: a faster primary pair that generates the raw crossover, and an optional slower secondary pair whose sole purpose is confirmation, a signal from the primary pair is only accepted if the secondary pair's RSI-to-trail relationship already agrees with the same direction.
• Confirmation Filters
An optional ADX/DMI filter, built on Wilder's Average Directional Index, requires trend strength to be above a user-defined threshold before a signal is allowed through, filtering out crosses that occur during flat, directionless conditions.
An optional higher-timeframe bias filter pulls the same QQE relationship (smoothed RSI versus trailing level) from a user-selected higher timeframe and requires it to agree with the direction of the current-timeframe signal. This request is built using the previous, already-confirmed value on the higher timeframe combined with lookahead-on merging, which is the standard non-repainting pattern for higher-timeframe data: the value shown on any historical bar is the same value that would have been available to a trader watching in real time.
• ATR-Based Trade Planner
Once a signal clears every enabled filter, the script computes a stop-loss using the 14-period Average True Range multiplied by a user-defined multiple, anchored to the prior bar's close. Three take-profit levels are then derived from that risk distance using independently configurable risk:reward ratios. These levels are drawn as extending price lines with labels and shaded risk/reward zone fills, and the script continuously checks, bar by bar, whether price has touched each take-profit or the stop-loss, retiring the plan once the final target or the stop is hit. A lock control can freeze the currently displayed plan so it does not get replaced by a new signal while a trade is being managed.
• Signal Confirmation Behavior
The crossover state that drives every signal is always evaluated using the prior, already-completed bar's smoothed RSI and trailing-level relationship rather than the still-forming current bar. In practical terms, this means a BULL or BEAR marker only ever prints once the underlying cross is confirmed, and it does not shift position or disappear on subsequent price updates within the same bar.
• Automation-Ready Alerts
Every entry, exit, and trade-management event (long entry, short entry, close-long, close-short, and each of the three take-profit levels plus stop-loss) is wrapped in its own alert condition and also emits a structured JSON message through a single dynamic alert call, gated to fire only once per confirmed bar close for entries. Each JSON message includes the instrument, timeframe, and an editable action keyword, allowing the same signal engine to be wired directly into an external automation or webhook workflow.
🎨 Visual Guide
In the indicator's own pane: the blue RSI MA line is the primary smoothed-RSI reading, the yellow Smoothed Trail line is its dynamic trailing envelope, and the histogram plotted around the zero line reflects the distance between the two, colored teal on the bullish side and red on the bearish side.
Dashed reference lines at 70 and 30 mark overbought and oversold RSI zones with a light shaded fill between each level and the 50 midline when enabled.
On the price chart itself: candles can be recolored using a four-tone scheme, strong bullish teal and weak bullish dark teal, or strong bearish red and weak bearish dark red, with a neutral gray used whenever the current QQE distance is smaller than its own running average, giving an at-a-glance read on momentum strength as well as direction.
BULL and BEAR labeled arrows print just below or above the triggering candle whenever a fully confirmed signal fires.
When trade levels are enabled, dashed lines and small labels for the stop-loss, entry, and three take-profit levels extend to the right from the signal bar, with the area between entry and stop shaded as a risk zone and the area between entry and the furthest target shaded as a reward zone.
An optional multi-row dashboard panel, placeable in any chart corner, summarizes the instrument and timeframe, lock status, current bias, the raw RSI MA and Trail Level values, an ASCII progress-bar style RSI strength meter, the secondary confluence state, the higher-timeframe bias, the ADX reading and pass/fail color, the currently active pre-smoothing method, the ATR value, the DI+/DI- readings, a momentum strength bar, and the active trade's direction and price levels.
📖 How to Use
Treat a BULL or BEAR arrow as the point where every enabled filter, the primary cross, the secondary QQE confirmation, the ADX gate, and the higher-timeframe bias, has already agreed on a direction.
Use candle color intensity and histogram height as a secondary read on how strong the current momentum reading is relative to its own recent average, rather than as a standalone signal.
Scan the dashboard's Bias, Confluence, and HTF Bias rows for a fast multi-factor summary without needing to inspect the oscillator pane directly.
Enable the trade levels option to have the script draw a stop-loss and three take-profit targets automatically on each qualifying signal, and use the lock control to freeze that plan in place while managing an open position.
Adjust the ATR stop multiple and the three risk:reward ratios to match your own risk tolerance before relying on the drawn levels.
For automation, create a TradingView alert using the "Any alert() function call" option to receive the full JSON payload stream, or use the individual named alert conditions if only a single event type is needed.
This tool is a momentum and confluence framework, not a complete trading system on its own. Combine it with your own market structure, support/resistance, or volatility context before acting on any signal.
⚙️ Inputs and Settings
Core Settings: RSI Length and RSI EMA Smoothing control the primary QQE's momentum lookback and responsiveness; QQE Factor scales how wide the trailing envelope sits from the smoothed RSI; Source selects the price series feeding the whole calculation; the secondary QQE toggle, along with its own EMA smoothing and factor, controls the confirmation pair.
Filters: the ADX toggle, length, and threshold control the trend-strength gate; the Adaptive Filter dropdown and length select which of the eight pre-smoothing methods (including LLAMA and the Kalman Filter) is applied to price before the QQE math runs; the HTF filter toggle and timeframe control the higher-timeframe bias confirmation.
Trade Tools: toggles for showing trade levels and locking the current signal, an ATR multiple for stop-loss distance, and three independent risk:reward ratios for the three take-profit targets.
Visuals: independent toggles for the overbought/oversold zone fill, the histogram, the crossover arrows, and the color-matched candles.
Dashboard: a toggle to show or hide the panel and a dropdown to choose which chart corner it docks to.
Alerts: editable text fields defining the action keyword sent in the JSON payload for each of the eight tracked events, letting the output match whatever automation platform is receiving it.
Colors: a full set of color pickers covering the oscillator lines, histogram, zones, arrows, candle tones, trade-planning lines and fills, and dashboard styling, purely cosmetic and with no effect on calculations.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The foundation of the oscillator is J. Welles Wilder Jr.'s Relative Strength Index and his broader family of smoothed volatility and trend-strength tools, including the Average True Range concept and the Average Directional Index used here as an optional filter.
The QQE structure itself extends Wilder's trailing-stop logic, normally applied to price, into RSI space: an ATR-style measure of RSI's own volatility is used to build a ratcheting trailing envelope around the smoothed RSI line, conceptually related to other ATR-trailing-stop tools such as Chandelier Exit or SuperTrend but operating on a momentum oscillator rather than raw price.
The Hull Moving Average option is built on Alan Hull's weighted-difference technique for reducing the inherent lag of weighted moving averages.
The LLAMA pre-smoothing option applies a basic linear extrapolation principle, projecting a simple moving average forward using the measured slope of price across the same lookback window, a lightweight analogue of trend-extrapolation methods used in linear regression forecasting.
The Kalman Filter option is a direct application of Rudolf Kálmán's recursive estimation framework, treating price as a noisy observation of an unobserved underlying trend state and updating that estimate bar by bar using a dynamically computed gain, a technique widely used in modern adaptive filtering and signal processing.
The ATR trade planner applies standard volatility-based position planning, using a multiple of Average True Range to size a stop distance and deriving profit targets from fixed risk:reward multiples of that same distance.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

SmartFit Trend Channels [MarkitTick]💡 This tool builds a linear regression channel that does not sit on a fixed, arbitrary lookback window. Instead, it continuously re-anchors itself at confirmed swing pivots, filters its regression source through a selectable adaptive smoothing stage, validates every channel against a statistical fit-quality test, and optionally gates its breakout signals behind a trend-strength filter. Confirmed breakouts trigger directional alerts (including ready-to-route webhook JSON payloads), while a compact on-chart dashboard keeps the current channel's statistics visible at all times.
✨ Originality and Utility
Most regression-channel tools on the platform work from a single static bar count chosen by the user, redraw the entire channel on every bar, and offer no way to judge whether the underlying price action is actually behaving linearly enough for a straight-line model to be meaningful. This script addresses all three limitations at once. It measures channel validity using the Pearson correlation coefficient rather than assuming a regression fit is automatically useful, it restarts its lookback window dynamically at the most recent statistically valid swing pivot rather than a fixed period, and it finalizes historical segments as discrete drawn objects instead of continuously repainting a single line across the whole chart.
● Why These Components Are Combined
The regression engine, the pivot-anchoring logic, the adaptive source filter, the ADX gate, and the merge engine are not stacked together arbitrarily; each solves a specific weakness left open by the others. The adaptive smoothing stage reduces the high-frequency noise that a raw-price regression is otherwise highly sensitive to. The pivot-anchoring logic solves the "where should this channel actually start" problem that fixed-length regression channels never address. The Pearson fit-quality filter prevents the tool from drawing a confident-looking straight line through what is statistically a sideways, non-linear market. The ADX filter exists specifically to reduce breakout signals firing inside genuinely trendless conditions. The merge engine exists to prevent the chart from filling with redundant, near-identical channel segments once the pivot-anchoring logic starts producing frequent restarts on lower timeframes. Together, these form one coherent statistically-aware channel system rather than five unrelated features bundled for the sake of it.
🔬 Methodology and Concepts
● Regression Engine
At its core, the script performs an ordinary least-squares linear regression across the bars since the current channel's anchor point, producing a slope and intercept that define the channel's midline. This calculation always runs on confirmed, closed price data, never on the live forming bar.
● Statistical Validity Filter
Every regression is scored with the Pearson correlation coefficient, which measures how well price actually fits a straight line on a scale of -1 to 1. A minimum bar count and a minimum absolute correlation strength (both user-configurable) must be met before a channel, or a breakout signal derived from it, is considered valid. Channels that fail this test are still drawn, but are visually flagged as low-confidence rather than treated as a directional signal.
● Deviation Bands
Upper and lower channel boundaries are placed a user-defined number of standard deviations away from the regression midline, based on the vertical dispersion of price around that line. This produces a statistically scaled envelope rather than a fixed-percentage or fixed-tick band.
● Adaptive Source Filter
Instead of regressing on raw closing price, the script can first pass price through one of several smoothing methods, selectable per chart:
SMA / EMA / RMA — standard simple, exponential, and Wilder-smoothed moving averages, offered as baseline options with different responsiveness-to-noise tradeoffs.
Double WMA — a weighted moving average smoothed a second time through another weighted pass, trading additional lag for a cleaner underlying line.
Triple VWMA — a volume-weighted moving average smoothed through three successive passes, intended for instruments where volume-weighting the trend estimate is meaningful.
HMA — a low-lag moving average designed to track price more closely than a standard average of the same length.
LLAMA — a proprietary MarkitTick method that blends a simple average baseline with a linear slope term measured across the filter length, effectively projecting the recent directional momentum forward onto the smoothing output rather than only averaging past values.
Kalman Filter — a recursive single-state estimator that continuously balances its own prediction against each new price print, with the filter length controlling how much weight is given to new information versus the existing estimate.
Selecting "None" regresses directly on the previous confirmed close.
● Dynamic Pivot Anchoring
The script tracks confirmed swing highs and swing lows using a symmetric bar-confirmation window (either auto-scaled to the chart's timeframe or manually set). These pivots are only accepted once enough bars have closed on both sides of the candidate bar to confirm it, so no pivot is ever assumed before it is actually confirmable. When a breakout occurs, the script evaluates whether the most recent opposite-type pivot has a strong enough regression fit of its own to serve as a more representative channel origin; if it does, the newly drawn segment is anchored there instead of at the current bar.
● Confirmation Lag Notice
Because segment anchors are only finalized once a breakout confirms them, a newly drawn historical segment's starting point is placed at a bar in the past, after the fact. This is standard behavior for any pivot-anchored channel tool and does not involve unconfirmed or future data, but it does mean the visual origin of a finalized segment was not known in real time at that bar; it becomes fixed only once the breakout that closes out the prior segment occurs.
● Channel Merge Logic
When enabled, a newly forming channel is compared against the band edges of the segment it is replacing. If the gap between them falls within a user-selected tolerance (expressed as a multiple of the current standard deviation), no new discrete segment is drawn and the channel is treated as a continuation. This keeps visually similar, closely-spaced channels from cluttering the chart as separate labeled objects.
● ADX Trend Filter
An optional Average Directional Index filter can require a minimum trend strength reading before a breakout is allowed to register as a directional signal, reducing the number of signals generated while the market is directionless.
● Breakout Signal Logic and Webhook Alerts
A directional signal fires only on a confirmed bar, only when the minimum bar count and fit-quality thresholds are met, and only once per new breakout (not on every bar the price remains beyond the band). Each signal type — long entry, short entry, and their corresponding opposite-side close — has its own configurable action label, which is packaged into a JSON payload suitable for forwarding to third-party automation or webhook services.
🎨 Visual Guide
The live, currently forming channel is drawn as three connected lines — an upper band, a midline, and a lower band — with the space between the bands filled in a translucent color. Green indicates a bullish-sloped channel, red indicates a bearish-sloped channel, and gray indicates a channel that has not met the minimum fit-quality threshold and should be treated as statistically unreliable. A small label at the live edge of the channel states its bias, its fit percentage (the Pearson correlation expressed as a percentage), and its standard deviation value. When a segment finalizes, its own colored line-and-fill combination plus a labeled marker remain on the chart as a permanent historical record of that channel. An optional setting recolors the chart's candles using the live channel's bias color for an at-a-glance read of current conditions without needing to look at the channel itself. In the corner of the chart (position configurable), a compact dashboard table lists the ticker and timeframe, current bias, a bar-style fit-quality gauge, the standard deviation value, the current upper and lower band prices, the number of bars in the active channel, the pivot length in use, the current breakout/breakdown state, and — only when the relevant filters are enabled — the live ADX reading and the selected adaptive filter type.
📖 How to Use
Read channel color and the dashboard's Bias row together: a green, high-fit-percentage channel reflects a statistically supported uptrend in the regression sense, while red reflects the equivalent downtrend condition. Treat gray, low-fit-percentage channels as periods where price is not moving in a way a straight line meaningfully describes, and weight any signal generated during those conditions accordingly. A directional signal, visible as a Breakout or Breakdown state on the dashboard and paired with an alert firing, indicates confirmed price has closed beyond the channel's statistical deviation band with sufficient trend history and fit quality behind it — this is a signal generator, not a backtested strategy, so no historical win-rate or equity curve is produced by the script itself. Enabling the ADX filter is most useful on instruments or timeframes prone to frequent whipsaw, where it will suppress breakouts that occur without adequate underlying trend strength. Choosing a smoother adaptive filter (Double WMA, Triple VWMA) will produce fewer but later channel restarts; choosing a more responsive one (HMA, Kalman, LLAMA) will track price more closely at the cost of more frequent re-anchoring. Enable channel merging on lower timeframes or choppier symbols to keep the chart readable; disable it if you want to see every discrete regression segment the script produces. To receive the webhook-ready alerts, create an alert on the script using the "Any alert() function call" option, or select one of the four named alert conditions individually if only a subset of signals is needed.
⚙️ Inputs and Settings
The Core group controls the statistical backbone of the tool: automatic or manual pivot lookback length, whether nearby channels merge and how strict that merge tolerance is, the minimum Pearson fit strength and minimum bar count required for a channel to be considered valid, and the deviation z-score used to size the bands. The Filters group holds the optional ADX trend gate (toggle, threshold, and length) and the adaptive source filter selection along with its length. The Visuals group controls channel line width and whether chart candles are recolored by the live channel bias. The Dashboard group sets which corner of the chart the statistics table is drawn in. The Alerts group defines the text sent in the "action" field of each of the four webhook JSON payloads (long, short, close-long, close-short), allowing the payload vocabulary to be matched to whatever automation platform is receiving it. The Colors group governs the bullish, bearish, and weak-fit channel colors, the support/resistance accent colors used in the dashboard gauge, and the dashboard's background, header, text, and warning colors.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The regression core is an ordinary least-squares fit — the same slope and intercept formulas taught in introductory statistics, chosen because they minimize the sum of squared vertical distances between the line and each price point in the window. Layered on top of this is the Pearson product-moment correlation coefficient, the standard statistical measure of how strongly two variables are linearly related; applying it to price-versus-time is the same logic underlying R²-based confidence filters used in quantitative trend-following research, here repurposed as a simple accept/reject gate for whether a channel is worth trusting. The deviation bands draw on the same statistical foundation as Bollinger-style envelopes — a mean or trend estimate flanked by a multiple of the underlying standard deviation — except the dispersion here is measured as residual distance from a sloped regression line rather than from a flat moving average, and a z-score of 1.96 specifically corresponds to the approximate 95% interval of a normal distribution, a deliberate nod to standard statistical confidence-interval convention. The pivot-confirmation logic is a symmetric-window fractal test in the tradition of classic swing-high/swing-low detection methods, used here purely as a principled way to choose a channel's starting point rather than as a standalone trading signal. The ADX/DMI component follows Welles Wilder's original directional movement framework for measuring trend strength independent of trend direction. Among the adaptive filters, the Kalman option applies a simplified single-state predict-correct estimator common in signal processing and control theory, while the LLAMA option applies a linear-extrapolation-style adjustment to a moving average — conceptually related to trend-adjusted smoothing methods such as Holt's linear exponential smoothing, which projects recent momentum forward rather than only averaging past observations.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Multi-MA Trend Ribbon [MarkitTick]💡 A fully adaptive moving-average ribbon that lets you choose from 30 different smoothing algorithms — from classic SMA/EMA to advanced adaptive filters like Kalman, JMA, KAMA, and a custom volatility-responsive method called LLAMA — then builds a multi-line, gradient-colored trend ribbon out of that single chosen method across up to 8 progressively longer lengths. Layered on top is an optional multi-timeframe bias filter, an ADX strength gate, a volume confirmation gate, webhook-ready JSON alerts, and a live diagnostic dashboard.
✨ Originality and Utility
Most ribbon-style indicators on the platform hard-code a single averaging method (usually EMA or HMA) and stack a handful of fixed lengths on the chart. This script takes a different approach: it treats the "ribbon" as a generic container and the "moving average type" as a fully interchangeable engine, with 30 distinct algorithms available from a single dropdown, all built from first principles (not by calling a bundle of pre-packaged libraries). Because every ribbon line is generated by the same underlying function at different lengths, switching the MA Type instantly re-renders the entire ribbon in the new smoothing style, giving traders a single tool to compare how trend-following behaves under drastically different mathematical assumptions (linear vs. exponential weighting, adaptive vs. fixed responsiveness, zero-lag vs. standard lag) without switching indicators.
The script's originality centers on three custom-built components not found in standard built-ins:
A proprietary adaptive length mechanism ("LLAMA") that dynamically expands or contracts each ribbon line's effective lookback based on a short-term directional forecast, rather than using a static length.
A dual-RSI-divergence-weighted directional predictor that feeds that adaptive length engine.
A from-scratch implementation of less commonly available filters (Kalman, JMA, FRAMA, T3, McGinley, Super Smoother) that are not native Pine built-ins, giving traders access to algorithms usually reserved for institutional charting platforms or custom research code.
The mashup of a trend ribbon, a confluence filter stack (ADX + HTF + Volume), and a webhook alert system is justified because these three layers solve three different practical problems traders face together: identifying trend direction (ribbon), avoiding low-quality signals in choppy or thin conditions (filters), and automating execution (alerts) — components that are commonly used in sequence by discretionary and systematic traders alike, making their integration into one tool a genuine workflow simplification rather than an arbitrary bundling.
🔬 Methodology and Concepts
● Core Ribbon Construction
The script computes eight moving averages of the same source (default: close) at lengths that increase by a fixed step from a base length. For example, with a Base of 20 and a Step of 10, the eight lengths used are 20, 30, 40, 50, 60, 70, 80, and 90. The fastest line (MA1) and the slowest visible line (determined by the Lines setting) are compared: when the fast line sits above the slow line, the ribbon is considered to be in a bullish regime; when below, bearish. All eight lines are generated by the exact same averaging function, so the "shape" of the ribbon (how tightly or loosely the lines fan out) becomes a visual proxy for trend strength and consistency across time horizons.
● Selectable Smoothing Engine
The Type input lets you choose the mathematical method used to compute every single line in the ribbon simultaneously. The available families are:
Classic weighted averages: SMA, EMA, RMA (Wilder's smoothing), WMA, Triangular (TRIMA), Volume-Weighted (VWMA), and their double/triple-smoothed variants (DWMA/TWMA, DVWMA/TVWMA) which apply the same weighting function recursively to reduce lag-vs-noise trade-offs.
Zero/reduced-lag filters: Hull MA (HMA) and its extended variants EHMA and THMA, DEMA and TEMA (double/triple exponential smoothing, per Patrick Mulloy's original error-correction concept), and ZLEMA (zero-lag EMA using a momentum-shifted input).
Adaptive/volatility-responsive filters: KAMA (Kaufman's Adaptive MA, which speeds up or slows down based on an efficiency ratio of net movement to total movement), VIDYA (Chande's Variable Index Dynamic Average, which scales its responsiveness using Chande Momentum Oscillator readings), FRAMA (Ehlers' Fractal Adaptive MA, which estimates a fractal dimension from recent high/low ranges to adjust smoothing), and JMA (a Jurik-style adaptive filter using a two-stage predictive/corrective recursive structure).
Specialized/legacy filters: T3 (Tillson's six-pole exponential blend using a volume factor to control overshoot), McGinley Dynamic (a self-adjusting average that speeds up during fast markets and slows down during consolidation via a ratio-based denominator), ALMA (Arnaud Legoux MA, a Gaussian-weighted average with adjustable offset and smoothness), LSMA (least-squares linear regression endpoint), SWMA (a fixed symmetric 4-bar weighted average), Median, and SSF (a two-pole Super Smoother Filter using an Ehlers-style recursive IIR design).
Proprietary adaptive engine — LLAMA: A custom exponential filter whose smoothing constant is derived not from a fixed length, but from a dynamically computed effective length (see below).
• LLAMA and the Directional Predictor
LLAMA (the script's custom adaptive method) works in two stages. First, a directional forecast is built from two RSI readings (14-period and 28-period). Over a lookback window, each prior bar is scored by how closely its RSI signature matches the current bar's RSI signature (using a log-distance similarity weighting), and that similarity is used to weight whether price rose or fell on that historical bar. The weighted average of those historical outcomes produces a forecast value between -1 (strongly bearish precedent) and +1 (strongly bullish precedent). Second, that forecast value is used to stretch or compress each ribbon line's effective length within a configurable percentage range around its base length — a stronger bullish or bearish forecast pushes the effective length toward one end of the range, changing how reactive that specific line is to new price action. This effective length is then converted into a standard exponential smoothing constant to produce the final LLAMA value. The result is a moving average that behaves less like a fixed-parameter tool and more like a filter that continuously recalibrates its own sensitivity based on recent directional evidence.
● Trend Signals
Two categories of signals are generated:
Ribbon Flips: Triggered when the relationship between the fastest line and the slowest visible line changes state (fast crosses from below to above the slow line, or vice versa), using confirmed prior-bar values to avoid intrabar flicker.
Price Crosses: Triggered when price itself crosses the fastest ribbon line (MA1), independent of the broader ribbon state, offering an earlier but noisier entry cue.
● Confluence Filters
Three optional, independently toggleable filters can be layered onto both signal types to suppress low-quality triggers:
ADX Strength Filter: Requires Wilder's Average Directional Index (calculated via the standard DMI/ADX formula) to be above a minimum threshold before a signal is allowed to fire, filtering out signals generated during weak or range-bound conditions.
Higher-Timeframe Bias Filter: Recomputes the entire ribbon logic (fast MA vs. slow MA) on a user-selected higher timeframe and requires the current-timeframe signal to agree with that higher-timeframe bias before firing. This uses a confirmed prior-bar value pulled via request.security() with lookahead explicitly enabled on historical (already-closed) data only, so no future information leaks into the calculation.
Volume Confirmation Filter: Requires the prior bar's volume to exceed a multiple of its recent average volume, ensuring signals are backed by above-average participation rather than occurring on thin, low-conviction bars.
🎨 Visual Guide
Ribbon Lines (MA1–MA8): Up to eight plotted lines, one per configured length, colored on a gradient. When Trend Col is enabled, the gradient runs between your chosen Bull and Bear colors depending on the current trend state; when disabled, it instead runs between the Fast and Slow colors you've set, regardless of trend direction.
Ribbon Fill: The semi-transparent shaded area between each consecutive pair of ribbon lines, colored to match the current trend (bull or bear color) with adjustable transparency via the Fill Transparency setting. A tightly compressed, thin fill indicates the ribbon lines are converging (potential consolidation or transition); a wide, expanded fill indicates strong trend separation.
Bull/Bear Flip Markers: Small triangle shapes below or above the bars marking the exact bar where a confirmed Ribbon Flip occurred — an upward triangle in your Bull color for bullish flips, a downward triangle in your Bear color for bearish flips.
Heatmap Candles (optional): When enabled, replaces standard candle coloring with your chosen Bull/Bear body and border colors based on the ribbon's current trend state, turning the entire chart into an at-a-glance trend heatmap.
Dashboard Table: An on-chart panel (position configurable) summarizing, in real time: signal lock status, current bias, active MA type and lengths, a visual bar-graph readout of the number of active ribbon lines, the fast and slow MA values, the current spread between them, the LLAMA directional prediction strength, the most recent flip direction, the most recent price cross direction, how many filters are currently active, the live ADX reading, the +DI/-DI values, the current volume ratio versus average, and the higher-timeframe bias state.
📖 How to Use
Use the overall ribbon color and fill (bull color vs. bear color) as your primary trend read: a consistently bull-colored, moderately expanded ribbon suggests sustained upward momentum, while contraction or color-flipping suggests indecision.
Treat triangle Flip markers as your core trend-change signal — they only appear once the flip has been confirmed on a closed bar, and (if filters are enabled) only after passing your chosen strength, HTF-agreement, and volume conditions.
Treat Price Cross events (visible in the dashboard's "Price Cross" row) as a faster, more aggressive alternative entry cue for traders who want to react before a full ribbon flip occurs, understanding this comes with a higher likelihood of false signals.
Enable the Lock Signal option to freeze the current bias and temporarily suspend new signal generation — useful when you want to hold a view steady while manually reviewing a setup instead of reacting to every subsequent flip.
Watch the dashboard's Filters and individual ADX / Vol Ratio / HTF Bias rows to understand in real time why a signal is or is not being permitted to fire.
Consider combining a slower Type (e.g., RMA, T3, or a longer-length adaptive filter) for the overall bias with faster Price Cross signals for tactical entries within that bias.
⚙️ Inputs and Settings
Type: Selects which of the 30 supported averaging methods is used to build every line in the ribbon.
Src: The price source fed into all calculations (default: close).
Base / Step: Base sets the length of the fastest ribbon line; Step sets the length increment applied to each subsequent line. Together they define the full spread of lengths across the ribbon.
Shift: Applies a horizontal bar offset to all plotted ribbon lines. A non-zero value shifts the visual plot forward or backward relative to price and does not alter the underlying calculation.
Lines: Sets how many of the eight possible ribbon lines are displayed (2–8), which also determines which line is treated as the "slow" reference line for bias and flip calculations.
ALMA Off / ALMA Sig, T3 Vf, KAMA Fast / KAMA Slow, JMA Phase / JMA Pow, Kal Q / Kal R, LLAMA LB / LLAMA Rng: Method-specific tuning parameters that only take effect when the corresponding Type is selected — these control offset/smoothness for ALMA, volume factor for T3, the fast/slow efficiency bounds for KAMA, phase/power for JMA, process/measurement noise for Kalman, and lookback/range for the custom LLAMA engine.
ADX / HTF / Vol toggles and their sub-settings: Independently enable and configure the three confluence filters described in the Methodology section (strength threshold and length for ADX, target timeframe for HTF, lookback length and multiplier for Volume).
Lock Signal: Freezes the currently displayed bias and suppresses new flip/cross signals until disabled.
Trend Col / Fill / Fill Transparency / Width / Bars / Signals: Visual controls for whether ribbon coloring reflects trend state, whether the fill between lines is shown and how transparent it is, line thickness, whether heatmap candles are shown, and whether flip markers are plotted.
Dashboard Show / Position: Toggles the on-chart dashboard and sets its screen position.
Alert toggles and Action fields: Enable/disable Flip-based and Cross-based alerts independently, and customize the text string sent in each alert's JSON payload for long entry, short entry, close-long, close-short, cross-up, and cross-down events — designed to be dropped directly into webhook-based automation.
⚠️ Confirmation Lag Notice
The Shift input allows ribbon lines to be plotted with a backward or forward bar offset relative to the current price bar. When a non-zero Shift value is used, what you see plotted at a given bar's x-position does not represent that bar's actual calculated value in real time — always verify the Shift setting is at its default (0) if you intend to use the ribbon for real-time signal interpretation, and be aware that a non-zero offset can visually misrepresent how early or late a line's response to price actually was.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
This script draws on several distinct threads of technical and quantitative theory:
Classical trend-following theory: The core "fast MA vs. slow MA" bias mechanism traces back to Dow Theory's premise that trend direction can be inferred by comparing price behavior across different time horizons — approximated here by comparing smoothed averages of different lengths rather than raw price.
Exponential smoothing and digital filter theory: Methods like EMA, DEMA, TEMA, and ZLEMA build on Patrick Mulloy's work on reducing the inherent lag of exponential moving averages through cascaded and momentum-adjusted smoothing, itself grounded in classical infinite impulse response (IIR) filter design from signal processing.
Adaptive filter theory: KAMA (Kaufman), VIDYA (Chande), and FRAMA (Ehlers) all apply the same broader principle from adaptive control theory — that a filter's time constant should not be fixed but should respond to a real-time measurement of market "efficiency" or "noise," whether measured via a directional efficiency ratio, momentum oscillator magnitude, or fractal dimension of price geometry.
State-space estimation theory: The Kalman filter option applies the classical Kalman filtering framework from control and estimation theory — treating the true underlying trend as a hidden state to be recursively estimated from noisy price observations, balancing a process-noise parameter (how much the true state is expected to drift) against a measurement-noise parameter (how much to trust each new observation).
Fractal market theory: FRAMA's dimension calculation is grounded in Mandelbrot's fractal geometry concepts as adapted by John Ehlers, using the scaling relationship between price range measured at different resolutions to infer whether the market is behaving more like a trending (lower fractal dimension) or random-walk (higher fractal dimension) process.
Directional Movement / trend strength theory: The ADX filter implements Welles Wilder's original Directional Movement System, which decomposes price movement into positive and negative directional components and derives a smoothed strength index from their divergence.
Weighted similarity / kernel-based forecasting: The custom LLAMA predictor's weighting scheme is conceptually related to kernel-weighted (locally weighted) regression and nearest-neighbor forecasting methods, in which historical observations are weighted by their similarity to current conditions (here, measured via RSI-signature distance) rather than treated with uniform recency weighting.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Trend Trail, Trailing Stop & Buy Sell Signals [LunqFX]An ATR trailing stop — the trend-following construction most traders know as SuperTrend — breaks in the same place every time. Price stops trending, the trailing stop gets clipped from both sides, and it prints a buy, a sell, a buy and a sell inside twenty bars. Every one of those is a false trend reversal, and the logic is not wrong: it is being asked a question the market is not answering.
This is an open-source modification of the classic ATR based SuperTrend, and it asks that question first. Before it will give you a buy or sell signal it measures whether there is a trend to trail at all. When there is not, the whole chart goes dark — the trailing stop disappears, the fill drops, the candles fall to grey, and no long entry or short entry prints.
And it does not ask you to take that on trust. A plain fixed-distance ATR trailing stop runs alongside it on the same data, and the panel shows both counts side by side with the difference worked out for you.
Included: an average true range trailing stop with adaptive distance, a self-calibrating trend regime filter, buy and sell signals with the stop level printed on every label, a dormant state that switches the chart off in ranges, a live dashboard, and alerts on every trend reversal.
❶ THE REGIME FILTER — what this adds to a SuperTrend
Trend strength is measured with the Kaufman Efficiency Ratio: the ground price actually covered, divided by the distance it travelled getting there. A clean leg scores near 1. The same distance walked back and forth scores near 0.
That raw ratio is useless as a threshold on its own, and this is where most attempts at this fail. Gold on a 30-minute chart runs an efficiency around 0.01 while the euro daily runs 0.40 — any fixed cutoff leaves the fast charts permanently asleep and the slow ones permanently awake. So the reading is scored as a PERCENTILE of the symbol's own recent history. The trail arms when efficiency reaches the top third of what this instrument normally manages, whatever that happens to be. One setting, no per-symbol tuning.
Two guards keep the state from flickering, because they catch different things. Hysteresis handles wobble around the threshold: once armed, the regime stays armed until efficiency drops clearly below the line. A minimum dwell time handles the other case — a clean spike that clears the threshold by a mile and drops straight back. Without both, a filter opens hundreds of regimes and ends up emitting more marks than the raw trail it was meant to quieten.
❷ DORMANCY — the trail does not exist in a range
This is stronger than dimming a colour. When no regime is live the trail is torn down completely, and it is rebuilt from the current price when one opens, taking its side from the move that woke it.
The reason is not cosmetic. A trail left running through a range turns over inside it, unseen, and the market then re-opens onto a direction that was decided while nobody was watching — a position with no entry behind it. Destroying and rebuilding means every segment on the chart begins with a real event, and every event gets a label.
What you see is a chart that is either lit or switched off. Grey candles, no line, no signal: there is nothing here to do, and you can read that from across the room.
❸ THE ATR TRAILING STOP AND ITS ADAPTIVE DISTANCE
The average true range sets the band width, and the trailing stop ratchets in the direction of the trend and never loosens — the same dynamic support and resistance line a SuperTrend gives you, flipping to a trend reversal when price closes through it. The stop level is printed on every buy and sell label, so the one number you need at the moment of a long entry or short entry is already on the chart.
The distance is not fixed. One multiple has to be either too tight for choppy conditions or too loose for a clean run — it cannot be right for both, so the distance widens as efficiency falls and tightens as it rises. Turn it off in the settings for a constant multiple.
❹ THE RECEIPT — a filter you can audit
A second trailing stop is computed on the same bars: fixed distance, no regime filter, nothing else — what an ordinary trailing stop would have done here. Its flip count sits in the panel next to this one's signal count, with the reduction calculated:
Signals here · plain trail 164 · 236 Noise removed −31%
Both numbers count the same thing — entries against entries. A state is not counted as a trade on either side. And when the result goes the wrong way the panel says "Noise ADDED" in red rather than quietly dropping the sign, because a panel that flatters its own script is worse than no panel.
Read it as what it is: a measure of how much less often this fires, not a claim about money. Fewer signals is not automatically better signals, and this number does not pretend otherwise.
❺ THE DASHBOARD
Direction and stop price in the header, trend strength as a 0–100 reading with a bar and the arming threshold beneath it, current stop distance in price and in ATR, and the two comparison rows. In the dormant state the header says so plainly and the stop row reads "no stop — dormant" rather than printing a number that does not exist.
HOW TO USE IT
1 — Trade the lit stretches, ignore the grey ones. That is the whole discipline the tool is built around, and it is the part most trend systems leave to you.
2 — Use the trail as the stop, not just as a signal line. The level on the label is where the stop goes; the panel keeps showing the distance in ATR as the trade runs, so you can see when the trail has tightened to the point of being one bar away.
3 — Set the arming threshold to your patience. At 65 you get the top third of this symbol's clean moves. Raise it to 75 and you will trade far less on far cleaner legs. This is the one setting worth changing.
4 — Read the comparison rows on your own instrument. If the reduction on your symbol and timeframe is small, the filter is not finding much to remove there — which is itself information about the instrument, not a reason to distrust the reading.
HOW IT WORKS
The average true range sets the band width; the mid price plus and minus that width form the raw bands, exactly as in a classic ATR trailing stop. Each band ratchets in the trend's favour and never against it, and price closing through the opposite band flips the direction — the trend reversal. Efficiency is the net move over the lookback divided by the summed absolute bar-to-bar movement, ranked as a percentile against its own history. The regime arms above the threshold with hysteresis and a minimum dwell, and outside a regime the trail is not computed at all.
Works on any symbol and any timeframe. The regime filter needs the self-calibration window to fill before it can arm, so the first stretch of a fresh chart stays dormant by design.
SETTINGS
▸ Trail — ATR length, base distance, adaptive distance and its strength. ▸ Regime Filter — on or off, efficiency lookback, self-calibration window, arming percentile, hysteresis, minimum bars per regime. ▸ Signals — buy and sell signals, labels or arrows, stop level on the label. ▸ Visuals — glow, fill, candle dimming, dashboard position.
ALERTS — buy, sell, any signal, regime opened and regime closed. All fire on closed bars.
NON-REPAINTING — the trail is built from closed-bar values and every signal fires on bar close. A printed signal never moves and never disappears.
WHY THESE PARTS ARE ONE SCRIPT
The trail alone is an ordinary trailing stop and will chop you up in a range. The regime filter alone has nothing to gate. The comparison exists only because a filter nobody can check is just a claim, and it needs both of the others to have something to measure. Take any one away and the other two stop making a point.
This indicator is an educational market-analysis tool, not financial advice. It does not predict price. The comparison figures describe how often each version of the trail changed direction on the loaded chart; they say nothing about profit or loss. Always confirm with your own analysis and manage your risk. Indicator

All-Markets Movement Extremes ToolA causal all-markets movement tool for identifying retained terminal PEAK/TROUGH extremes and exposing the earliest available confirmation of those extrema after the required price structure develops.
Name:
All-Markets Movement Extremes Tool
Searchable Name:
All-Markets Movement Extremes Tool
Technical Name:
All-Markets Non-Repainting Terminal-to-Causal Directional Movement Extremes Tool
Short title:
Movement Extremes
Summary
All-Markets Movement Extremes Tool identifies terminal peaks and troughs within developing directional movement and preserves the causal confirmation that makes each retained extreme available.
The central difficulty is that a completed extreme and the generated signal capable of establishing that extreme are not necessarily available at the same time.
A trough can already exist before enough upward structure has developed to confirm that the downward movement terminated there.
A peak can already exist before enough downward structure has developed to confirm that the upward movement terminated there.
Price can therefore move meaningfully away from the terminal before the corresponding confirmation becomes available.
The tool is built around that separation.
During an active directional leg, the current extreme remains provisional and can be replaced by a newer same-side high or low.
Once the required opposite structure confirms, the retained extreme becomes:
TROUGH for the completed low of the prior downward movement
PEAK for the completed high of the prior upward movement
The terminal marker remains attached to the retained movement extreme.
The causal confirmation remains attached to the later bar where that extreme became confirmable.
This keeps two important references visible at the same time:
where the directional movement terminated
and
where the corresponding confirmation became available
The confirmed PEAK/TROUGH stream can therefore provide context for directional-movement trading, filtering, confirmation, and broader trading decisions, while the stream itself represents confirmed movement extremes and their causal availability rather than a complete standalone buy/sell signal.
The result is a directional-movement tool that provides:
movement direction and transition context
terminal peak/trough identification
directional-movement trading context
confirmation and filtering context
entry/exit context
movement-cycle review
and comparison of completed movement with what became causally available
Terminal extremes
The script follows an active directional leg and retains its strongest extreme.
During an upward leg, the highest retained high remains the potential terminal PEAK.
During a downward leg, the lowest retained low remains the potential terminal TROUGH.
A newer same-side extreme can replace the previous candidate while that directional movement remains active.
The extreme becomes confirmed only after the required opposite structure develops.
This prevents a temporary move away from a high or low from automatically being treated as the completed terminal.
Causal confirmation
Every confirmed terminal has two important locations.
Terminal
The retained PEAK or TROUGH belonging to the completed directional movement.
Causal confirmation
The later confirmed-bar event where enough completed structure exists to establish that terminal.
The terminal shows where the completed movement ended.
The causal confirmation shows when the script could establish that terminal through its forward process.
Those two points can be close together or separated by several bars.
The optional Causal Confirmation Comparison makes that difference visible directly on the chart.
Earliest available confirmation
The tool attempts to expose a retained terminal on the first confirmed transition that satisfies its active structural requirements.
That does not move the historical terminal forward.
The PEAK or TROUGH remains attached to the completed movement extreme, while the causal marker remains attached to the later confirmation event.
This is what allows the tool to preserve both the final movement location and its actual causal availability.
Directional movement
The PEAK/TROUGH sequence forms a continuing directional structure.
A confirmed TROUGH establishes the completed low of the preceding downward movement.
A confirmed PEAK establishes the completed high of the preceding upward movement.
Consecutive opposite terminals describe the completed movement between retained extrema.
The tool can display those relationships with HOLD paths and directional backgrounds so the broader directional movement remains visible rather than reducing the chart to isolated labels.
Directional-movement trading context
The confirmed extremes and their causal transitions provide directional-movement context that can be examined alongside confirmation rules, filtering, entry/exit context, or other market-state methods.
The value of the output is the movement structure it establishes:
terminal extreme → causal confirmation → directional movement context
That structure remains available for broader trading-related evaluation without changing what the PEAK/TROUGH stream itself represents.
Movement cycles
Consecutive opposite confirmed extrema form completed directional cycles.
The tool keeps two reference systems available.
Terminal-to-terminal
The completed movement between retained extrema.
Confirmation-to-confirmation
The corresponding directional movement between the causal confirmation points.
These measurements can differ substantially because part of the terminal movement can occur before confirmation becomes available.
Last capture / confirm gap
The Movement Cycle page shows Last capture / confirm gap for the most recent completed cycle.
The capture value compares the latest completed terminal-to-terminal directional result with the corresponding confirmation-to-confirmation result when the terminal movement is positive.
The confirm gap shows the difference between those two completed-cycle results.
Together, they provide a compact comparison between the retained movement extremes and the corresponding causal confirmation references.
Unconfirmed context
Not every developing extreme becomes the retained terminal.
An earlier high can be superseded by a higher high.
An earlier low can be superseded by a lower low.
When enabled, the tool can expose this context separately from the confirmed PEAK/TROUGH sequence.
The optional Minimum Reversal Filter can also reject structural transitions that do not meet the selected movement requirement.
Current movement
For the latest confirmed extreme, the tool can compare:
terminal price
confirmation close
current price
terminal-to-confirm move
price change from confirmation to current
directional move from confirmation to current
best move after confirmation
and bars since confirmation
This provides a current directional reference after the extreme has been established.
Status pages
The tool includes four compact status pages:
Summary
Movement Cycle
Timing
Guide
Summary provides the broad state of confirmed extrema and completed movement cycles.
Movement Cycle focuses on the latest terminal, its confirmation, current movement, and the previous completed cycle.
Timing focuses on terminal-to-confirmation separation and structural timing.
Guide provides a compact interpretation of the active PEAK/TROUGH framework.
Alerts
Optional alerts are available for confirmed PEAK and TROUGH events.
The alert occurs when the causal confirmation becomes available.
The terminal remains attached to the retained movement extreme, while the alert reflects the later confirmation event.
This preserves the difference between terminal location and causal availability.
Features
all-markets directional movement framework
retained terminal PEAK identification
retained terminal TROUGH identification
causal confirmed-bar operation
terminal-versus-confirmation separation
Causal Confirmation Comparison
Confirmed Hold Path
Confirmed Hold Background
movement-cycle tracking
terminal-to-current directional movement
confirm-to-current directional movement
best move after confirm
Last capture / confirm gap
Unconfirmed Extreme Context
Minimum Reversal Filter
compact Summary, Movement Cycle, Timing, and Guide pages
confirmed PEAK/TROUGH alerts
Strengths
Terminal Extreme Preservation — the completed PEAK/TROUGH remains anchored to the retained movement endpoint.
Causal Availability — the corresponding confirmation remains separately visible where it actually became available.
Directional Context — the output describes continuing directional movement rather than isolated bar labels.
All-Markets Use — the framework can be applied across different markets because it is based on directional price structure.
Early Causal Exposure — the tool attempts to establish the retained terminal on the first qualifying confirmed transition.
Terminal-versus-Causal Comparison — completed movement and causally available movement remain directly comparable.
Broader Trading Context — the confirmed extrema provide directional, confirmation, filtering, and entry/exit context while retaining their underlying movement-extreme meaning.
Weaknesses
Confirmation Delay — the terminal can exist before enough opposite structure develops to confirm it.
Movement Before Confirmation — part of the next directional movement can occur before the causal confirmation becomes available.
Superseded Extremes — developing terminal candidates can be replaced by newer same-side extremes.
Standalone Trade Outcome Variability — confirmed PEAK/TROUGH extremes can remain structurally reliable movement references while the result of directly trading every confirmation as its own buy/sell action can vary substantially across market conditions.
Structural Dependence — confirmation timing depends on the selected structural requirements.
No Complete Trade Management — position sizing, risk management, stop placement, profit targets, and wider trade-management logic are separate from the movement-extreme output.
Who it’s for
This tool is suited for users interested in:
terminal market peaks and troughs
directional movement trading
movement-transition confirmation
structural filtering
entry/exit context
causal versus completed movement
terminal-to-terminal cycles
confirmation timing
Last capture / confirm gap
and incorporating confirmed extrema into broader trading methods
It is especially relevant when the question is not only:
“Where did the movement terminate?”
but also:
“When did that terminal become causally available?”
Known limitations
The final retained extreme cannot be confirmed until enough opposite structure has developed.
Some movement can therefore occur before confirmation.
Some developing terminal candidates can be superseded.
Some confirmation-to-confirmation cycles can be non-positive.
The distinction between the terminal and the causal confirmation is therefore explicitly preserved as part of the tool's output.
Final note
All-Markets Movement Extremes Tool identifies retained terminal PEAK/TROUGH extremes and exposes the causal confirmation of those extrema.
The terminal remains attached to the completed movement extreme.
The causal confirmation remains attached to the point where the required structure becomes available.
The relationship between those two references provides directional movement context for confirmation, filtering, cycle comparison, and broader trading-related evaluation. Indicator

TF: BB/KC and Potential Reversals (BBKC)TradingFlow: BB/KC and Potential Reversals (BBKC)
BBKC combines Bollinger Bands (BB) and a Keltner Channel (KC) in one clean overlay, then uses band re-entry and momentum conditions to highlight potential bullish and bearish reversals. Its purpose is to make volatility structure, trend behaviour, compression, expansion, and possible turning points easier to read without covering the chart with separate indicators.
The diamond markers are hints that price may be reacting after an extended move or that momentum may be fading. They are not automatic trade instructions, and they do not mean a reversal is confirmed.
A Unified BB / KC View
Bollinger Bands and Keltner Channels describe volatility in different ways:
• Bollinger Bands: use standard deviation, so their width changes as price movement expands or contracts.
• Keltner Channel: uses ATR around an EMA to create a smoother channel for reading trends and pullbacks.
BBKC plots both structures with one visual theme rather than stacking two unrelated indicators. The more visible aqua boundaries are the KC, while the lighter boundaries are the BB. Subtle shading makes it easier to see how the two envelopes contract and expand around price, and the full KC area can also be lightly shaded if preferred.
This merged presentation is useful even without the reversal markers. The slope and direction of the channels, the side of the channel where price is holding, and the way price reacts at the boundaries can all provide trend context.
Why the Default KC Multiplier Is 1.6
By default, the KC uses a 20-period EMA and an ATR multiplier of 1.6. Many modern Keltner Channel implementations use a 2.0 ATR setting. BBKC uses 1.6 to keep the boundaries somewhat closer to price, making routine pullbacks, boundary tests, and re-entry behaviour easier to see. This is a visual design choice, not a claim that 1.6 is inherently more accurate.
The multiplier is adjustable. Different instruments and trading styles may benefit from a wider or narrower channel, so 1.6 should be understood as a useful default rather than a universal optimum.
How to Read the Potential Reversal Markers
• Green diamond: a bullish potential reversal. Price has reacted from a lower volatility boundary and passed the enabled filters.
• Red diamond: a bearish potential reversal. Price has reacted from an upper volatility boundary and passed the enabled filters.
By default, the script looks for the close to cross back inside a lower or upper KC or BB boundary. An optional rejection rule also checks whether the current or preceding candle touched or pierced a Bollinger Band before the current candle closed back inside.
The optional filters are designed to reduce ordinary boundary crossings:
• Volatility context: one of the two preceding closes must have been outside the corresponding boundary of a separate ATR-based Volatility Channel.
• RSI momentum: RSI must be below the bullish threshold or above the bearish threshold. Both levels are adjustable.
• Stoch RSI extreme: within a recent validity window, at least one completed bar must have both smoothed K and D in the 90/10 extreme zone. The window is adjustable and defaults to the two bars before the potential reversal; the current re-entry bar is excluded.
Potential reversal conditions are confirmed at bar close. The separate Volatility Channel can remain hidden while its values are still used by the filter; display it when you want to inspect those boundaries on the chart.
What a Marker Can and Cannot Mean
A potential reversal may become a major trend reversal, but it may also be only a small pullback, a pause within the existing trend, or a failed signal followed by continuation. The script detects a filtered move back from a volatility boundary; it cannot know in advance which outcome will follow.
The marker is therefore more useful as a prompt to investigate the chart than as a standalone entry command. A marker appearing against a strong trend should generally require more evidence than one appearing at a well-established structural level after an exhausted move.
Practical Reading Process
1. Read the slope and position of the BB / KC structure to understand the current trend and volatility regime.
2. Note whether the BB is compressing inside the KC or expanding beyond it.
3. When a diamond appears, check whether it is located near meaningful market structure rather than evaluating the marker in isolation.
4. Look for confirmation through price action, trend structure, support and resistance, or a failed breakout.
5. Add independent context such as volume profile, high- and low-volume areas, and the reaction around important support or resistance levels.
6. Define invalidation and risk before considering an entry.
Alerts
Alerts can be created for bullish potential reversals, bearish potential reversals, or either direction. They use the same final confirmed conditions and remain available when chart markers are hidden. For live use, “Once Per Bar Close” is recommended.
Important
BBKC is a chart-reading and opportunity-screening tool. Its markers are filtered potential reversals, not probabilities, guaranteed turning points, or complete trading systems. Settings behave differently across instruments and timeframes. Always combine the output with broader trend analysis, market structure, volume context, support and resistance, and appropriate risk management.
---
TradingFlow: BB/KC and Potential Reversals (BBKC)
BBKC 把布林通道(Bollinger Bands,BB)與肯特納通道(Keltner Channel,KC)整合在同一張主圖,並根據價格重新進入通道及動能條件,標示潛在的多頭和空頭反轉。它讓波動、趨勢、收縮、擴張和可能的轉折位置更容易判讀,不用另外疊加兩個指標。
菱形標記只是一個提示:價格經過一段延伸後,可能開始回頭,或原有動能正在減弱。它不是自動交易指令,也不代表反轉已經確認。
整合的 BB / KC 顯示
BB 與 KC 以不同方式描述波動:
• 布林通道: 使用標準差,會隨價格波動的擴大和收窄而改變。
• 肯特納通道: 以 EMA 為中心,利用 ATR 建立較平滑的通道,適合觀察趨勢與回調。
BBKC 用統一的配色呈現兩者。較清晰的水藍色邊界是 KC,較淡的邊界是 BB。淡色填充可幫助觀察兩組通道如何隨價格收縮和擴張,也可選擇顯示整個 KC 範圍。
即使不看反轉標記,這組通道本身也能幫助判斷趨勢。可留意通道斜率、價格主要停留在哪一側,以及價格接近邊界時的反應。
為何 KC 預設倍數是 1.6
KC 預設使用 20 週期 EMA 和 1.6 倍 ATR。現代 KC 指標常見的 ATR 設定是 2.0;BBKC 改用 1.6,讓邊界稍微靠近價格,更容易看到一般回調、邊界測試及價格重新進入通道的情況。這是為了方便讀圖,並不代表 1.6 本身更準確。
倍數可以自行修改。不同市場、時間週期和交易方式可能適合不同寬度,因此 1.6 只是實用的起始設定,並非所有情況下的最佳值。
如何閱讀潛在反轉標記
• 綠色菱形: 多頭潛在反轉。價格從下方邊界回升,並通過已啟用的過濾條件。
• 紅色菱形: 空頭潛在反轉。價格從上方邊界回落,並通過已啟用的過濾條件。
預設會尋找收盤價重新進入 KC 或 BB 邊界的情況。也可加入額外條件:目前或前一根 K 線先觸及/突破 BB,然後目前 K 線收回通道內。
各項過濾器用於減少普通邊界穿越造成的雜訊:
• 波動背景: 前兩根 K 線中,至少一根的收盤價必須曾位於另一組 ATR 波動通道的相應邊界之外。
• RSI 動能: 多頭標記要求 RSI 偏低,空頭標記要求 RSI 偏高;門檻可自行調整。
• Stoch RSI 極端值: 在近期有效期內,至少一根已完成 K 線的平滑 K、D 必須同時進入 90/10 極端區域。有效期可以調整;預設檢查潛在反轉前的兩根 K 線,不包括目前重新進入通道的 K 線。
潛在反轉條件只會在 K 線收盤後確認。另一組 Volatility Channel 即使隱藏,其數值仍可用於過濾;如想直接查看這些邊界,可在設定中顯示它。
標記可能代表甚麼
潛在反轉可能最終發展成主要趨勢反轉,也可能只是一個小型回調、原有趨勢中的短暫停頓,甚至是錯誤提示,之後價格繼續沿原方向運行。這套判斷只能找出價格從波動邊界回頭的跡象,無法預先知道之後會出現哪一種結果。
標記的作用是提醒你多看一眼,而不是叫你立即進場。逆著強勁趨勢出現時,通常需要更多確認;若它出現在明確的支撐、阻力或區間邊緣,而且此前走勢已有明顯延伸,才更值得留意。
實用判讀流程
1. 先閱讀 BB / KC 的斜率及價格位置,判斷目前趨勢與波動狀態。
2. 觀察 BB 正在 KC 內部收縮,還是向 KC 外部擴張。
3. 菱形出現時,先看它是否接近支撐、阻力或區間邊緣,不要只看標記本身。
4. 利用價格行為、趨勢結構、支撐阻力或假突破尋找確認。
5. 配合成交量分布(Volume Profile)、高/低成交量區,以及重要支撐阻力附近的反應。
6. 考慮進場前,先定義失效位置及風險。
警報
如需追蹤,可分別在多頭潛在反轉、空頭潛在反轉,或兩者任一出現時建立警報。警報只會在收盤條件確認後觸發;隱藏圖表上的菱形標記不會影響警報。即時使用時,建議選擇「Once Per Bar Close」。
重要說明
BBKC 是圖表判讀及機會篩選工具。標記只表示經過條件過濾的潛在反轉,不代表任何勝率,也不是必然轉折或完整交易系統。不同市場和時間週期的表現可能不同。使用時仍要結合趨勢、市場結構、成交量、支撐阻力和風險管理。
---
TradingFlow: BB/KC and Potential Reversals (BBKC)
BBKCは、ボリンジャーバンド(BB)とケルトナーチャネル(KC)を1つの見やすいオーバーレイに統合し、バンドへの再進入とモメンタム条件から、強気・弱気の潜在的な反転を表示します。複数の指標を重ねてチャートを複雑にすることなく、ボラティリティ構造、トレンド、収縮、拡大、転換候補を読みやすくすることが目的です。
ひし形のマーカーは、伸びた値動きが反応し始めた、またはモメンタムが弱まりつつある可能性を知らせるヒントです。自動売買の指示ではなく、反転が確定したことも意味しません。
BBとKCを統合した表示
BBとKCは異なる方法でボラティリティを表します。
• ボリンジャーバンド: 標準偏差を使うため、価格のばらつきの変化に反応します。
• ケルトナーチャネル: EMAを中心にATRで幅を作る、より滑らかなチャネルです。トレンドや押し戻りの確認に使えます。
BBKCは両者を共通の配色で整理して表示します。より明瞭なアクア色の境界がKC、薄い境界がBBです。控えめな色付けにより、2つのチャネルが価格の周囲で収縮・拡大する様子を見やすくし、必要に応じてKC全体の範囲も薄く表示できます。
この統合表示は、反転マーカーを使わない場合にも有用です。チャネルの傾き、価格が維持されている側、境界での反応から、トレンドの背景を読み取れます。
KCのデフォルト倍率が1.6である理由
KCは、デフォルトで20期間EMAと1.6倍のATRを使用します。現代的なKCでは2.0倍のATRもよく使われますが、BBKCは境界を価格に少し近づけ、通常の押し戻り、境界テスト、チャネルへの再進入を見やすくするために1.6倍を採用しています。これは見やすさのための設計であり、1.6倍のほうが本質的に正確という意味ではありません。
倍率は調整可能です。銘柄、時間軸、取引スタイルによって適切な幅は異なるため、1.6は実用的な初期値であり、すべての市場に共通する最適値ではありません。
潜在リバーサル・マーカーの見方
• 緑のひし形: 強気の潜在リバーサル。価格が下側のボラティリティ境界から反応し、有効なフィルターを通過した状態です。
• 赤のひし形: 弱気の潜在リバーサル。価格が上側のボラティリティ境界から反応し、有効なフィルターを通過した状態です。
デフォルトでは、終値がKCまたはBBの境界内へ戻る動きを検出します。追加条件では、現在または直前の足がBBに到達・突破し、その後に現在の終値がバンド内へ戻った場合も候補にできます。
各フィルターは、通常の境界通過によるノイズを抑えるために使用します。
• ボラティリティ背景: 直前2本のうち少なくとも1本の終値が、別のATRベースのVolatility Channelの対応する境界より外側であることを要求します。
• RSIモメンタム: 強気ではRSIが下側しきい値未満、弱気では上側しきい値を超えていることを要求します。どちらもしきい値を調整できます。
• Stoch RSIの極端値: 直近の有効期間内で、少なくとも1本の確定足において平滑化されたKとDが同時に90/10の極端ゾーンへ入っていることを要求します。有効期間は調整でき、デフォルトでは潜在リバーサル前の2本を確認します。現在の再進入足は含めません。
潜在リバーサルの条件は足の確定時にのみ成立します。Volatility Channelは非表示でもフィルターに使われ、必要に応じてチャート上に境界を表示できます。
マーカーが意味する可能性
潜在的な反転は、大きなトレンド転換につながる場合もあれば、小さな押し戻り、既存トレンド内の一時停止、または誤ったシグナルとなってそのままトレンドが継続する場合もあります。検出しているのは、フィルターを通過したボラティリティ境界からの戻りです。その後の結果を事前に判断することはできません。
そのため、マーカーは単独のエントリー指示ではなく、チャートを詳しく確認するためのヒントとして使うのが適切です。強いトレンドに逆らうマーカーには、明確な構造水準で伸び切った後に出るマーカーよりも多くの確認が必要です。
実践的な読み方
1. BB / KCの傾きと価格位置から、現在のトレンドとボラティリティ状態を確認します。
2. BBがKCの内側で収縮しているか、外側へ拡大しているかを確認します。
3. ひし形が出たら、重要な市場構造の近くにあるかを確認し、マーカーだけで判断しないようにします。
4. プライスアクション、トレンド構造、サポートとレジスタンス、または失敗したブレイクから確認を探します。
5. ボリュームプロファイル、高・低出来高帯、重要なサポート/レジスタンスでの反応など、独立した情報を組み合わせます。
6. エントリーを検討する前に、無効化水準とリスクを定義します。
アラート
強気、弱気、またはいずれかの方向に潜在リバーサルが現れた場合のアラートを作成できます。どれも同じ足の確定条件で作動し、チャート上のマーカーを非表示にしても機能します。リアルタイムでは「Once Per Bar Close」の使用を推奨します。
重要
BBKCはチャート分析と候補抽出のためのツールです。マーカーはフィルターを通過した潜在的な反転を示すものであり、確率、保証された転換点、または完全な売買システムではありません。銘柄や時間軸によって挙動は異なります。より広いトレンド分析、市場構造、出来高、サポートとレジスタンス、適切なリスク管理と組み合わせて使用してください。
Indicator

Triple Supertrend Confluence [MarkitTick]💡 A triple-layer Supertrend confluence system that fuses adaptive volatility bands, multi-timeframe bias, momentum strength, volume conviction, and a cooldown throttle into a single, high-confidence trend signal — then automates the entire trade plan around it with ATR-scaled stop-loss and three staged take-profit levels.
✨ Originality and Utility
Most Supertrend implementations on the platform are single-instance: one ATR period, one multiplier, one line. This script restructures the classic Supertrend into a voting system. Three independently parameterized Supertrend instances (a primary "core" trend and two auxiliary "fast" and "slow" trackers) are calculated in parallel from the same underlying price source, and a signal is only treated as valid when a configurable number of these instances agree on direction. This confluence layer is what separates the tool from a standard Supertrend plot — it is designed to filter out the single biggest weakness of trend-following overlays: getting whipsawed by a solitary indicator flipping on marginal price action.
On top of the consensus layer, the script lets traders stack up to four independent, optional confirmation filters (trend strength via ADX/DMI, higher-timeframe directional bias, relative volume, and a bar-count cooldown) before a signal is considered "confirmed." Each filter can be toggled independently, so the tool scales from a bare-bones single Supertrend up to a fully gated, multi-condition trend-following system. A real-time dashboard keeps every filter's pass/fail state visible at a glance, and an automated trade-planning layer converts each confirmed flip into a structured entry/stop/three-tier-target plan, plotted directly on the chart and exposed through webhook-ready JSON alert payloads.
🔬 Methodology and Concepts
• Core Supertrend Engine
The underlying trend engine follows the standard Supertrend construction: an ATR-derived envelope is built around a price source, with an upper band (source plus a multiple of ATR) and a lower band (source minus a multiple of ATR). These bands are "ratcheted" bar to bar — the lower band can only rise or reset if price closes below the prior lower band, and the upper band can only fall or reset if price closes above the prior upper band. The active trend line switches between the lower band (uptrend) and upper band (downtrend) whenever price closes through the opposite band, producing the familiar stepped Supertrend line. This engine is reused three times with different parameters to build the confluence system described below.
• Adaptive Source Smoothing
Rather than feeding raw HL2 price directly into the Supertrend engine, the script offers eight optional smoothing methods to pre-condition the source: Simple, Exponential, and Wilder's Moving Averages; a Double-Pass Weighted Moving Average; a Triple-Pass Volume-Weighted Moving Average; a Hull Moving Average; a custom slope-adjusted average (LLAMA) that blends a simple mean with a linear slope projection over the lookback window; and a single-state Kalman Filter that recursively updates an estimate and its error covariance bar by bar to produce a noise-adaptive average. Smoothing the source before it reaches the Supertrend calculation reduces false flips caused by single-bar noise spikes, at the cost of some responsiveness.
• Adaptive Volatility Factor
Instead of using a fixed ATR multiplier for the core Supertrend band width, the script can compute a percentile rank of current ATR against its own recent history (a lookback window of your choosing). This rank is then mapped linearly onto a user-defined minimum/maximum multiplier range. In practice, this means the band automatically widens during historically high-volatility regimes (reducing whipsaw) and tightens during historically low-volatility regimes (increasing sensitivity), rather than using one static multiplier across all conditions.
• Triple Consensus Voting
Two additional Supertrend instances — a faster-reacting pair (shorter ATR length, smaller multiplier) and a slower-reacting pair (longer ATR length, larger multiplier) — run alongside the core engine on the same smoothed source. When consensus mode is enabled, a signal is only marked confirmed if at least two of the three instances (including the core) agree on direction. This is a simple majority-vote filter designed to suppress signals that are specific to one particular band setting rather than representative of the broader trend structure.
• ADX / DMI Trend Strength Filter
An optional Average Directional Index filter, calculated using Wilder's Directional Movement methodology, requires ADX to be at or above a user-defined threshold before a flip is confirmed. This is a standard technique for distinguishing genuine directional moves from choppy, non-trending price action, since Supertrend-style systems are known to underperform in low-ADX ranging conditions.
• Higher-Timeframe Bias Filter
An optional filter pulls the trend direction of the same Supertrend engine calculated on a higher, user-selected timeframe, and only confirms a signal if it aligns with that higher-timeframe bias. The higher-timeframe value is read from the prior, fully closed bar on that timeframe to avoid any intra-bar recalculation, ensuring the filter reflects only confirmed historical structure rather than an in-progress bar.
• Volume Confirmation Filter
An optional filter compares current bar volume against its own moving average, requiring volume to exceed the average by a user-defined multiple before a signal is confirmed. This is a simple conviction check: trend changes accompanied by above-average participation are treated as more reliable than those occurring on thin volume.
• Cooldown Guard
An optional bar-count throttle prevents a new confirmed signal in the same direction as a recent prior signal if too few bars have elapsed since that prior signal within the same directional segment, reducing rapid re-signaling during choppy transition periods.
• Confirmation Lag Notice
All confirmation logic (consensus vote, ADX filter, HTF bias, volume filter, cooldown guard) and the resulting BULL/BEAR labels, alerts, and trade-level plotting are evaluated strictly on confirmed, closed bars using barstate.isconfirmed. This means every signal displayed or alerted is final and will not repaint once printed. However, users should be aware that a signal is only confirmed one bar after the actual Supertrend flip occurs, since the confirmation checks (particularly the higher-timeframe bias filter) require a fully closed bar to evaluate safely. This introduces a small, deliberate one-bar lag between the raw trend flip and the confirmed signal in exchange for eliminating repainting.
• Automated Trade Level Engine
On every confirmed flip, the script calculates a full trade plan from the entry price (the confirmed close), an ATR-scaled stop-loss (a user-defined multiple of ATR away from entry), and three take-profit levels defined as user-configurable risk:reward multiples of the initial stop distance. These levels are drawn as extending lines and labels, with shaded risk and reward zones between them, and refresh automatically on each new confirmed signal unless the signal is manually locked.
🎨 Visual Guide
Stepped trend line (color reflects the Up/Down Color inputs): traces the active Supertrend band. It plots along the lower band while price is in an uptrend and the upper band while price is in a downtrend.
Muted/gray trend line: when a filter is active but not yet satisfied, the trend line temporarily switches to the Unconfirmed Color to signal that the raw trend has flipped but confirmation is still pending.
Soft background fill (Up Fill / Down Fill colors): a translucent shaded region behind price reinforcing the current trend direction.
Heatmap candles: when enabled, candle bodies and wicks are recolored using the Heatmap Up/Down colors to match the current trend direction, offering an at-a-glance visual of trend state independent of the line itself.
"BULL" / "BEAR" labels: printed below or above the bar respectively, only on confirmed flips that pass every active filter.
Gray cooldown background: a shaded band that appears across the chart while the Cooldown Guard is actively suppressing new signals.
Trade level lines: a solid red Stop-Loss line, a dashed blue Entry line, and three dashed teal Take-Profit lines (TP1 lightest, TP3 most opaque), each extending to the right of the current bar with a price label attached, shown only when Show Trade Levels is enabled.
Shaded risk/reward zones: a light red fill between Stop-Loss and Entry (the risk zone) and a light teal fill between Entry and TP3 (the reward zone).
On-chart dashboard table: displays symbol/timeframe, Lock status, current Trend direction, Confirmed state, ADX value with a color-coded strength percentage, active Adaptive Filter type, Consensus vote count, HTF Bias direction and pass/fail, Volume filter pass/fail, and remaining Cooldown bars — all updating on the most recent bar.
📖 How to Use
Use the stepped trend line and background fill as the primary trend read: price above the line with an up-colored fill suggests an uptrend context; price below with a down-colored fill suggests a downtrend context.
Treat a "BULL" or "BEAR" label as the actionable signal rather than the raw line flip — labels only appear once every enabled filter has passed, meaning the signal has already been screened for trend strength, higher-timeframe alignment, volume conviction, and cooldown status.
If the trend line is showing the Unconfirmed Color, the underlying trend has technically flipped but is still waiting on one or more active filters — treat this as a "watch" state rather than a trade trigger.
Check the dashboard on each new bar to see exactly which filter(s) are passing or failing before a signal can confirm; this is useful for understanding why an expected signal did not appear.
When Show Trade Levels is enabled, use the plotted Stop-Loss, Entry, and TP1/TP2/TP3 lines as a starting reference for structuring a trade around a confirmed signal — adjust position sizing and targets to your own risk tolerance.
Enable Lock Signal to freeze the current trade-level plot in place (useful for screenshots or reviewing a specific setup) without it being overwritten by a new signal.
The JSON alert payloads are formatted for direct use in webhook-based automation, carrying action, ticker, timeframe, direction, and price fields for long entries, short entries, and their corresponding close-position triggers.
⚙️ Inputs and Settings
ATR Len / Factor: the ATR lookback and multiplier for the core Supertrend engine; higher Factor values produce a looser band and fewer, larger-magnitude signals.
Adaptive Factor (and Min/Max/Rank Len): when enabled, replaces the fixed Factor with a volatility-percentile-driven multiplier that ranges between Factor Min and Factor Max based on where current ATR sits within its own recent history.
Use ADX Filter / ADX Threshold / ADX Length: gates signal confirmation on trend strength; raise the threshold to demand stronger directional conviction before confirming.
Adaptive Filter / Adaptive Filter Len: selects the source-smoothing method applied before the Supertrend calculation, and its lookback length.
Use HTF Confluence / HTF: requires the selected higher timeframe's own Supertrend direction to agree before confirming a signal.
Use Volume Filter / Volume Avg Len / Volume Mult: requires current volume to exceed its moving average by the given multiple before confirming.
Use Cooldown Guard / Cooldown Bars: suppresses new same-direction signals for a set number of bars following a recent prior signal in the same directional segment.
Use Triple Consensus / Fast Factor / Fast ATR Len / Slow Factor / Slow ATR Len: enables the majority-vote filter and configures the auxiliary fast and slow Supertrend instances used to build consensus.
Lock Signal: freezes the currently plotted trade levels, preventing them from updating on a new signal.
Show Trade Levels: toggles the automated Entry/SL/TP1-3 line and label plotting.
SL ATR Mult: the ATR multiple used to place the stop-loss distance from entry.
TP1/TP2/TP3 R:R: the risk:reward multiples used to place each take-profit level relative to the stop distance.
Heatmap Candles / BULL-BEAR Labels / Show Dashboard / Position: visual display toggles and dashboard placement.
Long/Short/Close Long/Close Short Action: customizable string values embedded in the JSON alert payload's "action" field, for mapping to specific webhook automation commands.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
• Volatility-Based Trend Following (Supertrend / ATR Envelopes)
The core engine descends from the broader family of volatility-adjusted trend-following bands, which use Average True Range (a measure of typical price movement magnitude popularized by J. Welles Wilder) to scale a trailing stop-and-reverse line to prevailing market volatility rather than a fixed price distance. The ratcheting band logic ensures the line never moves against the prevailing trend, which is the defining mechanical property of a trailing-stop-style trend system as opposed to a simple moving average crossover.
• Percentile Ranking for Regime Adaptation
The adaptive factor mechanism applies percentile rank normalization — expressing current ATR as its standing relative to a distribution of its own recent historical values — as a way of contextualizing volatility without relying on a fixed absolute threshold, which allows the same logic to be meaningfully applied across instruments and timeframes with very different baseline volatility levels.
• Ensemble / Majority-Vote Filtering
The Triple Consensus mechanism is a straightforward application of ensemble logic: combining multiple independent estimators (in this case, differently parameterized instances of the same underlying model) and requiring agreement among a majority before acting. This is a well-established technique for variance reduction in signal processing and forecasting contexts, on the premise that independent estimators are less likely to agree by chance during noise-driven, non-trending conditions than during genuine directional moves.
• Wilder's Directional Movement / ADX
The ADX filter is drawn directly from J. Welles Wilder's Directional Movement System, which decomposes price movement into positive and negative directional components and derives a smoothed index (ADX) representing trend strength independent of direction. ADX below common threshold levels is widely associated with range-bound, non-trending conditions in technical analysis literature.
• Recursive State Estimation (Kalman Filtering)
The optional Kalman Filter smoothing method applies a simplified single-state form of the Kalman recursive estimation framework from control theory and signal processing, in which a running estimate is continuously updated by weighting new observations against the estimate's own error covariance, producing a smoothing average that adapts its responsiveness based on recent prediction error rather than using a fixed lookback window.
• Slope-Adjusted Trend Extrapolation (LLAMA)
The LLAMA smoothing option combines a simple arithmetic mean with a linear slope term derived from the change in price over the lookback window, projecting the average forward along the recent trend direction — a lightweight application of linear extrapolation principles used to reduce the inherent lag of simple averaging methods.
• Volume as a Conviction Proxy
The volume filter reflects the broader technical-analysis principle that price movements accompanied by above-average participation carry more informational weight than those on thin volume, a concept with roots in classical volume-price analysis dating back to early technical analysis literature (e.g., Dow Theory's treatment of volume as a confirming factor).
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

SMC Liquidity Sweep Swing High/Low [JPT]🔷 OVERVIEW
Liquidity Sweep Reversal Engine is a price-action indicator designed to identify potential reversal setups after price sweeps confirmed swing highs or swing lows and rejects the liquidity level.
The indicator combines swing structure, liquidity sweep detection, rejection candles, trend confirmation, displacement, and optional volume analysis to filter potential LONG and SHORT setups.
After a confirmed signal, the indicator automatically provides a trade plan with:
• Entry level
• Stop Loss
• TP1 / TP2 / TP3
• Risk-Reward levels
• Signal score
🔷 CONCEPTS
Liquidity Sweep Detection
The indicator tracks confirmed swing highs and lows as potential liquidity areas.
• Buy-side liquidity sweep → price takes a previous swing high and rejects below it → SHORT bias.
• Sell-side liquidity sweep → price takes a previous swing low and rejects above it → LONG bias.
Rejection Confirmation
A sweep can be filtered using:
• Close back through the liquidity level
• Rejection wick
• Minimum wick percentage
• Candle direction
Trend Confirmation
An optional EMA filter helps align signals with the current market direction.
Displacement
The indicator can require a minimum candle-body size relative to ATR to help filter weak price movements.
Volume Filter
Optional relative-volume confirmation can be enabled to identify sweeps occurring with increased market participation.
🔷 FEATURES
1. Swing Liquidity Detection
• Automatic swing high/low detection
• Buy-side and sell-side liquidity levels
2. Liquidity Sweeps
• High sweep detection
• Low sweep detection
• Rejection confirmation
3. Signal Filtering
• EMA trend filter
• Displacement filter
• Optional volume filter
• Signal score from 1–5
4. Trade Management
• Automatic Entry
• ATR-based Stop Loss
• TP1 / TP2 / TP3
• Custom Risk-Reward ratios
5. Visuals
• Liquidity lines
• Swing labels
• LONG / SHORT labels
• Entry / SL / TP levels
6. Alerts
• LONG signal
• SHORT signal
• TP1 / TP2 / TP3
• Stop Loss
🔷 APPLICATIONS
1. Liquidity Sweep Reversals
Identify potential reversal opportunities after price takes liquidity above a swing high or below a swing low.
2. Market Structure Mapping
Use confirmed swing levels to visualize important liquidity areas and potential reaction zones.
3. Signal Filtering
The optional trend, displacement, volume, and score filters can help reduce weaker setups.
4. Trade Planning
The built-in Entry, Stop Loss, and multiple Take Profit levels provide a structured framework for evaluating trades.
🔷 NOTES
• Lower pivot settings generate more signals and may produce more noise.
• Higher pivot settings identify larger structural liquidity levels.
• Liquidity sweeps do not guarantee reversals.
• Signal confirmation occurs on the closed candle.
• Always evaluate signals within the broader market structure and apply appropriate risk management. Indicator

Bollinger-Fibonacci Trend Extension [MarkitTick]💡 This tool automates the identification of three-point corrective price structures (A-B-C swings) and projects a suite of Fibonacci-based extension targets from them, filtered through a Bollinger Band mean-reversion confirmation layer and an optional trend-strength gate. Rather than requiring a trader to manually draw retracement/extension tools every time price forms a pullback, the script continuously scans pivot structure in real time, validates the geometry of each swing against strict corrective-wave rules, and projects a set of forward-looking price zones — including a shaded "Golden Zone" between the 1.5 and 1.618 extensions — the moment a qualifying structure is confirmed.
✨ Originality and Utility
Fibonacci extension tools are common on TradingView, but most require manual anchor placement on every swing and provide no objective criteria for which swings are valid setups. This script closes that gap by fully automating structure detection: it runs a custom zigzag engine with a significance threshold (ATR-based or percentage-based) to filter noise, then validates any three consecutive pivots against explicit corrective-structure rules (alternating high/low sequence, with the C-point required to retrace between the A and B extremes) before it will draw anything.
Two independent confirmation layers are stacked on top of raw structure detection: a Bollinger Band basis-cross filter that requires price to be trading on the correct side of its short-term mean before a new structure is accepted, and an optional ADX/DMI filter that suppresses structures formed during low directional-strength conditions. A configurable "adaptive filter" further lets traders pre-smooth the high/low series feeding the pivot engine using one of eight smoothing methods — including a Kalman filter and an LLAMA (linear-regression-slope-adjusted moving average) implementation — before pivots are ever detected, changing the sensitivity and lag characteristics of what counts as a swing point. The combination of automated, rule-based structure validation, dual confirmation filters, and selectable pre-smoothing is what differentiates this from a static or manually-drawn extension tool.
🔬 Methodology and Concepts
• Adaptive Pivot Detection
The script identifies swing highs and lows using a symmetric lookback/lookforward window (the "Pivot Lookback Depth" input): a bar qualifies as a pivot high only if no other bar within that window on either side has a higher value, and analogously for pivot lows. Traders can choose to feed this detection engine either raw high/low price or a smoothed version of it via the Adaptive Filter setting. Available smoothing methods include standard SMA, EMA, and RMA; a Double WMA (a WMA applied twice in succession, sharpening lag reduction); a Triple VWMA (volume-weighted MA applied three times); HMA (Hull Moving Average); LLAMA, a custom method that adds a linear slope projection (calculated from the change in price over the lookback window) on top of a simple average; and a lightweight Kalman filter that recursively updates a state estimate based on a fixed process/measurement noise ratio. Smoothing the pivot source changes which swings register as significant, effectively tuning the sensitivity of the whole structure-detection pipeline.
• Significance Threshold
Not every alternating high/low pair is kept — a new pivot only replaces the prior point of the same type, or is added as a new leg, if it clears a minimum distance threshold from the last opposite-type point. This threshold can be set as a multiple of ATR (Average True Range, over a configurable period) or as a fixed percentage of the current close, letting the sensitivity of the zigzag scale with volatility or stay fixed in percentage terms.
• A-B-C Structure Validation
Once at least three qualifying zigzag points exist, the script inspects the most recent three (A, B, C) to determine whether they form a valid corrective structure. A bullish setup requires the sequence low → high → low (A is a low, B a high, C a low), with the additional geometric constraint that point C must close above point A but below point B — meaning the pullback from B did not fully retrace into new lows and did not exceed the origin of the move. The bearish case is the mirror image (high → low → high, with C bounded between A and B). Structures that don't satisfy these geometric constraints are rejected outright; the script will not draw a structure from just any three consecutive swings.
• Bollinger Band Confirmation Filter
When enabled, a newly detected A-B-C structure is only accepted if the prior confirmed close is positioned correctly relative to the Bollinger Band basis (an SMA of price, with upper/lower bands built from standard deviation multiples): bullish structures require the close to be above the basis, bearish structures require it to be below. This filters out structures forming against the prevailing short-term mean, reducing the incidence of countertrend triggers.
• ADX/DMI Trend-Strength Filter (optional)
When the ADX filter is enabled, new structures are only confirmed if the ADX value (calculated from the Directional Movement Index over a configurable length) meets or exceeds a user-defined threshold. This is intended to suppress structure formation during ranging, low-momentum conditions where corrective patterns are statistically less reliable.
• Fibonacci Extension Projection
Once a structure is confirmed, the script projects forward price targets from the A-B-C swing using the standard extension formula: target = C + ((B − A) × ratio). An optional logarithmic-scale calculation is available, which performs the equivalent projection in log-price space before converting back — useful on instruments or timeframes where percentage moves are more meaningful than absolute point moves. Selectable extension ratios include 0.618, 1.000, 1.272, and 1.618, each independently toggleable, plus a fixed internal 1.5 ratio used only to bound the shaded "Golden Zone." Each level is optionally annotated with a loose Elliott Wave association label (e.g., the 1.618 level is labeled "Wave 3") purely as a descriptive reference point for traders familiar with that framework — the script does not perform full Elliott Wave counting or degree analysis.
• Structure Invalidation
Active structures are continuously monitored: a bullish structure is invalidated if the close trades back below point A, and a bearish structure is invalidated if the close trades back above point A. This uses the point-A extreme as a structural stop level, consistent with the idea that a valid corrective pattern should not be revisited past its origin. On invalidation, the trader can choose to have the structure's drawings grayed out in place (to preserve chart history) or fully deleted.
🎨 Visual Guide
Gold and blue lines plotted directly on price represent the Bollinger Bands: the basis (gold, an SMA of price) and the upper/lower bands (blue, basis ± a standard-deviation multiple). These can be hidden independently of the confirmation filter itself.
Solid colored lines connect point A to point B, and dashed colored lines connect point B to point C, forming the visual "A-B-C" skeleton of each detected structure. Color reflects direction: the Bullish Structure Color for up-setups and the Bearish Structure Color for down-setups (both user-configurable, default green/red).
Small labeled tags marked "A," "B," and "C" are placed at each swing point, color-matched to the structure's direction, with their vertical orientation (label above or below price) automatically flipped depending on whether the point is a high or a low.
Dotted horizontal lines extending from point C represent each active Fibonacci extension level (0.618, 1.000, 1.272, 1.618, as enabled). The 1.618 level is rendered as a solid line rather than dotted, distinguishing it as the primary extension target. Each line carries a right-aligned label showing the ratio, its optional Elliott Wave tag, and the exact price level.
A shaded rectangular zone between the 1.5 and 1.618 extension levels — tinted in the structure's directional color — marks the "Golden Zone," a commonly-referenced confluence area for potential reversals or profit-taking, with a "Golden Zone" text label at its midpoint.
When a structure is invalidated and the "Gray Out" invalidation action is selected, all of the above elements (lines, labels, the zone fill) desaturate to the Invalidated Structure Color, visually distinguishing historical, no-longer-valid structures from the currently active one without removing them from the chart.
An on-chart dashboard (top-right by default, repositionable) displays: the current symbol and timeframe, an overall directional Bias read from the most recent structure, the current ATR value, the active significance threshold in price terms, a visual bar-gauge showing how many structures are currently tracked relative to the configured maximum, the pass/block state of the Bollinger Band filter, the live ADX reading and pass/fail state, the selected Adaptive Filter method, and a log of the last structural event (new bullish/bearish structure, or bullish/bearish invalidation).
📖 How to Use
Wait for a complete A-B-C structure to be drawn and confirmed — the script only finalizes structures on confirmed bar closes, so no signal will repaint intrabar.
A newly confirmed bullish structure (green by default) suggests the recent pullback (B to C) may extend toward the plotted Fibonacci levels; the 1.618 extension and the shaded Golden Zone are commonly treated as primary target/reaction areas.
A newly confirmed bearish structure works symmetrically to the downside.
Point A acts as the structural invalidation level: if price closes back through point A against the direction of the setup, treat the structure as void — the script will automatically flag this via graying-out or deletion, along with a dashboard "Last Event" update and an optional alert.
Use the Bollinger Band filter to avoid structures forming against the short-term mean, and the ADX filter to avoid trading corrective setups during flat, low-momentum conditions.
The dashboard's Bias, Threshold, and filter-status rows are designed to be checked at a glance before acting on any newly drawn structure.
Built-in alerts are available for new bullish/bearish structures and for bullish/bearish invalidations, each firing a JSON-formatted payload (ticker, timeframe, direction, entry, TP, SL) suitable for direct use with webhook-based automation, with the action keywords for each alert type fully customizable in the Alerts group.
⚙️ Inputs and Settings
Pivot Lookback Depth — the number of bars checked on each side of a candidate bar when detecting swing highs/lows. Larger values produce fewer, more significant pivots and slower reaction time; smaller values increase sensitivity and structure frequency.
Use ATR-Based Threshold / ATR Period / ATR Multiplier — when enabled, the minimum move required to register a new zigzag leg scales with recent volatility (ATR × multiplier) rather than a fixed percentage.
Fixed Deviation % — used instead of the ATR threshold when ATR-based thresholding is disabled; sets the minimum percentage move required between opposite-type pivots.
Enable Structure Invalidation — toggles whether structures are automatically invalidated when price closes back through point A.
Keep Last N Structures — caps how many structures remain tracked/drawn simultaneously; older structures are cleaned up once the cap is exceeded.
Enable BB Confirmation Filter / BB Length / BB StdDev Mult — controls the Bollinger Band basis-cross requirement for new structures, and the parameters of the underlying Bollinger Band calculation.
Use ADX Filter / ADX Threshold / ADX Length — controls the optional trend-strength gate and its calculation parameters.
Adaptive Filter / Adaptive Filter Length — selects the smoothing method (if any) applied to the high/low series before pivot detection, and its lookback length.
Invalidation Action — choose whether invalidated structures are grayed out in place or deleted from the chart.
Show Bollinger Bands / Use Logarithmic Scale — visual toggle for the BB plots, and whether extension targets are computed in log-price space.
Show 0.618 / 1.000 / 1.272 / 1.618 Level — independently toggle each Fibonacci extension line.
Extend Lines Right — extends extension lines indefinitely to the right instead of stopping at the current bar.
Show A-B-C Labels / Show Structure Lines / Show Elliott Wave Labels — independent visibility toggles for each drawing category.
Show Dashboard / Position — toggles the on-chart dashboard table and sets its screen corner.
Alert action fields (Open Long/Short, Close Long/Short) — customizable text keywords embedded in the JSON alert payloads, matching the syntax expected by the trader's automation/webhook setup.
Enable Test Alert — fires a payload on every confirmed bar close, intended only for verifying webhook routing before disabling it.
Color inputs — full control over structure colors, label backgrounds, invalidated-structure color, Bollinger Band plot colors, and dashboard styling.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The script's structural core rests on the concept of a zigzag transformation, a standard technique in technical analysis for reducing noisy price series into a simplified sequence of significant turning points, filtered here by a volatility-normalized (ATR-scaled) or percentage-based significance threshold rather than a fixed tick count — a design choice that keeps the sensitivity of the transformation consistent across instruments and volatility regimes.
The A-B-C labeling convention and the specific extension ratios offered (0.618, 1.000, 1.272, 1.618) draw on the Fibonacci sequence and its derived ratios, which have a long history of application in corrective-wave analysis, most notably within Elliott Wave Theory and W.D. Gann's work on proportional price projections. The mathematical basis is the golden ratio (φ ≈ 1.618) and its reciprocal/power relationships, which recur in the ratios above; their use in this script is descriptive and pattern-based rather than derived from any claim of causal market structure — the script projects targets from these ratios but does not assert that price is mechanically obligated to reach them.
The optional Bollinger Band filter is grounded in the standard statistical definition of a Bollinger Band: a moving-average basis with bands set at a multiple of the rolling standard deviation, functioning here as a simple mean-reversion/trend-context gate rather than a full volatility-breakout system.
The ADX/DMI filter derives from Welles Wilder's Directional Movement System, which measures trend strength independently of trend direction by comparing the magnitude of directional price movement to overall volatility (true range) over a smoothing period; using it as a pre-condition for structure confirmation is consistent with its original design purpose of distinguishing trending from non-trending regimes.
The adaptive smoothing options span several distinct estimation philosophies: SMA/EMA/RMA represent classical fixed- and exponentially-weighted moving averages; the Double WMA and Triple VWMA apply cascaded weighted/volume-weighted averaging to reduce lag at the cost of some smoothness; HMA (Hull Moving Average) is a weighted-average construction specifically designed to reduce lag while preserving smoothness; the Kalman filter implementation applies a simplified recursive Bayesian estimation approach (balancing a process-noise and measurement-noise ratio to continuously re-weight new observations against the prior estimate), a technique originally developed for state estimation in control systems and adapted here for price smoothing; and the LLAMA method combines a simple average with a linear slope term derived from the net change in price over the lookback window, a basic linear-regression-style adjustment for trend drift.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Smart Trend Filter Confirmation [MarkitTick]💡 A confirmed-bar trend-following system that fuses a volatility-adaptive trailing band with a six-condition consensus filter, designed to suppress the false flips that plague standard trend-following tools when markets stall, chop, or thin out. Rather than reacting to every band cross, the script cross-examines each potential signal against stall detection, slope strength, volume participation, range compression, basis-point movement, and trend strength (ADX) before allowing a flip to display — while retaining a breakout override so genuinely explosive moves are never suppressed by the very filters designed to catch noise.
✨ Originality and Utility
Trailing-band trend systems (Chandelier-style or SuperTrend-style constructs) are common on TradingView, but nearly all of them share the same weakness: the trailing line flips direction on every price crossover, regardless of whether that crossover reflects a genuine change in market character or simply noise generated during a stalled, illiquid, or compressing market. This script's originality lies in the "Regime Consensus" layer built on top of the adaptive trailing band. Six independent, mathematically distinct filters — measuring band stall, linear-regression slope, relative volume, historical range percentile, basis-point velocity, and ADX-based trend strength — are computed every bar. If any single filter flags a "flat" regime, the display direction is held at its last confirmed state instead of flipping, which materially reduces whipsaw signals in ranging conditions. A dedicated breakout override simultaneously monitors for abnormally large single-bar moves (measured in ATR multiples) and forces the flip through regardless of filter status, ensuring the system does not become sluggish during genuine volatility expansion. This combination — adaptive smoothing of the source price, a volatility- and momentum-weighted dynamic band, a multi-factor flat-market veto, and a breakout bypass — is not a simple mashup of stock indicators but an integrated decision layer where each component directly informs whether the others are permitted to act. The trend line, filters, override, and dashboard are not separable add-ons; they operate as a single signal-gating pipeline.
🔬 Methodology and Concepts
● Adaptive Source Smoothing
Before any band math is applied, the script conditions the underlying HL2-style source price using one of two selectable adaptive filters:
Kalman Filter — a recursive estimator that maintains an internal "belief" about the true price and a corresponding uncertainty (error covariance). Each new bar, the filter computes a gain factor from the ratio of predicted uncertainty to total uncertainty (predicted plus measurement noise, set by the Kalman R input) and blends the new price observation into its estimate proportionally. A higher Kalman Q input allows the estimate to adapt faster to new prices; a higher Kalman R input makes the filter trust new observations less, producing a smoother but slower-reacting line.
LLAMA (an adaptive-length moving average inspired by Kaufman's Efficiency Ratio concept) — measures how efficiently price has moved over the lookback window by comparing net directional change to the sum of all bar-to-bar movement (an efficiency ratio between 0 and 1). This ratio is squared into a smoothing constant that continuously shifts the moving average's responsiveness between a fast EMA-like constant and a slow EMA-like constant, so the average tightens to price during clean directional runs and widens during choppy conditions.
• Dynamic Volatility Band
The core trailing band's half-width is not a fixed ATR multiple. It is calculated from three weighted components: a base multiplier, an ATR-based term scaled by the ATR Weight input, and a normalized recent-price-movement term (capped at its own 95th percentile to prevent single outlier bars from distorting the band) scaled by the Move Weight input. This composite value is then multiplied by the current ATR and smoothed with an exponential moving average (controlled by the Smooth Len input) to prevent the band width itself from jumping erratically bar to bar.
• Trailing Trend Line Construction
The trend line follows classic chandelier-style trailing logic: while price remains above the trend line, the line can only ratchet upward (never retreating below its prior value even if the lower band momentarily dips beneath it); while price remains below the trend line, the line can only ratchet downward. A flip only occurs when confirmed prior-bar closing price crosses to the opposite side of the line.
• Six-Factor Regime Consensus Filter
Before a directional flip is permitted to display, up to six independent conditions are checked. If any active filter flags the market as "flat," the displayed direction holds at its previous confirmed state rather than flipping:
Stall Filter — flags when the trend line's bar-to-bar movement is smaller than a fraction (Flatness input) of current ATR, indicating the line itself has gone quiet.
Slope Filter — runs a short linear regression across recent trend-line values, measures the resulting slope, normalizes it against ATR, and flags when that normalized slope falls below the Slope Thr input.
Volume Filter — flags when confirmed volume falls at or below its own moving average, treating below-average participation as unreliable for a fresh directional call.
Range Filter — flags when the current bar's high-low range falls within the lower percentile band (Range Pct input) of its historical distribution over the Pctile Len lookback, identifying range compression.
BPS Filter — converts the trend line's bar-to-bar movement into basis points relative to price and flags when that figure falls under the Min BPS input, catching moves too small to be economically meaningful.
ADX Filter — computes a standard Directional Movement Index reading and flags when it sits below the ADX Thr input, indicating weak underlying trend strength.
• Breakout Override
Running in parallel to the consensus filters, this component measures the absolute prior-bar price change against a multiple of ATR (Ovr ATR Mult input). If that threshold is exceeded, the override forces the flip through immediately, bypassing every flat-market filter above. This prevents the filter layer from muting the system's response to genuine volatility expansion or breakout conditions.
🎨 Visual Guide
Trend Line — a stepped line plotted along the confirmed trailing band value. It renders in the Bull color when the confirmed direction is up and the Bear color when down; both colors are fully customizable in the Colors group.
Gradient Candles / Bar Coloring — when enabled, chart candles and bars are recolored on a gradient between the Neutral color and the active directional color, with gradient intensity scaled by how far confirmed price has extended from the trend line relative to ATR (capped at 3x ATR for full saturation). A muted candle indicates price sitting close to the trend line; a fully saturated candle indicates an extended move.
Cloud Fill — a semi-transparent fill (opacity set by Cloud Transp) rendered between the trend line and a short moving average of HLC3 (length set by Cloud MA Len), tinted in the active directional color to visually reinforce which side of the trend the market currently occupies.
Bull / Bear Signal Labels — a "Bull" label appears below price the bar a confirmed flip to the up-regime occurs, and a "Bear" label above price on a confirmed flip to the down-regime, provided the Regime Consensus Filter did not veto the flip and Lock Signal is not engaged.
Trade Level Lines and Labels (optional, enabled via Show Trade Levels) — on each new confirmed signal, five lines are drawn forward from the signal bar: an Entry line (at prior confirmed close), a Stop Loss line, and three Take Profit lines (TP1, TP2, TP3), each offset from entry by ATR multiples set in the Trade Tools group. A shaded risk zone connects Entry to Stop Loss, and a shaded reward zone connects Entry to the furthest take-profit line. Each line carries a right-aligned label showing its exact price.
Live Dashboard (optional, position configurable via Dash X / Dash Y) — a compact table summarizing current symbol/timeframe, signal lock state, active direction, current signal status, regime classification (Flat/Trending), breakout override status, active adaptive filter type, current trend-line and ATR values, a visual progress bar for trend strength, and individual on/off/flat status readouts for each of the six regime filters.
Non-Standard Chart Warning — a red-bordered table automatically appears in the top-left corner if the script detects it is being run on a Heikin Ashi, Renko, Line Break, Kagi, or Point & Figure chart, warning that signal reliability is compromised on synthetic chart types.
📖 How to Use
A "Bull" label with the trend line switching to the Bull color signals a confirmed transition to an up-regime that has passed all active consensus filters (or was pushed through by the breakout override).
A "Bear" label with the trend line switching to the Bear color signals the equivalent confirmed down-regime transition.
Because flips are gated by the consensus filter, the absence of a new signal during a period of price consolidation is intentional — the script is treating the move as noise rather than a lack of function. Check the dashboard's individual filter rows to see exactly which condition(s) are currently classifying the market as flat.
The dashboard's "Override" row shows "Engaged" when the Breakout Override has just bypassed the filters — useful for distinguishing a filter-confirmed signal from a volatility-forced one.
When Show Trade Levels is active, treat the Entry/SL/TP lines as a reference risk framework tied to current ATR, not a guaranteed execution plan; always verify levels make sense for the instrument and timeframe before acting on them.
Enable Lock Signal to freeze the current signal state on the most recent bar, useful when reviewing historical signal behavior without new signals interrupting the current view.
If the Non-Standard Chart warning appears, switch to a standard candlestick chart type before relying on any signal from this script.
⚙️ Inputs and Settings
ATR Len — lookback period for the underlying ATR calculation that drives band width and multiple filter thresholds. Shorter values make the band more reactive to recent volatility; longer values smooth it out.
Band Mult, ATR Weight, Move Weight — the three components that combine into the dynamic band multiplier. Band Mult sets a base width, ATR Weight scales the contribution of current ATR relative to price, and Move Weight scales the contribution of recent capped price movement.
Smooth Len — the EMA length applied to the calculated band half-width, controlling how quickly the band itself can widen or narrow.
Adaptive Filter / Filter Type — toggles and selects between Kalman and LLAMA smoothing of the source price feeding the trend line.
Kalman Q / Kalman R — process noise and measurement noise inputs for the Kalman filter; higher Q increases responsiveness, higher R increases smoothing.
LLAMA Len — lookback window for the efficiency-ratio calculation driving the LLAMA adaptive average.
Stall Filter / Flatness — enables the stall check and sets the ATR-relative threshold below which trend-line movement is considered stalled.
Slope Filter / Reg Len / Slope Thr — enables the regression-slope check, sets its lookback window, and sets the normalized slope threshold below which the market is considered flat.
Volume Filter / Vol MA Len — enables the volume check and sets the moving-average length volume is compared against.
Range Filter / Pctile Len / Range Pct — enables the range-compression check and sets the historical lookback and percentile threshold used to classify current range as compressed.
BPS Filter / Min BPS — enables the basis-point movement check and sets the minimum basis-point threshold for a trend-line move to be considered meaningful.
ADX Filter / ADX Len / ADX Thr — enables the ADX-based trend-strength check and sets its calculation length and minimum threshold.
Breakout Ovr / Ovr ATR Mult — enables the override and sets the ATR multiple of single-bar price change required to force a flip through the filters.
Show Trade Levels / SL, TP1, TP2, TP3 ATR Mult — enables the trade-level drawing tool and sets each level's distance from entry as a multiple of ATR.
Bar Coloring, Bull/Bear Marks, Cloud Fill, Cloud MA Len, Cloud Transp — visual toggles and parameters controlling gradient candles, signal labels, and the cloud fill between trend line and reference average.
Show Dash, Dash X, Dash Y — toggles the dashboard and sets its screen position.
Long/Short/Close Action inputs — customizable text strings inserted into the "action" field of each alert's JSON payload, for direct use with automated webhook execution systems.
Colors group — full color customization for bull/bear/neutral states, label text, warning banner, dashboard theme, gradient candle tiers, and trade-level line colors.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The trailing-band mechanism draws on the same volatility-normalized stop methodology popularized by Chandelier Exit-style systems, which themselves extend J. Welles Wilder's Average True Range concept into an adaptive trailing stop: rather than a fixed price distance, the stop distance breathes with recently realized volatility, tightening in calm markets and widening in turbulent ones.
The Kalman filter option applies a classical state-space estimation technique originally developed for aerospace tracking problems (Rudolf Kálmán, 1960). It treats the "true" price trend as an unobserved state to be estimated from noisy observations, recursively updating a prediction and its uncertainty at each time step and weighting new information by a gain term derived from the relative magnitude of prediction versus measurement uncertainty. Applied to price series, it produces a smoothed estimate that adapts its own responsiveness based on the ongoing balance of signal versus noise.
The LLAMA adaptive average is built on an efficiency-ratio concept in the lineage of Perry Kaufman's Adaptive Moving Average research: the ratio of net directional displacement to total path length over a window quantifies how "efficiently" price has trended, and this ratio is used to interpolate the smoothing constant between fast and slow exponential-average bounds. Markets that trend efficiently receive a fast, responsive average; markets that chop inefficiently receive a slow, heavily smoothed one.
The Slope Filter applies ordinary least squares (OLS) linear regression across a short trend-line window to extract a first-derivative estimate (slope) of the trend line's trajectory, normalizing it by ATR so the threshold behaves consistently across instruments and volatility regimes of different scale.
The ADX Filter is grounded in Wilder's Directional Movement System, which decomposes price movement into positive and negative directional components and derives a smoothed trend-strength oscillator independent of direction — a standard framework for distinguishing trending from ranging conditions.
The Range Filter's use of percentile-rank classification reflects a basic non-parametric statistical approach: rather than assuming a normal distribution of high-low ranges, it empirically ranks the current range against its own recent historical distribution, which is more robust to the fat-tailed, non-normal behavior typically observed in financial return and range series.
Collectively, the six-factor consensus mechanism reflects a general principle from ensemble/multi-condition filtering: requiring independent, structurally uncorrelated confirmations to agree (or, here, requiring none to actively veto) before acting on a signal tends to reduce the false-positive rate relative to any single condition acting alone, at the cost of some responsiveness — a classic precision/recall tradeoff which the Breakout Override is specifically designed to mitigate during high-volatility regimes.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Reversal Trap Probability Bands Pro [JPT]🔷 OVERVIEW
Reversal Trap Probability Bands Pro is an original Pine Script® indicator that combines volatility bands, ATR, RSI, and volume analysis to estimate the probability of bullish and bearish reversal traps. Instead of relying on a single signal, the indicator calculates a probability score based on multiple technical factors and highlights areas where price may be exhausted and preparing for a reversal.
Designed for traders who monitor trend exhaustion and potential turning points, the indicator provides dynamic probability bands, reversal signals, market bias, and a real-time probability dashboard.
🔷 HOW IT WORKS
The indicator evaluates several market conditions simultaneously to estimate the likelihood of a bullish or bearish reversal.
Bullish Reversal Probability
The bullish probability increases when:
• RSI enters the oversold region
• Price closes below the lower ATR probability band
• Trading volume is above its average
• The candle closes bullish
When the combined probability reaches the defined threshold, a Bullish Reversal signal is generated.
Bearish Reversal Probability
The bearish probability increases when:
• RSI enters the overbought region
• Price closes above the upper ATR probability band
• Trading volume is above its average
• The candle closes bearish
When the combined probability reaches the defined threshold, a Bearish Reversal signal is generated.
🔷 PROBABILITY ENGINE
The indicator combines multiple technical factors into a probability score instead of using a single condition.
The probability model evaluates:
• RSI Momentum
• ATR Volatility
• Price Position Relative to Dynamic Bands
• Volume Confirmation
• Candle Direction
The resulting Bullish and Bearish probabilities are displayed in real time to help traders assess potential reversal conditions.
🔷 VISUAL FEATURES
• Dynamic EMA Basis Line
• ATR-Based Probability Bands
• Extreme Upper Probability Band
• Extreme Lower Probability Band
• Bullish Reversal Signals
• Bearish Reversal Signals
• Probability Zone Background Highlighting
• Real-Time Probability Dashboard
• Market Bias Display
• Customizable Inputs
🔷 PROBABILITY BANDS
The indicator automatically plots:
• EMA Basis
• Upper Probability Band
• Lower Probability Band
• Extreme Upper Band
• Extreme Lower Band
These adaptive bands expand and contract with market volatility, helping identify potential overextended price conditions.
🔷 DASHBOARD
The built-in dashboard displays:
• Bullish Probability (%)
• Bearish Probability (%)
• Current Market Bias
This provides a quick overview of market conditions without requiring manual calculations.
🔷 INPUTS
Available settings include:
• Band Length
• ATR Length
• ATR Multiplier
• RSI Length
• Overbought Level
• Oversold Level
• Volume SMA Length
• Show Reversal Signals
• Show Probability Bands
🔷 ALERTS
Built-in alerts are available for:
• Bullish Reversal Signal
• Bearish Reversal Signal
Alerts can be connected directly to TradingView's notification system for real-time monitoring.
🔷 COMMON WORKFLOW
A typical workflow is:
Monitor price as it approaches the upper or lower probability bands.
Observe the Bullish and Bearish Probability values in the dashboard.
Wait for a confirmed BUY or SELL reversal signal.
Use additional confirmation such as price action, support and resistance, or market structure before entering a trade.
Apply sound risk management for every position.
🔷 MARKETS
Reversal Trap Probability Bands Pro can be used on:
• Forex
• Gold (XAUUSD)
• Silver (XAGUSD)
• Cryptocurrency
• Stocks
• Indices
• Futures
• Commodities
Compatible with all TradingView-supported timeframes.
🔷 BEST PRACTICES
Many traders combine this indicator with:
• Market Structure (HH, HL, LH, LL)
• Break of Structure (BOS)
• Change of Character (CHoCH)
• Support & Resistance
• Fibonacci Retracement
• Order Blocks
• Fair Value Gaps (FVG)
• EMA Trend Filters
• Higher Timeframe Analysis
Using multiple forms of confirmation can help improve decision-making around potential reversal zones.
🔷 UPCOMING FEATURES
Future updates may include:
• Multi-Timeframe Probability Analysis
• Trend Strength Filter
• Smart Money Confirmation
• Liquidity Sweep Detection
• ATR-Based Stop Loss Suggestions
• TP1, TP2, TP3 Auto Targets
• Risk/Reward Visualization
• Advanced Dashboard
• Custom Probability Weighting
• Session-Based Probability Filters
🔷 DISCLAIMER
This indicator is provided for educational and informational purposes only. It estimates reversal probability using technical indicators and historical price action. It does not predict future market movements or guarantee trading results. Always perform your own analysis, use appropriate risk management, and consider additional market factors before making trading decisions. Indicator

McGinley Dynamic Fusion [MarkitTick]💡 The McGinley Dynamic is a lesser-known adaptive moving average developed in the 1990s by market technician John R. McGinley, specifically engineered to solve a problem that plagues conventional moving averages: their tendency to lag badly during fast market moves while whipsawing excessively during slow, choppy conditions. Unlike a standard EMA or SMA, the McGinley Dynamic adjusts its own speed automatically based on the relationship between price and its prior value, effectively "hugging" price more tightly when the market accelerates and smoothing out more when it decelerates. This script builds a complete trading framework around a Fast/Slow McGinley Dynamic crossover, layering in higher-timeframe confirmation, signal cooldown filtering, ATR-adaptive trade levels, a live dashboard, and a manual signal-lock mechanism.
✨ Originality and Utility
While McGinley Dynamic implementations exist on TradingView, this script does not simply plot the raw indicator. It combines four distinct engineering layers into a single decision framework:
A recursively self-adjusting dual McGinley Dynamic engine (Fast and Slow) used as a crossover trigger rather than a static trend line.
An optional higher-timeframe directional filter that requires the HTF trend to agree with the signal direction before a crossover is allowed to fire.
A cooldown/gap filter measured in bars, which suppresses new signals for a configurable number of bars after the last one, reducing signal clustering during choppy crossover conditions.
An ATR-based trade management layer that auto-plots Entry, Stop Loss, and three Take Profit levels the moment a signal fires, extended live on the chart with a color-coded risk/reward fill.
The value to traders lies in how these layers interact: the McGinley crossover alone would generate frequent false signals in ranging markets, but the HTF filter and cooldown mechanism specifically target the crossover's greatest weakness (over-triggering during consolidation), while the ATR trade-level engine converts a raw directional signal into a fully defined, risk-quantified trade plan without any additional charting work from the user.
🔬 Methodology and Concepts
• The McGinley Dynamic Engine
The core building block is a recursive moving average that adjusts its step size relative to how far price has moved away from its previous value. Rather than applying a fixed weighting like an EMA, the McGinley Dynamic divides the price-to-prior-value distance by a dynamic denominator that grows sharply when price moves far from the average and shrinks when price sits close to it. This produces a curve that speeds up during trending, high-momentum moves and slows down during sideways congestion, giving it a self-correcting quality that fixed-period moving averages lack. The script instantiates two independent copies of this engine: a Fast McGinley Dynamic (default length 14) and a Slow McGinley Dynamic (default length 50), each with its own configurable "K Constant" that governs how aggressively the adaptive denominator reacts to price displacement.
• Crossover Signal Logic
A long signal is generated when the Fast McGinley Dynamic closes above the Slow McGinley Dynamic after having been at or below it on the prior two bars — a confirmed upward crossover, not an intrabar or provisional one. A short signal mirrors this logic on the downside. This two-bar confirmation approach (checking both the and offsets) ensures the crossover has actually completed on a closed bar before a signal is registered, rather than reacting to a crossover that could still repaint on the current forming bar.
• Higher-Timeframe Directional Filter
When enabled, the script pulls the source price and Fast McGinley Dynamic value from a user-selected higher timeframe (default 4-hour) and requires that the HTF price sit on the correct side of the HTF Fast McGinley Dynamic before allowing a same-direction signal on the working timeframe. This acts as a macro-trend veto: a bullish crossover on the chart timeframe will be ignored if the higher-timeframe trend context is bearish, and vice versa. The higher-timeframe request is built using a confirmed, prior-bar value combined with TradingView's lookahead-on merge policy — the standard non-repainting pattern for pulling higher-timeframe data — so the filter reacts only to fully closed higher-timeframe bars.
• Cooldown / Signal Spacing Filter
To prevent rapid-fire signals during periods where the Fast and Slow McGinley Dynamic lines oscillate around each other, the script tracks the bar index of the last long and last short signal separately. A new signal in the same direction is only permitted once a user-defined minimum number of bars ("Cooldown Bars") has elapsed since the prior one, reducing signal noise without altering the underlying crossover logic itself.
• ATR-Based Trade Level Construction
The moment a qualifying signal fires, the script calculates an Average True Range value over a configurable lookback and uses it to derive five reference prices: an entry (the prior bar's close), a stop loss, and three take-profit targets. Each level is expressed as an ATR multiple away from entry, with independently configurable multipliers for the stop and each take-profit tier. This means the distance between entry and each level automatically expands or contracts with recent volatility rather than using a fixed point or percentage distance, keeping the risk/reward structure proportionate to current market conditions.
• Signal Lock
The optional Lock Signal feature freezes the currently displayed trade levels once toggled on, preventing them from being overwritten by a subsequent crossover. This is useful for traders who want to manually track a single active setup on the chart without the lines and labels shifting each time a new signal condition is technically met.
🎨 Visual Guide
Fast MD line (default blue) — the fast-length McGinley Dynamic.
Slow MD line (default orange) — the slow-length McGinley Dynamic.
Heatmap Candles — when enabled, candle bodies and wicks are recolored based on trend bias: teal/green when the Fast MD sits above the Slow MD (bullish bias), red when below (bearish bias), independent of the raw candle color.
Entry line (dashed, blue by default) — plotted at the close of the bar prior to signal confirmation, marking the reference entry price.
Stop Loss line (solid, red by default) — the ATR-derived stop level, labeled with an "✕ SL" tag showing the exact price.
Take Profit lines (dashed, teal by default, three tiers with increasing opacity) — TP1, TP2, and TP3, each labeled with its price.
Risk fill — a shaded region between the entry line and stop-loss line, tinted in the stop-loss color, visually representing the risk portion of the trade.
Reward fill — a shaded region between the entry line and the TP3 line, tinted in the take-profit color, visually representing the potential reward span.
All trade-level lines and labels extend live to the right edge of the chart until superseded by a new signal or, if Signal Lock is active, held in place.
📌 Note : the best way to resolve visual overlap is to navigate to the Object Tree and drag the indicator above the main chart layer, or simply hide the native candles in your chart settings.
📖 How to Use
A bullish signal occurs when the Fast MD confirms a crossover above the Slow MD, subject to the HTF filter and cooldown filter both being satisfied. The dashboard's Bias row will read "▲ Bull".
A bearish signal occurs on the mirrored downward crossover, with the Bias row reading "▼ Bear".
When a signal fires, use the auto-plotted Entry, SL, and TP1/TP2/TP3 lines as a starting framework for trade structure — the R:R progress bar on the dashboard shows the reward-to-risk ratio for TP1 relative to the stop distance.
The MD Gap row on the dashboard visualizes, as a percentage bar, how far apart the Fast and Slow MD lines currently are, which can help gauge trend strength or an approaching crossover.
Enabling the HTF Filter is recommended for traders who want signals to align with a broader trend context rather than trading every local crossover.
Enabling Signal Lock freezes the current trade plan on screen, useful when manually managing an active position and wanting to prevent the levels from updating on the next crossover.
⚙️ Inputs and Settings
Src / Fast N / Slow N — source price and the lookback lengths for the Fast and Slow McGinley Dynamic calculations. Shorter lengths react faster but generate more signals; longer lengths are smoother but slower to confirm.
K Const — governs how aggressively the McGinley Dynamic's adaptive denominator responds to price displacement from the prior value. Higher values slow the line's responsiveness.
HTF Filter / HTF TF — enables the higher-timeframe directional veto and sets which higher timeframe is used for that check.
Cooldown Bars — minimum number of bars required between two signals of the same direction.
Lock Signal — freezes the current trade levels in place, blocking updates from subsequent signals.
ATR Len — lookback length for the Average True Range used to size the SL and TP levels.
SL Mult / TP1 Mult / TP2 Mult / TP3 Mult — ATR multipliers that set the distance of the stop loss and each take-profit tier from the entry price.
Heatmap Candles / Trade Levels — visual toggles for the bias-colored candles and the auto-plotted trade-level lines/labels/fills.
Show Dash / Dash Pos — toggles the on-chart dashboard and sets its screen position.
Alert action fields (Long/Short/Close Long/Close Short) — customizable string values embedded into the script's JSON alert payloads, allowing the fired alerts to be mapped to specific automation or webhook actions.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The McGinley Dynamic belongs to a broader family of adaptive-smoothing techniques in technical analysis that attempt to address a structural weakness of fixed-weight moving averages: a constant smoothing factor cannot simultaneously be fast enough to track trending markets and slow enough to filter noise in ranging markets. McGinley's original design achieves adaptivity by making the effective smoothing constant a function of the ratio between current price and the prior average value raised to the fourth power — a formulation that causes the adjustment factor to grow disproportionately large when price diverges sharply from the average, automatically accelerating the line's response, and to shrink toward a baseline when price and average are close, automatically slowing the response. This self-referential feedback mechanism places the McGinley Dynamic conceptually closer to adaptive filters used in signal processing (where a filter's gain is modulated by the magnitude of recent error) than to the fixed-coefficient exponential smoothing used in a standard EMA.
The dual-length crossover structure applied here draws on the well-established moving-average-crossover framework from technical trend-following literature, where the relationship between a fast and slow-adaptive series is used as a proxy for shifting momentum regimes, conceptually related to dual-moving-average systems and change-point detection approaches that flag a regime shift once a fast-reacting series diverges from a slow-reacting baseline. The higher-timeframe confirmation layer reflects the top-down, multi-timeframe analysis principle common in technical trading methodology, where signals on a lower timeframe are treated as more reliable when they align with the prevailing direction on a higher timeframe, reducing the frequency of signals that run counter to the dominant trend. Finally, the ATR-scaled trade-level construction is grounded in volatility-normalized position and risk sizing, a standard practice in quantitative trade management where stop and target distances are expressed as a multiple of recent realized volatility (via Average True Range) rather than fixed price or percentage distances, ensuring risk parameters adapt to the current volatility regime rather than remaining static across changing market conditions.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Fan Principle Signals [MarkitTick]💡 Maps out market structure using a sequence of ascending swing lows (or descending swing highs) to construct a three-legged trendline fan, then triggers actionable trade signals the moment price breaks through the steepest line in that fan. Rather than relying on a single moving average or oscillator crossover, this script builds its bias from the actual geometry of recent price swings, giving traders a structural, visually intuitive way to time entries around the exhaustion of a trend.
✨ Originality and Utility
Most breakout tools react to a single reference line, such as a moving average, a fixed channel, or a static trendline drawn from only two points. This script instead applies the fan principle, a technique that connects a common origin point to three successive pivots in the same trend, producing three lines of increasing steepness. The logic behind this approach is that the third and steepest line in the fan typically represents the most aggressive rate of trend continuation, and a decisive close beyond it has historically signaled that the prevailing trend has lost its structural support.
What makes this implementation useful in practice is that it does not stop at drawing the fan. It automatically identifies valid pivot sequences from raw price action, filters out insignificant micro-swings using a minimum leg percentage threshold, validates the freshness of the structure with a lookback cap, and then converts the break event into a complete trade plan, including entry, stop-loss, and three take-profit levels, all derived mathematically from the fan's own geometry and the market's current volatility. The optional volume and higher-timeframe filters allow traders to demand additional confirmation before a signal is accepted, and the built-in dashboard keeps the entire state of the system visible at a glance. The combination of automated structural fan detection, ATR-adaptive risk placement, and live trade monitoring is what distinguishes this from a simple trendline break script.
🔬 Methodology and Concepts
• Pivot Detection
The script continuously scans for swing highs and swing lows using a symmetrical lookback and lookforward window defined by the Pivot Len input. A bar qualifies as a swing high only if it is strictly greater than every other bar within that window on both sides, and a swing low only if it is strictly lower than every bar in that window. Each time a new pivot is confirmed, its bar index and price are stored in a rolling array, keeping the most recent twenty pivots in memory for both highs and lows.
• Fan Construction
Once at least four pivot lows (for an uptrend fan) or four pivot highs (for a downtrend fan) are available, the script selects the four most recent ones. The oldest of the four becomes the fan's origin point. The remaining three form Leg 1, Leg 2, and Leg 3 respectively, each connected back to that same origin. A slope is then calculated for each leg using simple rise-over-run between the origin and that leg's pivot. For the fan to be accepted, the price move between the origin and the first leg must exceed the Min Leg % threshold, which filters out fans built from statistically insignificant noise, and the origin must fall within the Max Fan Lookback window, which prevents the script from anchoring to structure that is too old to remain relevant.
• The Break Condition
Leg 3, the line connecting the origin to the most recent and steepest pivot, is treated as the trigger line. Its price value is projected forward on every bar using the slope calculated at formation. A bullish break requires the fan to currently be in an uptrend orientation, the previous confirmed bar's close to be above the projected Leg 3 value, and the bar before that to have closed at or below it, meaning the break itself happens on a confirmed, completed bar rather than an in-progress one. The bearish break condition mirrors this logic in the opposite direction for downtrend fans. This confirmed-close approach means the script never fires or removes a signal based on an incomplete, still-forming bar, so historical signals will not disappear or move once printed.
• Optional Confirmation Filters
Two independent filters can be layered on top of the raw break condition. The volume filter requires the breaking bar's volume to exceed a multiple of its recent moving average, screening out breaks that occur on unusually thin participation. The higher-timeframe filter compares the breakout bar's close against the prior, fully closed bar on a higher timeframe of your choosing, requiring the breakout direction to align with that broader trend context before a signal is allowed to fire.
• Trade Level Calculation
When a break is confirmed, the script builds an entry, stop, and three take-profit levels automatically. Entry is anchored to the close of the breakout bar. The stop-loss is placed beyond the nearest of the two most recent fan legs, offset further by a small ATR buffer to avoid being clipped by minor wicks, but it is also capped by a maximum ATR distance so a single outlier swing cannot produce an oversized stop. The distance between entry and stop becomes the base risk unit, and the three take-profit levels are placed at user-defined multiples of that risk unit, giving a consistent, R-multiple-based framework for managing the position rather than arbitrary fixed-price targets.
🎨 Visual Guide
Dotted lines connecting the origin point to Leg 1 and Leg 2 show the earlier, less steep sections of the fan structure and provide visual context for how the trend developed.
The solid, extended line represents Leg 3, the active trigger line. It is colored using the Bull Fan color when the fan is in an uptrend orientation and the Bear Fan color when it is in a downtrend orientation, and it projects forward in real time as new bars form.
A blue dashed line marks the Entry level once a signal fires, extending to the right for as many bars as the trade remains active or until a new signal replaces it.
A red solid line marks the Stop-Loss level, with a light red shaded zone (the Risk Fill) drawn between the entry and stop lines to make the risk portion of the trade immediately visible.
Three dashed lines in progressively deeper shades of teal mark Take-Profit 1, 2, and 3, moving from lightest (TP1, closest to entry) to fully opaque (TP3, furthest away). A light teal shaded zone (the Reward Fill) spans from the entry line to the TP3 line, visually contrasting the reward portion of the trade against the risk portion.
Small labels are anchored to each of these lines on the left, displaying the exact price of the Stop, Entry, and each Take-Profit level, and updating their horizontal position as the trade progresses.
An upward-pointing "▲ BUY" label appears below the breakout bar on a bullish break, and a downward-pointing "▼ SELL" label appears above the breakout bar on a bearish break.
An optional on-chart dashboard table displays the ticker and timeframe, whether the Lock Signal feature is active, the current fan orientation, the origin price, the live value of the Leg 3 trigger line, the current entry, stop, a live risk-to-reward progress bar showing how far price has travelled toward TP3 relative to the initial risk, the volume filter status, and the number of bars elapsed since the last signal.
📖 How to Use
A signal is generated only when price decisively closes beyond the Leg 3 trigger line of an established fan, so treat the fan's orientation, shown both by the line color and by the Fan State readout on the dashboard, as the prevailing structural bias before a break occurs. When a bullish break prints, the suggested plan is to consider a long entry near the displayed Entry line, with the Stop-Loss line defining the invalidation point below and the three Take-Profit lines offering staged exit levels as the move develops. A bearish break mirrors this in the opposite direction for short setups.
The R:R Progress bar on the dashboard is useful for monitoring an active trade at a glance: it fills from 0% toward 100% as price advances from entry toward the TP3 target, and its color shifts from red through amber to teal as the trade's risk-to-reward ratio improves. If the Lock Signal option is enabled, the script freezes the most recently confirmed signal and its levels in place rather than allowing a new one to overwrite them, which can help when you want to manage an open position without the on-chart levels shifting. Because signals are confirmed only on closed bars, always wait for bar close before acting on a fresh line break rather than reacting to an in-progress wick.
Enabling the optional Volume and HTF filters will typically reduce signal frequency while raising the bar for confirmation, so consider testing both configurations to see which better matches the behavior of the instrument and timeframe you trade.
⚙️ Inputs and Settings
Pivot Len — Controls how many bars on each side must confirm a swing high or low. Smaller values detect pivots faster but produce noisier, more frequent fan structures; larger values produce fewer but more structurally significant pivots.
Max Fan Lookback — The maximum age, in bars, that a fan's origin point can have and still be considered valid. Lowering this keeps the script focused on recent structure only.
Min Leg % — The minimum percentage price move required between the origin and the first leg for a fan to be accepted, filtering out fans built on insignificant price movement.
Use Vol Filt / Vol Avg Len / Vol Mult — Enables a volume confirmation requirement, comparing current volume against its moving average over the specified length, multiplied by the chosen factor.
Use HTF Filt / HTF — Enables a higher-timeframe trend alignment requirement, comparing the breakout close against the prior confirmed close on the chosen higher timeframe.
SL ATR Buf — The ATR-based buffer added beyond the nearest fan leg when placing the stop-loss, giving the stop room to avoid minor wick noise.
SL Max ATR — A ceiling, expressed in ATR multiples, on how far the stop-loss can be placed from entry, preventing outsized stops on unusually wide fans.
ATR Len — The lookback length used for the ATR calculation that feeds both the stop buffer and the stop cap.
TP1 R / TP2 R / TP3 R — The risk-multiple distances used to place the three take-profit levels relative to the initial risk unit between entry and stop.
Lock Signal — Freezes the current signal and its associated levels in place, preventing a new signal from overwriting them until manually disabled.
Show Fan Lines / Show Trade Levels / Show Labels — Independently toggle the visibility of the fan structure lines, the entry/stop/TP levels, and their accompanying price labels.
Show Dash / Dash Pos — Toggle the on-chart dashboard and choose which corner of the chart it is anchored to.
A full set of color inputs is available to customize the fan lines, trade level lines, fill zones, signal labels, and dashboard appearance to match your own chart theme.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The fan principle applied here descends from classical technical analysis literature on trendline construction, most notably the Gann fan and Andrews' Pitchfork family of tools, which share the premise that connecting a structural origin point to successive swing extremes produces a family of trendlines whose slopes carry predictive meaning about the trend's rate of change. Where this script departs from those older, largely manual techniques is in how the origin and legs are selected: rather than relying on the analyst's subjective choice of anchor points, pivot selection here is fully algorithmic, using a symmetric local-extremum test to ensure each point used is objectively the highest or lowest price within its surrounding window.
The core statistical assumption underlying any trendline-break system is that price trends exhibit a degree of serial correlation, meaning that the rate of ascent or descent between swing points tends to persist for some period before mean-reverting or reversing, and that a violation of the most recent, steepest rate of change is informative about a shift in that underlying process. This is conceptually related to the broader family of change-point detection methods used in time-series analysis, where a structural break in a fitted trend line is used as a signal that the data-generating process has shifted regime. The ATR-based position sizing layered on top draws from the well-established use of Average True Range as a volatility-normalized unit of risk, a concept popularized in behavioral and quantitative trading literature as a way of scaling stop and target distances to the instrument's own recent volatility rather than using arbitrary fixed-point distances, which do not generalize across different assets or market conditions.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Indicator

Indicator

Market Weariness Spectrum Indicator [MarkitTick]💡 This advanced technical tool is engineered to evaluate the exhaustion of price trends by synthesizing volume, volatility, and price action into a single, comprehensive oscillator. By tracking how much effort the market is expending relative to the actual ground gained by price, this framework helps analysts identify periods of trend fatigue and potential reversals. Rather than relying solely on traditional price-based overbought or oversold levels, it looks deeper into market friction, signaling when a trend is mathematically likely to run out of steam and when a structural recovery is probable.
✨ Originality and Utility
Traditional momentum oscillators and standard volume metrics often operate in isolated silos, which can lead to false signals during strong, prolonged trends. This script bridges that gap by creating a multi-dimensional composite weariness score.
It detects structural exhaustion where high trading volume results in minimal price movement, indicating heavy absorption.
It measures the frequency of directional hesitation within recent price action.
It tracks effort density to provide a dynamic view of trend fatigue that single-metric indicators cannot achieve.
This multifaceted approach reduces false positives and provides a highly nuanced understanding of market mechanics during extreme conditions.
🔬 Methodology and Concepts
The core logic relies on the continuous calculation of three distinct dimensions, which are dynamically weighted and smoothed into the final composite oscillator.
● Dimension 1: Phantom Volume
This component measures the volume expended per unit of price movement.
It calculates the average volume divided by the average absolute price move over a specified lookback window.
Elevated values indicate that massive trading volume is generating very little forward progress, a classic sign of market friction.
The result is strictly normalized on a scale from 0 to 100 based on historical highest and lowest bounds over a derived lookback.
● Dimension 2: Directional Hesitation
This metric tracks the frequency of indecision in the market structure.
It evaluates the size of each candle's real body relative to the underlying Average True Range (ATR).
If a candle's body is less than a specific threshold of the ATR, it is flagged mathematically as a hesitation period.
The algorithm scores the percentage of these hesitation candles over the lookback window, normalizing the output from 0 to 100.
● Dimension 3: Effort Density
Effort Density compares the raw trading volume directly against the prevailing volatility range.
It identifies periods where the market is churning heavily without expanding its dynamic range.
Like the other dimensions, this value is smoothed, tracked against its historical extremes, and normalized to a 100-point scale for seamless integration.
● Composite Calculation and Signal Logic
The three dimensions are blended using precise, user-defined weights to form the raw weariness score.
A Simple Moving Average is applied to smooth the raw data, creating the primary indicator trajectory.
The script continuously evaluates the mathematical velocity and acceleration of this smoothed line to detect structural deceleration in weariness.
This logic triggers specific reversal signals only when extreme exhaustion mathematically begins to wane, rather than at the absolute peak.
🎨 Visual Guide
The system provides a rich, multi-layered visual experience to ensure all data is instantly readable directly on the chart.
● Chart Elements and Overlays
Candle Coloring: The main chart candles are dynamically colored based on the current weariness level, transitioning through a gradient of green, yellow, orange, and red.
Reversal Labels: Explicit downward-pointing labels appear on the chart when the weariness metric peaks above the critical threshold and structural deceleration is confirmed.
Recovery Labels: Upward-pointing labels signify that the market has recovered from a state of severe exhaustion, crossing back into baseline operational zones.
● Oscillator Panel
Oscillator Line: The thick main oscillator line representing the composite weariness score, dynamically colored.
Dimension Lines: Three distinct lines representing the individual calculations for Phantom Volume, Directional Hesitation, and Effort Density.
Threshold Fills: A semi-transparent visual fill highlights the specific zone between the critical alert level and the recovery baseline.
Critical Backgrounds: The oscillator panel background shifts color dynamically when weariness exceeds absolute critical limits.
● On-Chart Dashboard
Data Table: An intuitive, heavily formatted table tracks the exact percentage and text status of the current calculation.
Progress Bars: Text-based visual progress bars represent the isolated weight of each dimension in real-time.
Acceleration Trackers: Directional arrows track the direct acceleration vector of the current trend state.
📖 How to Use
The primary application of this system is identifying when a market move has exhausted its underlying momentum, regardless of the immediate price action.
● Identifying Exhaustion
Monitor the primary oscillator as it climbs toward the upper boundary.
When the line enters this critical zone, the current trend is expending maximum effort for minimal reward. Caution is advised for trend-continuation setups.
● Evaluating Reversals
Wait for the structural acceleration to turn negative.
When a reversal label manifests, it suggests that the exhaustion has structurally peaked and the market may be susceptible to a shift in directional momentum.
● Confirming Recoveries
After a period of extreme weariness, wait for the oscillator to fall back below the defined recovery threshold.
The appearance of a recovery label indicates the market has absorbed the previous friction, signaling a return to baseline conditions.
⚙️ Inputs and Settings
The script provides granular control over all internal weighting and lookback mechanisms.
● Core Parameters
Lookback: Defines the primary window for all moving averages and historical normalization extremes.
Smooth: Adjusts the sensitivity of the final composite score to reduce standard market noise.
ATR Len: The specific period used for calculating the volatility benchmarks essential to the Hesitation and Density formulas.
● Dimension Weights
W1 Phantom Vol: The proportional weight assigned to the volume-per-move calculation.
W2 Dir Hesit: The proportional weight assigned to the structural hesitation calculation.
W3 Effort Den: The proportional weight assigned to the volume-to-volatility calculation.
● Signal and Visual Thresholds
Crit Exh %: The strict upper boundary that defines extreme structural weariness.
Recovery %: The lower boundary that defines a complete return to standard market flow.
Confirm Bars: The sustained duration required for the indicator to remain in exhaustion before any subsequent reversal signals can be mathematically validated.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The theoretical foundation of this logic rests heavily on established volume spread principles and statistical volatility analysis.
● Effort vs. Result Mechanics
In objective terms, when a system applies maximum input volume but achieves minimal price displacement, the energy is being absorbed by opposing liquidity.
The script quantifies this exact friction mathematically through specialized density formulas, filtering out traditional momentum illusions.
● Volatility Clustering
The hesitation frameworks rely on the statistical observation of volatility clustering.
By measuring continuous body size constraints relative to an evolving volatility band, the formulas isolate periods where directional conviction fundamentally collapses.
● Derivative Logic
The internal signal engine evaluates the specific velocity and acceleration vectors of the underlying weariness curve.
By requiring structural acceleration to turn decisively negative after a local maximum, the mathematical algorithm ensures the statistical apex of the exhaustion phase has cleanly passed before printing confirmation markers.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Smart Trend Flow Pro [MarkitTick]💡 Navigating modern market structures requires a robust mechanism capable of filtering out transient noise while capturing the dominant directional vectors. The Smart Trend Flow pro is an advanced analytical framework designed to dynamically track market momentum and volatility, transforming complex price action into a highly readable, visual heatmap. By synthesizing trend identification with continuous volatility scaling, this tool aims to provide clarity in both ranging environments and high-expansion phases, allowing for more structured and disciplined market analysis.
✨ Originality and Utility
● A Paradigm Shift in Trend Visualization
Traditional channel-based indicators often suffer from severe lag or become entirely unreadable during periods of intense market contraction. The utility of this script lies in its adaptive ability to map structural boundaries and instantly correlate them with localized market energy. By discarding static thresholds in favor of a dynamic, self-adjusting baseline, the tool presents a unified view of both direction and conviction.
● Beyond Binary Signals
Standard indicators frequently rely on binary conditions—such as a simple moving average crossover—which ignore the underlying volatility context. This script pioneers a synthesized approach where the strength of a trend is continuously evaluated against its own historical variance. This allows users to visually differentiate between a low-conviction drift and a highly energized breakout, providing a much richer context for potential trade management and risk assessment.
🔬 Methodology and Concepts
● Dynamic Boundary Engine
At the core of the script is a reactive boundary detection mechanism. Rather than projecting fixed bands, the engine establishes fluid upper and lower parameters based on recent localized extremes. These boundaries can be structurally smoothed using various adaptive algorithms, effectively tuning the sensitivity of the channel to match the specific rhythm of the asset being analyzed.
● Volatility Normalization Process
To accurately gauge market energy, the framework continuously measures the distance between the established boundaries. This raw measurement is then subjected to a rigorous statistical normalization process. By evaluating current fluctuations against a rolling historical baseline, the engine maps the resulting variance onto a bounded curvilinear scale. This abstract transformation isolates the pure kinetic energy of the market, stripping away absolute price dependencies to provide a standardized metric of volatility expansion and contraction.
● Integrated State Tracking
The logical engine monitors the interaction between the closing prices and the smoothed boundary parameters. A structural shift is recognized only when price definitively breaches and sustains its position relative to these dynamic thresholds. This state-tracking ensures that the primary directional bias is maintained until a statistically significant reversal occurs, minimizing false positives during minor retracements.
🎨 Visual Guide
● Color-Coded Heatmap Candles
The primary visual feature is the complete transformation of the standard candlestick chart into a continuous heatmap. The colors directly correspond to the synchronized output of the trend direction and the normalized volatility metric.
Bullish Gradients: When the market establishes an upward bias, the candles transition through a cool-to-hot spectrum. Deep, cold colors represent low-volatility accumulation phases, while bright, hot neon colors signify intense, high-volatility bullish expansion.
Bearish Gradients: Conversely, downward structural shifts are mapped using a separate color spectrum. Dark, muted tones indicate slow, grinding bearish action, whereas vivid, hot colors highlight rapid, high-volatility sell-offs.
Neutral States: When the price resides within the core boundary parameters, demonstrating no clear directional dominance, the candles default to a flat, neutral gray to reduce visual noise.
● Signal Markers
Buy Labels: Distinct markers appear precisely below the price action when the engine confirms a definitive upward structural breach.
Sell Labels: Clear markers are printed above the price action upon the confirmation of a downward structural breach.
📖 How to Use
● Interpreting the Heatmap
The most effective way to utilize this tool is to read the candle colors as a topographical map of market energy. A transition from a neutral state into a cold bullish or bearish color suggests the early formation of a trend. As the colors heat up and transition toward their neon extremes, it confirms that the directional move is being supported by expanding volatility, which often characterizes the most robust phase of a trend.
● Managing Trend Exhaustion
Traders can monitor the intensity of the heatmap to gauge potential momentum decay. If a strong trend has been characterized by hot, neon colors, a gradual cooling off—where the colors revert to darker, colder shades—may indicate that the localized volatility is subsiding, suggesting potential consolidation or a pending structural shift.
● Confirming Breakouts
The printed Buy and Sell labels serve as structural confirmation points. These markers are best utilized not in isolation, but in confluence with the heatmap. A signal label accompanied by an immediate transition into a high-volatility color spectrum carries significantly more analytical weight than a signal that remains mired in a cold or neutral visual state.
⚙️ Inputs and Settings
● Channel Settings
Channel Length: Determines the primary lookback window for establishing the core upper and lower boundaries. Increasing this value creates a wider, slower-moving channel, while decreasing it makes the system highly sensitive to recent price action.
Channel MA Type: Allows the user to apply different smoothing algorithms to the boundaries. Options range from the standard baseline to advanced weighting methods, providing precise control over signal reactivity.
● Analytics Settings
Squeeze/Z-Score Length: Defines the historical window used to evaluate the relative volatility. A longer length provides a smoother, more macro-level volatility assessment, while a shorter length makes the heatmap highly reactive to sudden micro-expansions.
● Candle Heatmap Settings
Bullish/Bearish Color Controls: Fully customizable inputs allowing the user to define the exact hex values for the cold and hot extremes of both the bullish and bearish spectrums.
Neutral Market Base: The default color applied when the market is bound within the channel without a confirmed directional state.
● Signal Settings
Label Colors: Configurable color selections for the printed Buy and Sell confirmation markers.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
● Topological Price Mapping
At a fundamental level, the script treats financial time-series data not as discrete data points, but as a continuous topological surface. By evaluating the highest and lowest ranges over a specified temporal window, it effectively creates a rolling bounding box that encapsulates the probable distribution of future price vectors. The application of sophisticated moving average algorithms to these boundaries acts as a low-pass filter, mathematically attenuating high-frequency noise and exposing the true underlying macroeconomic drift.
● Non-Linear Variance Scaling
The most complex aspect of the engine is its approach to variance. Standard deviation on its own is an unbounded metric, making it difficult to utilize in a standardized visual format. The script solves this by isolating the width of the bounding box and comparing it against its own moving average and standard deviation. This transforms the raw width into a standardized probabilistic metric.
● The Sigmoidal Activation Function
To achieve the seamless visual gradient, this standardized variance must be mapped onto a finite plane. The engine employs a logistic function—specifically, a sigmoidal activation curve—to compress the unbounded variance data strictly between a 0 and 100 scale. This non-linear mapping ensures that the visual heatmap remains highly sensitive to subtle shifts around the mean, while gracefully asymptotically compressing extreme, outlier volatility spikes, thereby maintaining absolute visual coherence regardless of the asset's inherent behavior.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. I expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Indicator

Squeeze Bollinger Bands Tracker [MarkitTick]💡 This institutional-grade analysis suite provides a sophisticated volatility-tracking environment designed to identify market compression phases and high-conviction breakouts. By integrating Bollinger Band standard deviation logic with Z-Score normalization and a non-linear sigmoid volatility engine, the script transforms raw price action into a multi-dimensional heatmap. This approach allows traders to distinguish between low-volatility "coiling" phases and institutional-driven momentum expansions, providing a clear visual representation of market energy.
● ✨ Originality and Utility
The Squeeze Bollinger Bands Tracker distinguishes itself through the implementation of a proprietary "Signal Engine" and a non-linear volatility grading system. Unlike standard Bollinger Band indicators that merely plot static lines, this tool actively monitors the rate of change in channel width relative to its own historical standard deviation.
• Dynamic Volatility Normalization
Most indicators rely on linear calculations that fail to account for the exponential nature of market expansion. This script utilizes a Z-Score calculation to determine how extreme a volatility move is compared to its history, then maps that value through a sigmoid function. This creates a "Heatmap" effect on the candles that reflects institutional participation levels rather than simple price movement.
• Institutional Breakout Grading
The utility is further enhanced by an automated grading system (Grades A, B, and C). By cross-referencing price spread (the distance between open and close) with actual volume metrics during a breakout, the script provides an objective measure of signal quality, helping traders filter out "fakeouts" that lack volume support.
● 🔬 Methodology and Concepts
The logic flow is divided into three core analytical pillars: Compression Detection, Momentum Normalization, and Signal Verification.
• Compression Detection (The Squeeze)
The script calculates the percentage-based width of the Bollinger Bands. When the current width falls below its SMA-based average, the market is classified as being in a "Squeeze" state. This signifies a period where market energy is being stored, often preceding a significant directional expansion.
• Sigmoid-Mapped Z-Score Volatility
To provide the neon heatmap coloring, the script calculates the Z-Score of the channel width. This tells us how many standard deviations the current volatility is from the mean. This Z-Score is then processed through a Sigmoid Function: 100 / (1 + exp(-Z-Score)). This mathematical transformation squashes the infinite Z-Score range into a 0–100 scale, creating a smooth gradient for the "True Institutional Heatmap."
• Breakout Validation Engine
Signals are not generated simply on a price cross. The Signal Engine (a custom User-Defined Type) calculates real-time Entry, Stop Loss (based on the previous basis line), and Take Profit levels. During the moment of crossover, the "calcGrade" method evaluates if the current bar's spread and volume are at least 150% of their historical averages to assign a Grade A "Institutional" breakout.
● 🎨 Visual Guide
The visual interface is designed with a high-contrast "3D Neon" aesthetic to ensure critical data points are immediately recognizable during fast-moving market conditions.
• The 3D Neon Channels
Upper Core & Glow: The upper Bollinger Band is rendered in Cyan (#00FFFF). It features three layers: a 2-pixel core for precision and two wider "Glow" layers with varying transparency (60% and 85%) to create a neon effect.
Lower Core & Glow: The lower band is rendered in Magenta (#FF00FF), following the same three-layer glow architecture to signify the support boundary.
Basis Core: The central moving average is rendered in Yellow (#FFFF00), acting as the dynamic mean and the primary stop-loss anchor.
• True Institutional Heatmap Candles
The candle colors are not fixed; they represent a gradient based on the Sigmoid Volatility score.
Bullish State: Transitions from a deep "Cold" Forest Green (#004D40) during low-volatility rises to a "Hot" Neon Green (#00FF00) during high-momentum surges.
Bearish State: Transitions from a deep "Cold" Purple (#4A148C) during low-volatility drops to a "Hot" Neon Red (#FF0000) during aggressive sell-offs.
Neutral State: Gray (#808080) candles appear when no definitive trend state is identified by the Signal Engine.
• Analytical Dashboard and Labels
Buy/Sell Labels: When a breakout occurs, a Cyan or Magenta label appears. It displays the signal Grade (A, B, or C) and the calculated E (Entry), TP (Take Profit), and SL (Stop Loss) values.
Institutional Analytics Dashboard: Located in the top-right, this table provides real-time data on Trend Maturity (in bars), Volatility State (Squeeze vs. Expanding), and the percentage proximity to the upper and lower breakout levels.
● 🔍 Deconstruction of the Underlying Scientific and Academic Framework
The indicator is built upon the foundation of Statistical Process Control and Information Theory. By treating price movement as a signal-to-noise problem, the script uses the following frameworks:
• Standard Deviation and Gaussian Distribution
The core of the Bollinger Band calculation relies on the assumption that price spends approximately 95% of its time within two standard deviations of the mean. The "Squeeze" logic identifies periods where the distribution is abnormally tight, suggesting an imminent return to the mean or a "Fat Tail" event (a breakout).
• Z-Score Normalization
In statistics, the Z-Score is used to compare observations from different data sets or time periods. By applying Z-Score logic to the width of the bands, the indicator removes the "unit" of price and focuses purely on the intensity of the volatility, allowing for a standardized comparison across different assets (e.g., Bitcoin vs. Apple).
• Non-Linear Sigmoid Mapping
The use of the Sigmoid function (common in Neural Network activation) serves to eliminate outliers in volatility data. This ensures that the candle heatmap provides meaningful color variations even during extreme "Black Swan" events, preventing the visual output from becoming saturated or unreadable.
● 📖 How to Use
Traders should focus on the transition between market states as displayed by the Analytics Dashboard and the Heatmap.
• Step 1: Identify the Squeeze
Monitor the "Volatility State" in the dashboard. When it displays "⚠️ SQUEEZE" in Neon Orange, the market is coiling. This is the preparation phase where no trades should be taken.
• Step 2: Evaluate the Breakout Grade
Wait for a "BUY" or "SELL" label to appear. Priority should be given to "Grade A" signals, as these indicate that both price spread and volume have significantly exceeded their 20-period averages, confirming institutional intent.
• Step 3: Execution and Risk Management
Upon a valid signal, the script provides an automated trade plan. The Stop Loss is set at the Basis (Yellow) line from the previous bar to allow for minor breathing room, while the Take Profit is projected at a 1:1 ratio relative to the width of the band at the time of entry.
● ⚙️ Inputs and Settings
The script provides granular control over the analytical engine and the visual experience.
• Channel Settings
Channel Length: Controls the SMA window for the Bollinger Bands (Default: 20).
Standard Deviation Multiplier: Adjusts the width of the neon boundaries (Default: 2.0).
• Analytics Settings
Squeeze/Z-Score Length: Determines the lookback period used to define what constitutes "average" volatility (Default: 50).
Quality SMA Length: Defines the window for the Grade A/B/C volume and spread verification (Default: 20).
• Color and Heatmap Settings
Users can fully customize the Neon Upper/Lower colors, the Dashboard background transparency, and the specific "Cold" and "Hot" thresholds for the candle gradient engine to match their preferred dark or light chart theme.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. I expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Concordance Regime Synthesis [JOAT]Concordance Regime Synthesis
Introduction
Concordance Regime Synthesis is an open-source strategy framework that combines regime state, pressure, participation, structure, and higher-timeframe bias into one non-repainting confluence model. The strategy is designed to avoid single-factor entries by requiring multiple independent conditions to align before risk is deployed.
Core Concepts
1. Multi-factor confluence scoring
Long and short setups are scored independently using regime direction, normalized price pressure, participation-axis deviation, delta behavior, recent structure, and optional higher-timeframe bias.
2. Regime-aware execution
Entries only occur when directional confluence exceeds a threshold and the score spread clearly favors one side.
3. ATR-based risk handling
Stops, targets, and optional trailing logic are all derived from ATR so the strategy adapts to volatility instead of using fixed-tick assumptions.
Strategy Properties
Initial capital: 10,000
Order size: 10% of equity per trade
Commission: 0.06%
Slippage: 1 tick
Pyramiding: 0
Orders processed on close
Originality Statement
This strategy is original in its use of a confluence gate that requires independent agreement from regime, pressure, delta, participation, structure, and optional HTF alignment before entries are allowed. It is published as an educational framework for multi-factor strategy construction rather than as a promise of future performance.
Disclaimer
This strategy is for educational and informational purposes only. Backtest results depend on symbol, timeframe, market regime, and execution assumptions. Historical results do not guarantee future returns. Always validate assumptions and use realistic risk controls.
Strategy
