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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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! Indicateur

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

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

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

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 Indicateur

BBMA Trend & MomentumBBMA Trend & Momentum
The BBMA structure read as one running sequence rather than a handful of separate signals.
Most tools built on Bollinger Bands and moving averages draw the lines and leave the reading to
you. This one keeps a memory. It knows that momentum came first, that a reversal candle followed it, that the pullback target has already been reached, and it will not report the next step until the ones before it have happened. Each label on the chart is a position in that sequence, not an isolated condition that happened to be true.
Two of those steps are level touches rather than candle patterns, and they are treated
differently from the rest. That distinction is explained below and it matters.
THE LINES
Four families are drawn. Seven individual lines carry every rule in the script.
Bollinger Bands SMA 20 with deviation 2, giving Upper, Mid and Lower
LW MA on the HIGH weighted averages of the candle HIGH, drawn in the upper colour
LW MA on the LOW weighted averages of the candle LOW, drawn in the lower colour
EMA 50 on Close, drawn as a slower reference
The High averages sit above price and the Low averages below it, because of what they are
averaging. That is what forms the two bands the price runs between.
The seven lines every rule is written against are the three Bollinger Bands and the 5 and 10
period LW MAs on each side. Those four averages are drawn SOLID. Periods 6 to 9 are drawn DASHED, exist only to show the shape of the band, and sit on their own switch so you can take them off and see for yourself that nothing is calculated from them. Within each band the 5 sits nearer to price and the 10 further out.
The EMA 50 is drawn and nothing is measured from it either. It is there as background context for your own reading, and it can be switched off without changing a single label.
THE SEQUENCE
Upper and Lower name the band an event belongs to. Every rule below has an exact mirror on the other side, so only the Upper form is spelled out.
CSM - Candlestick Momentum
LW MA 5 High is above the Upper BB, and the candle CLOSES above LW MA 5 High.
The close is therefore beyond the outer band as well, without needing to be tested for it.
EX - Extreme
A CSM has already happened and its Extreme has not been taken yet. LW MA 5 High is still
outside the Upper BB, but a candle now CLOSES back below it. That candle must not reach down to LW MA 5 Low, LW MA 10 Low, or the Mid BB. Touching any one of the three disqualifies it. Exactly one Extreme belongs to one CSM. For another Extreme, a new CSM has to come first.
MTP - Mandatory Take Profit
After an Extreme, the first time price reaches LW MA 5 Low or LW MA 10 Low.
If a new CSM or a new MTM arrives before that touch, the MTP is cancelled and a fresh Extreme
has to form before it can be looked for again.
MLV - Market Volume Lost
After the MTP has been reached, a candle rises to the Upper BB but cannot CLOSE beyond it, and closes at or above the Mid BB. The band was tested and refused.
CSD - Candlestick Direction
A candle that opens on one side of the Mid BB and CLOSES through it, and in the same candle
closes beyond BOTH LW MA 5 and LW MA 10 on the side it broke into. An Upper CSD breaks upward through the Mid BB and both High averages; a Lower CSD breaks downward through the Mid BB and both Low averages. CSD is named by the direction it broke, not by which cycle it interrupted.
MTM - Momentum Push
After a CSM, price falls back below the Upper BB without ever CLOSING below the Mid BB, then
closes above the Upper BB again. That renewed push is the MTM candle. It is not itself a CSM,
which is what separates the two - and because it is not a CSM, it does not open the door to a
new Extreme either. It only clears whatever the previous CSM had left waiting.
RE - Re-Entry
The touch that follows CSM, MTM or CSD. An upper-band sequence looks for LW MA 5 Low or LW MA 10 Low; a lower-band sequence looks for LW MA 5 High or LW MA 10 High. Three kinds are marked separately, because they arrive from three different places:
CSM RE a pullback that was followed by a full CSM
MTM RE a pullback that was followed by an MTM push
CSD RE the pullback after a CSD
WHAT IS READ WHEN
This is the part worth being precise about.
CSM, EX, MLV, CSD and MTM are structure. They are decided on the CLOSE of a candle, and once
decided they never change.
MTP and RE are not patterns, they are level touches. A touch happens at the moment price reaches the level, not when the candle finishes, so both are read on the RUNNING candle. Waiting for the close would report the touch after the level had already been passed, which would describe something other than what happened.
When a running-candle label and a closing label land on the same bar, the running one is
removed and its text is folded into the closing label, so the two never sit on top of each other.
WHAT MAKES THIS DIFFERENT
1. It is a sequence, not a checklist.
An Extreme is not reported unless a CSM came first. An MTP is not looked for until an Extreme has been confirmed, and an MLV not until the MTP has been reached. The same candle shape means different things depending on what came before it, and the script keeps track of that.
2. A step can be cancelled, not only completed.
If momentum resumes with a new CSM or an MTM while an MTP is still waiting for its touch, that MTP is dropped. The market changed its mind, so the sequence restarts rather than reporting a target that no longer belongs to anything.
3. One Extreme per CSM.
An Extreme is the answer to a particular CSM, so it is reported once and then that CSM is spent.
Price can keep closing back inside the band for the next ten candles and none of them will be
called an Extreme. A new CSM has to arrive first. An MTM push does not substitute for one.
4. The Extreme test is deliberately narrow.
Closing back inside the band is not enough. The candle also has to stay clear of the opposite LW
MA 5 and 10 and of the Mid BB. A candle that reaches any of them has done more than fail at the edge, and it is not reported as an Extreme.
5. CSD is named by what it did.
A downward break through the Mid BB and both Low averages is a Lower CSD, wherever it happens to appear. Naming it after the cycle it interrupted would put the wrong word on the chart.
6. Touches are read as touches.
The two events that are levels rather than candle patterns are handled as levels, on the running candle, and the script says so plainly rather than pretending everything is close-based.
READING THE CHART
Each event prints a small label at the candle it belongs to. Upper-band events sit above the
candle, lower-band events below it, and where several land on the same candle they are stacked into one label instead of overlapping.
CSM momentum push beyond the outer band
MTM renewed push after a pullback
EX the reversal candle
MTP first touch of the opposite LW MA 5/10 after an Extreme
MLV the outer band tested and refused
CSD Mid BB and both same-side LW MAs broken together
CSM RE / MTM RE / CSD RE the re-entry touch, named after what preceded it
SETTINGS
Lines
- BB Period and BB Deviations for the Bollinger Bands.
- BB Shift: moves the drawn bands only. The values every rule is measured against are not
moved.
- LW MA 5 to 10 Low and LW MA 5 to 10 High: the twelve weighted average periods. Only 5 and 10 are used by any rule.
- EMA Period.
Pattern Types
- A switch for each of the seven: CSM, MTM, EX, MTP, MLV, CSD and RE.
Line Style
- Show LW MAs: the 5 and 10 period averages, the ones every rule is measured against.
- Show LW MA 6-9 Band: the four decorative periods on each side, on their own switch. Turning
them off is the quickest way to check the claim above - the chart gets simpler and not a single
label moves.
- Show or hide the Bollinger Bands and the EMA.
- Colours for the Bollinger Bands, the LW MA High band, the LW MA Low band and the EMA.
Labels
- Label Size.
ALERTS
Fourteen alert conditions, one for each event on each side:
CSM Upper / CSM Lower
MTM Upper / MTM Lower
EX Upper / EX Lower
MTP Upper / MTP Lower
MLV Upper / MLV Lower
CSD Upper / CSD Lower
Re-Entry Upper / Re-Entry Lower
The structural ones fire once per bar close. MTP and Re-Entry fire once per bar, because they are touches and are read on the running candle.
The same events are also sent through the alert function, so the "Any alert() function call"
alert type can deliver all of them through a single alert. Those messages name the exact
Re-Entry kind - CSM, MTM or CSD - which a fixed alert condition cannot.
REPAINTING
This script does not repaint.
CSM, MTM, EX, MLV and CSD are structure. They are evaluated only after a candle has fully closed and the state memory they drive is updated only on closes, so price moving inside an open candle cannot change the sequence.
MTP and Re-Entry are read on the running candle, and that deserves a straight answer rather than a disclaimer, because a label that can appear mid-candle usually can vanish mid-candle too. Here it cannot, and the reason is in the arithmetic of the level being watched.
A weighted average of the LOW gives the candle still forming a weight of one third at length 5,
and about one fifth at length 10. The running low of that candle falls three to five times faster
than the average it is being compared against. So the moment the low reaches the average, the gap between them can only keep closing. It can never reopen inside that candle. The high side is the exact mirror.
Which means:
- Once an MTP or Re-Entry label is drawn, it stays. It cannot un-touch before the candle closes.
- Reloading the chart gives the same result, because a closed candle is evaluated once using its
final low and high, and those are the most extreme values the candle ever had.
- The only thing that changes at the close is presentation: a running-candle label is folded into
the closing label for that bar so the two do not sit on top of each other. The event itself is
not re-decided.
When you create an alert, TradingView may show a caution banner saying the indicator can repaint.
That banner appears automatically for any script that uses the built in bar state variables, no
matter how they are used, because the platform cannot check the intent behind them. For the
structural alerts, choosing "Once Per Bar Close" is still recommended.
NOTES AND LIMITATIONS
- CSD is the strong form only: the Mid BB and BOTH same-side LW MAs have to be broken by the same candle. A Mid BB break on its own is not reported.
- An Extreme always needs a CSM before it. A reversal candle appearing without that history is
not an Extreme here, whatever it looks like.
- The 6, 7, 8 and 9 period LW MAs and the EMA 50 are drawn but never measured. Changing them, or hiding them, changes the picture and nothing else.
- BB Shift is visual only. Shifting the bands does not shift the rules.
- TradingView caps a script at 500 labels and the oldest are dropped once that cap is reached, so on a long history the earliest labels leave the chart.
- Detection is purely structural. It reports where each step of the sequence occurred and nothing more. It does not rank setups by quality, measure what happened next, or produce entries, targets or stops.
HOW TO USE IT
Read the labels in order rather than one at a time. A CSM on its own says momentum arrived. The same CSM followed by an Extreme says the move ran out of room. That Extreme followed by an MTP and then an MLV says the band was tested again and refused. Each label narrows what the previous one meant.
The two bands are the working area. Price spends most of its time between the LW MA High band and the LW MA Low band, and the Re-Entry marks are where it came back to one of them after a push.
A CSD is the point where the picture changes side. It is the only event in the set that breaks
the Mid BB and both same-side averages in one candle, and everything after it belongs to the new direction.
These are reference points, not entry signals on their own. Use them alongside your own analysis, your own entry method and proper risk management.
DISCLAIMER
This indicator is a pattern detection tool. It is not financial advice and it makes no claim
about profitability. Trading involves risk. Always apply your own analysis and risk management. Indicateur

Engulfing Confirmation Signals [algotim]Overview
Engulfing Confirmation Signals is a two-stage price action indicator designed to distinguish basic engulfing candle formations from engulfing setups that receive additional confirmation from market context.
The script does not treat every bullish or bearish engulfing candle as a signal. First, an engulfing candle must satisfy structural requirements and pass a rule-based quality score using trend alignment, relative volume, and ATR expansion. A qualifying engulfing candle then creates a temporary confirmation zone based on its full high-low range.
The second stage waits for price to close beyond that range within a configurable number of bars. This separates the initial pattern from the subsequent breakout confirmation.
Problem Statement
A traditional engulfing detector can produce a large number of signals because the candlestick pattern itself only describes the relationship between the current candle and the previous candle.
This script adds a filtering and confirmation process around that pattern.
Instead of treating the engulfing candle as the final event, the indicator asks two separate questions:
1. Does the engulfing candle have sufficient structural and market-context quality?
2. After qualification, does price subsequently break the engulfing candle's range before the setup expires?
This creates a distinction between a qualified engulfing setup and a confirmed breakout.
Methodology
Stage 1: Engulfing Structure
A bullish engulfing candle must close above its open while the previous candle is bearish.
A bearish engulfing candle must close below its open while the previous candle is bullish.
When full-body engulfing is enabled, the current candle must also open and close beyond the previous candle's corresponding open and close.
The current candle body must be at least the configured multiple of the previous candle's body. The default minimum is 1.05 times the previous candle body.
The pattern is evaluated on the confirmed bar close.
### Stage 2: Quality Score
A qualifying engulfing candle receives a score from three rule-based components.
**Trend alignment - 40 points**
For bullish setups, the close is compared with the configured EMA. A close above the EMA receives the full 40 points. A close within the defined 0.2% proximity band receives 20 points.
For bearish setups, the corresponding relationship is reversed.
**Relative volume - 30 points**
Volume is compared with its simple moving average:
Volume ratio = Current volume / Average volume
The resulting value is converted into a score and capped at 30 points.
This allows the scoring engine to distinguish an engulfing candle occurring with relatively high participation from one occurring on comparatively weak volume.
**ATR expansion - 30 points**
Current ATR is compared with an average of ATR values.
ATR expansion contributes additional points when current volatility is above its ATR baseline, with the contribution capped at 30 points.
The three components are added together. An engulfing candle is accepted only when its total score reaches the user-defined minimum score.
The score is a rule-based filter and should not be interpreted as a probability or expected win rate.
Signal Workflow
Bullish workflow
1. Detect a bullish engulfing candle.
2. Verify the required body relationship with the previous candle.
3. Calculate trend, volume, and ATR components.
4. Add the components into the 0-100 quality score.
5. Ignore the setup if the score is below the minimum threshold.
6. If qualified, create a bullish confirmation zone using the engulfing candle's high and low.
7. Monitor subsequent bars for a close above the engulfing candle high.
8. Generate the confirmed bullish signal when that breakout occurs.
9. Expire the zone if the breakout does not occur within the configured waiting period.
Bearish workflow
1. Detect a bearish engulfing candle.
2. Verify the required body relationship with the previous candle.
3. Calculate trend, volume, and ATR components.
4. Add the components into the 0-100 quality score.
5. Ignore the setup if the score is below the minimum threshold.
6. If qualified, create a bearish confirmation zone using the engulfing candle's high and low.
7. Monitor subsequent bars for a close below the engulfing candle low.
8. Generate the confirmed bearish signal when that breakout occurs.
9. Expire the zone if the breakout does not occur within the configured waiting period.
Why This Indicator Is Different
A conventional engulfing indicator normally stops at identifying the candlestick pattern.
This script uses the engulfing candle as the beginning of a two-stage process.
The first stage evaluates whether the pattern has sufficient contextual support using three measurable conditions: its position relative to an EMA, current volume relative to average volume, and current ATR relative to its ATR baseline.
The second stage does not immediately convert a qualified engulfing candle into a confirmed breakout signal. Instead, the engulfing candle's range becomes a temporary state that is monitored for a subsequent closing breakout.
This distinction is the main purpose of the indicator: the initial engulfing event and the later range break are treated as separate analytical events.
Inputs
Engulfing Detection
**Min Body Size vs Prior Candle**
Controls how large the engulfing candle's body must be relative to the previous candle.
**Require Full Body Engulf**
When enabled, the current candle's open and close must fully engulf the previous candle's body.
Confirmation Engine
**Trend EMA Length**
Sets the EMA used for the trend-alignment component of the score.
**Volume Average Length**
Controls the moving-average baseline used to evaluate relative volume.
**ATR Length**
Controls the ATR calculation used by the volatility component.
**Minimum Quality Score**
Sets the minimum combined score required for an engulfing candle to create a confirmation zone.
Confirmation Zone
**Max Bars to Wait for Confirmation**
Defines how long an active engulfing zone remains valid while waiting for a breakout.
**Extend Zone Box While Active**
Controls whether the active zone visually extends as subsequent bars are processed.
Visual Style
The visual inputs control bullish and bearish colors, zone transparency, Stage 1 markers, and whether the numerical quality score is displayed.
Alerts
The script provides alerts for:
* Qualified bullish engulfing
* Qualified bearish engulfing
* Confirmed bullish breakout
* Confirmed bearish breakout
Qualified alerts identify the first stage of the process. Confirmed breakout alerts identify the second stage.
Practical Usage
The Stage 1 marker can be used to locate engulfing candles that have passed the configured contextual filters.
The Stage 2 confirmation marker can then be used to identify cases where price subsequently closes beyond the qualified engulfing candle's range.
Users can adjust the minimum score to control selectivity. Higher thresholds require stronger combined trend, volume, and volatility conditions and will generally produce fewer qualifying setups.
The confirmation window can also be adjusted depending on how long the user wants an engulfing setup to remain valid.
The indicator is intended for chart analysis and can be evaluated across different instruments and timeframes. Settings should be tested against the characteristics of the market being analyzed.
Limitations
The quality score is a rule-based classification and is not a statistical probability, accuracy percentage, or guarantee of future performance.
Engulfing patterns can fail, and a confirmed range breakout does not guarantee continued price movement.
Volume behavior varies between instruments, particularly where volume data is limited or represents different types of market activity.
EMA, volume, and ATR parameters can produce different results across instruments and timeframes.
Signals are generated from completed bar conditions, but the confirmation process can still produce false breakouts during volatile or ranging conditions.
The indicator does not provide trade management, position sizing, stop-loss, or take-profit recommendations.
Notes
The script is designed as a structured confirmation framework around engulfing price action.
Its output should be interpreted as analytical information rather than a standalone trading decision. Users should evaluate the indicator with their own market context, risk management, and trading methodology. Indicateur
