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

Risk-Sizing CalculatorA simple, visual position-sizing tool for any market or timeframe.
Enter your account size and risk percentage, choose a stop-distance
method (ATR-based, manual stop price, or fixed % of entry), and the
indicator calculates your position size, stop distance, dollar risk,
notional exposure, and an optional reward-to-risk target — displayed
in a clean live table with entry and stop lines on your chart.
Also includes a 3-scenario Size Ladder (0.5% / 1% / 2% account risk
side-by-side) so you can see the sizing range at a glance, plus an
optional Market Context panel showing ATR %, RSI, ADX, volatility
class, and session state.
FEATURES
- Three stop-distance methods: ATR-based, Manual Stop Price, Fixed %
- Position size in units, notional dollars, and % of account
- Size Ladder table showing what 0.5% / 1% / 2% risk each produce
- Reward-to-risk target row (optional · pairs with an R multiple)
- Market Context panel: ATR %, RSI(14), ADX(14), volatility class,
session flag
- Live entry + stop + target lines drawn on the chart
- Adjustable table position (top-right, middle-right, etc.)
- Clean numeric output for quick pre-trade sanity check
HOW TO USE
1. Set Direction (Long / Short) and optionally a Manual Entry Price
2. Choose your Stop Distance method — ATR, manual price, or fixed %
3. Enter Account Size and Risk per trade % (1% is a common default)
4. Optional: enable target row and set R multiple
Pairs naturally with any ATR-based visualizer or manual entry planning.
Educational only · not financial advice · does not generate buy/sell signals. Wskaźnik

ATR Stop & Target VisualizerA simple, visual risk-planning tool for any market or timeframe.
Choose a direction (Long/Short) and the indicator plots an ATR-based
stop-loss, three reward-to-risk targets (TP1, TP2, TP3), shaded
risk / reward zones, and a live trade-plan table summarizing entry,
stop, targets, R:R math, ATR value, dollar risk, and a simplified
position-size estimate.
Also includes an optional Market Context panel showing ATR %, RSI,
ADX, volatility class, and session state — so the risk plan sits
alongside the environment reading you're planning against.
FEATURES
- ATR-based stop distance with selectable smoothing (RMA/SMA/EMA/WMA)
- Three reward-to-risk targets (TP1/TP2/TP3) with independent R
multiples · defaults 1R / 2R / 3R
- Layered shaded reward zones (densest at TP1, lightest at TP3)
- Auto or manual entry price
- Trade-plan table with all key numbers at a glance
- Simplified position-size estimate (account × risk %)
- Market Context panel: ATR %, RSI(14), ADX(14), volatility class,
session flag
- Clean single-bar drawing to keep charts readable
HOW TO USE
1. Set Direction (Long / Short) and optionally a Manual Entry Price
2. Tune the ATR length and stop multiple to fit the instrument's
volatility
3. Set each target as an R multiple (defaults 1R / 2R / 3R)
4. Enter account size and risk % to see a suggested position size
This is a visual risk-planning tool built to help traders think in
terms of risk first. Educational only · not financial advice · does
not generate buy/sell signals. Wskaźnik

Crypto Correlation Dashboard [StrixEDGE]Overview
A real-time Pearson correlation matrix built for crypto portfolio analysis. Tracks the statistical co-movement between up to 6 assets across selectable timeframes, using log-return correlation — not raw price correlation — to avoid the inflated readings that plague most correlation tools.
Whether you're managing a multi-asset portfolio, hunting pairs trades, or monitoring regime shifts, this dashboard tells you exactly when diversification is real and when it's an illusion.
🔍 What Makes This Different
Most correlation indicators on TradingView calculate Pearson r on raw closing prices. That's a statistical mistake: two assets trending upward will always show near-perfect correlation on price, even if their returns are completely independent. This indicator correlates **logarithmic returns**, which isolates actual co-movement from shared trend bias.
The multi-timeframe engine uses a period-scaling method through `request.security` that preserves mathematical accuracy when projecting higher-timeframe correlations onto lower-timeframe charts — consuming only 6 security calls total, leaving headroom for other indicators on your layout.
⚡ Key Features
6×6 Correlation Matrix
Full heatmap-style matrix covering all 15 unique pair combinations (C(6,2)). Color intensity maps directly to correlation strength: teal for strong positive, red for strong negative, neutral gray for uncorrelated pairs. Diagonal cells are blanked — no wasted space showing you that BTC correlates with BTC.
Multi-Timeframe Support
Select from Chart / 1H / 4H / 1D / 1W directly in settings. The lookback period auto-scales to the target timeframe resolution, so "20 periods on Daily" means 20 trading days regardless of your chart timeframe.
Rolling Correlation Chart
Select any pair (Leg A / Leg B) and track its correlation coefficient over time as a continuous line. Shaded fill between the line and zero gives an instant visual read of direction and magnitude. A dynamic label on the last bar displays the current ρ value.
Aggregate Statistics Bar
Footer row shows AVG / MIN / MAX across all 15 pairs at a glance. When the minimum correlation drops to or below your threshold, a ⚠ BREAKDOWN tag appears.
Three Independent Alert Conditions
- Pair Breakdown — fires when any single pair falls to or below your threshold
- Average Breakdown — fires when the market-wide average correlation collapses
- Rolling Crossunder — fires when your selected pair crosses under the threshold
📐 How to Use
Portfolio Diversification Check
Add your held assets as Symbols 1–6. If the matrix is mostly dark teal (all pairs > 0.7), your portfolio moves as a single block — you're concentrated, not diversified. Look for pairs with low or negative correlation to add genuine hedging value.
Regime Change Detection
Monitor the AVG stat in the footer. A sudden drop in average correlation often precedes volatility expansion, sector rotation, or flight-to-quality moves. The average breakdown alert automates this surveillance.
Pairs Trading
Identify pairs with historically high correlation (> 0.8). When their rolling correlation temporarily collapses, it may signal a mean-reversion opportunity. Use the rolling chart to time entries and the crossunder alert for notifications.
Risk Management
During market stress, correlations tend to spike toward 1.0 across the board ("correlation breakdown to the upside"). When the matrix turns uniformly teal, portfolio risk is higher than position sizing alone suggests.
⚙️ Settings
| Parameter | Default | Description |
|---|---|---|
| Symbols 1–6 | BTC, ETH, SOL, BNB, XRP, ADA | Any tradable asset — crypto, forex, equities, commodities |
| Lookback Period | 20 | Number of target-TF bars for Pearson calculation |
| Timeframe | Chart | Correlation resolution: Chart / 1H / 4H / 1D / 1W |
| Breakdown Alert ≤ | 0.30 | Threshold for all three alert conditions |
| Rolling Pair | 1 × 2 | Which pair (by index) to plot on the rolling chart |
| Matrix Position | Top Right | Table placement on the pane |
| Colors | Brand defaults | Full control over positive, negative, neutral, header, and accent colors |
🧠 Technical Notes
- Log returns `ln(close / close )` are used instead of simple returns for better statistical properties (additivity, normality approximation).
- TF scaling: When the selected timeframe exceeds the chart timeframe, the lookback is multiplied by the bar ratio. Pearson r is invariant under uniform observation duplication, so accuracy is preserved.
- Security calls: 6 total (one per symbol), well within Pine's 40-call limit.
- Symbol parsing: Automatically strips exchange prefixes (Binance, Bybit, Coinbase, OKX, etc.) and quote currencies (USDT, USD, BUSD, USDC) for clean matrix labels.
- Works on any asset class — not limited to crypto despite the default symbols.
⚠️ Limitations
- Selecting a timeframe **lower** than your chart TF (e.g., "1H" on a Daily chart) will not produce hourly-resolution correlation. The multiplier floors at 1 and you get chart-TF correlation. For true 1H correlation, view on a 1H chart.
- Pearson correlation measures **linear** relationships. Non-linear dependencies (tail risk, asymmetric co-movement during crashes) require different tools.
- Past correlation does not guarantee future correlation. Regime shifts can invalidate historical readings without warning — which is exactly why the breakdown alerts exist. Wskaźnik

STP Top 10 Trade Opportunity Scanner / ScreenerSTP Top 10 Trade Opportunity Scanner / Screener
The STP Top 10 Large Move Radar is a multi-symbol market scanner designed to help traders quickly identify stocks showing conditions that may support a larger-than-normal price move.
Instead of reviewing charts individually, the Radar continuously analyzes up to 20 user-selected symbols and ranks the strongest opportunities based on a proprietary scoring system. The highest-ranked symbols are displayed in an easy-to-read Top 10 table.
The system evaluates multiple technical factors, including price trend, EMA alignment, VWAP positioning, RSI, DMI/ADX, buying and selling pressure, Range Oscillator conditions, relative volume, ATR, volatility expansion, squeeze and compression conditions, breakouts and breakdowns, supply and demand proximity, Fair Value Gaps, price movement speed, and overall trend strength.
Radar Table Information
Each ranked symbol includes:
Score: Overall opportunity score from 0–100 based on the combined technical conditions evaluated by the Radar.
Direction: Identifies the current directional bias as BULL, BEAR, or NEUTRAL.
Setup: Identifies conditions such as BREAKOUT, BREAKDOWN, SQZ RELEASE, COMPRESSED, AT S/D, AT FVG, NEAR BREAK, or BUILDING.
RVOL: Measures current volume relative to average volume to identify unusually active symbols.
ATR: Displays the previous completed daily 10-period ATR in dollars to provide context for the symbol's typical daily movement.
ATR Used: During regular market hours, estimates how much of the symbol's daily ATR has been used so far. Before and after the regular session, the Radar identifies the applicable market session instead.
Speed: Measures the magnitude of short-term EMA movement relative to ATR.
T-Strength: Classifies directional trend conditions as Strong, Moderate, Weak, or None.
Evidence: Highlights supporting technical conditions including squeeze activity, breakouts, supply/demand proximity, and Fair Value Gaps.
How Traders Can Use the Radar:
The Radar is designed primarily as an opportunity-discovery tool. A high ranking does not automatically represent a trade entry. Instead, traders can use the Top 10 list to identify which symbols deserve further chart analysis.
For example, a high-scoring bullish symbol showing elevated relative volume, a breakout or squeeze release, increasing speed, and strong trend conditions may warrant closer review for a potential bullish setup. The opposite conditions may identify potential bearish opportunities.
The Radar can be used alongside the STP Elite Prediction System or a trader's existing technical analysis process to confirm chart structure, support and resistance, risk, entry timing, and trade direction before entering a position.
Customizable Symbol List:
Users can configure up to 20 symbols, allowing the Radar to monitor a personal watchlist of stocks, ETFs, or other supported TradingView symbols. The scan timeframe is also configurable, with the default set to 5 minutes.
Dynamic Alerts:
The Radar includes a dynamic alert system for the highest-ranked opportunity. Users can set a minimum score threshold and optionally receive alerts when the leading symbol changes, its direction changes, or it crosses the configured threshold. Alerts include the symbol, direction, opportunity score, relative volume, ATR Used status, and scan timeframe.
Important:
The STP Top 10 Large Move Radar is intended to identify and rank developing technical conditions. Rankings and scores can change as new market data becomes available. A high score does not guarantee a large move and should not be considered a standalone buy or sell signal.
This indicator is intended for educational and informational purposes only and does not constitute financial advice. Wskaźnik

Equal Highs & Lows [ITA]🟠 OVERVIEW
Equal Highs & Lows marks the places where liquidity pools build, and then
tracks what happens to them.
When two swing highs form at almost the same price, the stops of everyone who
sold that level sit just above it. The same is true in reverse below two equal
lows. Those clusters are what price often reaches for before it turns, and they
are visible on the chart long before anything happens to them.
Most tools that find these draw the two swings and stop there. This one keeps
the level alive until price actually takes it, then marks it as swept rather
than deleting it, so you can look back and see whether a symbol respects its
pools at all before you trade one.
🟠 CONCEPTS
* Equal Highs (EQH) - Two swing highs within a set tolerance of each other.
Stop orders rest above them.
* Equal Lows (EQL) - Two swing lows within tolerance. Stops rest below.
* Liquidity Pool - The cluster of resting orders those stops form. It is a
reason for price to travel somewhere, not a reason for it to reverse there.
* Sweep - Price trading through the level and taking the orders. What happens
immediately after the sweep is the part that matters.
🟠 FEATURES
🔹 Equality tolerance is set as a percentage of price rather than in points, so
the same setting behaves consistently on a five dollar stock and a seven hundred
dollar index
🔹 The level is drawn at the higher of the two equal highs, and the lower of the
two equal lows, because that is where the stops actually sit. Averaging the two
puts the line underneath the liquidity it is meant to mark
🔹 Levels extend forward on every bar until they are taken, so an untouched pool
stays visible for as long as it survives
🔹 Swept pools are greyed out and labelled instead of being removed, which
leaves a record of how the symbol has treated its pools historically
🔹 A cap on active pools, so old levels retire instead of filling the chart
🔹 Separate alerts for equal highs taken and equal lows taken
🟠 HOW TO USE
Start with the tolerance. It is the setting that decides everything else. On a
daily chart 0.1 to 0.3 percent is usually right. Intraday, drop it to 0.05 to
0.15. If you are seeing almost no pools, raise it. If everything is a pool,
lower it.
Read an unswept level as a destination, not a wall. Liquidity sitting above the
current price is a reason to expect price to reach up there at some point. It is
not a reason to short it.
The information is in what follows the sweep. Price taking equal highs and then
continuing up means the pool was simply passed through. Price taking them and
immediately failing back below is the sequence that traders are usually looking
for, and the sweep alert is there so you do not have to watch for it.
Swing Lookback controls how significant a swing has to be before it counts.
Raise it for fewer and more meaningful pools.
🟠 CONCLUSION
Equal highs and lows are easy to see once someone points at them and easy to
miss while a chart is moving. This marks them as they form, keeps them until
they are taken, and leaves the record behind. Wskaźnik

Precision PushBack [MohaveTrader]WHAT PUSHBACK IS
PushBack is a support-and-resistance overlay whose levels are built from a dual Williams %R engine, paired with a rail-based trend layer that runs on its own detection. Where the source oscillator treats a %R extreme as exhaustion — a spent move likely to reverse — PushBack reads that same condition as sustained directional pressure: the side in control pushing price to an extreme.
Two terms carry the whole design. Every completed pressure run is an EVENT. An event that clears qualification earns a LEVEL. Events that do not qualify are marked, but no level is built. When an event does qualify, PushBack takes the price extreme reached by that push and stamps it as a structural zone, then carries that zone through its own lifecycle of resistance, support, reclaim and testing. The panel counts both, so how selective the current settings are running on this instrument is readable at a glance.
It is intended for traders who want structure that emerges from qualifying pressure events rather than levels drawn on a fixed schedule, with a separate trend read layered on the same chart.
WHAT'S ORIGINAL
PushBack retains the dual fast and slow %R detection from upslidedown's open-source "%R Trend Exhaustion" (credited below and in the source code) and uses it only as the raw event source. Everything built on top is original: the reinterpretation of the extreme as directional pressure; event qualification by price range and, when enabled, sustained duration; the Event Mode presets that set how selective that qualification is; event-derived zone geometry, where a zone's depth is taken from the run's own candles; the support and resistance lifecycle with reclaim and testing states; role-flip management and retirement; ATR relevance hiding; optional same-state merging; the live run ribbon; the candle coloring modes; the trend layer with its fast and structure rails, defended-level state machine and rail-assisted transitions; and the information panel. The following image illustrates upslidedown's "%R Trend Exhaustion," the open-source indicator PushBack's detection comes from. Each filled box is one %R run — red where both fast and slow %R are overbought, blue where both are oversold — with a triangle where the run ended. PushBack reads these same runs as pressure rather than exhaustion, and keeps the price extreme each one reached as a structural level. For comparison the second image renders PushBack and %R Trend Exhaustion on the same chart.
WHAT MAKES IT DIFFERENT
The structure is emergent, not scheduled. No structural zone is created without a completed qualifying pressure run, so the absence of nearby zones is itself information rather than a missing calculation.
Structure and events are kept separate. The zones are the structural layer and carry the role-based color set. The pressure marks and run ribbon are a distinct event layer in a single neutral color, held off the price and clear of the zones, so a mark is never mistaken for a directional signal.
The run ribbon reads live. It sketches in real time across the pressure run and settles into the completion triangle, so a developing run is visible on price as it happens rather than only after it ends.
The trend line is the rail, not a separate object. The plotted line is the fast adaptive rail itself rather than an average derived from it, so the drawn line and the value the engine reads are the same series and cannot disagree.
%R PRESSURE
Pressure is read from a dual fast and slow Williams %R with independent smoothing. Both periods and the threshold are fixed internally at settled values rather than exposed as inputs. A shared threshold defines the overbought condition (bullish pressure) and the oversold condition (bearish pressure), and a run is the span in which that condition holds. The single event PushBack acts on is the run's completion — the bar the condition is lost.
Not every run qualifies. A completed run must clear a size test — its price range as a multiple of ATR — and, when duration filtering is on, a duration test as well: it must have persisted for the required number of bars. Both conditions must be met, and a larger or faster move does not waive the duration requirement. An Event Mode control — Responsive, Balanced, Strict, or Manual — sets how demanding that qualification is; in Manual, the Advanced values are read instead and the duration test can be turned off to gate on range alone. The duration test is not scaled by timeframe.
ZONES
When a qualifying run completes, its price extreme seeds a zone: a bullish pressure run's high becomes resistance, a bearish pressure run's low becomes support — the rail where the push stalled. Zone depth is set at birth from the run's own candles: the mean or the median of the run's bar ranges, median by default so a single outlier bar does not distort the level. Neither method applies a multiplier, so depth comes from the same bars that produced the level and there is no width setting to tune. Depth is frozen at birth. An optional merge step, off by default, can consolidate same-state zones that overlap or fall within a configurable price gap; with it off, distinct qualified levels stay separate.
A level holds until price closes through it. A close through flips it to a reclaim, which can firm back into support or resistance as price tests and holds. Red is resistance, green is support, cyan is reclaim, yellow is testing. A level keeps flipping between roles until it reaches its Max Role Flips limit — three by default — after which it is retired rather than reclaimed again; fresh pressure re-seeds it if it matters again.
Zones persist as structural objects and can change role as price interacts with them. A zone originally created as support or resistance may later become reclaim, enter testing, and resolve back into support or resistance. Its displayed color and label represent its current state, not necessarily the state in which it originated.
Previously established zones can remain stored after the pressure event that created them has passed. A zone outside the configured ATR relevance distance is hidden rather than deleted and can reappear when price returns. Because a zone can persist through multiple state changes, a currently visible zone may have originated much earlier, in a different role, and its original completion mark may no longer be visible on the chart. A fresh reclaim is held visible for a short grace period regardless of distance. A per-side cap limits the number of native support and resistance zones retained; reclaim zones are exempt from that cap.
PRESSURE MARKS AND RUN RIBBON
A triangle marks where each run completed — a down triangle where a bullish run ended, an up triangle where a bearish run ended. The run ribbon traces the run into that completion, one bar short of the triangle. Both use a single neutral color and float off the price in ATR-scaled offset space, so side is read from triangle direction and ribbon position rather than color. They show the duration and completion of a pressure run and are not buy or sell signals. By default every completed run is marked with a triangle. A qualified event also carries a ribbon into its triangle and seeds a zone; a filtered turn — one that did not clear qualification — is marked identically but with no ribbon and no zone, so the triangle shows that an event occurred while the ribbon and zone show whether it earned a level. Show All Event Marks turns the filtered triangles on or off.
TREND LAYER
A second engine runs alongside the zones, with its own dual %R detection independent of the one above. Its pressure runs do not create zones; they set rails. A completed bullish run leaves a lower rail at its low, a completed bearish run leaves an upper rail at its high, and one of those rails is held as the defended level that owns the current trend state. A close beyond the defended level flips the campaign, but only when an opposing rail exists and price has cleared it; otherwise the campaign continues.
Two adaptive followers of the body-weighted midpoint support that state machine. The fast rail shortens its own averaging length as a bar's body sits further from it, so a displaced bar moves it most of the way in one bar. The structure rail uses the same formula with a longer base and sits inside a hysteresis channel scaled to a long-period ATR, so its direction holds through ordinary pullbacks and only turns when price crosses the far edge of that channel.
Between them these supply two transitions the defended level alone cannot make. Once a bullish event has set a campaign ceiling, a failure of the fast rail can end the campaign early at that ceiling. In the other direction, both rails turning up together can start a bullish campaign with no completed %R event at all. These rail-assisted transitions print a diamond alongside the flip triangle so they are distinguishable from a defended-level flip. A campaign entered by the rails alone carries no defended level and exits late by construction.
The plotted trend line is the fast rail, drawn in the campaign color rather than the rail's own direction, so the line's shape comes from the follower and its color from the campaign. An optional two-tier fill runs from price to the fast rail and from the fast rail out to the structure rail, each tier colored by its own source, so a disagreement between the two renders as a two-tone band. Optional sequence marks compare each completed rail event's extreme to the previous event on the same side and print HH, LH, HL or LL; these are instrumentation only and drive nothing.
CANDLE COLORS
Candles can optionally be recolored, in one of two modes.
Pressure mode carries the bar's own direction as hue and whether a %R pressure run is active as brightness, so a bearish bar inside a buying-pressure run stays a bright bearish candle and a developing push is visible on the candles themselves.
Wave mode drops bar direction and paints the campaign instead, reusing the trend line's own two colors so the candles and the line always agree. Three independent sources are then readable at once on the same bars: campaign state sets the candle's hue, an active %R pressure run sets its brightness, and the inner fill follows the fast rail's own direction. Because the fill is the only one of the three tied to the fast rail, a pullback inside a campaign renders as candle color standing against fill color, while an actual campaign flip changes the candles themselves. That is the distinction Wave exists to make. Wave draws nothing before the first campaign is established, since no trend state exists yet to color.
Both modes dim between pressure runs and brighten during them. This uses plotcandle, so native candles should be hidden in chart settings to avoid overlap. Turned off, it draws nothing and leaves the native candles untouched.
INFO PANEL
An optional corner panel reports three rows. RSI is colored relative to the current campaign rather than against fixed bands, since RSI ranges differently in an advance than in a decline; the color meaning is constant — one color when buyers hold RSI control, another when sellers do, and a neutral shade in between — while the bands themselves shift with the campaign. EVENTS counts every completed pressure run for the session. LEVELS counts how many of those earned structure, with the percentage being that earned share. That percentage largely reflects how demanding the current Event Mode is rather than a property of the instrument, so it reads as feedback on whether the mode suits what is being traded: a very low share suggests qualification is tighter than the instrument supports, and a very high one suggests it is filtering little. The panel frame carries the RSI color so the state reads from across the screen. The session count can include extended hours or regular hours only.
ALERTS
Two alert conditions are provided, one for a qualified bullish pressure event and one for a qualified bearish pressure event. Alerts fire only when a completed run clears PushBack's active qualification requirements and earns structure; filtered event marks do not alert. The trend layer does not carry its own alerts.
HOW TO READ IT
Read the zones as structure and the marks as events: every triangle is an event, and only the ones carrying a ribbon and a zone earned a level. PushBack keeps four things distinct: the pressure event is where a zone came from; price interaction is what has since happened to it; the current color and label are what the level means now; and ATR relevance decides whether it is shown at all. A currently visible zone may have originated much earlier, in a different role, than the state now displayed. Treat a blank area as the absence of currently relevant qualifying pressure structure, not a missing calculation. Use the live ribbon to watch a qualifying run develop. The completion triangle identifies where a pressure run ended; when that completion also qualifies, its ribbon remains, a structural zone is established, and the corresponding alert can fire.
The two layers are independent and can disagree. The zones and the trend campaign are computed from separate detections and neither gates the other, so a level forming against the prevailing campaign is a normal reading rather than a conflict to resolve.
LIMITATIONS
A zone is not created until its run completes, so the level is confirmed after the move that produced it, not during. The %R condition can persist for a long time in a strong trend, so a run's duration is not itself a timing signal. PushBack is most expressive on instruments that produce qualifying pressure events and is quiet on orderly price.
The trend layer's rail events carry no qualification of their own, so a very short pressure run can set a rail. Because two of its transitions are driven by the rails rather than by a completed event, the campaign can change direction with no %R event involved, and a campaign entered that way holds no defended level. Zone role changes are driven by subsequent price interaction, so a zone's displayed state reflects the bar being evaluated and changes as price develops. On very low-priced instruments a run whose bar ranges are near the minimum tick can produce a zone thin enough to render as a line rather than a band.
PushBack does not predict future prices, does not manage risk, and does not guarantee any outcome.
ATTRIBUTION AND LICENSE
PushBack's dual-period Williams %R detection is derived from the open-source "%R Trend Exhaustion" indicator by upslidedown, who is credited here and in the source code. That indicator reads the %R extreme as exhaustion; PushBack uses the same detection only as a raw event source and reinterprets the extreme as sustained directional pressure. The pressure-event qualification, the persistent zone construction and event-derived geometry, the support and resistance interpretation, the reclaim and testing lifecycle, flip management and retirement, relevance behavior, merging, the run ribbon, the candle coloring modes, the trend layer and its rails and transitions, and the price-overlay presentation are original to PushBack. PushBack is published open-source under the Mozilla Public License 2.0.
DISCLAIMER
PushBack's zones, marks and trend state are analytical structures derived from the rules described above, not recommendations to buy or sell any instrument. You remain solely responsible for every trading decision. Wskaźnik

Altcoin Strength Ranker - BTC DominanceALTCOIN STRENGTH RANKER - BTC DOMINANCE
This indicator ranks a list of cryptocurrencies by how strongly each one is moving
relative to Bitcoin, and uses BTC.D (Bitcoin Dominance) as a regime filter to indicate when that
ranking is actually worth acting on.
Instead of checking one chart at a time, it reads up to 18 symbols (divided into groups) in a single pass and presents them as a sorted table: strongest against Bitcoin at the top, weakest
at the bottom.
HOW IT WORKS
1) Normalized momentum
For every coin, the script takes the logarithmic return over N bars and divides it by the standard deviation of one-bar log returns over the same window, scaled by the square root of N.
In plain words: rather than asking "how much did it move?", it asks "how big was the move compared with this coin's own everyday noise?" The result is a t-statistic — a number expressing the move in units of typical volatility. Around +2 means an unusually strong advance; around -2 is the mirror image; near 0 means the move is indistinguishable from ordinary fluctuation.
The point of normalizing is comparability. A raw 15% weekly move means something very different for a large cap than for a low-liquidity newcomer. After normalization, every coin sits on the same scale and the ranking is meaningful.
2) Two readings per coin
z/BTC — momentum of the synthetic ratio ALT/BTC, built as ALTUSDT / BTCUSDT. This is relative strength: the coin measured against Bitcoin. Building it as a spread means the indicator works for any coin that has a USDT pair, even when no direct BTC pair is listed on the exchange.
z/USD — momentum of the coin against the quote currency (USDT by default). This is absolute direction: whether the coin is going up or down in dollar terms.
The distinction matters because the two frequently disagree, and the disagreement is the interesting part. A coin can be rising in dollars while still losing ground to Bitcoin — capital is flowing in, but less than it is flowing into BTC.
3) Composite score
score = w × (z/BTC) + (1 − w) × (z/USD)
The weight w (0.6 by default) sets how much the ranking cares about beating Bitcoin versus simply going up. Set w = 1 for pure relative strength; set w = 0 to rank by absolute momentum alone.
4) Dominance regime filter
The same normalization is applied to BTC.D and shown as the histogram in the lower
panel, with the background shaded accordingly:
- z_D above the threshold: dominance is rising, capital is rotating toward Bitcoin, altcoins tend to underperform.
- z_D below the negative threshold: dominance is falling, altcoins tend to outperform.
- In between: neutral, no directional signal is issued.
This is what keeps the ranking from being read out of context. The same table means something different depending on where the whole market's capital is heading.
READING THE COLORS
In the dominance plot, teal means Bitcoin is gaining ground on the rest of the market, red means it is losing ground:
- Dominance rising -> teal histogram bar, teal background -> capital concentrating
in Bitcoin -> Bitcoin strong, altcoins weak.
- Dominance falling -> red histogram bar, red background -> capital dispersing into
the rest of the market -> Bitcoin weak, altcoins strong.
The table uses the opposite convention, because it describes altcoins rather than Bitcoin: a negative z-score is red, a positive one is teal, and the score column runs on a gradient between them.
One qualification is important here. Dominance is a ratio, not a price. Rising dominance tells you Bitcoin is outperforming the market — it does not tell you Bitcoin is going up in dollar terms, and the two frequently part ways. In a market-wide sell-off, altcoins normally fall harder than Bitcoin, so dominance rises while Bitcoin itself declines. The reverse also happens: in the later stage of an advance, capital rotates outward and dominance falls while Bitcoin keeps making new highs. So read the panel as a statement about relative flow between Bitcoin and the rest of the market, and pair it with the Bitcoin chart itself before drawing any conclusion about direction.
READING THE TABLE
Coin — the ticker, without the quote currency
z/BTC — normalized momentum of the ALT/BTC ratio (relative strength)
z/USD — normalized momentum against the quote currency (absolute direction)
RSI/B — RSI (Relative Strength Index, a 0–100 oscillator measuring a series against its own recent history) computed on the ALT/BTC ratio
RSI/U — RSI computed on the coin against the quote currency
Score — the composite above, colored on a gradient from weak to strong
Signal — see below
The top line reports the group being evaluated, the current dominance regime, and
the value of z_D.
THE SIGNAL COLUMN
No signal: either the regime is neutral or z/BTC has not cleared the significance threshold.
▼ or ▲ direction consistent with the regime, and relative strength beyond the
threshold. ▼ = weak against Bitcoin during rising dominance; ▲ = strong against
Bitcoin during falling dominance.
★ divergence between the two readings: the coin is still moving up in dollar
terms while losing ground against Bitcoin (or the reverse). This is the
configuration where relative-strength setups typically live, because the crowd
watching the dollar chart sees strength while the capital flow says otherwise.
★★ the same divergence, plus timing from the RSI of the ratio: above 55 on the
weak side, below 45 on the strong side — meaning the ratio is stretched in the
direction that is about to be given up.
An alert fires on bar close listing every coin currently showing ★ or ★★.
SETTINGS
Analysis timeframe — leave empty to follow the chart, or fix it (e.g. 1D) to keep one reading regardless of the chart you are on
Momentum length — lookback window for the normalized momentum
RSI length — lookback for both RSI columns
Exchange / Quote — how symbols are assembled (BINANCE + USDT by default)
Display — strongest, weakest, or both lists
Top N per list — how many rows per list
Weight w — relative strength versus absolute direction in the score
Significance |z| — how large z/BTC must be before a signal is issued
BTC.D momentum — lookback for the dominance regime
Regime |z_D| — how decisive dominance must be before the regime is called
Groups 1–4 — four editable comma-separated symbol lists (large caps, mid caps and DeFi, memes and new listings, plus a free slot)
⚠️ NOTES AND LIMITATIONS
- The table is drawn on the last bar only; it is a live cross-section, not a
historical record.
- Symbols that do not resolve on the chosen exchange are silently skipped, which is
why a group may show fewer rows than it lists.
- The ranking is relative and descriptive, not a forecast. In a broad market decline
the "strongest" coin can still be falling — it is simply falling less.
- The dominance regime is a context filter, not an entry trigger. Position sizing,
invalidation levels and exits are outside the scope of this tool.
For research and educational purposes. Nothing here is financial advice. Wskaźnik

Filter Reality Check# Filter Reality Check — does your condition actually select anything?
My last script measured what entering at random would have produced on a
chart at a given reward-to-risk. The question everybody asked next was the
obvious one: *fine — does my filter beat that?*
Almost nobody measures it. This does.
It resolves every bar in the sample exactly once, then counts the outcome
twice: into the baseline, and into the filtered set if your condition was
true on that bar. Same bars, same distances, same resolutions — so the
difference between the two rates is the filter and nothing else.
## What the table shows
**All bars.** The baseline. What entering at random would have produced
here at your reward-to-risk.
**When condition true.** The same measurement, restricted to bars where
your filter passed.
**The filter is worth.** The difference, in percentage points of hit rate.
This is the number you came for.
**Bars it kept.** What share of the sample survived the condition. This
matters more than it looks: a filter true on 97% of bars is not selecting
anything, and its hit rate will match the baseline for that reason alone.
If this figure is near 100%, the filter is decoration.
**Filtered vs break-even.** Whether the filtered rate clears what your
reward-to-risk actually demands, after costs.
## Conditions you can test
Price above or below a moving average (EMA or SMA, any length), ADX above
a level, RSI above or below a level, volatility rising (ATR above its own
average), volume above a multiple of average, inside a session window, or
**any custom source above a level** — which lets you point it at another
indicator on your chart and test that.
## What you should expect to find
Most filters are worth nothing.
That is the finding, not a failure of the tool. A condition that moves the
hit rate by half a point is a condition you can delete, and knowing which
of yours those are is worth more than adding another indicator. The script
says so plainly when it happens.
Occasionally you will find one that costs you points — where you would
genuinely do better entering at random. Those are worth knowing about
before they are load-bearing in a strategy.
## Method, and its limits
**The condition is read on the entry bar itself**, using only data that
existed then. A filter evaluated with information that arrived later would
flatter itself and the result would be worthless.
**A bar spanning both stop and target counts as a loss.** There is no way
to know which came first from bar data, and being wrong pessimistically is
the only honest way to resolve it.
**Samples that reach neither level within the holding window are reported
as timed out**, not quietly dropped.
**Distances can scale with each historical bar's own ATR**, so the test
uses the volatility of the time rather than today's.
**The table states the period covered.** Six hundred bars is two days on a
5m chart and two years on a daily one, and a percentage with no period
attached invites more confidence than it has earned.
**Thirty resolved samples is the floor.** Below that the script refuses to
draw a conclusion, and it will tell you when your condition was true too
rarely to judge — which happens often with tight filters on short samples.
## What it is not
It places no trades, gives no signals and predicts nothing. It measures
what a condition would have selected on the history in front of you, on
this instrument, over this window. Run it across several windows before
you believe any single number, and check whether the direction you are
testing happened to be the way the market was going.
A filter that improves the hit rate may still be worthless for other
reasons — overfitting, costs, or a sample too small to mean anything.
This measures one thing and only claims that one thing.
Open source. Companion to *Edge Reality Check*, which measures the
baseline this compares against. Wskaźnik

Accumulation / Distribution Density (VD)A volume indicator for TradingView (Pine Script v6), modeled after Mieczyslaw Siudek's "Accumulation / Distribution Density" (VD) from xStation (XTB). It hunts for candles where a disproportionately large volume produced a disproportionately small price move at a fresh local extreme - a classic footprint of a big player building (accumulation) or unloading (distribution) a position.
█ 🧠 THE IDEA: DENSITY
Density = volume / candle range (high - low) - "how much turnover per unit of movement".
🚚 A lot of volume + a small candle = high density. Someone big is absorbing everything the market throws at them, so price cannot move.
🪶 A lot of volume + a big candle = normal. The volume simply traveled with the price.
normal candle density candle
volume: ██ 2K volume: ████████ 8K
range: │ (big) range: ▮ (small)
│
│ ▮ ← 8K went in, price barely moved:
│ ▲ someone ABSORBED it (marker)
When such a candle also sets a new local low , buyers were absorbing the sell-off → accumulation (marker below the candle). At a new local high , sellers were absorbing the buying → distribution (marker above the candle).
price
│ ▼ ← distribution: new high, huge volume, small candle
│ ┌──┸──┐
│ ─┘ └─┐
│ └──┐ ┌───
│ └─┐ ┌──┘
│ └─┰─┘
│ ▲ ← accumulation: new low, huge volume, small candle
└────────────────────────── time
█ ⚙️ SIGNAL CONDITIONS
A marker appears on a candle only when all of these hold:
📉 New extreme - the candle's low is at or below the lowest low of the previous Max/Min of candles (accumulation), or its high is at or above the highest high of those candles (distribution).
🚚 High density - volume / range >= Density Factor x average density .
🤏 Small candle (optional, Spread condition ) - range <= Spread Factor x average range .
🎯 Close position (optional, Bar close % ) - for accumulation the close must sit at least X% above the low; for distribution at least X% below the high. 0 disables the filter.
🔊 volume > 0 - instruments without volume data never signal.
Both averages (range and density) use a window ending at the previous candle - the signal candle does not inflate its own threshold.
By default the conditions are checked only once the candle closes ( Signal on closed candle only ) - a marker never appears and then disappears on the live candle.
█ 🛠️ PARAMETERS
Parameters (as in xStation)
Max/Min of (bars) (default 5) - how many previous candles the signal candle must out-low / out-high.
Average Spread of (bars) (default 5) - window for the average range.
Average Density of (bars) (default 5) - window for the average density.
Spread condition (default on) - toggle for the "candle must not be too big" filter.
Spread Factor (default 1.4) - how much larger than the average range the signal candle may be.
Density Factor (default 2) - how many times the average density the candle must reach.
Bar close (%) (default 0) - the close-position filter described above.
Signal on closed candle only (default on) - evaluate signals only when a candle closes (no repainting). Turn off to watch signals form in real time on the unclosed candle - such a signal may vanish before the close.
Appearance (Style tab)
Markers are plotshapes, so each signal gets its own row in the Style tab of the indicator settings - with a visibility checkbox, a marker-shape picker, a position dropdown ( Above bar / Below bar ), and a color:
Accumulation (default: triangle below the bar) ,
Distribution (default: triangle above the bar) .
█ 🔔 ALERTS
Accumulation density - potential bullish signal (heavy volume, little movement, new low).
Distribution density - potential bearish signal (heavy volume, little movement, new high).
With Signal on closed candle only on (default) alerts fire at the candle close. If you turn that option off, set the alert trigger to Once Per Bar Close - otherwise an alert can fire on a live-candle signal that later vanishes.
█ 📤 SIGNAL OUTPUT
The script exposes a hidden Signal series: +1 (accumulation), -1 (distribution), 0 (none). It is visible in the Data Window and can be used as an external source in other indicators and strategies (any input.source field) - e.g. to build your own strategy on top of these signals.
█ ✅ CORRECTNESS - VERIFIED
The implementation was verified empirically (2026-08-18): signals recomputed independently (Node.js, same formulas) from OHLCV bars pulled off a live TradingView chart (COMEX:GC1!, 60m, 300 bars) and compared with the markers the Pine script actually drew:
default parameters → 1 signal, exact match (and 299 bars correctly without a marker),
relaxed parameters (Max/Min 3, Spread Factor 2.5, Density Factor 1.2) → 63 signals, exact match , zero missing, zero extra.
The script does exactly what this note describes.
█ ⚠️ WHY MARKERS DIFFER FROM XSTATION
Even with identical parameter values, markers will not land 1:1 on xStation's. This is expected, not a bug:
📊 Different data. xStation runs on XTB's own CFD feed; its volume is XTB tick volume (count of price updates in XTB's book). TradingView shows real exchange volume (futures/stocks) or another provider's feed. Density = volume / range is extremely sensitive to both - different volume and different OHLC (session hours, timezone, weekend CFD candles) shift every threshold in the formula.
🔒 The original algorithm is closed source. XTB only published parameter descriptions, not formulas. Ambiguities the port had to decide (each can move single markers):
averages computed over the window ending at the previous candle (the original may include the signal candle),
new-extreme check uses <= / >= (the original may require a strict break),
a zero-range candle (doji) divides by one tick instead of being skipped,
"Bar close %" measured from the low (accumulation) / from the high (distribution).
⏳ Live-candle behavior. With Signal on closed candle only turned off, conditions are evaluated on live values, so a marker on an unclosed candle can disappear before the close. The default (on) evaluates only closed candles; xStation's behavior here is unknown.
Practical takeaway: compare the two on the same market data type (e.g. gold futures on both), expect agreement in character (markers cluster in the same spots), not in identical candles.
█ ⛔ LIMITATIONS
Requires an instrument with volume data - many TVC CFDs (TVC:GOLD, TVC:USOIL) have zero volume and never signal; the script then shows a warning in the top-right corner of the chart. Check per symbol (e.g. TVC:UKOIL does have volume) or use futures (e.g. COMEX:GC1!).
A signal on an unclosed candle may vanish before the close - only with Signal on closed candle only turned off (see above).
© Piotr Kowalski "piecioshka". License: Mozilla Public License 2.0.
Wskaźnik

Multi Timeframe State Dashboard [Pineify]Multi Timeframe State Dashboard
Overview
This confirmation-aware TradingView dashboard condenses six reference timeframes into one matrix. Each row pairs the last closed state with the forming state and shows its trend, RSI, and ATR-percentile evidence.
Problem Definition
A basic multi-timeframe table colors each timeframe from its latest value. It hides whether a higher-timeframe bar has closed, so apparent agreement can disappear before confirmation. It also treats quiet drift and high-volatility impulse alike. Duplicate inputs overweight one horizon, while a reference below the chart requires a different sampling method. The script separates these cases.
Design Rationale
EMA slope is normalized by ATR so direction is comparable across price and volatility scales. RSI adds bounded momentum around 50; ATR percentile labels energy without choosing direction. A weighted score replaces unrelated votes, while strong trend/RSI opposition becomes CONFLICT rather than false neutrality. The matrix sacrifices each component's full path for scan speed. Pairing confirmed and live states preserves the compact view while making temporal uncertainty observable.
Key Features
Six slots with duplicate and lower-timeframe diagnostics.
CONFIRMED and LIVE states with visible drift.
Impulse, directional, bias, quiet, neutral, and conflict classes.
Closed-bar consensus, optional background, and alignment alerts.
How It Works
Each slot makes a live request with lookahead disabled and a prior-bar request for confirmed higher-timeframe data. When a slot equals the chart timeframe, its current value is confirmed only after that chart bar closes.
EMA change over the slope lookback is divided by ATR and a scale, then clipped to -1 through +1. RSI is centered at 50, divided by 25, and clipped likewise. ATR receives a 0-100 percentile rank. Direction is 55% trend and 45% momentum. Strong opposite components produce CONFLICT. Thresholds create bias or direction. Hot direction becomes IMPULSE; a small quiet score becomes QUIET.
Consensus counts only enabled, unique references equal to or higher than the chart. ALL BULLISH or ALL BEARISH requires every valid confirmed state to share direction. DRIFT counts live states that differ from confirmed partners. WARM-UP remains visible until all rolling histories exist; missing values are not replaced with zero.
How Multiple Indicators Work Together
EMA slope supplies persistent direction, RSI tests momentum support, and ATR percentile separates low-energy drift from expansion. Without slope, brief momentum could define trend; without RSI, a slow average could ignore opposition; without volatility, quiet and impulse states would share a label. The sequence is direction, agreement, then energy. Confirmed/live pairing adds time status, not another signal.
Trading Ideas and Insights
Use confirmed consensus as context for a separate setup. A lower-chart process can ask whether higher horizons are bullish, bearish, or mixed. More DRIFT rows show forming bars challenging closed evidence, not a confirmed reversal. QUIET describes low-energy alignment; IMPULSE describes high ATR rank. Price structure, execution, and risk still need independent rules.
Unique Aspects
The contribution is a confirmation-aware state lattice, not adjacent indicator readings. Every row preserves closed and forming versions of one state, flags their difference, and removes duplicate or lower references from consensus. Volatility changes the class but cannot select bullish or bearish direction. Agreement is therefore auditable as confirmed evidence, developing drift, warm-up, or invalid configuration. The implementation is independent.
How to Use
Set enabled references equal to or higher than the chart timeframe.
Read CONFIRMED for stable context and LIVE for the forming bar.
Check TREND, RSI, and ATR % before interpreting color.
Treat LOWER TF, DUPLICATE, and WARM-UP as diagnostics.
Combine alerts with separate entry, exit, sizing, and invalidation rules.
Disable unused rows so the consensus denominator stays intentional.
Customization
EMA length and slope lookback control directional memory; ATR slope scale controls normalization. RSI length changes momentum response. ATR length and percentile lookback define volatility context. Direction and conflict thresholds set classification strictness. Quiet percentile must remain below hot percentile. Timeframe inputs set horizon coverage. Display controls cover numeric suffixes, table corner, dashboard, and chart background.
Assumptions and Limitations
EMA, RSI, and ATR lag and are parameter-sensitive. ATR percentile is relative, not an absolute risk forecast. LIVE can change on every update; CONFIRMED waits for completed reference bars and adds delay. A newly closed higher-timeframe value appears when the next chart bar exposes it. Data gaps or limited history can distort ranks. Lower references are rejected. It does not model execution, risk, performance, or future prices. Alerts report alignment only.
Conclusion
Only valid, unique, closed-bar states determine consensus; live states explain drift. This invariant keeps six horizons readable while exposing calculations, confirmation status, and failure conditions instead of hiding them behind one color.
Wskaźnik

XauLabs BOS / CHoCHENGLISH
What it does
A market either keeps doing what it was doing, or it stops. This indicator marks the exact bar where that question gets answered: a BOS when structure continues in the same direction, a CHoCH when it breaks against it. Two scales are read in parallel — a swing structure for the major turns, an internal structure for the detail inside them — so the chart shows both the shape of the move and its texture.
Where this one differs
Most tools flip the bias to the opposite direction the moment a CHoCH prints. This one does not. A bullish CHoCH inside a downtrend cancels the downtrend and returns the state to RANGE — nothing more. The upside then has to prove its own sequence with a first BOS in its direction before an uptrend is declared. That is a deliberate choice: a change of character is evidence that the previous story ended, not evidence that the opposite story has begun. It is less flattering to read and closer to what actually happens.
How it works (full method)
Confirmed pivots, two widths. Swing pivots use 20 bars on each side by default, internal pivots use 5. A pivot is only registered once the right-hand bars have closed, which is what makes the tool non-repainting — and what makes a level appear with a delay rather than being revised later.
Breaks are judged on the close. A wick beyond a pivot changes nothing. The candle has to close beyond the level for the structure to be considered broken. This is the same rule used across the whole XauLabs set, and it is what separates a break from a sweep.
One level, one break. Each pivot carries a flag. Once it has produced a break it is retired, so a single level cannot trigger a cascade of marks as price oscillates around it.
State machine. Three states per scale: bullish, bearish, range. A break with the trend increments the BOS counter. A break against it sets the state to range and resets the counter to zero. From range, the first break in either direction establishes that direction with one BOS.
Optional shape filter. On the internal scale, breaks can be filtered by candle shape — a bullish break is kept only when the upper wick is shorter than the lower one, and conversely. Off by default.
Dashboard. Two columns, swing and internal, each showing the current state and the number of BOS in the running sequence, plus the exact level whose close would trigger the next CHoCH. When both columns agree, the move is aligned; when the internal scale drops to range while the swing scale still reads bullish, that divergence is the first sign of tiring.
No repainting
Pivots are confirmed by the right-hand bars and never revised. Breaks are evaluated on confirmed bars only. A mark printed in history is exactly what would have been printed live, with the same delay.
Settings
Swing and internal pivot width, either structure on or off, shape filter, which marks to display (all, BOS only, CHoCH only), number of marks kept on screen, level lines, colours, theme, dashboard and text size. Eight alert conditions, four per scale.
Educational structural tool. It gives no buy or sell signals and makes no performance claim. Trading involves substantial risk of loss.
FRANÇAIS
Ce que fait l'indicateur
Un marché continue ce qu'il faisait, ou il s'arrête. Cet indicateur marque la bougie exacte où la question est tranchée : un BOS quand la structure continue dans le même sens, un CHoCH quand elle casse à contresens. Deux échelles sont lues en parallèle — une structure swing pour les tournants majeurs, une structure interne pour le détail à l'intérieur — de sorte que le graphique montre à la fois la forme du mouvement et sa texture.
Ce qui distingue celui-ci
La plupart des outils basculent le biais dans la direction opposée dès qu'un CHoCH apparaît. Pas celui-ci. Un CHoCH haussier dans une tendance baissière annule la tendance baissière et ramène l'état à RANGE — rien de plus. La hausse devra ensuite prouver sa propre séquence par un premier BOS dans son sens avant qu'une tendance haussière soit déclarée. C'est un choix délibéré : un changement de caractère prouve que l'histoire précédente est terminée, pas que l'histoire inverse a commencé. C'est moins flatteur à lire, et plus proche de ce qui se passe réellement.
Comment il fonctionne (méthode complète)
Pivots confirmés, deux largeurs. Les pivots swing utilisent 20 bougies de chaque côté par défaut, les pivots internes 5. Un pivot n'est enregistré qu'une fois les bougies de droite clôturées : c'est ce qui rend l'outil non-repainting, et ce qui fait qu'un niveau apparaît avec un délai plutôt que d'être révisé après coup.
Les cassures se jugent en clôture. Une mèche au-delà d'un pivot ne change rien. La bougie doit clôturer au-delà du niveau pour que la structure soit considérée comme cassée. C'est la règle appliquée dans toute la série XauLabs, et c'est elle qui sépare une cassure d'un balayage.
Un niveau, une cassure. Chaque pivot porte un drapeau. Une fois qu'il a produit une cassure, il est retiré : un même niveau ne peut donc pas déclencher une cascade de marquages pendant que le prix oscille autour.
Machine à états. Trois états par échelle : haussière, baissière, range. Une cassure dans le sens de la tendance incrémente le compteur de BOS. Une cassure à contresens ramène l'état à range et remet le compteur à zéro. Depuis le range, la première cassure dans un sens établit ce sens avec un BOS.
Filtre de forme, optionnel. Sur l'échelle interne, les cassures peuvent être filtrées selon la forme de la bougie : une cassure haussière n'est retenue que si la mèche haute est plus courte que la basse, et inversement. Désactivé par défaut.
Tableau de bord. Deux colonnes, swing et interne, chacune affichant l'état courant et le nombre de BOS de la séquence en cours, plus le niveau exact dont la clôture au-delà déclencherait le prochain CHoCH. Quand les deux colonnes concordent, le mouvement est aligné ; quand l'échelle interne repasse en range alors que le swing reste haussier, cette divergence est le premier signe d'essoufflement.
Aucun repaint
Les pivots sont confirmés par les bougies de droite et ne sont jamais révisés. Les cassures ne sont évaluées que sur bougies confirmées. Un marquage visible dans l'historique est exactement celui qui serait apparu en direct, avec le même délai.
Réglages
Largeur des pivots swing et internes, activation de chaque structure, filtre de forme, marquages affichés (tout, BOS seulement, CHoCH seulement), nombre de marquages conservés, lignes de niveau, couleurs, thème, tableau de bord et taille du texte. Huit conditions d'alerte, quatre par échelle.
Outil structurel à but éducatif. Il ne donne aucun signal d'achat ou de vente et ne formule aucune promesse de performance. Le trading comporte un risque de perte important. Wskaźnik

Intraday Price Action [MaximoPartners]An intraday charting toolkit that highlights volume-driven support/resistance zones, wick-based liquidity, Tokyo/London/New York opening ranges, previous day/week reference levels, VWAP, and the EMA 9 / EMA 21 trend structure.
Designed for intraday use on futures, stocks, crypto, forex, and other volume-supported markets. Signals are confirmed on candle close.
Volume-dominance zones
Green zones identify areas where buyers showed strong control; red zones identify seller-controlled areas.
A zone requires elevated volume and decisive candle positioning:
avgVol = ta.sma(volume, 12)
relVol = avgVol > 0 ? volume / avgVol : 0.0
isEvent = relVol >= 1.6
barRange = math.max(high - low, syminfo.mintick)
bodyEff = math.abs(close - open) / barRange
closePos = (close - low) / barRange
buyStrength = closePos * bodyEff
sellStrength = (1.0 - closePos) * bodyEff
isBuyDominance = isEvent and buyStrength >= 0.55 and buyStrength > sellStrength
isSellDominance = isEvent and sellStrength >= 0.55 and sellStrength > buyStrength
Each zone is centered on the candle extreme—low for buyers and high for sellers—with a total height based on 0.25 ATR. Nearby zones of the same direction are merged, reinforcing that price area. A buy zone is invalidated when a confirmed close falls below it; a sell zone is invalidated when a confirmed close closes above it. Invalidated zones can remain visible in gray.
Use these areas as confluence, not standalone entries: watch how price reacts when it returns to a zone, especially alongside liquidity, opening-range, or higher-timeframe levels.
Liquidity levels
Liquidity levels are created from two consecutive candles with matching wick extremes:
Upper wicks near the same high suggest overhead liquidity / potential resistance.
Lower wicks near the same low suggest below-price liquidity / potential support.
seqWickLen = 2
upperRange = ta.highest(high, seqWickLen) - ta.lowest(high, seqWickLen)
lowerRange = ta.highest(low, seqWickLen) - ta.lowest(low, seqWickLen)
upperSequence = upperRange <= 0.5
lowerSequence = lowerRange <= 0.5
The line stays active until a candle body trades through it. These levels can attract price for a sweep, then act as a decision point: rejection may support a reversal, while acceptance through the level may support continuation.
High-volume move bubbles
Bubbles mark moments when strong buyers or sellers may be defending a price.
Green bubbles appear below bullish buyer-dominance candles, or after a high-volume battle candle with a meaningful lower wick.
Red bubbles appear above seller-dominance candles, or after a high-volume battle candle with a meaningful upper wick.
A bubble requires at least 1.25× the 12-bar average volume.
The bubble text estimates the candle’s traded notional value:
candleDollarAmount = volume * close * syminfo.pointvalue
Treat bubbles as evidence of participation and potential defense—not a guarantee that price will hold.
Opening ranges and reference levels
The indicator plots the first 15-minute opening range and session open for:
Tokyo: 09:00–17:00 Tokyo time
London: 08:00–13:30 London time
New York: 09:30–16:00 New York time
It also plots the previous day high/low and previous week high/low.
ORB highs/lows, session opens, previous day/week highs and lows often become important resistance or support. When price reaches one, look for confirmation: rejection wicks, a bubble, a volume-dominance zone, or a liquidity sweep can strengthen a reversal idea. A clean break and hold beyond a level can instead signal continuation.
EMA 9 and EMA 21
The EMA 9 and EMA 21 provide a simple view of short-term trend and momentum:
EMA 9 crossing above EMA 21 can indicate buyers gaining control.
EMA 9 crossing below EMA 21 can indicate sellers gaining control.
Price holding above both EMAs supports bullish control; price holding below both supports bearish control.
When price moves far away from both lines, it shows strong directional dominance—but can also signal an extended move that may pull back toward the averages.
Use the EMAs for context, then use zones, liquidity, bubbles, and session/reference levels to refine timing.
Wskaźnik

Stopping Volume EMA RetraceStopping Volume EMA Retrace is designed to identify potential retracement setups when price becomes significantly extended away from an exponential moving average and the extended candle also shows unusually high volume together with rejection.
The indicator combines price extension, relative volume and candle structure for one specific purpose.
Price distance identifies when the market has moved unusually far from its mean.
Relative volume identifies unusually high participation at that extended location.
Wick structure and closing position are then used to filter for rejection-style candles rather than ordinary high-volume continuation candles.
HOW IT WORKS
The EMA acts as the mean and retracement reference.
The default EMA length is 50, but this can be changed by the user.
Upper and lower extension levels are calculated as a percentage distance from the EMA.
The default extension distance is 3%.
For a bullish setup, the candle low must reach or move below the lower extension level.
For a bearish setup, the candle high must reach or move above the upper extension level.
The extension calculation deliberately uses the candle high or low rather than only the closing price.
This allows a candle to move beyond the selected threshold, reject the extended area and close back toward the EMA while still qualifying as a setup.
RELATIVE VOLUME
A qualifying candle must also show unusually high volume.
The Volume Average Length controls how many previous completed candles are used to establish the volume baseline.
The High Volume Multiplier determines how much larger the current candle's volume must be compared with that baseline.
With the default settings, the current candle must have at least 2.0 times the average volume of the previous 20 completed candles.
REJECTION STRUCTURE
High volume alone does not generate a signal.
For a bullish setup, the candle must contain a sufficiently large lower rejection wick and close sufficiently far away from its low.
For a bearish setup, the candle must contain a sufficiently large upper rejection wick and close sufficiently far away from its high.
The optional wick-dominance filter can additionally require the rejection wick to be larger than the wick on the opposite side of the candle.
The Minimum Rejection Wick setting controls the required wick size as a percentage of the complete candle range.
The Minimum Close Recovery setting controls how strongly the candle must recover away from the rejected extreme.
SIGNALS
A bullish signal requires all of the following conditions on the same candle:
Price reaches the selected distance below the EMA.
Volume exceeds the selected relative-volume threshold.
The candle shows the required lower-wick rejection.
The candle closes sufficiently far away from its low.
If wick dominance is enabled, the lower wick must also be larger than the upper wick.
A bearish signal uses the inverse conditions above the EMA.
Signals are confirmed only after the qualifying candle closes.
Historical signal markers are displayed on the candle where the confirmed condition occurred. They are not backplotted onto earlier candles.
WHY THESE CONDITIONS ARE COMBINED
Distance from an EMA by itself only identifies price extension.
High volume by itself cannot distinguish continuation from rejection.
A large wick by itself can occur without unusually high market participation.
Stopping Volume EMA Retrace therefore requires these conditions to occur together.
The EMA extension supplies location.
Relative volume supplies participation context.
The wick and closing-position filters supply rejection context.
The result is a focused OHLCV-based method for highlighting extended high-volume rejection candles that may precede a retracement toward the mean.
HOW TO USE
First watch for price approaching or moving beyond one of the EMA extension levels.
Then wait for a highlighted stopping-volume candle or signal marker.
A bullish signal indicates that qualifying high relative volume and rejection occurred while price was extended below the EMA.
A bearish signal indicates the corresponding condition while price was extended above the EMA.
The EMA can then be used as a visual mean or retracement reference.
It should not be treated as a guaranteed target.
The signal can be evaluated together with market structure, trend, support and resistance, liquidity context and the user's own risk management.
Different markets have different volatility and volume characteristics.
The EMA distance can therefore be adjusted to determine how far price must become extended before a setup is considered.
The volume multiplier can be increased to require more exceptional volume.
The rejection-wick and close-recovery settings can also be increased to make signals more selective.
VISUAL SETTINGS
The EMA, upper extension and lower extension lines can each be shown or hidden independently.
Each line has independent colour, thickness and line-style controls.
Solid, dashed and dotted line styles are available.
Optional glow effects are available for the EMA and both extension lines.
All glow effects are disabled by default.
Bullish and bearish stopping-volume candles can be highlighted independently.
The bullish and bearish candle colours are user adjustable.
Signal markers can also be shown or hidden and have their own independent colour controls.
ALERTS
Alert conditions are included for:
Bullish stopping-volume retrace signals.
Bearish stopping-volume retrace signals.
Either signal type.
Because signals require a confirmed candle, alerts based on these conditions become valid when the qualifying candle closes rather than while it is still forming.
LIMITATIONS
The stopping-volume classification used by this indicator is an OHLCV-based analytical heuristic.
It does not use order-book information, true bid/ask trade classification or direct measurements of executed order-flow absorption.
High relative volume together with rejection therefore does not prove that absorption occurred.
Reported volume can differ between exchanges, brokers and data feeds. The same settings may therefore produce different signals on different markets or venues.
The EMA and extension levels can move while the current realtime candle is forming.
Signal conditions themselves require the candle to close before confirmation.
The indicator does not calculate historical win rates, simulated trade outcomes or Strategy Tester results.
It does not model commissions, spread, slippage, liquidity, position sizing or trade execution.
A confirmed signal means that the configured extension, relative-volume and rejection conditions occurred. It does not imply that price will subsequently return to the EMA or that a trade will be profitable. Wskaźnik

Modern VWAP with BandsModern VWAP with Bands is an anchored Volume Weighted Average Price overlay designed to show how far price has moved from its current volume-weighted reference and highlight unusually extended conditions that may be relevant to mean-reversion analysis.
The indicator combines an anchored VWAP, five configurable deviation bands, distance-based candle coloring, outer-band reversion signals, configurable Target and Stop reference levels, and separate historical Bull and Bear signal-outcome tables.
WHAT THE INDICATOR CALCULATES
The Trading Style setting determines the VWAP anchor period and price source.
Intraday = Daily VWAP using HLC3.
Swing/Daily = Weekly VWAP using HL2.
Long-term = Monthly VWAP using Close.
The VWAP resets automatically when the selected Daily, Weekly or Monthly anchor changes.
Five upper and five lower deviation bands are calculated around VWAP.
When ATR Bands is enabled, each deviation level represents an ATR multiple.
When ATR Bands is disabled, each deviation level represents a percentage offset from VWAP.
This allows the band structure to adapt either to current volatility or to fixed percentage distance from the VWAP reference.
WHY THE COMPONENTS ARE COMBINED
VWAP provides the central volume-weighted reference.
The deviation bands measure progressively larger extensions away from that reference.
The candle-coloring system provides a visual representation of how extended price currently is.
The outer Dev 5 signal logic identifies occasions when price moves through the most extreme configured band.
The Bull and Bear tables then provide historical context showing how those signals resolved using the selected Target and Stop assumptions.
Together, these components provide a workflow for identifying the current VWAP reference, measuring extension, highlighting extreme movement, identifying outer-band events and reviewing their historical outcomes.
BAR COLOR DISTANCE
Bar Color Distance Mode controls how distance from VWAP is normalized.
ATR mode measures absolute distance from VWAP relative to ATR.
% VWAP mode calculates the absolute percentage distance from the VWAP itself:
Absolute distance from VWAP / VWAP × 100
For example, if VWAP is 100 and the selected price source is 102, the % VWAP distance is 2%.
Auto mode uses ATR normalization when ATR Bands is enabled and % VWAP normalization when percentage bands are being used.
This keeps the candle-color distance measurement aligned with the selected band methodology.
REVERSION SIGNALS
A Bull reversion signal occurs when the closing price crosses below the lower Dev 5 band.
A Bear reversion signal occurs when the closing price crosses above the upper Dev 5 band.
These signals identify extreme extensions from VWAP. They do not confirm that a reversal has already started and should not be interpreted as predictions that price must return to VWAP.
Require Outside Dev 5 can apply an additional extension requirement beyond the Dev 5 band before a signal is accepted.
Dev 5 Outside % controls how far beyond Dev 5 price must extend when this filter is enabled.
The optional Cool Off Period prevents another accepted signal for a selected number of bars after the previous signal.
Show Reversion Signals controls only the visibility of the Bull and Bear markers. The underlying signal calculations and historical outcome tracking continue to operate when the markers are hidden.
ENTRY, TARGET AND STOP
The reference entry for both Bull and Bear signals is the closing price of the signal candle.
Bull Stop is positioned below the Bull reference entry according to Bull Stop %.
Bear Stop is positioned above the Bear reference entry according to Bear Stop %.
Target Source can be set to User % or VWAP.
With User % selected, Bull Target % and Bear Target % determine the Target distance from the signal-bar close.
With VWAP selected, the Target is the VWAP value that existed when the signal occurred.
The VWAP Target is fixed at that signal-bar value. It does not continue moving as the VWAP changes on later candles.
The Target and Stop lines displayed on the chart use the same corresponding values used by the historical outcome tables.
HISTORICAL SIGNAL-OUTCOME TABLES
The Bull and Bear tables provide simplified historical signal-outcome statistics.
T = Target reached.
S = Stop reached.
The displayed percentage is the number of Target outcomes divided by the total number of resolved Target and Stop outcomes for that direction.
The percentage is an internal historical measurement produced by the indicator's predefined evaluation rules. It is not a probability, expected win rate, accuracy prediction or guarantee of future performance.
The reference entry is the close of the signal candle.
Target and Stop evaluation begins on the following candle. Price movement that occurred earlier within the signal candle is therefore not used to determine an outcome after an entry at that candle's close.
If both the Target and Stop are touched during the same later candle, OHLC data cannot determine which level occurred first. The script therefore records the event conservatively as a Stop outcome.
Only one unresolved Bull simulation and one unresolved Bear simulation can be active at the same time.
If another signal in the same direction occurs while that direction already has an unresolved event, it is not added as another independently scored table event.
When Ignore Open Trades on Reset is enabled, unresolved events are discarded when the selected VWAP anchor resets. They are not counted as either a Target or Stop outcome.
These tables are analytical summaries and are not TradingView Strategy Tester backtests.
HOW TO USE
Start by selecting the Trading Style that matches the VWAP reference you want to analyse.
Use Intraday for a Daily VWAP, Swing/Daily for a Weekly VWAP, or Long-term for a Monthly VWAP.
Choose whether the deviation structure should react to current volatility using ATR Bands or represent fixed percentage distances from VWAP.
The inner deviation bands show smaller extensions from VWAP while the outer bands represent progressively larger extensions.
Use the candle colors as a quick visual indication of the current distance from VWAP.
Bull signals identify closes crossing below the lower Dev 5 band.
Bear signals identify closes crossing above the upper Dev 5 band.
These are extreme-extension conditions rather than automatic trade instructions. They can be combined with the trader's own price structure, trend, momentum, support/resistance or other confirmation methods.
Require Outside Dev 5 can be enabled when a greater extension beyond the outer band is desired.
The Cool Off Period can reduce repeated signals when price repeatedly moves around the outer band.
The Bull and Bear tables can then be used to examine how historical signals resolved under the currently selected Target and Stop assumptions.
IMPORTANT SETTINGS
Trading Style controls the VWAP anchor and source.
ATR Bands selects ATR-based or percentage-based deviation bands.
ATR Length controls the volatility calculation used by ATR bands and ATR-normalized visual calculations.
Level 1 Dev through Level 5 Dev control the five distances around VWAP.
Bar Color Distance Mode selects ATR or % VWAP normalization for candle coloring.
Bar Color Contrast Power controls how quickly color intensity increases as price moves farther from VWAP.
Bar Color Outside Boost increases visual emphasis after the most extreme configured distance is exceeded.
Require Outside Dev 5 adds an additional extension filter to signal generation.
Cool Off Period controls the minimum spacing between accepted signals when enabled.
Target Source selects percentage-based Targets or the fixed VWAP value at the signal.
Bull Target %, Bull Stop %, Bear Target % and Bear Stop % define the assumptions used for the corresponding historical signal-outcome calculations.
SIGNAL TIMING AND REPAINTING
The script does not use future-data lookahead, higher-timeframe request.security calculations, pivot calculations or historical pivot backplotting.
Signals are calculated using the current chart candle.
Because the closing price of a live candle changes while that candle is forming, a Bull or Bear signal can appear and disappear before the candle closes.
Once the candle has closed, that historical signal condition is fixed.
The script does not place a confirmed signal retrospectively onto an earlier pivot candle.
LIMITATIONS
VWAP depends on the volume data supplied for the selected chart symbol. Volume can differ between exchanges, brokers and data feeds, so VWAP and its resulting bands may also differ.
The indicator uses chart OHLCV data. It does not use order-book data, bid/ask trade classification or individual transaction-level order flow.
ATR is a historical volatility calculation and responds to changing market conditions rather than predicting them.
Extreme distance from VWAP does not guarantee mean reversion. Price can continue moving farther away from VWAP after a Bull or Bear signal.
Live-candle conditions can change before the candle closes.
The Bull and Bear historical statistics do not model commissions, spread, slippage, execution delay, liquidity, partial fills, leverage, position sizing or true intrabar sequencing.
When both Target and Stop occur inside the same candle range, the actual sequence cannot be determined from OHLC data and the event is therefore classified as a Stop.
Unresolved simulations can be removed at VWAP anchor resets when Ignore Open Trades on Reset is enabled.
The pre-reset and post-reset fading effects are visual features based on the expected length of the selected anchor period. Markets with restricted sessions or gaps may contain a different number of actual chart bars.
Historical results do not imply future performance.
ORIGINAL FUNCTIONALITY
Modern VWAP with Bands is designed as more than a standard VWAP plot.
Its implementation integrates selectable Daily, Weekly and Monthly VWAP anchoring, five ATR-or-percentage deviation zones, VWAP-relative or ATR-normalized candle coloring, configurable extreme-band signal filtering, fixed VWAP-or-percentage Targets, configurable Stops, anchor-reset handling and separate Bull and Bear historical outcome tracking.
The purpose of combining these elements is to connect VWAP location, distance measurement, visual extension analysis, signal generation and historical signal evaluation within one consistent overlay.
Wskaźnik

PDH PDL PWH PWL Boundary Response RegisterOVERVIEW
PDH PDL PWH PWL Boundary Response Register is an open-source prior-range research tool for time-based intraday charts and the 1D chart.
It plots four raw boundaries from completed higher-timeframe periods:
* PDH: Previous completed daily high
* PDL: Previous completed daily low
* PWH: Previous completed weekly high
* PWL: Previous completed weekly low
The script then records how the current day or week interacts with each boundary.
Its purpose is descriptive research. It does not calculate a conventional pivot ladder, assign support or resistance, predict direction, identify a target, generate entries or exits, or report win rates or profitability.
BOUNDARY LIFECYCLE
Each enabled boundary maintains an independent lifecycle for its active source period:
1. Untested
No confirmed contact has been recorded under the selected contact definition and tolerance.
2. Contacted
The boundary has received its first confirmed contact.
3. Sustained beyond
The configured number of consecutive confirmed closes finished beyond the boundary.
This state is independent of direct wick or body contact, so a price gap can satisfy the confirmed-close condition without first recording a conventional wick or body contact.
4. Re-entered
After Sustained beyond, a confirmed close crossed back through the boundary into the corresponding previous-day or previous-week range.
These states are factual classifications.
Sustained beyond does not mean that a breakout will continue. Re-entered does not mean that a reversal will follow.
CONTACT DEFINITIONS
The Contact definition input provides three research modes:
* Wick range: the confirmed bar's high-low range reaches the boundary.
* Candle body: the confirmed bar's open-close body reaches the boundary.
* Close-to-close span: two consecutive confirmed closes straddle the boundary, including a gap when the closes lie on opposite sides.
Contact tolerance can be configured as:
* Exact
* Ticks
* A fraction of the last completed daily ATR
These settings change the contact measurement rule. They do not change the underlying PDH, PDL, PWH, or PWL price.
POST-CONTACT RESPONSE REGISTER
After the first confirmed contact, the script can record an independent response profile for each boundary.
The measurements include:
* First-contact form: Gap beyond, Close through, Wick through, or Boundary touch.
* Confirmed post-contact observation count.
* Outside-close residency: the percentage of confirmed post-contact observations that closed beyond the boundary.
* Close-side recross count: the number of confirmed changes between the inside and outside sides of the boundary.
* Maximum outside excursion.
* Maximum return into the corresponding prior range.
* Chart bars from first contact to Sustained beyond.
* Chart bars from Sustained beyond to the first Re-entered event.
The register abbreviates two response fields:
OUT/X
* OUT: outside-close residency percentage.
* X: confirmed close-side recross count.
MAX O/I
* O: maximum outside excursion.
* I: maximum return into the corresponding prior range.
Maximum excursions are normalized with a daily ATR value frozen at the relevant daily or weekly reset.
These values describe the currently active source period. They are not historical probabilities, confidence scores, success rates, expectancy measurements, or performance statistics.
CROSS-HORIZON RANGE GEOMETRY
The register also measures how the completed daily and weekly ranges relate to each other.
Its cross-horizon fields include:
* The current confirmed close's coordinate inside the previous-day range.
* The current confirmed close's coordinate inside the previous-week range.
* Daily contact coverage for PDH and PDL.
* Weekly contact coverage for PWH and PWL.
* Bar separation between the two boundaries when both boundaries in a pair have been contacted.
* Daily and weekly range containment or overlap.
* The mathematical intersection of the previous daily and weekly ranges.
* The shared interval as a percentage of each prior range.
* Current day range use relative to the previous completed daily range.
* Current week range use relative to the previous completed weekly range.
* PDH/PWH separation in completed daily ATR units and ticks.
* PDL/PWL separation in completed daily ATR units and ticks.
* Configurable nearby-pair detection.
* A four-level hull formed by the outermost values of PDH, PDL, PWH, and PWL.
* The current close's coordinate inside that hull.
* The hull's upper and lower boundary anchors.
* The hull width in completed daily ATR units.
* State breadth across all enabled boundaries.
State breadth reports how many enabled boundaries have reached:
* C: Contacted
* S: Sustained beyond
* R: Re-entered
The shared corridor, nearby pairs, range relation, and four-level hull are geometric references.
The script does not classify them as support, resistance, liquidity, supply, demand, accumulation, distribution, institutional levels, or trade setups.
VISUAL OUTPUT
The default presentation includes:
* Distinct PDH, PDL, PWH, and PWL lines.
* Different default styling for daily and weekly boundaries.
* Optional prior-day and prior-week range ribbons.
* Optional shared-corridor highlighting.
* Optional nearby-pair highlighting.
* Historical daily and weekly segments with adjustable retention.
* Reduced emphasis for completed historical segments.
* Optional first-contact or full-lifecycle event marks.
* Compact right-edge identification tags.
* Automatic merging of nearby daily and weekly tags.
* Optional dotted leaders when a display tag is displaced from its exact boundary price.
* A fixed Boundary Response Register in the selected chart corner.
The right-edge tags use the currently visible chart range, visible bar count, completed daily ATR, and tick-size floors only to resolve annotation spacing and future-side placement.
The tags can reposition when the chart is scrolled or zoomed.
This visual repositioning does not change:
* The exact PDH, PDL, PWH, or PWL prices.
* Horizontal boundary-line prices.
* Lifecycle states.
* Post-contact response measurements.
* Range geometry.
* Alert conditions.
Exact prices and full state details remain available in the Boundary Response Register and label tooltips.
DATA HANDLING AND REALTIME BEHAVIOR
PDH, PDL, PWH, PWL, and the ATR normalization value are requested from completed higher-timeframe bars.
The expressions used with higher-timeframe lookahead are offset by one completed higher-timeframe bar before being used. The four active boundary prices therefore do not change during their corresponding current day or week.
Lifecycle and response events are committed on confirmed chart bars.
The combined dynamic alert also uses once-per-bar-close frequency.
Some current-context fields can continue changing while the realtime bar is open, including:
* Current close distance from each boundary.
* Current day range use.
* Current week range use.
* Developing current-period high and low values.
Those current-context fields are distinct from confirmed lifecycle history.
SOURCE MODES
Three reference-data modes are available:
Automatic
Uses the chart context on standard charts and standard-symbol candles on non-standard charts.
Chart context
Preserves the current chart's ticker context and modifiers.
Standard candles
Requests standard market candles without non-standard chart construction or other ticker modifiers.
When the selected event source has no usable bar aligned with the current chart timestamp, event evaluation pauses instead of treating an older forward-filled candle as a new observation.
NON-STANDARD CHARTS
Heikin Ashi, Renko, Kagi, Line Break, Point and Figure, Range, and other non-standard charts can contain synthetic OHLC values.
The completed daily and weekly boundaries remain available, but lifecycle events, current-range progress, and related alerts are disabled by default on non-standard charts.
Users can enable non-standard-chart event evaluation only for explicit research.
SUPPORTED TIMEFRAMES
The script supports:
* Time-based intraday charts.
* The 1D chart.
Tick charts and timeframes above 1D are excluded because their relationship with the requested event data would require ambiguous lower-timeframe reconstruction.
An on-chart notice is displayed when the selected timeframe is unsupported.
IMPORTANT 1D LIMITATION
On the 1D chart, the daily boundary lifecycle resets on each new daily bar.
PDH and PDL therefore cannot accumulate more than one daily close before the next daily reset.
When Closes required beyond is set above 1, the multi-close Sustained beyond state for PDH and PDL is primarily meaningful on intraday charts.
PWH and PWL can still accumulate multiple daily closes during the active week.
For full daily-boundary lifecycle and post-contact research, a time-based intraday chart is recommended.
ALERTS
Factual alert conditions are available for:
* First confirmed contact of any enabled boundary.
* First confirmed contact of each individual boundary.
* Sustained beyond for any enabled boundary.
* Sustained beyond for each individual boundary.
* Re-entered for any enabled boundary.
* Re-entered for each individual boundary.
* Formation of a nearby PDH/PWH pair.
* Formation of a nearby PDL/PWL pair.
* Completion of the daily contact pair.
* Completion of the weekly contact pair.
* A configurable outside-close residency threshold.
* A configurable maximum outside-excursion threshold.
* A combined confirmed-bar alert() message that consolidates simultaneous events.
Alerts report observed conditions only.
They do not instruct the user to buy, sell, enter, exit, place a stop, or select a profit target.
HOW TO USE
1. Apply the script to a standard time-based intraday chart or the 1D chart.
2. Select Automatic, Chart context, or Standard candles according to the data context being researched.
3. Enable daily and weekly boundaries and select the amount of historical retention.
4. Choose the contact definition and tolerance.
5. Select the number of confirmed closes required for Sustained beyond.
6. Read each boundary's lifecycle together with OUT/X and MAX O/I rather than interpreting a horizontal line in isolation.
7. Use the lower register rows to compare daily and weekly range geometry, shared overlap, current range use, pair spacing, hull position, and state breadth.
8. Adjust nearby-pair thresholds, historical event-mark density, right-edge tag content, and register size for the symbol and timeframe.
9. Use Market Replay and multiple symbols to verify customized settings before creating alerts.
WHY THIS IS A SEPARATE PUBLICATION
This study is separate from Previous Day Pivot Path - Intraday Support Resistance because the two scripts address different research questions and use different analytical structures.
Previous Day Pivot Path is a previous-day pivot-formula and arrival-order study. It calculates P, R, and S levels, supports pivot formula families, records first-arrival rank, distinguishes reached and unreached levels, and can emphasize the next unreached level. PDH and PDL are optional context references in that study.
Boundary Response Register calculates no:
* P/R/S ladder.
* CPR.
* Pivot formula family.
* Pivot arrival rank.
* Reached-versus-unreached path.
* Next unreached level.
* Next target.
Its four primary objects are the raw completed-period boundaries PDH, PDL, PWH, and PWL.
It tracks:
* Their independent lifecycle.
* Their post-contact response measurements.
* Daily and weekly range geometry.
* Shared range overlap.
* High-pair and low-pair spacing.
* Four-level hull position.
* State breadth.
Combining these functions into the existing pivot study would materially change that publication's purpose, supported horizon, default output, settings structure, alerts, and user workflow.
This is therefore a separate research tool rather than a minor visual variation or version update.
DISTINGUISHING DESIGN
Many previous-period high and low tools focus on one or more of the following:
* Drawing horizontal lines only.
* Tested or untested status.
* Swept or unswept status.
* Previous-month levels.
* Range midpoints or equilibrium levels.
* Nearest-target labels.
* Directional bias.
* Historical reach or break rates.
* Trade-plan instructions.
This implementation instead combines:
* Four raw completed daily and weekly boundaries.
* A four-stage lifecycle for each boundary.
* Confirmed post-contact response measurements.
* Frozen-ATR normalization of outside and inside excursions.
* Daily and weekly range-intersection geometry.
* Contact-pair timing.
* A four-level hull.
* State breadth.
* Neutral confirmed-bar alerts.
* Scale-aware annotation collision management.
The common PDH, PDL, PWH, and PWL inputs are objective completed-period prices.
The distinguishing purpose of this implementation is the state, response, geometry, source-handling, and visualization framework built around those four boundaries.
LIMITATIONS
* OHLC bars do not reveal the exact tick-by-tick sequence inside a candle.
* The script does not invent an intrabar event order.
* Contact results depend on the selected Wick range, Candle body, or Close-to-close span definition.
* Contact results also depend on the selected tolerance.
* Multiple events confirmed on the same chart bar are simultaneous at chart resolution unless the available data proves otherwise.
* Sustained beyond is a configurable confirmed-close condition, not proof that a move will continue.
* Re-entered is a recorded return through a boundary, not proof of reversal.
* ATR-normalized values depend on the symbol's completed daily data and the selected ATR length.
* Current day and week range-use values are incomplete while the current period is developing.
* The first loaded day or week can contain partial history if the chart dataset begins after that source period started.
* Session definitions, holidays, early closes, broker feeds, exchange data, and ticker modifiers can change completed-period OHLC values.
* Synthetic charts can produce event timing different from standard market candles.
* Historical drawing retention is limited by the selected settings and TradingView object limits.
* The visual annotation rail can move when the visible chart window changes.
* The script provides no entries, exits, targets, stops, position sizing, probability forecasts, or performance claims.
OPEN-SOURCE IMPLEMENTATION
The script is written in Pine Script v6 using Pine built-ins and independently implemented state, measurement, and drawing logic.
It imports no external libraries.
The source is published openly so users can inspect the calculations and adapt the research settings within TradingView's rules.
Wskaźnik

MarketMaulers Auto TrendlinesMarketMaulers Auto Trendlines draws the diagonal structure you would have drawn yourself, and then stays with the line through the part that matters. Two confirmed pivots anchor it, the market's own touches validate it, and its parallel rail is projected through the furthest price travelled while the line was forming. Then it waits for the break, and reports which of the only two things that can follow a break took place.
Forming · Validated · Broken · Retested / Failed break
THE RETEST IS THE PRODUCT
Anyone can draw a line through two pivots and print a marker when price closes through it. The break is the least informative moment in a trendline's life. Most lines break, and the break on its own says nothing about whether the level still matters.
Two things can follow, and they mean opposite things.
• RETEST. Price comes back and respects the line from the OTHER side. Old support is now resistance. The line survived its own break as a reference and is arguably more useful after it than before.
• FAILED BREAK. Price closes straight back on the original side. The break was noise, the line was never beaten, and anyone who traded the break is offside.
This tool waits for one of those and names it. That is the read you cannot get by eyeballing the chart in the moment, because in the moment the two look identical.
FROM ZERO: WHY A DIAGONAL LINE IS A DIFFERENT ANIMAL FROM A HORIZONTAL ONE
A horizontal level is a price. It sits at one number and it is still that number tomorrow. A trendline is a price AND a rate. It asks the market to keep making higher lows at a certain speed, or lower highs at a certain speed. That is a much stronger claim, which is why trendlines break more often than horizontal levels and why the break carries less information when they do.
It is also why a line has to be earned rather than drawn. Two points define any line at all. Three or more touches is the market repeatedly agreeing to the rate.
HOW A LINE EARNS ITS PLACE
Five gates, each closing a specific way auto-trendline scripts produce clutter.
• Confirmed pivots only, paired for direction. A rising support line needs a second swing low strictly HIGHER than the first, a falling resistance line a second high strictly lower. A zero slope is unreachable by construction, so this file never draws a horizontal line.
• A cleanliness scan. Every bar between the two anchors is checked for a close through the line. A line price has already spent time on the wrong side of was never a valid line, and drawing it anyway is how a chart fills with lines nobody would have drawn by hand.
• Touch counting with a spacing rule. A touch is a bar reaching within a quarter of an ATR of the line, and touches within three bars of each other count once. Without the spacing rule one slow drift along a line counts as five touches and validates anything.
• Near-duplicate rejection. Two lines are compared at two sample points, now and fifty bars back, and the newer one is dropped if they sit within 0.75 ATR at BOTH. Comparing at a single point lets two lines with different slopes look identical at the moment they cross.
• A slope cap and abandoned-line retirement. Near-vertical lines off a single spike are refused, and a line price has stayed far away from for twenty consecutive bars is retired. That is what keeps ancient support lines from hanging under current price forever.
TWO WAYS A LINE BREAKS, AND THE SECOND ONE IS THE INTERESTING ONE
The obvious break is distance: a close sitting at least 0.35 ATR beyond the line. That catches the decisive break and it misses the slow one.
Price can park a fraction through a line, too shallow to trigger the distance test and too close to trigger retirement, and grind there bar after bar. Under a distance-only rule the line stays marked VALIDATED with price on the wrong side of it for as long as the grind lasts, which is a tool stating something false. So three consecutive wrong-side closes break a line at any distance. Decisive breaks are caught by distance, grinds by persistence, and there is no state left where the display and the price disagree.
A RETESTED LINE GOES BACK TO WORK
Most implementations treat the retest as the end of a line's life, which is backwards from what the retest proves. A line that broke, was left alone, and then held from the other side has demonstrated it still matters, and the tools that go quiet there stop watching at the exact moment the line earned its keep.
The mechanism is a POLARITY FLIP rather than a new line. Old support becomes resistance, so the side the break test looks at flips while the line's geometric identity does not. It is still a rising line, it keeps its color and its channel offset, and it starts being tested for a break to the upside. The label carries R1, R2, R3 so a twice-proven line is visibly different from a fresh one, and the cycle is capped at three, after which retested is terminal. A line oscillating around price cannot churn forever.
The status card reports both facts rather than picking one. RISING · RES is a rising line currently acting as resistance. Unflipped lines read RISING · SUP and FALLING · RES, which is what they always meant, said out loud.
THE CHANNEL
Once a line is validated, its parallel rail is projected through the furthest the market travelled away from it while the line was forming. The rail comes from a real extreme rather than from a statistical fit, so the width means something specific: this is how far this structure has been willing to travel from its own floor. Fill and opacity are yours to set, and the fill carries the state, so there is no color legend to memorize.
CONVERGENCE, WITH A TIME
Two validated lines with different slopes meet at an apex, and an apex is a price AND a bar. That is a triangle or a wedge resolving, one of the oldest readable objects in chart reading. It needs both lines retained as DATA rather than as drawings, which is why most auto-trendline scripts cannot offer it at all.
It is reported on the card and alerted, not drawn. A marker painted into future bars would say the same thing and add a drawing to a chart whose whole design rule is fewer marks. And it is a fact, not a forecast: it says where and when the structure runs out of room, not what happens when it gets there.
HIGHER TIMEFRAME LINES
A second engine, off by default, sharing the concepts of the chart-timeframe engine and none of its code paths. If the higher-timeframe layer is wrong, the layer you already trust keeps working.
Why most higher-timeframe trendline overlays are unsound is worth stating. A security call hands back prices. It does not hand back the ability to walk backwards through higher-timeframe bars, and the cleanliness scan IS a walk. So an HTF line built off a plain security read cannot be validated the way a chart line is, and most implementations quietly skip the check. Here, completed higher-timeframe bars are pushed into a ring buffer as they close and the whole HTF engine walks those. A real scan, real HTF touches, and a break that is a real HTF close through the line.
Breaks are judged by the timeframe that OWNS the line. A 15m candle closing through a 4H trendline is not a 4H close, and treating it as one is the most common way an HTF overlay lies. The visible consequence is that an HTF line can die up to one HTF bar later than the chart makes it look like it should. That is correct, and it will look wrong the first time.
What the HTF layer deliberately does not do, each one a decision rather than an omission: no channel, no polarity flip, no apex participation, and no separate alerts. The rail is measured by the same pass that validates the chart line. Converging HTF and chart slopes needs a unit conversion that is wrong the moment the chart timeframe changes. And two engines firing the same alert would double every notification. One slot, defaulted off, because new surface gets proven before it gets duplicated.
THE STATUS CARD
Six live lines on a chart and no way to tell which one matters this bar. The card names the nearest line, the distance to it in points and in ATR, its geometry and its current role, how many broken lines are still awaiting a verdict, and the soonest apex. A table rather than a label, because a label draws inside the price pane and loses the z-order fight with candles.
ALERTS
Trendline validated · Trendline broken · Trendline retest confirmed · Failed trendline break · Trendline convergence approaching
The convergence alert is the one worth leaving on. The other four report something that has already finished, which is useful for a journal. Convergence is the one thing the tool knows about the future, so it is the one alert that can reach you while there is still something to do about it. It is edge-triggered: it arms while the apex is beyond your warning distance and fires once on the way in, rather than firing every bar of the approach until you mute it forever.
WHY IT DOES NOT REPAINT
Lines anchor on confirmed pivots only, and a pivot is not known until the required bars have closed after it. Every state change is judged on a closed bar. The chart-timeframe engine contains no security call at all, and the higher-timeframe engine reads only completed HTF bars, never the one in progress, using the last-closed idiom with an atomic tuple so high, low, close and time cannot straddle a boundary. The cost is a deliberate lag of a few bars on every anchor, and that lag is the guarantee.
WHAT THIS TOOL IS NOT
It draws structure. It shades no band, marks no zone, and makes no claim about resting orders anywhere. When a broken line is reclaimed, this tool calls it a FAILED BREAK, which is a statement about structure and is what the price action supports on its own. A liquidity tool looking at the same bar would call it a sweep, which is a statement about order flow. Same behavior, different claim, and only one of them is visible on the chart.
MADE TO FIT YOUR CHART
Eight card positions, three text sizes, separate colors for rising and falling lines and for their higher-timeframe counterparts, line width, channel fill and opacity, labels on or off, and a toggle per section. Detection, channel, break and retest, style, higher timeframe, card and alerts are separate groups. Pivot length, minimum touches, maximum active lines, the slope cap, the retirement distance, the retest confirmation mode and the retest window are all exposed.
HOW TRADERS ACTUALLY USE IT
Pivot Length decides everything downstream, because it decides which swings exist to be paired. If the chart looks emptier than you expect, that is the first knob, ahead of the touch count.
Minimum touches is the honesty dial. Two touches is a line you drew. Three is a line the market drew. Three is the default for that reason.
Treat a break as the question and the following bars as the answer. Wait for RETESTED or FAILED before deciding what the break meant. The whole tool is built so you do not have to guess which one you are sitting in.
Works on any market and any timeframe.
Display only. This draws structure and reports what happened to it, it does not fire buy/sell signals and it does not forecast. Educational tool, not financial advice.
Published open-source. The pivot pairing and cleanliness scan, the near-duplicate rejection, the two-mode break test, the polarity-flip lifecycle, the apex pre-filter and the higher-timeframe ring buffer are all readable in the source. Everything above explains what it draws and how it decides what to draw; the code is there so you can check that the description is accurate rather than take it on faith. Read it, fork it, argue with the constants. Wskaźnik

Apollo Wave X-LunarApollo Wave X-Lunar
Apollo Wave X-Lunar is a momentum and directional indicator based on the movement and slope of three independent waves: F1, XA, and AK. Each source uses a different price calculation to provide complementary readings of market movement.
The indicator displays three “lights” on the panel:
▲ Lime: wave slope is equal to or above zero, indicating upward momentum.
▼ Orange: wave slope is below zero, indicating downward momentum.
In addition to the lights, the indicator displays a Wave Line whose source can be selected by the user.
⚙️ Parameters
Base Period — len
Defines the period used to filter the waves.
Lower periods: higher sensitivity to price changes and more frequent directional changes.
Higher periods: greater smoothing and lower sensitivity to short-term fluctuations.
The default value is 21.
There is no universally optimal period. The appropriate setting may vary depending on the asset, timeframe, and trading style.
Line Source — lineSource
Selects which of the three sources is used to construct the main chart line.
F1 — HLCC4
Uses the average of High, Low, and twice the Close.
XA — HLC3
Uses the average of High, Low, and Close.
AK — OHLC4
Uses the average of Open, High, Low, and Close.
The three sources are calculated independently for the lights. This parameter only changes the Wave Line displayed on the chart.
📊 How to Interpret
The indicator compares the current wave movement with its previous slope.
▲ F1
Shows the slope direction of the wave based on HLCC4.
▲ XA
Shows the slope direction of the wave based on HLC3.
▲ AK
Shows the slope direction of the wave based on OHLC4.
When all three lights point upward simultaneously, there is greater directional agreement between the three price sources. When all three point downward, there is greater agreement toward the downside.
Differences between the lights may indicate that the different price sources are producing different momentum readings.
🌊 Wave Line
The main line uses the source selected under Line Source.
F1: HLCC4
XA: HLC3
AK: OHLC4
The line color follows its slope:
Lime: positive or neutral slope.
Orange: negative slope.
🔧 Suggested Configuration
The default value of 21 can be used as a starting point.
For a faster reading, try lower periods.
For a smoother reading, try higher periods.
The appropriate configuration should be evaluated according to the asset and timeframe being analyzed. It is recommended to test different settings before using the indicator as part of trading decisions.
⚠️ Disclaimer
Apollo Wave X-Lunar is a technical analysis tool and does not constitute investment advice, an offer, or a guarantee of results.
The indicator's signals and readings should be used together with other analysis tools, risk management, and overall market context.
No technical indicator can guarantee future results. Wskaźnik

TEWMA Momentum Cloud - [JTCAPITAL]TEWMA Momentum Cloud - is a modified way to use dual-length Triple Exponential Weighted Moving Averages (TEWMA), momentum, and the rate of change of the TEWMA spread for Trend-Following and trend-state analysis.
The indicator is designed to do more than simply determine whether price is above or below a moving average. It compares two differently scaled TEWMA calculations to determine the current directional bias, while simultaneously measuring whether the distance between the two TEWMAs is expanding or contracting.
This creates four primary trend states:
* Bullish + Accelerating — the faster TEWMA is above the slower TEWMA and the difference between them is increasing.
* Bullish + Decelerating — the faster TEWMA remains above the slower TEWMA, but the difference between them is decreasing.
* Bearish + Accelerating — the faster TEWMA is below the slower TEWMA and the difference between them is becoming more negative.
* Bearish + Decelerating — the faster TEWMA remains below the slower TEWMA, but the difference between them is becoming less negative.
A fifth state, Neutral / Flattening , is used when the directional relationship between the two TEWMAs remains bullish or bearish, but the averaged TEWMA is moving in the opposite direction. This helps identify situations where the prevailing directional structure is losing momentum.
The result is a visual trend cloud in which the color of the TEWMA lines changes according to both direction and momentum expansion or contraction .
The indicator works by calculating in the following steps:
Selecting the Price Source
The script begins with a user-selected price source. By default, the source is the Close price.
This source is then used as the raw input for both TEWMA calculations. Because the two TEWMAs use the same source but different lengths, the difference between them primarily reflects the way the market is behaving across two different smoothing horizons.
Determining the Second TEWMA Length
The user specifies the primary Length , which defaults to 50.
The second length is dynamically derived from this value using the Multiplier :
Second Length = Length x Multiplier
The result is rounded to the nearest whole number because moving-average lengths must be represented as integer values.
With the default settings:
50 x 2.50 = 125
Therefore, the two TEWMA calculations use lengths of 50 and 125.
This creates a faster and slower version of the same underlying smoothing methodology. The shorter TEWMA reacts more quickly to changes in price, while the longer TEWMA provides a slower representation of the broader price direction.
Weighted Moving Average Calculation
Before the TEMA calculation is applied, the selected source is first processed through a Weighted Moving Average (WMA) .
The WMA assigns greater importance to more recent observations within its calculation period and progressively less importance to older observations.
This makes the resulting moving average more responsive to recent price changes than a conventional SMA.
The script performs this process separately for both lengths:
WMA(source, Length)
and
WMA(source, Second Length)
The resulting WMA series are then passed into the TEMA calculations.
Triple Exponential Moving Average Calculation
The WMA output is then processed through a Triple Exponential Moving Average (TEMA) .
TEMA is designed to reduce the lag that can occur when repeatedly smoothing a data series.
Conceptually, TEMA uses three levels of exponential smoothing and combines them in a way that reduces a substantial portion of the lag introduced by traditional moving averages.
The general TEMA structure can be represented as:
TEMA = 3 x EMA1 - 3 x EMA2 + EMA3
where EMA1 is the first exponential smoothing, EMA2 is an EMA of EMA1, and EMA3 is an EMA of EMA2.
In this script, TEMA is applied to the WMA rather than directly to price.
This produces:
TEWMA1 = TEMA(WMA(source, Length), Length)
and
TEWMA2 = TEMA(WMA(source, Second Length), Second Length)
The combination of WMA followed by TEMA is what gives the indicator its TEWMA construction.
The purpose of combining these smoothing methods is to create a trend representation that remains substantially smoother than raw price while retaining responsiveness to directional changes.
Creating the Average TEWMA
The two TEWMA calculations are then averaged:
TEWMA = (TEWMA1 + TEWMA2) / 2
This average represents the central line of the indicator.
Instead of relying exclusively on either the faster or slower TEWMA, the average provides a combined representation of both time horizons.
This can make the central trend representation less dependent on one specific smoothing length.
Calculating TEWMA Momentum / Spread
The script then calculates the difference between the two TEWMA values:
Momentum = TEWMA1 - TEWMA2
This is one of the most important calculations in the indicator.
The value is positive when TEWMA1 is above TEWMA2 and negative when TEWMA1 is below TEWMA2.
However, the script does not only look at whether this value is positive or negative. It also compares the current value with its previous value.
Therefore, the indicator is effectively examining the direction and rate of change of the spread between the two TEWMAs .
Detecting Bullish Acceleration
Bullish acceleration occurs when:
TEWMA1 > TEWMA2
and
Momentum > Momentum
The first condition establishes that the faster TEWMA is above the slower TEWMA.
The second condition establishes that the difference between the two TEWMAs is increasing.
Therefore, bullish acceleration means that the bullish separation between the two trend filters is expanding.
This is represented by Signal = 2 .
Detecting Bullish Deceleration
Bullish deceleration occurs when:
TEWMA1 > TEWMA2
and
Momentum < Momentum
The faster TEWMA is still above the slower TEWMA, so the overall directional relationship remains bullish.
However, the spread between the two TEWMAs is shrinking.
This means the bullish structure is becoming less expansive, even though the bullish relationship between the two trend measurements has not necessarily disappeared.
This is represented by Signal = 1 .
Detecting Bearish Acceleration
Bearish acceleration occurs when:
TEWMA1 < TEWMA2
and
Momentum < Momentum
The faster TEWMA is below the slower TEWMA, establishing a bearish relationship.
At the same time, the momentum difference is becoming increasingly negative.
Therefore, the separation between the two TEWMAs is expanding in the bearish direction.
This is represented by Signal = -2 .
Detecting Bearish Deceleration
Bearish deceleration occurs when:
TEWMA1 < TEWMA2
and
Momentum > Momentum
The faster TEWMA remains below the slower TEWMA, so the broader directional relationship remains bearish.
However, the difference between the two TEWMAs is becoming less negative.
This means the bearish separation is contracting.
This is represented by Signal = -1 .
Detecting Neutral / Flattening Conditions
The neutral condition is different from simply checking whether the two TEWMAs have crossed.
The script checks whether the directional relationship between TEWMA1 and TEWMA2 conflicts with the movement of their average.
A neutral state occurs when either:
TEWMA1 > TEWMA2 while TEWMA is falling
or
TEWMA1 < TEWMA2 while TEWMA is rising .
In other words, the two TEWMAs may still maintain a bullish or bearish relationship, but the combined TEWMA is beginning to move in the opposite direction.
This provides an additional way of identifying a loss of directional momentum before relying solely on a crossover.
The neutral state is represented by Signal = 0 .
Assigning the Persistent Trend State
The script stores the current signal state in a persistent variable.
The possible states are:
2 = Bullish + Accelerating
1 = Bullish + Decelerating
-1 = Bearish + Decelerating
-2 = Bearish + Accelerating
0 = Neutral / Flattening
Because the signal variable is persistent, it retains its previous value when none of the explicitly defined conditions changes the state.
This means the indicator is not simply recalculating an independent label on every bar; it maintains the latest identified trend state until another condition updates it.
Assigning the Visual Trend Color
The signal state determines the color used by the plotted TEWMA lines.
Bullish acceleration receives one color, bullish deceleration another, bearish acceleration another, bearish deceleration another, and neutral conditions receive a separate neutral color.
The visual distinction therefore communicates two dimensions simultaneously:
1. Direction — bullish or bearish
2. Momentum behavior — accelerating or decelerating
This allows the user to distinguish between a bullish trend that is strengthening and a bullish trend that is losing expansion, rather than treating both situations as identical.
Plotting the Central TEWMA
The averaged TEWMA is plotted as the primary, thicker line.
This line represents the combined trend estimate derived from the faster and slower TEWMA calculations.
Its color changes according to the current signal state.
Creating the Visual Cloud
The script creates an additional hidden plot at:
TEWMA x 0.9
and fills the area between the primary TEWMA and this lower reference level.
The same visual technique is also applied to TEWMA1 and TEWMA2.
These fills create the visual cloud/ribbon appearance of the indicator.
It is important to understand that these filled regions are primarily visual enhancements . They are not additional volatility bands, standard-deviation bands, ATR bands, or independent support/resistance calculations.
The 0.9 multiplier simply places the second boundary at 90% of the corresponding TEWMA value, creating a proportional visual area beneath the plotted line.
Plotting the Fast and Slow TEWMA
In addition to the averaged TEWMA, the script plots TEWMA1 and TEWMA2 individually.
TEWMA1 uses the shorter user-defined length and therefore represents the faster component.
TEWMA2 uses the multiplied length and therefore represents the slower component.
Viewing both lines allows the user to see the underlying relationship that produces the momentum classification.
Optional State-Change Labels
The script contains an optional Show Labels setting.
When enabled, labels are displayed when the signal changes from its previous state.
The available label descriptions are:
Rising + Widening
Rising + Compressing
Falling + Widening
Falling + Compressing
Flattening
The labels are only created when the current signal is different from the previous signal. This prevents a new label from being printed on every bar while the same state remains active.
The labels therefore focus attention on state transitions rather than continuously repeating the same information.
Buy and Sell Conditions:
This indicator does not contain conventional buy or sell conditions, strategy orders, entries, exits, or backtesting logic.
Instead, it identifies trend states .
The bullish states are:
* Bullish + Accelerating — TEWMA1 is above TEWMA2 and the TEWMA spread is increasing.
* Bullish + Decelerating — TEWMA1 is above TEWMA2 and the TEWMA spread is decreasing.
The bearish states are:
* Bearish + Accelerating — TEWMA1 is below TEWMA2 and the TEWMA spread is becoming more negative.
* Bearish + Decelerating — TEWMA1 is below TEWMA2 and the TEWMA spread is becoming less negative.
The neutral state occurs when the averaged TEWMA moves against the current directional relationship between TEWMA1 and TEWMA2.
This distinction is important because a decelerating trend is not automatically a reversal . For example, a bullish trend can begin compressing while remaining bullish. Likewise, a bearish trend can begin compressing while remaining bearish.
Users can therefore interpret the states according to their own trading methodology. For example, an external trading approach could use bullish acceleration as a trend-confirmation condition, while treating bullish deceleration as a warning that momentum is becoming less expansive. However, the indicator itself does not impose entries, exits, stop-losses, take-profits, or position sizing.
The same principle applies to bearish conditions.
The indicator is therefore best understood as a trend and momentum-state visualization tool , rather than a complete trading strategy.
Features and Parameters:
Source — Selects the price series used as the foundation of both TEWMA calculations. The default is Close.
Length — Defines the primary length used by the faster TEWMA. The default value is 50.
Multiplier — Determines the relationship between the faster and slower TEWMA lengths. The default is 2.50.
Second TEWMA Length — Calculated automatically as Length multiplied by Multiplier and rounded to the nearest integer.
Show Labels — Enables or disables the optional state-transition labels displayed on the chart.
Dual TEWMA Structure — Uses two differently scaled TEWMA calculations to compare shorter-term and longer-term trend behavior.
Momentum Spread — Measures the difference between the fast and slow TEWMA.
Acceleration / Deceleration Detection — Determines whether the TEWMA spread is expanding or contracting.
Five-State Classification — Separates the market into bullish acceleration, bullish deceleration, bearish acceleration, bearish deceleration, and neutral/flattening conditions.
Dynamic Color Coding — Changes the plotted line colors according to the current trend state.
Visual Cloud — Adds proportional filled regions around the plotted TEWMA lines to improve visual trend identification.
Specifications:
Price Source
The price source is the raw market data supplied to the indicator.
The default source is Close , meaning each calculation begins with the closing price of every bar.
The script allows TradingView's standard source selector to be used, so the calculation can be based on another available price series if desired.
The selected source is important because every subsequent calculation is derived from it.
Weighted Moving Average (WMA)
A Weighted Moving Average is a moving average that assigns different weights to observations within its calculation window.
More recent observations receive greater weight than older observations.
Compared with an SMA, this allows the WMA to react more strongly to recent price changes.
In this indicator, the WMA is not the final trend line. It is the first smoothing stage before the TEMA calculation.
This creates a two-stage smoothing structure in which the price data is first weighted toward recent observations and then processed through the TEMA.
Triple Exponential Moving Average (TEMA)
TEMA is a moving-average construction that uses three levels of exponential smoothing.
The purpose is to reduce lag compared with simply applying multiple layers of conventional exponential smoothing.
Its conceptual formula is:
TEMA = 3 x EMA1 - 3 x EMA2 + EMA3
where:
EMA1 = EMA(source)
EMA2 = EMA(EMA1)
EMA3 = EMA(EMA2)
The resulting TEMA attempts to retain smoothness while responding more quickly to changes than a heavily smoothed conventional moving average.
TEWMA
The TEWMA used by this indicator can be understood as a WMA-preprocessed TEMA .
Instead of applying TEMA directly to price, the script first calculates a WMA and then applies TEMA to that WMA.
This combines the weighting characteristics of WMA with the lag-reduction characteristics of TEMA.
The script creates two versions of this construction with different lengths.
Fast TEWMA — TEWMA1
TEWMA1 is calculated using the primary user-defined length.
With the default settings:
TEWMA1 = TEMA(WMA(Close, 50), 50)
Because the length is shorter, this component reacts more quickly to changes in the source than TEWMA2.
It therefore serves as the faster component of the trend comparison.
Slow TEWMA — TEWMA2
TEWMA2 uses the automatically calculated second length.
With the default settings:
50 x 2.50 = 125
Therefore:
TEWMA2 = TEMA(WMA(Close, 125), 125)
The larger length causes this component to respond more slowly to changes in the source.
It therefore represents the slower trend component.
Length Multiplier
The multiplier controls how far apart the two TEWMA horizons are.
The formula is:
Second Length = round(Length x Multiplier)
A larger multiplier creates a greater difference between the fast and slow calculations.
A smaller multiplier brings the two calculations closer together.
This parameter therefore directly influences how sensitive the spread is to changes in market direction.
TEWMA Average
The central TEWMA is calculated as:
TEWMA = (TEWMA1 + TEWMA2) / 2
This creates a central representation of the two trend horizons.
Rather than selecting either the fast or slow calculation as the primary line, the indicator combines both into one average.
This can provide a more balanced representation of the underlying trend structure.
TEWMA Spread / Momentum
The indicator defines momentum as:
Momentum = TEWMA1 - TEWMA2
This is effectively the spread between the fast and slow trend measurements.
When the value is positive, the fast TEWMA is above the slow TEWMA.
When the value is negative, the fast TEWMA is below the slow TEWMA.
The absolute size of the spread also provides information about how far apart the two trend estimates have moved.
Most importantly, the script compares the current spread with the previous spread to determine whether that separation is expanding or contracting.
Widening Momentum
When the TEWMA spread increases in the direction of the prevailing trend, the two TEWMAs are moving farther apart.
During a bullish state, this means TEWMA1 is moving further above TEWMA2.
During a bearish state, this means TEWMA1 is moving further below TEWMA2.
The indicator refers to these conditions as acceleration because the directional separation between the two trend measurements is increasing.
Compressing Momentum
Compression occurs when the spread between the two TEWMAs becomes smaller.
During a bullish state, TEWMA1 can remain above TEWMA2 while moving closer to it.
During a bearish state, TEWMA1 can remain below TEWMA2 while moving closer to it.
This is why deceleration does not necessarily mean that the trend has already reversed.
It means that the separation supporting the current directional structure is becoming less pronounced.
Bullish Acceleration
Bullish acceleration requires:
TEWMA1 > TEWMA2
and:
TEWMA1 - TEWMA2 > previous(TEWMA1 - TEWMA2)
This combines directional positioning with expanding momentum.
The first condition identifies the direction.
The second condition identifies whether that directional separation is strengthening.
Bullish Deceleration
Bullish deceleration requires:
TEWMA1 > TEWMA2
and:
TEWMA1 - TEWMA2 < previous(TEWMA1 - TEWMA2)
The fast TEWMA is still above the slow TEWMA, but the spread is shrinking.
This identifies a bullish structure that is losing expansion.
Bearish Acceleration
Bearish acceleration requires:
TEWMA1 < TEWMA2
and:
TEWMA1 - TEWMA2 < previous(TEWMA1 - TEWMA2)
The spread is becoming increasingly negative.
This means the fast TEWMA is moving farther below the slow TEWMA, strengthening the bearish separation.
Bearish Deceleration
Bearish deceleration requires:
TEWMA1 < TEWMA2
and:
TEWMA1 - TEWMA2 > previous(TEWMA1 - TEWMA2)
The spread remains negative but is becoming less negative.
This means the bearish separation is contracting.
Neutral / Flattening
The neutral condition is designed to detect situations where the average TEWMA is moving against the existing fast/slow directional relationship.
For a bullish relationship, neutral occurs when:
TEWMA1 > TEWMA2
but:
TEWMA < TEWMA
For a bearish relationship, neutral occurs when:
TEWMA1 < TEWMA2
but:
TEWMA > TEWMA
This is useful because a market can remain structurally bullish or bearish according to the relationship between the two TEWMAs while the combined trend measure begins moving in the opposite direction.
The neutral state therefore represents a loss of alignment between directional structure and movement of the combined trend .
Signal States
The script converts the detected conditions into numerical states:
2 = Bullish Acceleration
1 = Bullish Deceleration
0 = Neutral / Flattening
-1 = Bearish Deceleration
-2 = Bearish Acceleration
These numerical values are used internally to determine the visual state of the indicator.
Persistent Signal Variable
The signal is stored in a persistent variable.
This means the current state can remain active across multiple bars until another condition changes it.
The script therefore does not require every bar to generate a completely new classification.
This is particularly useful for the visual presentation because a trend state can remain visible until a meaningful change in the underlying conditions occurs.
Color Coding
The indicator uses different colors for the five states.
The colors are not additional calculations and do not affect the mathematical output.
They are a visual encoding system designed to allow the user to recognize both directional bias and momentum behavior without having to inspect the numerical relationships manually.
Primary TEWMA Line
The averaged TEWMA is displayed as the main, thicker line.
Because it combines the fast and slow TEWMA, it acts as the central visual representation of the indicator's trend structure.
Fast and Slow TEWMA Lines
TEWMA1 and TEWMA2 are also plotted individually.
The difference between these two lines is fundamental to the indicator's state classification.
When they separate, the spread changes.
When they move closer together, the spread contracts.
Their relative position determines whether the market is classified as bullish or bearish, while the change in their separation determines whether that trend is accelerating or decelerating.
Cloud / Fill Calculation
The script creates hidden secondary plots using:
TEWMA x 0.9
TEWMA1 x 0.9
TEWMA2 x 0.9
The area between each original line and its corresponding 90% reference is then filled.
This creates the cloud-like visual appearance.
These fills should not be interpreted as statistical probability bands or volatility envelopes.
They are proportional visual regions derived directly from the corresponding TEWMA value.
Optional Labels
The label system is disabled by default.
When enabled, the script checks whether the current signal state differs from the previous signal state.
A label is then created only at the transition into the new state.
This makes the labels useful for visually identifying when the market changes from one momentum regime to another without placing repetitive labels on every bar.
No ATR or Standard Deviation Component
This indicator does not use ATR, standard deviation, Bollinger Bands, RSI, MACD, volume, or other conventional volatility/momentum indicators.
Its momentum classification comes specifically from the difference between two differently smoothed TEWMA calculations and the change in that difference over time .
This is an important part of the design because the indicator is intentionally focused on the relationship between two trend estimates rather than combining unrelated technical indicators.
Why Combine WMA and TEMA?
WMA and TEMA perform different roles within the calculation.
WMA gives greater emphasis to recent observations.
TEMA then applies a triple-exponential smoothing structure designed to reduce lag compared with repeated conventional smoothing.
Combining them creates a trend filter that attempts to balance smoothness and responsiveness .
The objective is not simply to make the moving average smoother. Excessive smoothing can make a trend indicator slow to react.
Instead, the construction uses multiple forms of smoothing while maintaining a relatively responsive relationship with recent price behavior.
Why Use Two TEWMAs Instead of One?
A single moving average can provide information about direction, but it does not directly provide the same contextual information about how the market behaves across different trend horizons.
Using two TEWMAs creates a relative comparison.
The shorter TEWMA reacts faster.
The longer TEWMA reacts more slowly.
When the faster calculation moves above the slower calculation, the short-term trend representation has moved ahead of the longer-term representation.
When it moves below it, the opposite relationship exists.
This relative structure is the foundation of the indicator's directional classification.
Why Measure the Spread Between Them?
Simply knowing that one moving average is above another can be insufficient.
A bullish relationship can exist while the two averages are rapidly separating, or while they are slowly moving back toward each other.
Those are materially different conditions.
The spread calculation captures this distinction.
An expanding spread indicates increasing separation between the two trend horizons.
A contracting spread indicates decreasing separation.
The indicator therefore adds a second layer of information to the basic fast-versus-slow relationship.
Why Separate Acceleration From Deceleration?
A trend does not necessarily change direction immediately when its momentum begins to weaken.
For example, TEWMA1 can remain above TEWMA2 while the spread starts contracting.
The market can therefore remain structurally bullish while the bullish separation is losing strength.
Likewise, a bearish trend can remain structurally bearish while the bearish separation begins to contract.
Separating acceleration and deceleration allows the indicator to communicate this transition instead of treating every bullish or bearish condition equally.
Why Include a Neutral / Flattening State?
The neutral state provides another layer of information beyond the fast/slow relationship.
If TEWMA1 remains above TEWMA2 but the averaged TEWMA begins declining, the underlying directional relationship and the movement of the combined trend measure are no longer aligned.
The same principle applies in reverse during bearish conditions.
This gives the indicator a mechanism for visually highlighting situations in which the prevailing trend structure may be losing alignment.
How the Components Work Together
The indicator can therefore be viewed as a sequence of three major analytical layers:
Layer 1 — Trend Smoothing
The source is processed through WMA and TEMA to create two TEWMA trend estimates.
Layer 2 — Multi-Horizon Comparison
The faster TEWMA is compared with the slower TEWMA to establish the directional relationship.
Layer 3 — Momentum Expansion / Contraction
The difference between the two TEWMAs is monitored over time to determine whether the directional separation is widening or compressing.
The additional neutral logic then evaluates whether the average TEWMA is moving against the established fast/slow relationship.
This creates a compact framework that attempts to answer two related questions:
What is the current directional relationship?
and
Is that relationship becoming more expansive or less expansive?
How to Interpret the Indicator
Bullish + Accelerating
The faster TEWMA is above the slower TEWMA and the spread is expanding.
This is the strongest bullish state within the indicator's classification system because both directional positioning and spread expansion point in the same direction.
Bullish + Decelerating
The faster TEWMA remains above the slower TEWMA, but the spread is contracting.
The bullish structure remains present, but the separation between the two trend horizons is decreasing.
Bearish + Accelerating
The faster TEWMA is below the slower TEWMA and the spread is expanding negatively.
Both directional positioning and spread behavior are aligned with the bearish side.
Bearish + Decelerating
The faster TEWMA remains below the slower TEWMA, but the bearish spread is contracting.
The bearish structure remains present, but the separation is becoming less pronounced.
Neutral / Flattening
The fast/slow relationship remains directional, but the averaged TEWMA is moving against that relationship.
This represents a loss of alignment and can be interpreted as a transition or weakening state rather than an automatic reversal.
Limitations and Important Considerations:
This indicator is a technical-analysis tool and does not predict future price movements.
It does not contain a strategy engine, position sizing, stop-loss calculation, take-profit calculation, risk management system, or backtesting logic.
The bullish and bearish states should therefore not automatically be interpreted as guaranteed entry or exit signals.
Moving averages are inherently derived from historical price data. Even though the WMA/TEMA construction is designed to remain responsive, the indicator can still react after a price movement has already begun.
The Length and Multiplier settings materially affect the behavior of the indicator. Shorter lengths generally make the calculations more responsive, while longer lengths generally make them slower and smoother.
The indicator does not use a volatility normalization mechanism. The TEWMA spread is measured directly in the price units of the underlying instrument.
The cloud fills are visual representations and should not be interpreted as probability bands, volatility bands, or statistically calculated support/resistance areas.
The neutral state does not guarantee that a reversal will occur. It identifies a specific loss of alignment between the directional TEWMA relationship and the movement of the averaged TEWMA.
Likewise, deceleration does not automatically mean that a trend is ending. It only indicates that the spread between the two TEWMAs is contracting according to the script's calculation.
Users should therefore interpret the indicator within the context of their broader market analysis and risk-management process.
Originality and Design Purpose
The distinctive element of this indicator is not simply the use of moving averages.
The script combines a WMA-preprocessed TEMA structure with two different time horizons and then uses the spread between those two TEWMAs as a momentum-state measurement .
Instead of producing only a binary bullish/bearish classification, the indicator separates directional conditions into acceleration and deceleration states.
This provides a more detailed visualization of the relationship between short-term and longer-term trend behavior.
The purpose of the design is therefore to make the changing relationship between two trend horizons easier to interpret visually, while keeping the underlying calculations focused specifically on TEWMA structure and its momentum spread.
Summary
TEWMA Momentum Cloud combines two differently scaled TEWMAs to create a multi-horizon view of trend direction.
The source is first processed through a Weighted Moving Average and then through a Triple Exponential Moving Average.
The resulting fast and slow TEWMAs are averaged to create the central TEWMA.
The difference between the fast and slow TEWMAs is then calculated as the momentum spread.
The sign of that spread determines the bullish or bearish relationship, while the change in the spread determines whether that relationship is accelerating or decelerating.
An additional neutral condition identifies situations where the averaged TEWMA moves against the prevailing fast/slow relationship.
The result is a five-state trend classification:
Bullish + Accelerating
Bullish + Decelerating
Neutral / Flattening
Bearish + Decelerating
Bearish + Accelerating
The visual cloud, line colors, and optional transition labels are then used to make these states easier to identify directly on the chart.
TEWMA Momentum Cloud is therefore designed as a trend-structure and momentum-state visualization tool , helping users distinguish not only between bullish and bearish conditions, but also between trends that are expanding and trends that are beginning to compress.
Enjoy! Wskaźnik

Pattern Atlas : Geometric Indicator [AxeAlgo]Pattern Atlas : Geometric Indicator
A chart-native scanner for 16 classical price-structure ("geometric") chart
patterns. It tracks confirmed swing pivots as they form and, when a run of
pivots satisfies the geometry of a known pattern and its breakout condition, it
marks the pattern on the chart with an outline box, an optional construction
skeleton, a measured-move target, and a labelled pin signal. It also keeps a
live status table of every pattern it knows.
All pattern-recognition logic lives in the companion Pine library
"Pattern Atlas : Geometric ". This script is the visualization and
alerting layer on top of it, so the detection rules stay in one place that can
be maintained and audited on their own.
Patterns detected
Reversal patterns: Head & Shoulders and its Inverse; Double Top and Double
Bottom; Triple Top and Triple Bottom; Rounding Top and Rounding Bottom; Diamond
Top and Diamond Bottom; Broadening Formation; and the V-Top / V-Bottom spike.
Continuation patterns: Ascending Triangle; Descending Triangle; Symmetrical
Triangle; Rising and Falling Wedge; Bull and Bear Flag; Bull and Bear Pennant;
Rectangle; and Cup & Handle with its Inverted form.
Structural patterns: Island Reversal and Bump-and-Run Reversal.
How it works
First, a rolling list of confirmed swing highs and lows is maintained. The
"Pivot left bars" and "Pivot right bars" inputs set how many bars on each side
of a candidate must be less extreme for it to count as a pivot. Higher values
give fewer, more significant pivots and a longer confirmation lag.
Next, each pattern function inspects the recent pivot sequence for its defining
shape together with the price move that confirms it. For example, Head &
Shoulders looks for three peaks with a lower-shoulder relationship and a close
back through the neckline; an Ascending Triangle looks for a flat resistance
base with a rising support line and a close through the base.
Each match reports its direction (bullish or bearish), the exact pivots it was
built from, a text description, a strength score, and a measured-move price
target.
Strength score
The strength score runs from 0 to 100 percent and measures how decisively price
broke through the pattern's confirmation level, relative to the pattern's own
price range. A higher score means a cleaner, more committed break.
Patterns defined by a single point, such as the Spike and the Island Reversal,
have no internal range to measure against and always score a neutral 50 percent.
The "Minimum pattern strength to show" input filters marginal matches off the
chart and out of the alerts.
Measured-move targets
The target is a classical projection: the pattern's own height added to or
subtracted from the breakout point, shown as a small price label. No ray is
drawn out to it.
Targets are not shown for the Spike, the Island Reversal, or the Bump-and-Run
Reversal, because those patterns have no reliable height to project from.
Repainting
Every box, line, target, and pin is drawn only on a closed bar. Each match is
gated so it appears, and alerts, only once, on the bar it is first confirmed.
Swing pivots are only known a number of bars after they occur, equal to
"Pivot right bars". That confirmation lag is structural to pivot-based analysis,
not repainting. Nothing already drawn is moved or removed on later bars.
What you see on the chart
A box outlines the full pivot span of each match, coloured by direction.
Construction lines draw a zig-zag through the exact pivots that built the
pattern. This is off by default.
Construction points place a small circle on each of those pivots. This is also
off by default.
A target label shows the measured-move price.
A pin signal is a thin stem with a glowing gem at its tip, placed below the bar
for a bullish match and above it for a bearish one. Hovering the gem shows the
full list of matches on that bar with their strength and targets.
The scanner table lists every pattern with a live status column. When a pattern
matches on the current bar the row shows its name and strength percent; when it
does not, the row shows a dash. Hovering any row shows that pattern's
description.
Inputs
Pivot Detection controls the left bars, right bars, and the maximum number of
pivots tracked.
The Reversal, Continuation, and Structural groups each have a master enable
switch plus one checkbox per pattern, so a whole category can be turned off in
one click.
Display controls the boxes, construction lines, construction points, targets,
and pin signals; the minimum strength filter; the table on/off, position, and
text size; and the bullish and bearish colours.
Watermark switches between a Dark and a Light theme.
Alerts
There is one alert condition per pattern, plus an "Any Bullish Chart Pattern"
and an "Any Bearish Chart Pattern" condition.
There is also a single dynamic alert() call that fires once per closed bar with
the full list of patterns found on that bar, along with their strength and
targets. Add it using the "Any alert() function call" option when creating the
alert.
Every alert condition is gated to confirmed bars in the code itself, so none of
them can fire from a still-forming bar regardless of the alert frequency chosen.
Notes
Chart-pattern recognition is inherently approximate. Treat matches as structured
context rather than mechanical trade signals, and confirm them with your own
analysis.
The indicator works best on liquid instruments and on timeframes where swings
are well defined. Very low timeframes produce noisy pivots.
This is not financial advice.
Dependency: Pattern Atlas : Geometric , a Pine library.
Wskaźnik

Split VWAPWhat it does
Split VWAP cuts every bar horizontally at the session VWAP and draws it as two candles at the same position: one spanning the low up to VWAP, one spanning VWAP up to the high. Each partial takes the bar's open and close clamped into its own range, and a share of the bar's volume proportional to its height. Where VWAP sits at or beyond a bar's extreme, one partial collapses to zero height and the other takes the whole bar and all of its volume; the collapsed one is hidden by default.
A single candle gives you four prices and one volume total, but says nothing about how that activity was distributed relative to the session's average price. Splitting the bar at VWAP and attributing volume to each side makes that distribution visible.
How the colouring works
Each partial is coloured from two changes, both measured against the previous bar's partial on the same side of VWAP: the change in attributed volume, and the change in clamped close.
In the default mode, "Volume hue OKLCh", each change gets a channel of its own. The volume change moves the hue along a continuum — red (
#ea6c5c, hue 29) when it fell, green (
#05b28d, hue 171) when it held, blue (
#7b8efa, hue 274) when it rose. The price change moves the lightness: lighter when the close rose, darker when it fell.
All three anchors sit at an OKLCh lightness of 0.680 and hold as much chroma as their hue can carry at that lightness, capped at 0.16 so the ends do not shout over the middle. Green is the quiet one because green simply cannot hold as much. OKLCh is used rather than HSL because HSL treats lightness as a function of the hue you happen to be on, so a fixed magnitude renders brighter on some hues than others; in OKLCh, lightness, chroma and hue move independently.
Bodies are hollow when the partial's clamped close is above its clamped open, and solid otherwise. A dot marks the VWAP level itself, coloured by the same scheme applied to the whole bar.
Three further modes are included — Quadrant intensity, Bilinear blend and Polar OKLCh. These read the two changes as four corner colours instead of two channels, one per sign combination, and use magnitude to drive chroma and opacity. Every corner and anchor colour is an input.
Scaling
Every series is normalised against the dispersion of its own bar-to-bar changes: 2.5x the mean absolute change over a lookback, which is roughly two standard deviations for a well-behaved distribution but far less sensitive to the occasional volume spike.
Measuring each series against itself matters more than it sounds. A partial carries only a fraction of the bar's volume, so normalising its volume change against the whole bar's average volume compresses that axis and leaves the colour field stuck near the middle. In the other direction, half the ATR is smaller than a typical close-to-close move, so the price axis clips on a large share of bars. It also gives the VWAP-pinned partial a usable scale: when a bar closes above VWAP the lower partial's close is pinned to the cut, so its only movement is VWAP drift — small in absolute terms, but perfectly legible against its own dispersion.
The consequence worth holding on to while reading the chart: the colour says how unusual a change is for that partial, not how large it is in absolute terms.
Setup
The script paints over the chart's native candles, but Pine cannot hide the chart symbol itself. For the cleanest result, right-click the chart, open Settings -> Symbol, and uncheck Body, Borders and Wick.
Settings worth knowing
Gradient mode — the four schemes described above.
Price lightness span — how far a full-strength price change moves the lightness off the anchor, in OKLCh lightness. Default 0.16. A wider span reads more decisively but costs colour at both ends, because sRGB is widest in the middle and narrows toward black and toward white. Rather than let the channels clip, the requested chroma is fitted to whatever the lightness and hue can actually carry, so bright bars are pastel and dark bars are saturated.
Response ramp — how quickly the colour responds as a change grows. 1.0 is proportional; the default 0.6 reaches most of the response earlier, so only genuinely quiet bars stay washed out.
Price change scale / Volume change scale — the lookbacks for the two normalisers.
Transparency at no change — how far quiet bars recede. Lower it if the quiet end reads too faint.
Limitations
Volume attribution is proportional to segment height, not measured from intrabar data. It is a shape-preserving approximation, not a true intrabar volume profile.
The VWAP is session-anchored, so the split level resets at each session boundary and the first bars of a session sit close to it.
On a strongly trending session, price can run far enough from the session VWAP that one partial collapses on most bars and the display degrades toward ordinary candles. That is expected behaviour rather than a fault.
The script requires a symbol that reports volume, and raises a runtime error on symbols that report none.
Originality
This is original work. The bar splitting, the volume attribution, the per-partial normalisation, and the OKLCh colour handling — including the OKLab conversions and the chroma fitting, neither of which Pine provides — are implemented from scratch. No third-party code is reused. Wskaźnik

PyraTime True Trend Line (PTTL)PTTL builds a dynamic, vector-based geometric framework utilizing two extreme market pivots (A and B) and projects their mathematical structure forward in price and time. Because it processes its own internal OHLCV data array, it bypasses native TradingView history constraints, allowing historical vectors to act on live price action without breaking down.
Why This Works
Standard trend lines are notoriously subjective, often skewed by the user pulling lines to fit a narrative. PTTL removes user bias by hard-locking purely to mathematical extremes.
Furthermore, instead of relying on a generalized Volume Profile across the entire screen, PTTL isolates its Vector POC strictly within the A-B impulse leg. This explicitly traps the liquidity nodes associated only with the trend currently being analyzed, rather than mixing it with unrelated historical chop.
How This Works
The Core Buffer: The indicator continuously records high, low, close, and volume data into a 5,000-bar rolling array. This isolates the calculations from TradingView's visual history and prevents data from dropping out when zooming or scrolling.
Dynamic Geometry: In Auto mode, PTTL perpetually hunts for the most significant A and B pivots. Because this window is dynamic, historical structure migrates as stronger dominant highs/lows appear.
Harmonic Divisions: By treating the maximum price deviation from the true A-B line as a 100% boundary, the tool mathematically slices the resulting channel into exact geometric fractions (1/8, 1/3, 1/2, etc.) to highlight internal support/resistance nodes.
Time & Price Squaring (AB=CD): PTTL measures the span of the A-B impulse and demands that the Point C retracement validates within a strict time window. Once validated, it targets an identical price/time expansion (Target D), actively grading the setup as Pending, Success, or Failed based on real-time price intersection.
Settings Guide
Mode Selection: Choose between Auto (dynamically scanning) and Manual (locking Point A to a user-defined timestamp).
Manual — One-Click Anchor: Anchor Point A to a specific timestamp and price. Pivot B Search Window dictates how many bars forward the tool should scan before permanently locking Point B into place.
Auto Mode Settings: Adjust the Scan Window to define how many bars back the tool searches for major swings, and set a Minimum AB Span to ensure it doesn't anchor to microscopic, noisy swings.
Features & Visibility: Toggle overlays like the True Trend Line, Vector POC, Parallel Channel, and Reflection angle.
AB=CD Settings: Configure the time allowance for Point C to form. If Hide Failed Patterns is on, invalidated geometries clear immediately to keep the chart clean.
Projection Settings: Decide whether Time Cycles scale against the duration of the A-B leg (× AB duration) or project forward uniformly (Fixed bars).
Alert Triggers: Fire native TradingView alerts the moment price crosses the True Trend Line, the maximum-deviation Channel rail, or the isolated Vector POC. Wskaźnik

Opening Range Gap (ORG) [TH Trader]Opening Range Gap (ORG) Zones
This indicator maps the overnight gap between the prior session's settlement (16:14 NY close) and the regular session open (09:30 NY), then divides that range into Fibonacci-style levels so you can track how price interacts with the gap throughout the day.
How it works:
Anchors are captured via a minute-by-minute walk over 1-minute data on the chart's own symbol, so both the 16:14 settlement price and the 09:30 open are always caught precisely — regardless of your chart's timeframe or Extended Hours setting
The gap range is divided into customizable levels (0/Open, 12.5%, 25%, 37.5%, 50%/CE, 62.5%, 75%, 87.5%, 100%/Close), each individually toggleable with its own color
The midpoint (CE) is highlighted separately as it often acts as a key reference for gap-fill trades
A background box shades the full gap zone, and a label shows the gap size in both points and percentage
Tracks whether each ORG has been "filled" (price has traded back to the settlement price) — fill detection uses your chart's own bars, so toggling Extended Hours changes what counts as filled
Extension styles:
Cap at day end — zone freezes at the end of each session
Cap at time of day — zone freezes at a custom cutoff time
Extend all lines right — zones extend indefinitely
Extend unfilled ORGs — filled zones are removed from the chart, keeping only unfilled gaps visible (with an option to keep the most recent ORG visible even after it fills)
How to use it:
Use the gap size label to gauge overnight volatility relative to recent history
Watch how price reacts at each Fibonacci level within the gap, especially the 50% (CE) level, for potential support/resistance or gap-fill setups
Combine with the CME Overnight Range and Anchored VWAP for additional overnight-positioning context
Works on any intraday timeframe; disabled on Daily/Weekly/Monthly charts since the concept requires intraday anchors Wskaźnik
