Signal Audit Lab [BSL]Signal Audit Lab measures what happens after numeric events emitted by another
indicator. Connect one external plot, define how its values become long and
short events, and inspect the resulting sample on the current symbol and
timeframe.
This is a measurement tool. It does not generate signals, simulate orders, or
claim that an observed event has a trading edge.
HOW IT WORKS
The script reads one numeric `input.source()` series. Four decoders are
available:
- Signed pulse: positive and negative event pulses such as +1 / 0 / -1.
- Threshold cross: crossings above the long level or below the short level.
- Long-only edge: the first qualifying long value after a non-qualifying value.
- Short-only edge: the equivalent short-only rule.
Events are committed only on confirmed bars. Held values are deduplicated into
one edge. Optional cooldown and conflict rules make rejected events explicit.
An `na` transition cannot create an accidental first event without a prior
valid observation.
MEASUREMENT
The event-bar close is the anchor. Direction-adjusted forward returns are
measured after 1, 3, 5, 10 and 20 bars by default. Each horizon has its own
completed and pending sample count, so unfinished observations never enter the
denominator.
The round-trip cost input subtracts a user-defined basis-point amount from each
completed return. It is a sensitivity adjustment, not a fill, spread, slippage,
or execution model.
The panel reports:
- completed and pending observations;
- mean raw and cost-adjusted directional return;
- hit rate, return dispersion, and a Wilson 95% interval;
- separate aggregate, long, and short results;
- mean favorable and adverse excursion at the longest horizon;
- a payoff proxy based on mean positive versus mean negative net outcomes;
- longest-horizon session and normalized-ATR volatility splits;
- accepted long/short counts, cooldown rejects, conflicts, `na` skips, and
configuration status.
Samples below 30 observations are highlighted. Compact mode keeps aggregate
horizons, excursion/payoff, and diagnostics readable on narrow charts. Full
mode adds directional detail, raw-to-net values, Wilson intervals, dispersion,
and the split tables.
SESSION AND VOLATILITY SPLITS
The session split classifies the event bar using the selected session and
timezone. The defaults are 09:30–16:00, Monday–Friday, America/New_York.
Volatility is normalized ATR (`ATR / close`) compared with its moving-average
baseline. Defaults are ATR 14 and baseline 100. LOW is below 0.8 times the
baseline, HIGH is above 1.2 times the baseline, and values between those
boundaries are MID. Events before the baseline is available are UNCLASSIFIED.
The exact settings remain visible in Full mode.
SETUP
1. Add an indicator that exposes a numeric plot. TradingView strategies cannot
provide an external source plot.
2. Add Signal Audit Lab and select that plot under Event source.
3. Choose the decoder and levels that match the producer's numeric contract.
4. Enter a clear source label, then set horizons, cost sensitivity, session,
and volatility boundaries.
5. Read the sample count and diagnostics before interpreting percentages.
For a continuous oscillator such as RSI, Threshold cross is the natural
decoder. For a producer that exposes +1 / 0 / -1 pulses, use Signed pulse.
OUTPUTS AND ALERTS
Optional chart markers show accepted confirmed events. A hidden +1 / 0 / -1
plot is available for inspection or data export. Alert conditions are provided
for “Accepted long event” and “Accepted short event”; they use the same
confirmed booleans as the statistics.
REPAINT AND DATA BOUNDARY
Signal Audit Lab does not commit its own events before bar close. Historical
and realtime tests confirm that an unconfirmed source flicker is excluded from
the statistics until confirmation.
This boundary cannot certify the upstream source. A connected indicator may
still repaint, use future-looking data, revise history, or change behavior after
an update. Reload and Bar Replay should be repeated for the specific producer
before relying on a result. The panel therefore labels source stability as
unverified.
LIMITATIONS
- Results describe the loaded chart history, symbol, timeframe, settings, and
upstream plot. They are not universal and can change when any of these change.
- Close-to-close forward measurement is not an order-fill simulation or a
strategy backtest.
- The cost input does not model spread, slippage, liquidity, partial fills,
position sizing, pyramiding, or portfolio interaction.
- MFE and MAE use chart OHLC values inside the forward window; they do not prove
an executable path through intrabar prices.
- Session and volatility splits are descriptive. Small or imbalanced buckets
should not be treated as stable regimes.
- The script does not optimize settings, predict prices, or validate the logic
of the connected producer.
Use the Lab to form a better question, then verify that question with a proper
execution model and out-of-sample process.
ORIGINALITY AND SOURCE
This is an original BarState Labs implementation built from an independent
written specification and deterministic acceptance fixtures. No protected,
invite-only, or closed-source implementation was used. The script uses standard
forward-return, variance, Wilson interval, excursion, and ATR calculations and
is published under the Mozilla Public License 2.0.
CHANGELOG
v1.0.0
- Initial open-source release.
- Four explicit event decoders with confirmed-bar commitment.
- Five configurable forward horizons and cost sensitivity.
- Aggregate, directional, excursion, session, and volatility evidence.
- Compact and Full panels, accepted-event markers, and two alert conditions. อินดิเคเตอร์

@RSI_MATRIX@RSI MATRIX
INDICATOR CONCEPT
RSI MATRIX was designed to use the RSI in a different way from its traditional representation.
Normally, RSI is displayed in a separate panel to identify momentum, weakness, overbought and oversold conditions.
RSI MATRIX transfers significant RSI events directly onto the price chart, transforming them into horizontal price levels that remain active over time.
The core concept is simple:
A significant RSI event identifies a potentially important price level. That level remains visible until the market confirms its breakout.
This allows the trader to simultaneously observe:
• RSI behavior
• Price levels generated by previous RSI events
• The relationship between current price and active levels
• Confirmed breakouts of those levels
RSI MATRIX is not designed to automatically predict future market direction. It is a market analysis and decision-support tool.
RSI SETTINGS
The indicator uses a fully configurable RSI.
Default configuration:
RSI Period: 14
High Threshold: 65
Low Threshold: 35
Mid Level: 50
These values can be customized in the indicator settings.
RSI SYMBOLS
🔴 ▼ RED DOWN TRIANGLE
The RSI was above the High threshold and crosses back below it.
With the default settings: RSI crosses back below 65.
This event creates a new horizontal ray at the LOW of the candle that generated the signal.
🟢 ▲ GREEN UP TRIANGLE
The RSI was below the Low threshold and crosses back above it.
With the default settings: RSI crosses back above 35.
This event creates a new horizontal ray at the HIGH of the candle that generated the signal.
🟣 ▲ PURPLE UP TRIANGLE
The RSI crosses above the High threshold.
With the default settings: RSI crosses above 65.
This indicates strong positive RSI momentum.
🟣 ▼ PURPLE DOWN TRIANGLE
The RSI crosses below the Low threshold.
With the default settings: RSI crosses below 35.
This indicates strong negative RSI momentum.
RSI 50 LEVEL
RSI MATRIX can optionally display RSI crossings of the central 50 level.
▲ RSI ABOVE 50
The RSI crosses from below to above 50, providing additional information about increasing positive momentum.
▼ RSI BELOW 50
The RSI crosses from above to below 50, providing additional information about increasing negative momentum.
These indications are optional and can be enabled or disabled in the indicator settings.
HORIZONTAL RSI RAYS
Horizontal rays are one of the main features of RSI MATRIX.
When RSI crosses back below the High threshold, the indicator creates a horizontal ray at the LOW of the candle that generated the event.
When RSI crosses back above the Low threshold, the indicator creates a horizontal ray at the HIGH of the candle that generated the event.
The rays extend to the right and remain visible on the chart.
This transforms a past RSI event into a price level that can be monitored in the future.
The trader can therefore observe how price behaves when it later approaches or interacts with these levels.
LINE HIERARCHY
RSI MATRIX includes an automatic visual hierarchy to make active levels easier to read.
Lines closer to the current price can be displayed more prominently, while older lines can gradually become less prominent.
The user can configure:
• Distance from price used to identify nearby lines
• Number of bars after which a line is considered old
• Width of nearby, normal and old lines
• Transparency of each category
This hierarchy only changes the visual appearance of the lines. It does not modify their underlying logic.
CONFIRMED BREAK
A simple intrabar movement beyond a horizontal ray is not sufficient to invalidate it.
RSI MATRIX uses candle closes to confirm a breakout.
When a level is broken according to the confirmation rules:
The BREAK is confirmed
The horizontal ray is deleted
A BREAK symbol can appear on the chart
An alert can be generated
This helps distinguish temporary intrabar penetration from a confirmed breakout.
AUTOMATIC BREAK CONFIRMATION
With Automatic Deletion enabled, RSI MATRIX automatically adapts its confirmation logic according to the timeframe.
M5 AND M15
A BREAK requires 2 closes beyond the line within a 3-bar window. The two closes do not necessarily need to be consecutive.
HIGHER TIMEFRAMES
A BREAK requires 2 consecutive closes beyond the line.
All confirmations are evaluated at candle close.
BREAK DIRECTION
▲ BREAK LONG
A horizontal ray has been broken and confirmed in the upward direction.
▼ BREAK SHORT
A horizontal ray has been broken and confirmed in the downward direction.
LONG and SHORT describe the direction of the confirmed breakout. They should not automatically be interpreted as buy or sell signals.
ALERTS
RSI MATRIX includes automatic alerts for confirmed BREAK events.
Example:
BREAK LONG | TF: M15 | Price: 1.16850
BREAK SHORT | TF: H1 | Price: 1.16520
Each alert contains the BREAK direction, timeframe and price at confirmation.
Alerts are generated at candle close, only after the BREAK confirmation conditions have been satisfied.
This prevents a temporary price movement during candle formation from being treated as a confirmed breakout.
RSI BOX
The current RSI value can be displayed in a box in the upper-right corner of the chart.
▲ RSI xx.x = RSI is greater than or equal to 50
▼ RSI xx.x = RSI is below 50
The box color changes accordingly, providing an immediate view of the current RSI condition without requiring a separate RSI panel.
PRACTICAL USE
RSI MATRIX can be used to create a dynamic map of price levels derived from previous RSI events.
RSI EVENT → LEVEL CREATION → LEVEL REMAINS ACTIVE → PRICE RETURNS → POSSIBLE CONFIRMED BREAK
The objective is not only to observe what RSI is doing now. RSI MATRIX preserves on the price chart the levels associated with previous significant RSI events.
Active horizontal rays represent levels that have not yet been invalidated according to the indicator's confirmation rules.
A confirmed BREAK indicates that price has satisfied the conditions required for that level to be considered broken.
QUICK SYMBOL GUIDE
🔴 ▼ Red Triangle → RSI crosses back below the High threshold → horizontal ray created at the candle LOW.
🟢 ▲ Green Triangle → RSI crosses back above the Low threshold → horizontal ray created at the candle HIGH.
🟣 ▲ Purple Triangle → RSI crosses above the High threshold.
🟣 ▼ Purple Triangle → RSI crosses below the Low threshold.
▲ RSI > 50 → RSI crosses above the central 50 level.
▼ RSI < 50 → RSI crosses below the central 50 level.
━━━━ Horizontal Ray → Price level generated by a previous RSI event and still active.
▲ BREAK LONG → Confirmed upward breakout of an active horizontal ray.
▼ BREAK SHORT → Confirmed downward breakout of an active horizontal ray.
IMPORTANT NOTICE
RSI MATRIX is a technical analysis tool and is not an automated trading system.
Symbols, horizontal rays and BREAK events should be interpreted within the context of market structure and the timeframe being analyzed.
BREAK LONG and BREAK SHORT indicate confirmed breakouts according to the indicator's rules and should not automatically be interpreted as buy or sell signals. อินดิเคเตอร์

RSI Extreme Value Labels [DotGain]RSI Extreme Value Labels
A standard RSI that writes the actual number on the chart whenever the indicator turns at an extreme. Instead of eyeballing how deep a spike went, you see it: 82, 74, 19.
How it works
The script looks for confirmed pivot highs and lows in the RSI line. A pivot high only gets a label if it sits at or above the overbought level; a pivot low only gets one if it sits at or below the oversold level. Everything in between stays clean.
Because pivots need bars on both sides to be confirmed, labels appear a few bars after the actual turn. That is the trade-off for not repainting — a label, once printed, stays where it is.
Settings
RSI length, source and line color
Overbought / oversold thresholds, plus an optional shaded zone
Pivot bars left and right — larger values mean fewer but more significant labels
Decimal places, vertical offset, text color and size
Notes
Useful for comparing the strength of successive extremes, spotting divergences at a glance, and reviewing past reactions without hovering over the line. Works on any symbol and timeframe.
Have fun :)
Disclaimer
This RSI Extreme Value Labels indicator is provided for informational and educational purposes only. It does not, and should not be construed as, financial, investment, or trading advice.
This indicator is an independent implementation of a standard Relative Strength Index combined with a pivot-based labeling routine, and is not affiliated with, or endorsed by, any third-party trading systems, strategies, protocols, or trademarked methodologies. The labels, overbought and oversold zones, and RSI values displayed by this indicator are generated by a predefined set of algorithmic rules based on historical price data and user-defined input settings. They do not constitute a direct recommendation to buy, sell, or hold any financial instrument or digital asset.
All trading and investing in financial markets involves a substantial risk of loss. You may lose part or all of your invested capital. Past performance does not guarantee future results. This indicator marks momentum extremes only after the required confirmation bars have closed, and may therefore produce lagging, incomplete, or misleading signals. An extreme RSI reading can persist for a long time in a strong trend and does not by itself indicate a reversal. Market behavior is influenced by many external factors and can deviate significantly from historical patterns or expectations.
The creator DotGain assumes no responsibility or liability for any financial losses, damages, or decisions made based on the use of this indicator or the information it provides. You are solely responsible for your own trading and investment decisions. Always conduct your own research (DYOR), use proper risk management, validate insights with additional tools or analysis, and consider your personal financial situation and risk tolerance before making any financial decision. อินดิเคเตอร์

Dynamic Deviation Channels (RSI Trigger) [ChartPrime]Dynamic Deviation Channels (RSI Trigger)
🔶 OVERVIEW
Standard volatility channels paint static bands across your entire chart, ignoring shifting market momentum and leading to false breakouts in trending environments. The Dynamic Deviation Channels (RSI Trigger) solves this by combining ATR-based volatility bands with a dynamic Relative Strength Index filter.
Instead of showing overlapping channels on both sides simultaneously, the indicator intelligently displays upper bands only when momentum is bullish/neutral and lower bands only when momentum shifts bearish, keeping your workspace clean and focused on active market participation zones.
🔶 HOW IT WORKS
The indicator processes market structure and momentum through a multi-stage execution pipeline:
Adaptive Mid-Line Trend Matrix: Computes a configurable moving average (SMA, EMA, WMA, or RMA) to serve as the central channel baseline, dynamically coloring itself based on short-term price slopes.
ATR Volatility Multipliers: Expands outward from the central basis using multi-tiered ATR deviations to establish structured Level 1, Level 2, and Level 3 boundary channels.
RSI Directional Filtering: A smoothed RSI engine checks prevailing momentum state. When the RSI value is at or above 50, upper channel bands activate; when it drops below 50, lower channel bands engage.
Smart Signal Generation: Plots precise entry triangles when price interacts with the primary deviation bands, utilizing a built-in bar gap control to prevent signal clustering.
🔶 KEY FEATURES
Conditional Band Rendering: Automatically hides inactive channel zones based on RSI momentum thresholds, eliminating chart clutter during strong directional trends.
Multi-Tiered Deviation Zones: Features three distinct deviation multiplier levels with custom background fills to highlight volatility expansion and over-extension zones.
Glowing Mid-Line Display: A highlighted central moving average complete with a soft glow effect for immediate trend-direction recognition.
Live Deviation Labels:** Clean, real-time price labels pinned to the final bar of each active upper and lower deviation boundary for instant reference.
🔶 TRADING APPLICATIONS
Momentum-Aligned Rebounds:** When lower bands are active during a bearish-to-neutral momentum phase, look for price rejections off Deviation Level 1 or 2 to catch high-probability counter-trend bounces.
Volatility Expansion Breakouts:** Monitor price interaction with outermost Level 3 bands. A clean break past these boundaries during high-volatility regimes signals an aggressive continuation move.
Trend Filtering via Mid-Line:** Use the glowing central moving average slope and color state to determine primary bias before taking entries off individual deviation levels.
🔶 SETTINGS
Moving Average (Length / Type): Controls the lookback period and calculation method (SMA, EMA, WMA, RMA) for the central baseline channel.
RSI Filter (Length / Source): Adjusts the sensitivity and data input source used by the momentum filter engine to toggle upper and lower band visibility.
Deviation Bands (Multipliers / Display Toggles): Customizes the width spacing for all three deviation tiers and lets you toggle the visibility of the outermost channels.
🔶 CONCLUSION
The Dynamic Deviation Channels (RSI Trigger) brings clarity to volatility channel analysis. By filtering band display through real-time RSI momentum, it ensures you are only looking at the structural levels that matter most for your current market direction. อินดิเคเตอร์

Normalize RSI | TR📊 Normalize RSI | TR – Smart RSI Oscillator with Adaptive Normalization & Trend Signals
This indicator transforms the classic RSI into a dynamic, normalized oscillator that adapts to market conditions. It applies a multi-stage smoothing and normalization process to filter out noise, highlight true momentum shifts, and generate clear trend signals.
🔧 Key Features:
RSI Normalization – Centers RSI around 50 and normalizes it over a user-defined lookback period, creating a clean, bounded oscillator.
Dual Smoothing – Applies an exponential smoothing factor twice, allowing you to control responsiveness and reduce false signals.
Trend Detection – Automatically identifies bullish and bearish trends based on crossing customizable overbought/oversold levels.
Dynamic Color Palette – Choose from 9 color themes (Classic, Modern, Heat, Robust, Accented, Monochrome, Moderate, Aqua, Cosmic) to match your chart aesthetic.
Visual Signals – Displays colored candlesticks, background zones, entry shapes (triangles), and a real-time table with the current trend direction.
Momentum-Based Fill Transparency – The fill area between the zero line and the oscillator adapts to momentum strength, giving you visual cues on volatility.
Multi-Plot Display – Plots the normalized RSI, zero line, overbought/oversold levels, and includes a floating label with the latest value.
⚙️ Customizable Inputs:
RSI Length & Smoothing MA Type (EMA, SMA, RMA, WMA, VWMA, HMA, DEMA, TEMA, TRIMA, FRAMA, SWMA)
Normalization Length & Smoothing Factor
Clipping Factor to preserve extreme moves
Overbought / Oversold Levels (adjustable from -50 to +50)
🚨 Alerts Built-In:
Bullish / Bearish crossover of zero
Entry into Overbought / Oversold zones
📈 Ideal For:
Swing traders and scalpers looking for a refined RSI-based edge
Traders who prefer visual clarity and customizable color schemes
Those who want to combine momentum, trend, and volatility into one indicator อินดิเคเตอร์

Blended Momentum OscillatorBlended Momentum Oscillator
Overview
A bounded momentum indicator plotted in a separate pane below the chart. It blends two normalized momentum measures into a single 0–100 line, smoothing out the whipsaw that either measure produces on its own.
How it works
The output is the arithmetic mean of two components:
1. **Smoothed RSI** — a 14-period RSI passed through a 14-period Hull Moving Average. The HMA reduces lag compared to a simple or exponential smoothing of the same length while cutting the noise of raw RSI.
2. **Slow Stochastic** — a 200-period Stochastic of close against the 200-bar high/low range, smoothed with a 50-period EMA. The long lookback makes this component a slow-moving positional reference rather than a fast trigger.
Both components are natively bounded to 0–100, so their average is too. Missing values are substituted with the neutral midpoint of 50 so the line stays continuous on new symbols or thin history.
The fast RSI leg supplies responsiveness; the slow Stochastic leg anchors the reading to where price sits within its longer-term range. A high combined value therefore requires both recent momentum *and* an elevated position in the 200-bar range.
Reading the indicator
**Color gradient.** The line is continuously colored by its own value, dark green at the bottom of the scale through green, lime, yellow, orange, red, to maroon at the top. Color alone communicates the current regime without reading the number.
**Levels.** Dashed lines mark 80 and 20; a dotted line marks the 50 midpoint. The 20–80 band is lightly shaded. Because both components are long-period and averaged, excursions past 80 or below 20 are comparatively rare — these are not the frequent, low-signal touches typical of a standalone 14-period RSI.
**Pivot markers.** An X cross is plotted at each confirmed local extreme of the oscillator that occurs in an extreme zone: pivot highs above 80 (maroon) and pivot lows below 20 (teal). Detection uses one bar left and one bar right, so a marker is confirmed one bar after the fact and is drawn back at the pivot bar. These mark the point where an extended reading actually turns, rather than the moment it first enters the zone.
**Scale.** Two invisible anchor plots at 0 and 100 pin the pane to the full range. The vertical scale never rescales to the visible data, so the distance between readings is comparable across symbols and timeframes.
Notes
- No inputs. All periods are fixed by design; the component lengths are chosen to be deliberately mismatched in speed, and altering them changes the character of the blend.
- Requires roughly 200 bars of history before the slow component is fully seeded.
- Timeframe-agnostic. It works on any chart period, but the 200-bar Stochastic means the effective lookback in calendar time scales with the chart's timeframe.
- This is an analytical tool, not a signal system. Extreme readings and pivot markers describe conditions; they are not entry or exit instructions.
อินดิเคเตอร์

GBPJPY 200EMA Pullback [FibonacciFlux]A with-trend 200EMA filter around a counter-trend RSI entry, built for one pair, published with the arithmetic that says confirming it would take about four years, and with the first month of that data saying no.
WHAT IT DOES
On a 1-minute GBPJPY chart:
Long : close above EMA(200) and RSI(14) at or below 30
Short : close below EMA(200) and RSI(14) at or above 70
Hold : 500 bars, then exit. No overlapping positions - while one is open, no new entry is taken.
Triangles mark entries, a cross marks the exit, and two Data Window series report the position (+1 / -1 / 0) and the bars remaining, so another script can read them with input.source. That is the whole indicator. It places no orders and computes no equity curve.
WHERE IT CAME FROM
It is the one configuration that survived a holdout in a search run on 2026-07-27, on GBPJPY 1-minute data from histdata, 2002-2026, scored in basis points against the population of all 500-minute moves:
dev 2002-2013 : diff +3.566bp t = +3.56 n = 2,949 MDE 2.805 powered
holdout 2014-2026 : diff +2.186bp t = +2.94 n = 3,179 MDE 2.086 powered
after cost : 1 pip +1.579bp / 2 pip +0.972bp
Selection was made on dev only: of 59 cells, 2 had power, and the larger diff of those 2 was taken. The holdout was scored once.
The pair-specific argument is that on 12 untouched pairs, spanning 17.5 to 20.9 years each, the plain RSI counter-trend leg is positive on every one (+0.122 to +1.600bp) and adding the 200EMA filter drags the average down to +0.097bp - so on those pairs the filter is redundant. GBPJPY is the only one that is negative unfiltered (-0.755bp) and only turns positive once the filter is applied.
NONE OF THAT IS RE-VERIFIED HERE, AND THE ORIGINAL AUTHOR'S OWN RESERVATIONS ARE PART OF THE CLAIM
Those figures come from histdata M1 that is not obtainable from TradingView, so this publication does not reproduce them and does not ask you to take them on faith. They are stated as the provenance of the rule, not as evidence for it. The reservations recorded with the research are reproduced in the source header verbatim in substance, and they are unusually damaging:
The holdout was used twice. The first use was invalid, because the selection rule ranked cells by diff without checking power and picked a cell with n = 109 and no power. As trials, that is a multiplicity of 2.
The time split was chosen after looking at the pooled 24-year aggregate, so it is partially contaminated, and the year-by-year distribution has never been looked at.
The 500-minute hold is a time-based exit. Take-profit and stop-loss were never tested; adding either makes this a different system.
By the research's own account, the only fully uncontaminated evidence is forward data from the research date onward.
SO HERE IS THE FIRST 28 DAYS OF EXACTLY THAT
28,378 one-minute GBPJPY bars from Yahoo Finance, 2026-07-29 to 2026-08-26, entirely after the research date, run through this exact rule:
22 completed round trips
mean +4.118bp, t = +0.46, median -4.17bp, 8 wins of 22
Read no further into that mean than the next paragraph allows, because three of those twenty-two are not what this rule says it does.
THE HOLD IS 500 BARS, NOT 500 MINUTES, AND OVER A WEEKEND THOSE ARE NOT THE SAME THING
The exit fires 500 BARS after entry. On a 1-minute chart that is 500 minutes - except across the weekend close, where the next bar is Monday. In this 28-day window the forward series has four gaps of 49.5 hours, and three positions were opened close enough to Friday's close that their 500-bar hold ran 3,480 minutes of wall clock, or 58 hours, instead of 500 minutes.
Those three trades are the entire positive result. They returned +160.2bp, -12.4bp and -9.5bp, contributing +138.4bp of the +90.6bp total. On the nineteen trades that really are 500-minute holds:
mean -2.514bp, t = -0.44, median -3.96bp, 7 wins of 19
Negative. So the sentence that would have been written here - "the sign agrees with the research" - is false on the trades the rule actually describes. It agrees only if three weekend-spanning holds are counted as if they were 500-minute ones, and one of those is a +160bp outlier.
This is a property of the script and not only of my data. The hold is implemented as a bar counter, so anyone running it live will get 58-hour holds across weekends too, with no marker or setting to tell them apart. It is worth knowing before the exit cross is read as a 500-minute result.
Against a null that circularly shifts the forward-return series while keeping the entry times where they are, over 2,000 draws, the all-22 mean sits at upper-tail p = 0.261 - unremarkable. The two statistics that come closest to significance both point against the rule: the win rate of 36.4% against a null median of 50.0% at lower-tail p = 0.114, and the median trade of -4.17bp against a null median of +0.50bp at lower-tail p = 0.079.
One thing does line up. The rule fires 0.786 times a day here, against 0.725 in the research's holdout and 0.673 in its dev period - so the event definition being tested is the same one, which is the least this check could establish and it did establish it.
One more sizing note. The 22 trades occupy 11,000 of the 28,378 bars, and the 105 raw signals are only 46 contiguous episodes averaging 2.3 bars each. The count of independent observations here is 22 - not 105, and certainly not 28,378.
Two numbers in this write-up are worth labelling before they get quoted back as evidence. The entry count of 22, and the 79% of raw signals the no-overlap gate suppresses, are both EXACTLY invariant when the forward returns are circularly shifted - p = 1.000 and p = 0.926. They describe how often the rule fires and how clustered its signals are, which is a property of the rule and of the autocorrelation of price. Neither can ever be evidence that it predicts anything. They are here for sizing expectations, and for nothing else.
THE NUMBER THAT MATTERS MOST
On the nineteen clean trades, with a 24.9bp spread, the smallest effect this window could resolve at 80% power is 16bp. That is seven times the effect being claimed. (Counting all twenty-two, the spread is 41.9bp and the floor is 25bp, eleven times.)
Detecting +2.186bp at 80% power needs roughly 1,000 trades. At 0.68 clean trades a day, that is about four years of forward data - and that is the optimistic figure, taken on the tighter of the two spreads.
That is not a criticism of the research; it is the size of the thing being looked for. A 2bp edge over a 500-minute hold is small against 42bp of noise per trade, and no amount of care in the backtest changes how long the clean test takes. Until then the claim is neither confirmed nor refuted, and this indicator is a way to watch it rather than evidence for it.
THE PUBLISHED SETTINGS ARE THE WEAKEST OF THEIR OWN NEIGHBOURHOOD
Running the same shift null on nearby parameter cells, upper-tail p for the mean: 0.282 at the published 30/70 with EMA200 and a 500-bar hold, against 0.020 at RSI 40/60, 0.036 at 25/75, 0.055 at a 100-bar hold, 0.060 at EMA150 and 0.075 at a 250-bar hold. Five of the seven neighbours tried beat the published cell.
That is not an argument for moving the settings, and it should not be read as one. Eight cells were looked at; one below 0.05 is what chance produces. A wider 100-cell sweep scored with a family-wise max-t null clears nothing at all - the best cell reaches t = 2.43 against a null whose own maximum averages 2.18, at p = 0.374. What it is an argument for is distrusting the precision of any single cell, including the one shipped here, which was itself chosen as the best of 59 on dev data.
THE CROSS-PAIR CLAIM DOES NOT SHOW UP IN ONE MONTH EITHER
Over the identical 28-day window, restricted to clean 500-minute holds, the same rule returns -3.45bp on EURJPY (n=14), +12.16bp on USDJPY (n=15), +20.11bp on AUDJPY (n=13), -2.30bp on GBPUSD (n=20) and -1.32bp on EURUSD (n=28), against -2.51bp on GBPJPY (n=19). None is significant, and GBPJPY is fourth of six.
Worse for the pair-specific argument, USDJPY reproduces its exact signature and does it harder. The argument is that GBPJPY alone is negative on the raw RSI leg and only turns positive once the EMA filter is applied. On this window USDJPY goes from -3.89bp unfiltered to +8.66bp filtered, a swing of +12.54bp, against GBPJPY's -7.13bp to +4.12bp, a swing of +11.25bp. Neither swing is resolvable - Welch gives p = 0.304 and p = 0.430, and all six pairs' intervals straddle zero - but the thing the argument is named after shows up on a second pair, larger.
The more specific version of the claim fares slightly better. Stripping the EMA200 filter and taking the RSI leg alone, GBPJPY is the most negative of the six at -7.13bp over 50 trades - which is the direction the research predicts - but USDJPY at -3.89bp and EURUSD at -3.64bp are negative too, so "GBPJPY is the only negative one" is not what this month shows. At about 50 trades per pair and a 40bp spread, the standard error is around 6bp, so none of this column separates from zero.
THE FILTER ITSELF DOES NOT CLEAR ON FORWARD DATA, AND THE NULL DECIDES IT
The EMA200 filter is the whole argument for this being a GBPJPY rule. Isolating it - shifting only the close-above-EMA200 condition, which preserves that state's very high persistence - it reaches p = 0.094 and does not clear. Against a null that instead selects bars by an independent coin flip it reaches p = 0.025 and appears to clear. The difference is entirely the null: a per-bar coin flip destroys the clustering that makes the filter's state meaningful, so it is the easier and the wrong comparison. On this month of data the filter is not established.
The filter also behaves like a switch rather than a knob. Between EMA lengths of 9 and 70 it emits zero entries at all, because over that band a close above a fast EMA and RSI at or below 30 almost never coincide. That dead zone reproduces identically on EURJPY, USDJPY and AUDJPY, so it is pair-independent mechanics rather than anything about GBPJPY - which is worth knowing, because the pair-specific story is the reason the filter is there.
WHAT CHANGED IN THIS VERSION
The exit marker was drawn with location.absolute against a boolean, which plots it at price 0. On any instrument that does not trade near zero that both hides the marker and drags the price axis down to zero: loaded on BTCUSDT it compressed every candle into a hairline at the top of the pane and filled the bottom with a grey smear. It now takes the close, so the cross appears where the exit actually happens. It was also a size.tiny grey cross sitting exactly on the close, which is close to invisible against a candle; it is now small and silver. This is the one change that alters what you see.
The entire file was in Japanese - header, input labels, plot titles and alert names - and is now in English. The title was "GBPJPY Pullback", which named a pair and a concept but not a mechanism; it now names the mechanism too. An MPL header was added.
The source noted that it had never been compiled, because it was written without a Pine environment. It compiles.
The measurements above are now in the header and in three input tooltips. No computation changed.
HOW THE NUMBERS WERE CHECKED
The logic was reimplemented outside Pine and cross-checked against this chart's Data Window on BINANCE:BTCUSDT 1-minute - not GBPJPY, deliberately, because Binance klines can be fetched bit-identical to what TradingView charts while a forex feed cannot. Eleven quantities on ten bars: the EMA, the RSI, both raw conditions, both entry flags, the exit flag, the position and the bars remaining. All 110 values round to the decimals TradingView prints, worst raw difference 4.6e-3. The state machine matched exactly on every bar, including one carrying an exit and one where a raw signal was correctly suppressed because a position was already open - so the no-overlap gate and the exit path were exercised rather than assumed.
That gate is not decoration. Over the forward window it suppresses 83 of 105 raw signals, 79% of them. The research notes that a run without it collapsed an apparent n of 1.35 million to an effective 2 and produced a fake t of +66.84.
WHAT THE MEASUREMENTS COVER
The forward test is 28 days, one pair, one data vendor, in a window where GBPJPY fell 81bp. The cross-pair table is the same 28 days. The implementation check is on a crypto pair on a different exchange. Nothing here covers the 2002-2026 research period, transaction costs beyond the figures quoted from the research, or any exit other than the 500-bar timer.
WHAT YOU NEED ON THE CHART BEFORE ANY OF THIS APPEARS
Nothing is discarded manually; Pine's na-propagation does it, so the first entry cannot occur before bar 200. Two consequences on a short chart. The EMA200 seed stays visible well past its first plotted value - recomputing from a start 6,000 bars later, the series disagrees with the settled one for another 432 bars. And with a 500-bar hold, a position opened in the last 500 bars can never show its exit cross. On a 1,500-bar chart that is 13% lost to the seed and 33% to the unclosable tail, leaving about half the chart able to host a complete round trip.
REPAINTING
None by construction. Every value is a confirmed same-bar value and there is no request.security anywhere, so there is no higher-timeframe path by which a value could change after its bar closed. On the still-forming bar the entry flag can appear and disappear as price moves, which is ordinary intrabar behaviour and settles when the bar closes.
Open source under MPL 2.0. Nothing here is a forecast, a signal service, or a claim of profitability. อินดิเคเตอร์

Gradient Ribbon | EMA Ribbon Slope-Acceleration SystemMost EMA ribbon strategies only check if the moving averages are stacked in order — but a ribbon can stay stacked long after the actual trend has run out of steam. Gradient Ribbon looks past the stacking and measures the slope of each EMA directly, only signaling when the ribbon is actively accelerating apart. It catches trend ignition early and flags deceleration before the EMAs ever cross.
Features
5-EMA ribbon (8/13/21/34/55) with per-line slope calculated as % change over a configurable lookback
Fan-open detection: all slopes must be same-direction and increasing in magnitude from slowest to fastest EMA — true acceleration, not just alignment
Long and short logic, fully symmetrical
RSI confirmation filter tuned to each direction, avoiding both weak momentum and overbought/oversold extremes
Volume filter requiring above-average participation, so fans opening on thin volume get filtered out
ATR-based stop loss with equity-percentage position sizing — size automatically adapts to current volatility
Fixed R-multiple take profit
Compression-based exit: closes the trade when the fan starts flattening back toward parallel, ahead of an actual EMA cross
Gradient-intensity fill between the fastest and slowest EMA — barely tinted when flat, vivid teal (bullish) or fuchsia (bearish) when fanning hard, so acceleration is visible at a glance
Entry/exit background highlights for quick visual confirmation on the chart
Explanation
The core idea is that trend strength isn't binary — it has an angle. A ribbon that's flat-stacked from an old move looks the same as one that just started accelerating, if all you check is order. By measuring each EMA's slope and requiring the spread between fastest and slowest slope to be expanding, the script isolates the moments where a trend is genuinely gaining momentum, not just persisting. Exits work the same way in reverse — instead of waiting for a lagging crossover, the script reads the fan closing back up as an early deceleration signal.
Tips
The fanEnterThresh value is highly instrument- and timeframe-dependent. Start with the default and walk it up/down while backtesting rather than trusting it blindly.
Shorter slopeLookback reacts faster to fresh acceleration but is noisier on choppy instruments; lengthen it for smoother, higher-timeframe use.
On low-liquidity instruments, consider loosening or disabling the volume filter — thin markets can have naturally erratic volume that isn't meaningful.
Watch the gradient fill even without a signal — a fan that's steadily brightening (even pre-threshold) is often a useful early heads-up.
Pair with a higher-timeframe trend filter if you want to trade only in the direction of the larger structure; this script is direction-agnostic by design.
กลยุทธ์

Coil Breaker | RSI Range CompressionMost RSI strategies fire off static 30/70 thresholds. Coil Breaker does something different: it treats RSI itself as a volatility asset and watches for its own trading range to contract to a multi-month low — a "coil" — before trading the breakout when it releases.
How it works:
Measures RSI's high-minus-low range over the last N bars and ranks it against its own history using a percentile score
When that range compresses into the bottom percentile (default 20%), RSI is flagged as "coiled" — oscillating tightly around 50, momentum dormant
A dynamic Bollinger-style channel is plotted directly around RSI so you can visually watch the coil tighten before it fires
Once a squeeze has been active recently, a breakout above/below the established coil band (not the still-forming one) triggers an entry
Direction is set by an EMA slope filter — the coil tells you something's coming, the EMA tells you which way
Optional ADX filter keeps you out of truly dead, directionless chop
ATR-based stop, fixed R-multiple target, and equity-percent risk sizing so every trade risks a constant dollar amount
Important — read before trading:
This is a breakout/momentum system, not a mean-reversion one, and it behaves accordingly: expect a low win rate (often 30–40%) alongside a high average win/loss ratio. Most coil breakouts fail or chop — you're paying for early entry with more false signals. The edge comes from asymmetric payoff (2R+ winners vs. 1R losers), not from being right often. Judge this strategy on profit factor and expectancy, not win rate. If a 60%+ win rate is what you're looking for, this isn't that system.
Tips:
Backtest coilLen, pctLen, and the percentile threshold across your specific instrument/timeframe — coil dynamics vary a lot between assets
Watch the equity curve shape, not just the total return — make sure gains aren't carried by one or two outlier trades
Works best on instruments/timeframes with genuine volatility cycles (expansion/contraction), not ultra-choppy or illiquid markets
Pair with higher-timeframe context if you want to filter out counter-trend coil breaks
กลยุทธ์

RSI-Quadrature Phase Fusion [FibonacciFlux]Two oscillators read as one vector on a plane and four timeframes averaged into one direction, published with the measurement that says the plane is a line, the four quadrants are two, and the number in the middle of it is lower on real data than on a reshuffled copy of the same price path.
WHAT IT COMPUTES
Each of four timeframes (15m, 1H, 4H, 1D by default) contributes two readings. Stochastic %K says where price sits inside its recent range; RSI says how one-sided the recent moves have been. They become the two axes of a plane - x is (%K - 50)/50, y is (RSI - 50)/50 - so each timeframe is one point on it. Both oscillators are computed inside their own timeframe on that timeframe's own bars, and by default the value used is the previous closed higher-timeframe bar, so nothing repaints.
Each point is then normalised to unit length. Only its direction survives; how far from the centre a timeframe sits is thrown away. The four unit vectors are averaged with the fusion weights - 0.10, 0.20, 0.40, 0.30 by default, normalised onto a simplex - into one resultant. The coloured line is 50 plus 50 times that resultant's x component. The filled area under it is the resultant's length on a 0 to 100 scale, and that is what the script calls coherence. The background names the quadrant the resultant occupies, and the table prints both raw sensors, both axes and the quadrant for every timeframe plus the fused row.
THE PLANE IS A DIAGONAL
Stochastic %K and RSI on the same series are close to the same measurement. Over 5,985 scored bars of 15m data from 2026-06-22 to 2026-08-23 they correlate 0.745 to 0.801 inside every one of the four timeframes, on all three instruments tested, and they sit on the same side of 50 on 80.6% to 88.8% of bars.
So the two-axis plane is mostly one axis with scatter around it, and the quadrant map is really two states. The off-diagonal quadrants - HOLLOW (%K high, RSI low) and SETUP (%K low, RSI high) - are occupied on 13.6% of bars on BINANCE:BTCUSDT, 13.3% on ETHUSDT and 18.7% on SOLUSDT. Two genuinely independent axes would put that number near 50% by symmetry, before any simulation.
The leg counts say the same thing from the other side. When the fused vector sits in HOT or SOLD, an average of 2.6 to 2.9 of the four timeframes are in that same quadrant. Off-diagonal, the average is 0.8 to 1.2 of four: the fused vector lands there because the legs cancel, not because any of them points there.
COHERENCE IS LOWER THAN ON A RESHUFFLED COPY OF THE SAME PRICE
Coherence is the length of a weighted mean of four unit vectors. As a statistic it starts high: four independent, uniformly random directions under the default weights give a median of 49.6, clear 60 on 34.5% of draws and clear 87 on 5.1% (eight independent runs of 500,000 draws). That is a property of the scale rather than a null - this indicator cannot produce independent directions, because its four legs are nested aggregations of one price path.
The null that keeps the construction and destroys only the market is to resample the real 15m bars, each keeping its own open-high-low-close geometry, chain them onto a running price, and re-aggregate them into 1H, 4H and 1D exactly as the exchange would. The nesting survives; the order of the market's moves does not. Real data comes out BELOW that null, on every instrument and under both an i.i.d. resample and a one-day block bootstrap (60 draws each). The real figures here differ slightly from the ones above because every draw, and the real series with it, is rebuilt from the same 62 days of 15m bars so that the daily leg warms up on identical history - which leaves 4,575 scored bars rather than 5,985:
mean coherence BTCUSDT 59.84 vs 63.28 / 62.51 ETHUSDT 57.36 vs 63.66 / 63.60 SOLUSDT 54.72 vs 62.70 / 62.14
share above 87 BTCUSDT 23.23 vs 29.18 / 27.28 ETHUSDT 24.24 vs 29.88 / 28.90 SOLUSDT 20.32 vs 28.91 / 26.17
There is no alignment excess to report. A weaker null - rotating the four legs against each other in time - does put real coherence above chance at p = 0.002 to 0.006, and that is the test a description would normally quote. It should not be quoted: a synthetic driftless random walk passes the same test by 5.1 to 7.4 coherence points at p = 0.010 to 0.055. That null destroys the nesting, which is a property of the indicator, not of the market.
THE DEFAULT THRESHOLD IS NOT A FILTER
At 60, the gate passes 44.3% of bars on BTCUSDT, 45.8% on ETHUSDT and 43.4% on SOLUSDT, against 34.5% for four random directions. It is a coin flip sitting about ten points of chance-rate above the floor.
There is also a way to switch it off by accident. Because the other legs can cancel at most one minus the largest normalised weight, coherence has a hard floor of max(0, 2·wmax - 1) × 100. At the defaults the largest weight is 0.40 and the floor is zero. Raise one weight past half the total and the floor rises with it: a position weight of 5 against the other defaults pins coherence at 75.4 or above on every bar, and a single-timeframe configuration pins it at exactly 100. The gate then passes everything, silently. That is in the weights tooltip now.
THE ALERT'S TWO GATES FIGHT EACH OTHER
The one alert that survives here marks a quadrant shift while coherence is above the threshold. The two conditions are close to opposites by construction: coherence is high when the fused vector is holding still, and a quadrant change is what happens when it is not.
Measured, a quadrant-change bar carries a median coherence of 36.6 on BTCUSDT against 54.1 for bars in general. Only 8.1% of the 172 quadrant changes clear 60, against 44.3% of all bars - five times less likely. ETHUSDT gives 5.7% of 315 changes against 45.8%, eight times less likely; SOLUSDT 7.7% of 313 against 43.4%. That is why the alert fires just 14, 18 and 24 times over 62 days. Rare, yes - but rare because the gates disagree, not because something unusual is being caught.
NO STATE CARRIES FORWARD INFORMATION, AND HERE IS WHAT THAT IS WORTH
Testing all eleven states this script draws - both coherence thresholds, the low-coherence state, all four quadrants, quadrant shifts with and without the coherence gate, and both extremes of the wave - at horizons of 4, 16 and 96 bars, in both signed and absolute return, counted as episodes rather than as overlapping bars, against 500 shared circular shifts of the forward-return series: the largest standardised effect anywhere in the family of 66 tests is 2.91 on BTCUSDT, against a family whose own median maximum on a shifted copy is 2.49. The family-wise p is 0.269. ETHUSDT gives 2.17 against 2.51 (p = 0.735) and SOLUSDT 2.30 against 2.49 (p = 0.659).
A negative result is only as good as its power, so: 62 days of 15m bars hold 1,496 non-overlapping one-hour windows, 374 four-hour windows and 62 daily ones. For a state occupying a quarter of them, the smallest mean difference this window could detect at 80% power is 0.066% at one hour, 0.271% at four hours and 1.694% at one day. The one-hour and four-hour results are therefore real tests. The daily one is not: nothing short of an enormous daily edge could have shown up in 62 windows, and the absence of one there means very little.
One member of that family is worth naming, because anyone who tests it on its own will find it. The gated quadrant shift on BTCUSDT is followed by a lower four-hour return than the rest of the sample: 12 of its 14 events are negative, mean -0.569% against an unconditional +0.053%, which taken alone clears p = 0.01. It does not survive contact with anything. It is the maximum of the 66-member family above, whose family-wise p is 0.269. Dropping the single worst event moves the mean to -0.325% and dropping two moves it to -0.188%; the median is -0.252%, not -0.569%. And it does not replicate: ETHUSDT gives 9 of 18 positive with a median of +0.012%, and SOLUSDT 10 of 24 positive with the mean turning positive once two events are dropped. Fourteen events is not a sample.
WHAT CHANGED IN THIS VERSION
A setup-zone alert asked for the SETUP quadrant AND coherence above the threshold at once. Over 5,985 bars it would have fired zero times on BTCUSDT, three on ETHUSDT and four on SOLUSDT. It was not a rare signal, it was the sharpest form of the contradiction above - SETUP is where the legs cancel and coherence measures whether they cancel - so it is gone rather than given a lower threshold that would hide the reason. The remaining alert says in its own text that it describes geometry rather than predicting anything.
The coherence area was declared after the wave, so it was painted over it: the fill sat above the line on 48.2% of bars on BTCUSDT and by more than 10 points on 25.9%, and because the fill's opacity ramps up with coherence, the wave's hue - its only encoding of the regime angle - was washed out hardest on exactly the bars the indicator asks you to trust most. The area is now declared first and takes the wave's own colour, since it is the magnitude of the same vector whose angle sets that colour, and the quadrant shading behind both is a wash rather than a block. The coherence threshold is now drawn as a dotted line so the level the alert uses is visible on the pane.
An MPL header was added, a leftover compile-sentinel plot removed, and the header and three inputs now carry the measurements above in their tooltips. No computation changed: every plotted number is identical to the previous version.
WHAT ACTUALLY MOVES THE OUTPUT
The four fusion weights, by a wide margin. Measured on BTCUSDT 15m against the defaults over 5,700 bars after warm-up, equal weights move the wave by a median of 6.7 points, a short-term-heavy setting by 23.2, and collapsing onto a single timeframe by 28 to 33 with a maximum near 89.
The two sensors are not equal partners. Over a 9-to-21 band the Stochastic %K length moves the wave by a median of up to 4.1 points and a 90th percentile of up to 28.8; the RSI length over the same band moves it by a median of up to 1.3 and a 90th percentile of 3.1. That is a factor of three at the median and nine in the tail. For all the two-sensor framing, this is a Stochastic wave with an RSI trim.
The coherence threshold and both display toggles move the plotted series by exactly zero; the threshold only gates the alert and the dotted line that marks it.
WHAT THE MEASUREMENTS COVER
All of it is 15m data from 2026-06-22 to 2026-08-23, 62 days, on three instruments, in a window where BTCUSDT rose 20.2%, ETHUSDT 39.5% and SOLUSDT 28.4%. Nothing was tested outside that window, in a falling market, or on a non-crypto instrument. Everything is measured on the configuration that was cross-checked: a 15m chart with the default Confirmed-only data mode, where the four requested timeframes are the chart's own and three above it. On a 1H or higher chart the 15m leg becomes a lower-timeframe request and resolves differently. The Developing HTF mode was not measured, because the reimplementation does not model a partially formed higher-timeframe bar faithfully enough to quote - it is the one setting here that lets the displayed value change after the bar it belongs to has opened, and it should be treated as repainting until someone measures it. No figure here covers either case.
HOW THE NUMBERS WERE CHECKED
The whole computation was reimplemented outside Pine and cross-checked against this chart's Data Window: sixteen quantities on ten bars - both plotted series, both raw sensors for all four timeframes, the resultant's two components, its length, its angle, the fused quadrant and the shift flag - with two of the ten bars carrying a quadrant shift so the event path was exercised rather than assumed. All 160 values round to the exact four decimals TradingView prints, with a worst raw difference of 5.0e-5, the display's own rounding floor.
Open source under MPL 2.0. Nothing here is a forecast, a signal service, or a claim of profitability. อินดิเคเตอร์

Phase Space Quadrant Dashboard [FibonacciFlux]Four timeframes plotted as four points on one oscillator plane, published with the measurement that says the states it draws do not forecast anything.
WHAT IT DRAWS
Each of four timeframes (15m, 1H, 4H, 1D by default) becomes a point on a plane: x is RSI minus 50 over 50, y is Stochastic %K minus 50 over 50. Four points, one plane, all bounded to the same square.
From those points it computes a weighted centroid, the weighted dispersion around it, and three terms that are fused as a geometric mean: Tight (how small the dispersion is against a reference), Dir (how much the four timeframes agree on rotation direction, clockwise counting as bull) and Mag (how far the centroid sits from the origin). The fusion is evaluated as a bull and a bear score, because a geometric mean of a signed quantity is undefined. A 3x3 map shows which cell the centroid occupies, with a gauge for dispersion against the reference, and a diamond marks a bar where a timeframe crossed a quadrant boundary while the cluster was tight.
WHAT THE MEASUREMENT FOUND
None of the states separate from chance.
Testing all seventeen states this dashboard advertises at once - counted as episodes rather than as overlapping bars, against 500 circular shifts of the forward-return series - the largest standardised effect anywhere in the family is 1.76, 1.37 and 1.54 at horizons of 4, 16 and 96 bars, against a null that averages 2.11, 2.07 and 1.95. The family-wise p-values are 0.689, 0.936 and 0.838. The dashboard is less extreme than a randomly misaligned copy of itself, and the same test fails in all twelve instrument-by-timeframe-by-horizon cells.
One result did not die, and it is worth stating precisely because the tempting version of it is wrong. Bars where Tight is at or above 0.50 are followed by larger absolute moves on BINANCE:BTCUSDT 15m: measured at episode level, the four-bar-forward absolute return is 1.227 times the baseline, z = 1.91, p = 0.040, over 134 episodes. Counted per bar it looks stronger - 1.269 times, p = 0.004 - but that number counts 951 overlapping bars belonging to those same 134 episodes, so it is the weaker statistic that is honest. It is a statement about the size of moves, not their direction, on one instrument, at p just under 0.05.
There is a third thing that looks like a finding and is not. The four timeframes' points do cluster far more tightly than a null that rotates each timeframe to an unrelated point in time - z of 3.8 to 6.1 across four instrument-and-timeframe cells. That null is not one anybody should believe: the four legs are nested views of the same price series, so they agree by construction, and a random walk passes the same test. It is arithmetic about multi-timeframe indicators in general, not evidence about this one.
No edge is claimed. There is no forward-return figure here presented as a signal, and the alerts say in their own text that they describe geometry rather than predict anything.
THE SETTING THAT GOVERNS EVERYTHING
Sigma reference for Tight, default 0.50, is the master gain, and the default sits on the edge of the data. Tight is one minus dispersion over that reference, clipped at zero, so the reference decides how often the whole fusion score exists at all. Measured over 5,984 scored bars of BTCUSDT 15m the median dispersion is 0.414 - 83% of the reference - which puts median Tight at 0.180 and pins Tight, and therefore both scores, at exactly zero on 27.3% of bars. On ETHUSDT it is 21.6%. Drop the reference to 0.40 and the median score is zero; raise it to 2.0 and the median more than doubles. Anyone changing that one number is changing what every other number here means.
The score threshold at 0.55 is selective but reachable: the higher of the two scores clears it on 377 bars of the 5,984, producing 31 bull and 65 bear crossings on BTCUSDT, and 370 bars with 41 and 58 crossings on ETHUSDT. Quadrant-shift diamonds appear 163 times.
WHAT THE MEASUREMENTS COVER
The 15m results run from 2026-06-21 to 2026-08-23, 62 days, in a market that rose about 18% over the window. The 1H results reach back to 2026-04-20, about 125 days. Nothing here was tested outside that window, in a falling market, or on a non-crypto instrument.
HOW THE NUMBERS WERE CHECKED
The whole computation - the two oscillators per timeframe, the higher-timeframe mapping, the centroid and dispersion, the hysteresis on the quadrant bands, the rotation test and the fused scores - was reimplemented outside Pine and cross-checked against this chart's Data Window on ten bars, including one carrying a quadrant-shift marker so the event path was exercised rather than assumed. All fifty values round to the exact three decimals TradingView prints. The bull and bear scores were also confirmed to be mutually exclusive on all 6,000 bars, which is structural rather than coincidental.
WHAT CHANGED IN THIS VERSION
A phase audit table promised by the settings and by five helper functions did not exist anywhere in the file; the promise was deleted rather than the table built. The 3x3 quadrant map, which is real, stays. The header carried two lineage claims - an inherited "DNA" from another indicator and a reference to a private specification - that told a reader nothing, and they are gone. An MPL header was added and a leftover compile-sentinel plot removed. The two threshold inputs now carry the measurements above in their tooltips, and the alert messages say plainly that they describe geometry. No computation changed.
Open source under MPL 2.0. Nothing here is a forecast, a signal service, or a claim of profitability. อินดิเคเตอร์

RSI Zone Step LinesRSI Zone Step Lines — Momentum-Bound Price Zone :
This indicator plots a dynamic price zone bounded by two independent step lines, each anchored to price at the moment RSI crosses a customizable upper or lower threshold. Rather than a single reference point, you get a full band that expands, contracts, and shifts as momentum moves between overbought and oversold territory — giving a visual read on where price sits relative to recent RSI extremes.
How the two boundary lines are built ? :
RSI (default length 9, source close, both adjustable) is checked against two thresholds — an upper threshold (default 55) and a lower threshold (default 45), both customizable in the inputs panel.
The upper level (green line) snaps to whatever price closed at the exact bar RSI crosses above the upper threshold. It then holds flat until the next upper-threshold cross.
The lower level (red line) snaps to price the moment RSI crosses below the lower threshold, and likewise holds flat until its next cross.
These two lines move completely independently of each other — the upper line only reacts to upper-threshold crosses, the lower line only to lower-threshold crosses. This means the zone width is not fixed: it can widen, narrow, or occasionally invert briefly if RSI whipsaws rapidly between both thresholds.
The zone fill :
The space between the two step lines is shaded continuously, and its color reflects RSI's current position — not which line moved most recently:
Green — RSI currently above the upper threshold → momentum extended to the bullish side
Red — RSI currently below the lower threshold → momentum extended to the bearish side
Grey — RSI sitting in the neutral 45–55 band → no clear momentum extreme
This lets you see at a glance not just where the momentum-derived price boundaries are, but whether RSI is actively pushing an extreme right now or has settled back into neutral.
Cross markers (the dots):
A small circle prints on each bar where a threshold cross occurs — green dots for upper crosses, red dots for lower crosses — so every boundary update is easy to spot even when the step lines blend into a long flat run.
What this indicator does and does not do? :
This tool visualizes a momentum-derived price band and its current bias; it does not generate buy/sell signals, predict future price direction, or manage risk. All thresholds, RSI settings, line colors, and zone fill colors are fully adjustable in the settings panel. As with any indicator, it's intended to be read alongside broader market structure and your own risk framework, not used in isolation. อินดิเคเตอร์

RSI-50 Step LineRSI-50 Step Line — Momentum-Adaptive Price Reference :
This indicator plots a dynamic horizontal reference line that tracks price at the exact moment RSI crosses the 50 level — giving traders a live, self-adjusting benchmark for where momentum shifted from bullish to bearish, or vice versa.
How the line is built? :
Every time RSI (default length 9, source close — both adjustable in settings) crosses the 50 level in either direction, the line "steps" to whatever price closed at that exact bar, then holds flat until the next RSI-50 cross. The result is a stair-step price ladder built entirely from momentum inflection points, rather than fixed lookback windows or manually-drawn pivots.
Because earlier steps are never deleted or redrawn, the indicator leaves a running visual history on the chart. When price later revisits an older step, you can see directly whether it's testing a level that originally marked a genuine momentum shift — which can carry more weight than an arbitrary support/resistance line.
Cross markers (the dots):
At each bar where RSI crosses 50 and the line steps to a new level, a small circle marker is plotted. This flags every step point clearly, which matters on charts where flat segments can otherwise blend together. The dot is colored using the same 4-state logic as the line (below), but it's frozen at the exact bar of the cross — so it shows the momentum condition that triggered that specific level, even if the line's color later changes as price and RSI continue to evolve past that point. Comparing a dot's shade to the segment that follows it is a quick way to see whether a level was born from strong or weak momentum.
Color logic (4 states):
The line and its dots are shaded based on two live conditions: price's position relative to the current step, and RSI's immediate direction (rising or falling bar-to-bar).
Light green — price above the level, RSI rising → bullish, momentum strengthening
Dark green — price above the level, RSI falling → bullish, but momentum fading
Light red — price below the level, RSI falling → bearish, momentum strengthening
Dark red — price below the level, RSI rising → bearish, but momentum recovering
The dark shades are not signals on their own — they're a visual cue that the current side of the trade may be losing conviction, which some traders use as a prompt to tighten risk or watch more closely for a reversal, rather than as an entry/exit trigger.
What this indicator does and does not do? :
This tool identifies and colors momentum-derived price levels; it does not generate buy/sell signals, predict future price movement, or account for risk management. All settings (RSI length, RSI source, and each of the four colors) are user-adjustable in the inputs panel. As with any indicator, it should be used alongside broader market context and a trader's own risk framework rather than in isolation. อินดิเคเตอร์

Return Dispersion Matrix Strategy [The Quant Science]This is a simple buy and sell strategy developed using the Dispersion Return Matrix indicator.
Before proceed, if you are new to Dispersion Return Matrix
About Dispersion Return Matrix:
This strategy script highlights the potential of Pine Script, which makes it easy to incorporate quantitative ideas into your trading strategy. In this example, the algorithm decides which type of entry to choose based on the current market conditions.
🚦🟢 When Quadrant Q1 is dominant , the market is in a strong trend phase and is suitable for trend-following and bullish breakout strategies. Strat will use a trend-following approach for entries in this market phase.
🚦🟢 When Quadrant Q2 indicates a mean reverting market where buyers step in immediately when prices fall, suitable for accumulation strategies on pullbacks. In this phase, we will use RSI oversold entries.
🚦❌ When Quadrants Q2 and Q3 dominate the market , no trading is conducted, as there are no trading opportunities for our strategy during this phase.
What is it for?
To test the indicator's functionality within a trading strategy.
To demonstrate how to structure a trading strategy by integrating the Dispersion Return Matrix into your code.
The algorithm monitors the market and trades only when quadrants Q1 and Q2 are the winners , ensuring that it trades during a favorable market condition. The algorithm never trades when Q3 and Q4 dominate the market.
Depending on the winning quadrant, the algorithm applies two different entry strategies:
🏆 Q1 Win: Trend following strategy
🟢 Entry condition: closing price higher than the previous closing price and price above the 20-period SMA.
trend_following_strat_entry = close > close and close > sma
🏆 Q2 Win: Mean reverting strategy
🟢 Entry Condition: The RSI(14) indicator crosses below the oversold level of 35.
mean_revert_strat_entry = ta.crossunder(rsi, 35)
Exits are always calculated using a take-profit and a fixed percentage stop-loss. The take-profit and stop-loss values are calculated based on the entry price of the opening trade.
The values set in the code are 🟢 5% for the take-profit and 🔴 15% for the stop-loss.
tp = 5
sl = 15
The capital used for trading is 10% of the initial capital.
qty_order := (strategy.initial_capital * 10)/100
Opens only one trade at a time.
The algorithm highlights in white on the chart the market periods when Q3 and Q4 dominate the market, making it easy to assess the strategy's reliability in the past.
กลยุทธ์

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

Average RSI | TR🔍 OVERVIEW
The Average RSI is a next-generation momentum oscillator that goes beyond the standard Relative Strength Index. Instead of relying on a single timeframe, it calculates the RSI across three distinct daily cycles (1 Day, 2 Days, and 3 Days) and averages them into one smooth, highly responsive signal.
This multi-timeframe averaging drastically reduces market noise, filters out false divergences, and provides a holistic view of the short-to-medium term momentum structure. Combined with a dedicated dynamic moving average, it acts as both a trend filter and an early entry/exit system.
⚙️ HOW IT WORKS
1. RSI Computation:
The script calculates the classic RSI of your chosen source (default: Close) for the 1D, 2D, and 3D timeframes.
2. The Average (AVG_RSI):
It takes the arithmetic mean of these three values. This "composite RSI" is the core line you see plotted on the chart.
3. The Trend Filter (MA_AVG_RSI):
A fully customizable Moving Average (default: EMA, Length: 275) is applied to the AVG_RSI. This acts as the "Zero Line" of the indicator:
• AVG_RSI > MA_AVG_RSI → Bullish Bias
• AVG_RSI < MA_AVG_RSI → Bearish Bias
🎨 VISUAL FEATURES & SIGNALS
• Dynamic Trend Coloring:
The main line, candles, and chart background dynamically shift colors based on a normalized gradient of the AVG_RSI, making trend strength instantly recognizable.
• Smart Gradient Fills:
Ribbon Fill: The area between the AVG_RSI and its Moving Average is filled with the trend color. Its transparency adjusts automatically based on price momentum—more opaque during strong trends and faint during consolidation.
Overbought/Sold Zones: Gradient fills between the AVG_RSI and the 50-level are activated only when the AVG_RSI extends beyond the Moving Average. This unique logic prevents misleading extreme-zone signals during trend reversals.
• Entry/Exit Signals (Triangles):
LONG (⬆️): A green triangle appears below the bar when AVG_RSI crosses ABOVE the MA_AVG_RSI.
SHORT (⬇️): A red triangle appears above the bar when AVG_RSI crosses BELOW the MA_AVG_RSI.
• Heads-Up Display (HUD):
At the last bar, a large table displays the current market bias (Bullish/Bearish), and a floating label shows the precise AVG_RSI value.
🎛️ INPUT CONFIGURATIONS
• RSI Length: Adjust the sensitivity of the RSI calculation (Default: 44).
• Source: Choose the base source for the RSI (Default: Close).
• Moving Average Engine: Select from 12 different MA types, including EMA, SMA, WMA, HMA, DEMA, TEMA, TRIMA, FRAMA, SWMA, and T3 (with adjustable T3 Factor).
• MA Length: Set the smoothing period for the trend filter (Default: 275).
• Color Palettes: Choose from 9 distinct visual themes—Classic, Modern, Heat, Robust, Accented, Monochrome, Moderate, Aqua, or Cosmic—to match your charting style.
🚨 ALERTS
Built-in alert conditions are ready to use:
• LONG: Triggered on a Bullish crossover.
• SHORT: Triggered on a Bearish crossunder.
💡 BEST USE CASES
• Swing Trading: Identify shifts in mid-term momentum.
• Trend Confirmation: Use the MA filter to avoid entering trades against the dominant flow.
• Divergence Spotting: The smoothed nature of AVG_RSI makes chart patterns and divergences much clearer than with standard RSI.
📌 Note: This indicator works on any asset (Crypto, Forex, Stocks, Commodities) and any timeframe, as the underlying MTF logic is anchored to the daily RSI structure. อินดิเคเตอร์

RSI Bottom/Top Retest Scalper [josseliani]RSI Bottom/Top Retest Scalper is a short-term reversal tool built around a simple idea: the first RSI extreme is not always the best moment to act.
Instead, the indicator waits for RSI to leave the extreme area, cool down, form a second structured signal, and then waits for confirmation from price.
The logic is separated into two parts:
→ RSI setup
→ Price entry confirmation
How it works
For a bearish setup:
→ RSI first reaches the upper extreme area.
→ RSI cools down below the selected cooling level.
→ A second local RSI peak forms below the first peak.
→ The second RSI signal is confirmed when RSI starts turning down.
→ Price is then checked against the selected confirmation line.
→ A candle must place the required percentage of its body beyond that line.
→ That candle confirms and arms the setup.
→ The trade calculation starts from the OPEN of the next candle .
The bullish logic is the opposite: RSI forms an extreme bottom, rebounds, returns with a higher second bottom, and price must then confirm above the selected line.
RSI signals
The RSI setup is shown in two stages.
→ The circle marks the first RSI extreme.
→ The triangle marks the confirmed second RSI signal after the cooling and retest process.
These two markers belong to the RSI setup itself . They are not price-entry signals.
Price entry confirmation
After the second RSI signal, the script searches for price confirmation using the selected confirmation line.
A candle must place the required percentage of its body beyond that line.
This candle confirms and arms the setup , but it is not used as the entry candle.
The hollow entry arrow and trade calculation appear on the next candle , using that candle's open as the reference entry price.
So the sequence is:
→ 1 — Circle: first RSI extreme
→ 2 — Triangle: second RSI retest signal
→ 3 — Price confirmation and entry
Trade markup
When Trade Markup is enabled, the script automatically displays:
→ Stop Loss
→ 1R
→ 2R
The stop is normally derived from the price structure formed between the RSI retest signal and the price-confirmation event.
If a suitable structural stop cannot be established, or if the calculated risk is too small to be practical, the script can use an ATR-based fallback stop.
The 1R and 2R levels are calculated from the confirmed entry price and the resulting risk distance.
These levels are visual planning references. They are not predictions that price will necessarily reach a target.
Confirmation line
The confirmation line can be selected from:
→ EMA
→ SMA
→ WMA
→ RMA / SMMA
→ VWMA
→ HMA
→ DEMA
→ TEMA
→ ZLEMA
→ KAMA
→ Kalman
→ ALMA
→ Kijun
The default confirmation line is Kijun 34 .
The user can also select how much of the candle body must be beyond the confirmation line before the setup is considered confirmed.
How I use it
The default settings are tuned for 5-minute gold scalping .
I use Kijun 34 as the default confirmation line because I personally like this line a lot. I use it for both 5-minute and 15-minute scalping.
If you move to a lower timeframe, expect more signals, but also more noise. In that case, pay closer attention to entries and Stop Loss placement and consider using a shorter, faster confirmation line.
The script includes a wide selection of moving averages for scalpers, including some less conventional alternatives.
Besides Kijun, I also like ALMA for scalping. On the 1-minute chart I often use a shorter ALMA because it reacts faster, but this naturally creates a more aggressive trading style.
As a general approach:
→ Lower timeframe → shorter / faster confirmation line → more signals and more noise.
→ Higher timeframe → longer / slower confirmation line → fewer and more selective signals.
You can replace Kijun with EMA, ALMA or another available line and adjust its length for the market and timeframe you trade.
Main settings
→ RSI Length and Source
→ Upper and Lower Extreme Levels
→ Cooling Levels
→ Second Peak / Bottom Re-Entry Levels
→ Minimum Lower High / Higher Low Gap
→ Peak / Bottom Strength
→ Maximum Setup Search Window
→ Optional Midline Invalidation
→ Confirmation Line Type and Length
→ Required Body Beyond Line %
→ Entry Search Window
→ Signal Display
→ Trade Markup
→ RSI / Chart Highlighting
Important
Local RSI peaks and bottoms require confirmed bars on their right side before they can be identified.
For this reason, a second peak or bottom is marked only after its required confirmation is available.
The indicator separates the oscillator setup from price confirmation so that an RSI retest alone is not automatically treated as a trade entry.
The trade levels shown on the chart are generated from the detected setup and are intended for analysis and trade planning. They do not guarantee future performance.
Why the second signal?
The general idea of paying attention to a second oscillator signal has also been discussed in professional technical-analysis research.
Mohamed Ashraf, MFTA, CFTe, CETA presented The Stochastic Oscillator Second Signal through the International Federation of Technical Analysts (IFTA), examining the second oscillator signal as a distinct technical setup across different timeframes and market conditions.
This script does not reproduce that methodology. The referenced work uses the Slow Stochastic Oscillator, while this indicator applies its own RSI-based logic using extreme levels, cooling, second-peak / second-bottom structure and subsequent price confirmation.
Reference
IFTA Journal 2026 — The Stochastic Oscillator Second Signal
www.ifta.org อินดิเคเตอร์

RSI Probability Matrix [ChartPrime]RSI Probability Matrix
🔶 OVERVIEW
Traders frequently rely on rigid, fixed overbought and oversold thresholds for the Relative Strength Index, ignoring how historical price action actually responds at different momentum levels. The RSI Probability Matrix introduces a statistical learning engine to your charts. It tracks and measures real-time trade outcomes across 10-point RSI brackets, turning historical momentum reactions into actionable win-rate probabilities.
Instead of guessing whether an overbought or oversold signal holds weight, this indicator dynamically evaluates success and failure rates using an ATR-based target and stop-loss matrix.
🔶 HOW IT WORKS
The indicator executes its statistical and tracking workflow through a multi-stage architecture:
Dynamic Momentum Engine: Calculates a standard RSI and smoothed signal line pair, backed by an Average True Range (ATR) volatility measurement to size structural targets and stops.
Real-Time Trade Tracking Array: Maintains live arrays spanning all 101 RSI index values (0 to 100), recording historical win and loss outcomes whenever buy or sell crossover triggers are hit.
ATR-Based Risk Framework: When an oversold buy or overbought sell signal triggers, the engine projects dynamic target and stop-loss levels based on a custom multiplier of the current ATR value.
Probability Matrix Dashboard: Aggregates the tracked data into 10-point bracket intervals, calculating real-time win percentages for both buy and sell directions across the entire chart history.
🔶 KEY FEATURES
Statistical Matrix Table: A clean, configurable dashboard displaying detailed trade counts and directional win probabilities broken down across structured RSI bands.
Automated Signal & Outcome Markers: Pins clear entry badges onto the chart along with success (✅) or failure (❌) markers when trades hit their target or stop parameters.
Gradient Color Customization: Fluidly shifts RSI line colors across customizable bullish and bearish palettes depending on prevailing momentum zones.
Flexible Target Management: Full control over ATR lookback periods, multiplier thresholds, and overbought/oversold trigger boundaries to fit your strategy.
🔶 TRADING APPLICATIONS
Probability-Weighted Entries: Before taking a trade at a specific RSI level, check the dashboard matrix to see the historical win percentage for that exact momentum bracket. Only take setups backed by favorable statistical odds.
Objective Risk-to-Reward Execution: Utilize the automated ATR target and stop lines to enforce disciplined trade management, allowing the probability engine to accurately record wins and losses.
Momentum Exhaustion Filtering: Combine overbought or oversold crossovers with the matrix summary totals to identify which RSI zones hold the strongest historical defense from institutional participants.
🔶 SETTINGS
Indicator Settings (RSI Length / Signal / OB-OS Levels): Controls the core lookback periods and the boundary thresholds required to trigger buy and sell signals.
Target & Stop Settings (ATR Length / Multiplier): Adjusts the volatility distance used to calculate structural profit targets and stop-loss zones.
Dashboard Settings (Visibility / Position / Size): Configures the placement and layout of the real-time statistical probability matrix table on your workspace.
🔶 CONCLUSION
The RSI Probability Matrix removes the guesswork from momentum trading. By dynamically tracking and grading historical trade success across customized RSI bands, it gives you a data-driven edge built entirely on real market feedback. อินดิเคเตอร์

Momentum Bands | BreakoutThis strategy hunts for N-bar breakouts confirmed by volume expansion — but instead of trading every breakout blindly (like a standard Opening Range or Donchian breakout), it runs price through a trend filter and an RSI momentum check first. Breakouts that align with the EMA trend and show accelerating RSI get traded as genuine continuation moves. Breakouts that fire against the prevailing trend, with RSI already rolling over, get treated as exhaustion — and faded instead of chased. Built-in ATR-based position sizing and a trailing stop round it out into a complete, risk-managed system rather than just a signal generator.
Key Features
Trend-gated entries — EMA fast/slow cross defines regime; longs only trade with the trend, fades only trade against it
Volume-confirmed breakouts — requires expansion above the rolling volume average, not just a price poke
RSI momentum-exhaustion filter — distinguishes accelerating momentum (real breakout) from divergence (fakeout)
ATR-based risk sizing — position size auto-scales to a fixed % of equity risked, using ATR-derived stop distance
ATR trailing stop — lets winners run instead of capping them at a fixed target
Glowing ATR bands — layered, fading visual bands around trend basis for at-a-glance regime read
Breakout candle highlighting — candles color-shift on signal and while a position is open
Live + archived trailing-stop path — see the stop while a trade is open, and its full trail once closed
How It Works
Price breaks above the highest high of the last N bars with volume above its rolling average — that's the breakout trigger.
EMA fast vs. slow defines trend direction.
RSI and its rate of change are checked at the breakout bar: still climbing and near its own recent peak = momentum confirms. Already fading or below its recent peak = momentum diverges.
Confirmed + with-trend → long. Diverging + against-trend → short (fade).
Every entry is sized off account risk %, not a fixed share count, and exits on an ATR stop plus ATR trailing stop.
Tips
Backtest across multiple symbols and volatility regimes before trusting the defaults — breakout/fade systems behave very differently in trending vs. choppy markets
Widen nLen (breakout lookback) on lower timeframes to reduce noise-driven false breakouts
If fades are underperforming, try disabling allowShorts and running long-only to isolate performance
Tighten rsiConfirmLvl for higher-conviction (fewer, cleaner) long signals
Use the glowing bands as a quick visual regime check even when not actively watching signals
กลยุทธ์

Adaptive Composite Oscillator (ACO)Adaptive Composite Oscillator (ACO)
A momentum oscillator that adapts its own lookback length, normalization bands, and signal logic to current market conditions, rather than relying on the fixed parameters and fixed 70/30-style bands used by traditional oscillators like RSI or Stochastic.
How it works
1. Adaptive lookback. The effective momentum length shortens when recent volatility (ATR relative to its own average) is elevated, and lengthens when volatility is calm. The oscillator speeds up in choppy or volatile stretches and slows down in quiet ones, instead of using one fixed period regardless of context.
2. Manual adaptive RSI. Pine's built-in ta.rsi() requires a fixed length, which a bar-by-bar adaptive length can't satisfy. So the RSI is built manually with a Wilder-style recursive average whose smoothing factor is derived from the adaptive length on every bar — same underlying math as RSI, just computed in a way that tolerates a variable length.
3. KAMA-style smoothing. The raw adaptive RSI is passed through a Kaufman Adaptive Moving Average-style filter, using an efficiency ratio between fast and slow EMA constants. This makes the line track efficient, directional moves closely while damping down noise during back-and-forth chop.
4. Statistical normalization. Rather than fixed overbought/oversold levels, the smoothed momentum is converted into a z-score against its own rolling mean and standard deviation. The ±2 SD bands self-calibrate to each instrument's own volatility character instead of using one arbitrary threshold for every market.
5. Regime filter (ADX/DMI). An ADX reading classifies conditions as ranging or trending. In ranging conditions, z-score extremes are treated as mean-reversion signals. In strong trends (ADX above threshold), those same extremes are deliberately ignored — since momentum can stay "overbought" for a long time inside a real trend — and instead a zero-line cross in the direction confirmed by +DI/−DI is treated as a trend-continuation signal.
6. Volume confirmation. Every signal additionally requires volume above its own moving average, filtering out low-participation moves that wouldn't hold up.
7. Algorithmic divergence with connecting lines. Bullish and bearish divergence is detected by comparing confirmed price pivots to oscillator pivots — a defined rule, not a discretionary read — and drawn as connecting lines on both the price chart and the oscillator pane, so the actual shape of the divergence is visible rather than marked with a single dot.
What's plotted
Oscillator line (z-score), colored by regime — gray for ranging, blue for confirmed uptrend, orange for confirmed downtrend
Dashed ±2 SD statistical bands and a zero line
Yellow background shading while in a strong-trend regime
Green/red triangles for volume-confirmed long/short signals
Magenta/lime connecting lines for bearish/bullish divergence, on both panes
How to use it
Start by reading the regime background: yellow shading means the market is trending strongly by ADX; no shading means it's ranging. That tells you which of the two signal modes is currently active. Then read the line color — gray, blue, or orange — which tells you the direction of any active trend. Triangles mark volume-confirmed signals: green below the line for long, red above for short. Connecting lines mark divergence: magenta between two price/oscillator highs for bearish, lime between two lows for bullish — these appear a few bars after the second pivot confirms, since a pivot needs bars on both sides to validate.
The strongest setups combine elements rather than relying on one signal alone — for example, a long triangle firing alongside a lime divergence line, or a trend-mode zero-cross that agrees with a higher-timeframe trend you've checked separately. Avoid taking ranging-mode mean-reversion signals against a clearly shaded trending background — that's exactly the mismatch the regime filter exists to prevent.
All lengths, the ADX trend threshold, volume multiplier, pivot lookback, and KAMA constants are adjustable in settings; the defaults are a reasonable starting point, not a finished strategy. Four alert conditions are built in (Long Signal, Short Signal, Bullish Divergence, Bearish Divergence) via TradingView's standard Add Alert dialog. อินดิเคเตอร์

Adaptive Trend Direction Indicator [ATR Trail + Regime]Adaptive Trend Direction
WHAT IT DOES
Adaptive Trend Direction is a trend-following state indicator. It answers three questions on every bar: which way is the trend pointing, is the market currently orderly enough for a trend signal to be worth taking, and where is the level that would invalidate that view.
The core is an ATR trailing stop that flips between a bullish and a bearish state. On its own a trailing stop flips constantly in choppy conditions, which is the well-known failure mode of every trend follower. This script's purpose is to gate those flips behind a two-factor regime test, so that the flips which occur inside directionless price action are marked as such instead of being presented as trend signals.
HOW IT WORKS
ATR trailing stop. A stop is placed one ATR-multiple away from the close (default ATR 23, multiplier 3.0). While the state is bullish the stop only ratchets upward; while bearish it only ratchets downward. A close beyond the stop flips the state and the stop jumps to the opposite side of price. The state flip is the raw directional signal.
Regime detection — ADX plus Efficiency Ratio. Two independent measures must agree before the market counts as trending. ADX (default period 10) must exceed its threshold (default 21), measuring directional strength. Kaufman's Efficiency Ratio must exceed its threshold (default 0.15), calculated as the absolute net move over N bars divided by the sum of the absolute bar-to-bar moves over the same window — a value near 1 means price travelled in a straight line, a value near 0 means it covered the same ground repeatedly. ADX can rise on volatile chop; the Efficiency Ratio cannot. Requiring both is what filters out that case.
Hysteresis. The regime does not flip the moment the two tests agree. It requires N consecutive confirming bars (default 3) before switching, in either direction. This stops the regime label from oscillating bar to bar around the thresholds, which would otherwise reintroduce the exact noise the filter is meant to remove.
RSI momentum filter. A directional flip is only accepted if RSI confirms it — above the long threshold for longs, below the short threshold for shorts. The defaults (48 long, 43 short) sit close to the midline, so this rejects flips that occur against prevailing momentum rather than demanding an extreme reading.
Signal end conditions. An open directional signal is marked as finished on whichever comes first: an opposing trailing-stop flip, an EMA slope reversal against the signal (optional, off by default), or a maximum bar count (default 140) that retires a signal which has gone nowhere.
Optional mean-reversion mode. When the regime is ranging, the default behaviour is to stand aside — no signals are generated. Setting "Ranging Mode" to 1 instead generates counter-trend signals from RSI extremes (default below 30 / above 70) with ATR-based take-profit and stop levels drawn on the chart. This is opt-in because it is a different premise from the rest of the script and should be evaluated separately.
WHAT YOU SEE ON THE CHART
Trailing stop line, green in the bullish state and red in the bearish state.
Background tint: green while the regime is trending, amber while ranging.
Triangles mark trend signals, circles mark mean-reversion signals, crosses mark where a signal ends.
Bars are tinted while a signal is active, so the held periods are visible at a glance.
A label at the end of each signal shows the percentage move over that leg, with a tooltip giving entry, exit, end reason and bars held. This is a measurement of the price move between two chart events. It is not a return, and it accounts for no costs.
A dashboard reports ATR, stop level, direction, RSI, EMA slope, regime with live ADX/ER values, current signal state, and which components are switched on.
SIZING READ-OUT
The dashboard also reports a volatility-normalised exposure figure: leverage that scales inversely with recent ATR so that a fixed percentage of a reference account is at risk regardless of how volatile the market currently is, clamped between a floor and a ceiling. Setting the vol target to 0 switches to a stop-distance-based calculation instead. This is informational only. It gates no signal, and the reference account size affects only the displayed units — the leverage figure itself is independent of it.
WHY THIS IS AN INDICATOR AND NOT A STRATEGY
The script tracks an internal long/short/flat state so the chart can colour bars and measure each leg, but it submits no orders and produces no Strategy Tester report. That is intentional. Fill assumptions, funding and leverage modelling on a leveraged instrument dominate any backtest of a system like this, and a tester report would imply a precision the model does not have. What is shown here is the signal logic and the price move between signals, which is what can be verified directly on the chart.
SETTINGS AND USAGE NOTES
The defaults were fitted by a parameter search on a single market and timeframe (BTC on a 6-hour chart). They are a starting point for that context, not universal values, and there is no reason to expect them to transfer unchanged to other symbols or timeframes — the ATR multiplier and the regime thresholds in particular are the ones to revisit first. The volatility estimate used by the sizing read-out assumes roughly a 6-hour bar; on other timeframes it should be recalibrated.
Every component has an independent toggle, so the contribution of each can be isolated: turn the regime filter off to see the raw trailing-stop flips, then turn it back on to see which ones it removed. Signals are evaluated on bar close.
Alerts are available for signal start and signal end, in plain text or as a JSON body for programmatic consumers.
LIMITATIONS
This is a trend-following model. It will give back open gains at every reversal, because the exit is a trailing stop rather than a target. It will produce clustered false flips at regime boundaries, since the confirmation delay lags a genuine turn by design. The mean-reversion mode takes positions against the prevailing move and behaves very differently from the trend mode. Signal-leg percentages shown on the chart exclude commission, slippage and funding.
Published open-source. Not financial advice, not a recommendation to trade any instrument, and nothing here is a forecast. Test it yourself before relying on it. อินดิเคเตอร์

RSI Smart Divergence [josseliani]RSI Smart Divergence is an RSI divergence indicator designed to provide a clean and flexible way to work with confirmed bullish and bearish divergences.
There are many RSI divergence indicators available. I created this version because I wanted two different approaches to divergence detection in one simple tool: a selective Zone mode focused on overbought and oversold areas, and a separate Regular mode for more traditional divergence analysis.
One of the main visual features of RSI Smart Divergence is that confirmed divergences can be displayed simultaneously on the RSI and directly on the main price chart. The RSI line shows the momentum structure, while the price-chart line connects the corresponding local price extremes. This makes it possible to see the disagreement between price and RSI without manually matching oscillator pivots to candles.
ZONE MODE
Zone mode is the original logic of RSI Smart Divergence and is enabled by default.
Instead of evaluating every RSI pivot as the next divergence reference, this mode focuses specifically on divergence structures formed within the overbought and oversold zones.
For bullish divergence, the relevant RSI pivot points are evaluated within the oversold area.
For bearish divergence, the relevant RSI pivot points are evaluated within the overbought area.
Intermediate RSI pivots outside the relevant zone do not replace the previous zone reference point. This allows the indicator to compare significant momentum extremes inside the same zone even when other RSI swings occur between them.
As a result, Zone mode behaves differently from a standard adjacent-pivot divergence detector and provides a more selective view of divergence developing in already stretched momentum conditions.
REGULAR MODE
Regular mode is available as a separate optional mode.
It identifies classic regular bullish and bearish divergence using confirmed RSI pivots and corresponding local price extremes.
Additional structural filtering checks the price path between the selected endpoints and rejects structures where an intermediate price extreme invalidates the divergence being evaluated.
Regular mode is disabled by default.
The two modes operate independently and can identify different divergences. You can use Zone mode, Regular mode, or enable both at the same time.
CONFIRMED PIVOTS
Both modes use confirmed RSI pivots.
Pivot Left and Pivot Right determine how many bars are required around a potential RSI swing before it is considered confirmed.
The important setting for signal timing is Pivot Right.
For example:
Pivot Right = 3 — confirmation requires 3 bars to form to the right of the pivot.
Pivot Right = 10 — confirmation requires 10 bars to form to the right of the pivot.
Because of this confirmation process, a divergence becomes known only after the required right-side bars have formed.
The divergence lines are drawn back to the confirmed pivot locations, while the triangle marker and alert appear when the divergence is actually confirmed.
This distinction is important when reviewing historical charts: the lines identify the structure that produced the divergence, but the divergence was not known in real time until its confirmation bar.
PRICE AND RSI DISPLAY
Each confirmed divergence can be visualized in two places:
— on the RSI;
— directly on the corresponding price structure on the main chart.
The RSI line connects the confirmed momentum pivots used for the divergence.
The price-chart line connects the corresponding local price extremes.
This makes the relationship between price and oscillator structure immediately visible without manually matching RSI pivots to individual candles.
The RSI and price divergence lines can be enabled or disabled independently.
Small green and red triangles mark the confirmation of bullish and bearish divergence events in the RSI pane.
HOW I USE IT
The RSI period and pivot settings can be adjusted depending on the timeframe and the amount of market detail you want the indicator to capture.
For faster lower-timeframe trading, I may use a shorter RSI period such as 5 or 9 together with a smaller pivot setting around 3. This makes the indicator more responsive, but naturally includes more short-term market movement.
RSI 14 is a useful general starting point.
For higher timeframes, or when I want to focus on larger divergence structures, I normally keep RSI at 14 and increase the pivot setting.
For example, on a 15-minute chart I may use a pivot value around 10. This is one example configuration shown on the chart attached to this publication.
Smaller pivot settings produce faster and more frequent structures.
Larger pivot settings require more confirmation and tend to focus on broader swings.
WHAT MAKES THIS VERSION DIFFERENT
The main purpose of RSI Smart Divergence is not simply to mark every regular RSI divergence.
The original Zone mode maintains its own overbought and oversold divergence structure and ignores intermediate RSI pivots outside the relevant extreme zone when selecting the next comparison point.
Regular mode provides a separate approach for traders who also want traditional divergence detection.
Together with confirmed-pivot logic, corresponding price-extreme mapping, divergence lines on both RSI and price, adjustable structural distance and alerts, the two modes provide different ways to analyze divergence without requiring several separate indicators.
SETTINGS
RSI Length controls the RSI calculation period.
Overbought and Oversold Levels define the extreme RSI zones used by Zone mode.
Zone oversold / overbought enables the original Zone mode.
Regular enables regular divergence detection.
Pivot Left and Pivot Right control pivot confirmation.
Max bars between points limits the maximum distance between the two points of a divergence.
The RSI and price divergence lines can be shown or hidden independently.
Optional background highlighting can also be enabled for the overbought and oversold areas.
ALERTS
Alerts are available for confirmed bullish and bearish RSI divergences.
Alerts trigger when the divergence is confirmed, not retrospectively on the original pivot bar.
NOTES
RSI Smart Divergence is an analytical tool rather than an automatic trading system.
Divergence does not guarantee a market reversal. Different RSI periods and pivot settings can produce significantly different results, so settings should be selected according to the market, timeframe and trading approach being used.
The indicator should be used together with independent market analysis and appropriate risk management. อินดิเคเตอร์

Pulse Wave MomentumPulse Wave Momentum (PWM)
A momentum indicator that combines five signals — RSI, MACD, ADX, Rate of Change, and Volume — into one simple score from -100 to +100, so you can see when momentum is building or fading at a glance.
How It Works
Instead of watching RSI, MACD, ADX, and volume separately and trying to piece them together yourself, PWM does that work for you. Each indicator "votes" toward bullish or bearish momentum:
MACD histogram expansion (biggest weight) — is the move accelerating?
ADX/DMI — is there real trend strength and clear direction?
RSI — is it rising on the right side of 50?
Rate of Change — is price speeding up?
Volume — does the move have real participation behind it?
These votes are combined into one score, then smoothed to reduce noise. A high positive score means strong bullish momentum. A high negative score means strong bearish momentum. A score near zero means the signals disagree or the market is flat.
When the score crosses above your Building Threshold (default +60), you get a green triangle and background highlight — momentum is building. When it crosses below your Fading Threshold (default -60), you get a red triangle and highlight — momentum is fading.
How to Use It
Add it below your price chart. Check the dashboard in the top-right corner to see the overall score plus each individual component, so you always know what's driving the signal.
Use the green/red triangles as confirmation, not as a standalone entry trigger — pair them with your own support/resistance or price action analysis. Since momentum indicators lag price by nature, treat a "building" signal as confirmation that a move already has conviction, not a prediction of a move about to start.
You can set alerts for both building and fading signals so you don't have to watch the chart constantly.
Customizing It
All the lengths and thresholds are adjustable. For volatile markets like crypto or small-caps, tighten things up (shorter ROC, higher volume multiplier). For slower markets like large-cap stocks on daily charts, the defaults work well. อินดิเคเตอร์
