Sequence Snap | RSI-Confirmed Reversal ScalperExplanation
This strategy hunts for a specific price-action pattern: a candle that closes against the prevailing short-term move, followed by a run of consecutive candles pushing hard in the opposite direction — each one holding above (or below) the reversal candle's extreme. Once that shape completes, RSI is checked to confirm real momentum is behind the move rather than just noise. Entries use a single fixed stop (placed at the reversal candle's low/high) and a single fixed reward target defined as a multiple of that risk — no trailing, no dynamic exits, so every trade is comparably sized for easy backtesting analysis.
Features
Adjustable "run length" (2–5 candles) to control how strict the pattern is
A wobble-allowance setting so one weak candle in the run doesn't invalidate the whole setup
Optional RSI confirmation filter with separate floor/ceiling thresholds for longs and shorts
Long/short trades can be toggled independently
Fixed R-multiple take-profit (0.5R–2R) paired with a structural stop-loss
Dark dashboard showing live RSI, position status, and current settings
Background flash on the exact bar a signal fires, plus clean entry arrows
Tips
Test with the RSI filter both on and off — it may cut too many valid patterns depending on the instrument, so compare win rate/profit factor both ways before deciding.
Start with Wobble Allowance near 0 to match the strictest version of the pattern, then loosen gradually if it's not finding enough setups.
Warnings
This is a price-action pattern strategy, not a trend or oscillator strategy — its win rate and trade frequency will look very different from momentum or mean-reversion scripts, so don't compare metrics directly across strategy types.
Past backtest performance does not guarantee future results. Always forward-test on a paper account before risking real capital.
Fixed R-multiple exits mean the strategy needs a minimum win rate to be profitable after commission and slippage — check that math against your actual backtest numbers.
ストラテジー

Momentum Peak Breakout-Pro [Saheewin]🚀 Momentum Peak Breakout — Premium Multi-Timeframe Trading System
Momentum Peak Breakout is a premium-class technical analysis indicator built around a simple but powerful concept:
Momentum must break its previous structural peak or trough, and price must confirm the breakout.
The system then uses multi-timeframe EMA alignment, optional momentum-quality filters, price/momentum divergence and structured Risk/Reward levels to help traders identify and manage potential directional opportunities.
It is designed to provide a complete visual framework for entry confirmation, trade management and disciplined decision-making.
🟢 BUY SIGNAL
A BUY signal is generated when:
The green momentum histogram breaks above the previous green high momentum peak.
The price candle closes above the corresponding previous price peak.
EMA 1 > EMA 2 confirms bullish directional alignment.
Any enabled signal-quality filters are satisfied.
The trade-spacing and live-trade rules allow a new position.
BUY Concept
Momentum Peak Break + Price Breakout + Bullish EMA Alignment
🔴 SELL SIGNAL
A SELL signal is generated when:
The red momentum histogram breaks below the previous red low momentum trough.
The price candle closes below the corresponding previous price trough.
EMA 1 < EMA 2 confirms bearish directional alignment.
Any enabled signal-quality filters are satisfied.
The trade-spacing and live-trade rules allow a new position.
SELL Concept
Momentum Trough Break + Price Breakdown + Bearish EMA Alignment
📊 Multi-Timeframe EMA Confirmation
The indicator automatically selects three relevant timeframes based on the current chart timeframe.
The EMA lengths are user-settable, allowing traders to adapt the system to different markets and trading styles.
The primary directional relationship is:
Bullish → EMA 1 > EMA 2
Bearish → EMA 1 < EMA 2
This provides a broader trend context while keeping the actual entry trigger focused on momentum and price structure.
⚡ Optional Signal-Quality Filters
The indicator includes three optional filters designed specifically to improve the quality of momentum-break signals.
1️⃣ Momentum Expansion
Measures whether momentum is breaking the previous peak/trough with sufficient strength.
A small marginal break and a strong momentum expansion are treated differently.
2️⃣ Breakout Displacement
Measures how decisively price closes beyond the previous price structure, normalized against market volatility.
This can help avoid weak breakouts where price barely moves beyond the previous level.
3️⃣ Market Efficiency Ratio
Measures whether the market is moving efficiently in a directional manner or behaving in a more sideways/choppy fashion.
All three filters are optional and user-settable.
Traders can use them individually or combine them depending on the market and timeframe.
🔄 Optional Price–Momentum Divergence
The indicator also provides an optional Price vs Momentum Divergence module.
🟢 Bullish Divergence
Price forms a Lower Low, while momentum forms a Higher Low.
🔴 Bearish Divergence
Price forms a Higher High, while momentum forms a Lower High.
Divergence signals are independent analytical signals and can be used to identify potential changes in momentum or developing directional opportunities.
🎯 Integrated Trade Box
Each primary BUY/SELL trade can be accompanied by a visual Trade Box containing:
Entry → SL → TP1 → TP2 → TP3
The stop-loss is based on EMA 2.
The target structure is:
TP1 = 1:1.5 Risk/Reward
TP2 = 1:3 Risk/Reward
TP3 = 1:5 Risk/Reward
📐 Understanding the Risk/Reward Calculation
The system calculates the targets from the distance between Entry and SL.
BUY Example
Suppose:
Entry = 100
SL = 98
Risk =:
100 − 98 = 2 points
Therefore:
TP1 = 100 + (2 × 1.5) = 103
TP2 = 100 + (2 × 3) = 106
TP3 = 100 + (2 × 5) = 110
So the potential reward structure is:
SL = −1R
TP1 = +1.5R
TP2 = +3R
TP3 = +5R
SELL Example
Suppose:
Entry = 100
SL = 102
Risk =:
102 − 100 = 2 points
Therefore:
TP1 = 100 − (2 × 1.5) = 97
TP2 = 100 − (2 × 3) = 94
TP3 = 100 − (2 × 5) = 90
Again:
SL = −1R
TP1 = +1.5R
TP2 = +3R
TP3 = +5R
This structured approach allows traders to define the risk before entering the trade rather than deciding the stop and target after the position has already moved.
📈 Trade Statistics
An optional statistics panel helps traders evaluate the signals generated by the indicator.
It can track:
Total Trades
Winning Trades
SL Trades
TP1 Wins
TP2 Wins
TP3 Wins
Winning Rate
Open Trades
Last Trade Status
This allows traders to study the behavior of the indicator on different markets and timeframes rather than relying only on individual signals.
🧠 Designed for Disciplined Traders
Momentum Peak Breakout is intended as a premium-class trading and learning framework.
The purpose is not simply to generate as many signals as possible.
The objective is to help a disciplined trader learn to recognize:
Momentum expansion
Structural momentum breaks
Price confirmation
EMA directional alignment
Breakout quality
Market efficiency
Price/momentum divergence
Risk before entry
Reward potential before entry
Trade management discipline
A trader can use the indicator as a standalone technical-analysis framework to study potential entries and exits.
At the same time, experienced traders can combine the indicator with their own trading strategy, market structure analysis, price-action techniques, support/resistance, volume analysis or execution methodology to create a more selective and potentially higher-quality trading approach.
The key principle:
Do not trade every signal. Learn to identify the signals that fit your strategy, market condition and risk plan.
The indicator provides the framework.
The trader provides the discipline.
🌎 Any Market • Any Timeframe
The indicator is designed to be adaptable across:
Stocks
Indices
Futures
Forex
Commodities
Crypto
Other liquid markets
It can be used across different chart timeframes, from lower intraday timeframes to higher-timeframe analysis.
However, traders should always test the settings and behavior for the specific market and timeframe being traded.
⚠️ IMPORTANT DISCLAIMER
This indicator is provided strictly for educational and informational purposes only.
It is not financial advice, investment advice, trading advice or a recommendation to buy or sell any financial instrument.
No indicator or trading system can guarantee profitable trades, winning trades or future performance.
Signals can fail, particularly during volatile, low-liquidity, sideways or rapidly changing market conditions.
Past performance does not guarantee future results.
Users are responsible for conducting their own research, testing the indicator under appropriate market conditions and applying proper risk management and position sizing.
Never risk money you cannot afford to lose.
Trade with discipline, understand your risk before entering, and use this indicator as a tool for education, analysis and structured decision-making. インジケーター

ストラテジー

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
ストラテジー

RvDiv Regular Divergence (Daily)Rv-Div — Regular Divergence (Daily)
Rv-Div marks confirmed regular divergences on the daily chart and draws the line that connects them, so you can see the structure the signal is based on instead of trusting an arrow.
**What it does**
A bullish divergence is price making a lower low while the oscillator makes a higher low: price is still falling, but with less force behind it. A bearish divergence is the mirror image — a higher high in price against a lower high in the oscillator.
Rv-Div marks the exact candle that confirms the divergence, draws the line between the two pivots it used, and can fire an alert.
**The problem it solves**
Most divergence tools compare each new pivot against the immediately previous one. That works until a small wrinkle appears between the two lows that actually matter — and then the line gets drawn between the wrinkle and the new low instead of between the two real lows. The divergence you see on screen is not the one your eye would have drawn.
Rv-Div compares each new pivot against the last N pivots, not just the previous one, and keeps the one that forms a valid divergence. That is what the eye does: connect the two lows that matter, skipping the noise in between.
It also spends each anchor. Without that, one old pivot gets reused against every new pivot that appears, and you end up with several lines fanning out from the same point — the same divergence counted three or four times, which inflates any count you make of them. Here, once an anchor is used it is discarded along with everything older.
**Quality filters**
Not every pair of pivots deserves to be called a divergence. Four filters, all adjustable:
- Minimum price difference between the two extremes, measured in ATR, so it travels across symbols and volatility regimes instead of using a fixed percentage.
- Minimum difference between the two oscillator pivots.
- Both oscillator pivots on the correct side of zero.
- Minimum and maximum bar separation between the two pivots.
**Settings**
Three oscillators to choose from — Awesome Oscillator, MACD histogram, and a linear-regression momentum. All three are public-domain formulas.
The pivot definition (bars to the left and right), the quality filters, the two EMAs, the colours, the label size and the line width are all adjustable. The default values are the ones I use on the daily chart.
**How to use it**
Daily chart only. The indicator says so on screen if you load it on any other timeframe.
Set alerts to **Once per bar close**. A forming candle keeps changing until it closes, and a divergence is not confirmed until then.
**Dropping to a lower timeframe to confirm**
The signal is a daily signal, but you do not have to take it blind on the daily close. Once the daily marks the entry, drop to 4h and wait for a break of the local high followed by a pullback — or go from 4h down to 1h and look for the same thing. You give up a little of the move in exchange for not entering into a candle that is still falling.
This is deliberately not built into the indicator. It is a judgement call, and judgement calls belong to the trader, not to a script that has to work the same way on every symbol and every market.
**What it does not do**
It does not manage exits. It marks an entry candle and nothing else — no targets, no stops, no position sizing. Those decisions are yours.
It is not a standalone system. A divergence tells you that momentum is fading, not that the trend has turned. What you do with that information is where your own judgement goes.
**About the confirmation delay**
A pivot does not exist until the required bars have closed to its right, so the signal arrives with that delay. This is deliberate. Removing it would mean signalling on unconfirmed pivots, which look excellent in hindsight and vanish in real time.
Historical signals do not repaint: once a pivot is confirmed, it stays confirmed. The forming candle is the only thing that can change, which is why alerts should be set to bar close.
---
**Español**
Rv-Div marca divergencias regulares confirmadas en gráfico diario y dibuja la línea que las une, para que veas la estructura en la que se apoya la señal en lugar de fiarte de una flecha.
Una divergencia alcista es el precio haciendo un mínimo más bajo mientras el oscilador hace un mínimo más alto: sigue cayendo, pero con menos fuerza detrás. La bajista es la imagen espejo.
La diferencia con la mayoría de detectores de divergencia está en el trazado. Casi todos comparan cada pivote nuevo con el inmediatamente anterior, y en cuanto aparece una arruga entre los dos suelos que de verdad importan, la línea sale mal dibujada. Rv-Div compara contra los últimos N pivotes y se queda con el que forma la divergencia válida — que es lo que hace el ojo. Además consume cada ancla, así que un mismo pivote antiguo no se reutiliza una y otra vez generando varias líneas en abanico desde el mismo punto.
Cuatro filtros de calidad ajustables (diferencia mínima de precio en ATR, diferencia mínima del oscilador, ambos pivotes del lado correcto del cero, y separación mínima y máxima), tres osciladores a elegir, y todo el aspecto configurable.
Solo diario. Alertas configuradas como "Una vez por barra al cerrar".
**Bajar a una temporalidad menor para confirmar.** La señal es del diario, pero no hace falta tomarla a ciegas en el cierre diario. Cuando el diario marca la entrada, se puede bajar a 4h y esperar una ruptura del máximo local con su retroceso — o de 4h bajar a 1h y buscar lo mismo. Se cede un poco del movimiento a cambio de no entrar en una vela que todavía viene cayendo. Esto no está metido en el indicador a propósito: es criterio del operador, y el criterio no se le delega a un script que tiene que funcionar igual en todos los símbolos.
No gestiona salidas ni es un sistema completo: marca la vela de entrada y nada más. Una divergencia dice que el impulso se está agotando, no que la tendencia ya giró.
El retraso de confirmación es deliberado: un pivote no existe hasta que cierran las velas que lleva a su derecha. Quitarlo significaría señalar sobre pivotes sin confirmar, que se ven perfectos en el pasado y desaparecen en vivo. Las señales históricas no repintan. インジケーター

Momentum Rotor | Basket Breakout & Leadership RotationWhat it does
Momentum Rotor ranks a basket of correlated symbols (default: AAPL, MSFT, NVDA, GOOGL, AMZN, META, TSLA, AVGO — fully user-editable) by N-bar rate-of-change momentum, recalculated every bar via request.security(). It only opens a long position on the chart's own symbol when that symbol is simultaneously the strongest performer in the basket (rank #1 by momentum) and breaking its own N-bar price high. If the held symbol later loses the #1 rank to another basket member, the strategy closes the position — it "rotates out" of a fading leader rather than holding through a reversal.
Core features
Live leaderboard table — ranks the full basket by momentum every bar, with gradient-colored scores and trend glyphs (↑/↓) so you can see who's strengthening or fading at a glance
Regime/leadership dashboard — shows your symbol's current rank, how many bars the leader has held the top spot, and basket-wide breadth (% of symbols with positive momentum) as a quick risk-on/risk-off gauge
Risk-based position sizing — position size is calculated from a fixed % of equity risked against an ATR-based stop distance, not a fixed share count
ATR stop + R-multiple take-profit — stop distance and profit target both scale with volatility instead of using static price offsets
Optional rotation-confirmation filter — require the leader to lose #1 rank for N consecutive bars before exiting, to reduce whipsaw from brief rank flickers
Optional regime filter — require price above a long SMA before taking new entries, to avoid trading breakouts in a broader downtrend
Realistic backtest defaults — includes commission, slippage, and margin settings out of the box rather than assuming frictionless, infinite-leverage fills
How the strategy works
Each bar, the script pulls the N-bar ROC (rate of change) for every symbol in the basket and sorts them from strongest to weakest. Your chart's symbol only becomes eligible to trade when it holds rank #1 and closes above its own N-bar high — combining a relative-strength filter with an absolute breakout trigger, so entries require both "stronger than its peers" and "breaking out on its own chart" to align. Exits are twofold: an ATR stop/target pair from the entry, and a rotation exit that closes the trade the moment (or, with the confirmation filter on, N bars after) another basket member overtakes it in the momentum ranking.
What makes it distinct
Most retail breakout scripts evaluate a single symbol in isolation. Momentum Rotor brings relative-strength rotation — a concept used by institutional sector/factor rotation strategies — into a single-chart script by polling an entire basket with request.security() and gating trade eligibility on relative rank, not just absolute price action. The live leaderboard turns that ranking process into something visible and auditable on the chart itself, rather than a black-box filter.
Tips for use
Chart the strategy on one of the basket's own symbols (or add your target symbol to the basket inputs) — the "am I #1" check only works when your chart's ticker matches a basket entry
This instance only manages a position on its own chart's symbol; it does not automatically route orders to whichever symbol becomes the new leader. To rotate capital across the whole basket, run separate instances on each symbol
Momentum/breakout systems are inherently prone to false breakouts and whipsaws in choppy markets — the optional regime filter and rotation-confirmation delay are there to dampen that; test both on/off for your instrument and timeframe
Sector ETFs (lower dispersion, steadier trends) and mega-cap tech names (higher dispersion, sharper momentum swings) behave differently in this framework — adjust lenMom/lenBreak accordingly
Backtest results depend heavily on commission, slippage, and margin assumptions set in Properties — review and adjust these to match your actual broker before drawing conclusions
Limitations
This is an educational strategy template, not a production-ready system or financial advice. It has not been optimized or validated for any specific instrument, timeframe, or market regime. Past performance in this backtest does not indicate future results. ストラテジー

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
ストラテジー

StackLight MTF | MTF Momentum Stack + Stochastic ConfluenceThe strategy only fires a signal when three timeframes of your choosing — fast, medium, and slow — all agree on direction. Each timeframe is scored bullish, bearish, or neutral using either RSI or EMA slope, and displayed as a live 3-light traffic signal in the corner of your chart. Green means go, red means no — and when all three lights match, the strategy arms itself for entry.
Once the stack is aligned, entries are triggered by a stochastic %K/%D crossover on your chart timeframe, confirmed by a linreg-smoothed stochastic on your slowest timeframe — so you're not just trading a momentum cross in isolation, you're trading one that's backed by higher-timeframe agreement.
Risk is handled with ATR-based stops and targets, and position size adjusts automatically so every trade risks a fixed percentage of your account — no more, no less — regardless of how wide or tight the current stop distance is. An optional "stack flip" exit closes trades early if the multi-timeframe alignment breaks down before your stop is hit, cutting losers faster than a static stop alone.
Features
3-light traffic signal table — instant visual read of alignment across your fast/medium/slow timeframes
Dual momentum modes — RSI (with adjustable neutral band to reduce flip-flopping) or EMA slope
Linreg-smoothed MTF stochastic — filters out the staircase artifact from pulling higher-timeframe data
Bias label — STRONG BULL / BULL LEAN / NEUTRAL / BEAR LEAN / STRONG BEAR at a glance
Background tint + bar coloring — full-chart visual confirmation, not just the indicator pane
Risk-based position sizing — fixed % equity risk per trade, auto-scaled to current ATR
ATR stop/target + stack-flip early exit — two independent exit mechanisms
Built-in alert conditions for long/short signals — ready for automation
Long-only, short-only, or both — directional bias control in one input
ストラテジー

3EMA Filter [LTW]📈 3EMA Filter
This indicator visualizes real-time trend intensity using a multi-timeframe Exponential Moving Average (EMA) structure, projects future price trajectories based on momentum slopes, and quantifies fast-to-slow moving average divergence via an integrated real-time dashboard.
Instead of looking backward at static historical support and resistance levels on lower timeframes, you can instantly read real-time trend acceleration and price divergence right here and now to build powerful, forward-looking trading strategies.
⚙️ Key Features & Customization
▪️ Dynamic EMA Ribbon & Crossover Signals (Default: 50, 100, 200)
Utilizes dynamic colored ribbon filling between EMA 1, 2, and 3 to provide an immediate visual assessment of trend alignment (bullish/bearish) and momentum strength. Highlights Golden Cross and Dead Cross events between the fast and middle lines with distinct markers and optional background highlighting.
▪️ Slope-Based Future Trajectory Projection
Calculates the current momentum slope of each moving average at the latest bar to project future EMA trajectories 'n' bars forward. Allows traders to visually gauge whether trend momentum is currently accelerating or flattening out, aiding in the early detection of potential inflection points and trend reversals. (Supports customizable styles: Solid, Dotted, Dashed).
▪️ High-Visibility Divergence Dashboard
Automatically calculates and displays the Current, Maximum, and Minimum price divergence (%) between the fast moving average (EMA1) and the slow moving average (EMA3) over a selectable timeframe (1D, 1W, 1M). Engineered with a crisp, high-contrast design to immediately evaluate overbought and oversold market pressure across both Dark and Light themes.
▪️ Keep Charts Clean & Focus on Operability (Limit Display to Recent "n" Bars)
We approached this feature with the mindset of focusing on practical 'Operability' and responsiveness in real-time trading rather than just simple readability. By limiting the indicator display to the most recent 'n' bars, it reduces computational waste and eliminates visual clutter from historical bars, allowing you to react immediately to pure candlestick price action.
💡 How to Use & Trading Strategies
Provides a clean, forward-looking analytical framework that eliminates hindsight bias on lower timeframes.
1. Focusing on Acceleration & Divergence on Lower Timeframes
Unless you are analyzing macro moving averages like the 200-day or 200-week MAs on daily or weekly charts, tracing historical MA support and resistance lines on lower timeframes (such as intraday minute or hourly charts) often offers little practical synergy in real-time trading. This indicator departs from static historical mapping and is used strictly to read real-time "EMA Divergence" and the "Momentum Acceleration" of the current trend.
2. Preventing Curve-Fitting & Hindsight Bias (Hidden Picture Puzzles)
The integrated Bar Limit feature is deliberately designed to stop traders from falling into the trap of "playing hidden picture puzzles"—retroactively forcing indicators to fit historical price action. It eliminates hindsight bias, ensuring your analytical focus remains 100% locked on present market dynamics and future trajectory projections.
📌 Summary
A practical, all-in-one indicator designed to shift your focus away from static historical support/resistance and toward real-time trend acceleration and divergence. Through slope-based future projections, a high-visibility divergence dashboard, and an operability-focused Bar Limit feature, you can eliminate hindsight bias and trade with high reliability by focusing entirely on active market dynamics. インジケーター

RSI Divergence Entry Engine [trade_w_samet]🎯 RSI Divergence Entry Engine
RSI Divergence Entry Engine is a pivot-confirmed RSI divergence, optional trend-filtering, ATR-based trade-mapping, historical visualization, alert, and statistics indicator designed to help traders study how regular bullish and bearish RSI divergences can be converted into a structured chart workflow.
The script is built around one central idea:
A confirmed RSI divergence should be treated as analytical context first, and as a tracked trade setup only when the active direction filter and trade-state rules allow it.
The engine identifies regular RSI divergence between confirmed RSI pivots and corresponding price pivots.
When a divergence is confirmed, the script can:
• Display the divergence inside the RSI panel
• Fill the region between the RSI path and its divergence reference line
• Draw a three-layer neon divergence line directly between the corresponding price pivots on the main chart
• Evaluate the active trend-filter mode
• Open one tracked bullish or bearish setup when the signal is eligible
• Calculate an ATR-based Stop Loss
• Calculate TP1, TP2, and TP3
• Extend risk/reward boxes while the trade remains active
• Preserve completed trade boxes and historical TP price labels
• Track TP3 wins, Stop Losses, Win Rate, NET R, Average R, and Profit Factor
• Display a full desktop dashboard or a compact mobile dashboard
• Send separate TradingView alert conditions
• Support one combined “Any alert() function call” workflow
• Apply Dark Mode, Light Mode, or Mobile Theme styling
The indicator includes:
• Fixed RSI 14 calculation using closing prices
• Pivot-based regular bullish divergence detection
• Pivot-based regular bearish divergence detection
• Adjustable Pivot Lookback
• Adjustable Confirmation Bars
• A fixed internal pivot-distance window
• Confirmed-bar divergence acceptance
• RSI-panel bullish and bearish divergence lines
• RSI-panel divergence-area fills
• Main-chart three-layer neon divergence lines
• Adjustable main-chart BULLISH / SELL label size
• Fixed compact RSI-panel labels
• Dark Mode
• Light Mode
• Mobile Theme
• EMA 200 Trend Filter
• Supertrend filter using ATR 10 and factor 3.0
• Higher-timeframe EMA 200 Trend Filter
• Adjustable higher timeframe
• ATR-based Stop Loss
• Adjustable ATR period
• Adjustable ATR Stop Loss multiplier
• Adjustable TP3 target from 1R to 7R
• Automatically calculated TP1 and TP2
• One active tracked trade at a time
• Conservative same-candle TP3 / SL handling
• Permanent historical TP / SL boxes
• Historical TP1, TP2, and TP3 price labels
• Dynamic active-trade price labels
• TP3 TARGET HIT labels
• Stop Loss result labels
• Full desktop statistics dashboard
• Two-row Mobile Theme dashboard
• Static alertcondition() support
• Dynamic alert() support
• “Any alert() function call” compatibility
• Bold-italic visual text
• Pure-white Dark Mode label text
• Hidden status-line input values
• Main-chart overlay visuals from a separate RSI pane
• Loaded-history trade statistics
The purpose of the script is to provide a transparent visual framework for reviewing confirmed RSI divergence, directional context, mapped risk, target structure, and bar-based historical outcomes.
It is not financial advice.
It is not an automated trading system.
It does not execute broker orders.
It does not calculate position size.
It does not guarantee that a divergence will produce a reversal.
It does not guarantee that the displayed Win Rate, NET R, or Profit Factor will continue in future market conditions.
It does not include spread, commission, slippage, latency, financing, or partial fills.
It does not reproduce the exact intrabar path inside historical candles.
━━━━━━━━━━━━━━━━━━━━━━
📌 OVERVIEW
━━━━━━━━━━━━━━━━━━━━━━
At a high level, RSI Divergence Entry Engine does the following:
• Calculates RSI using a fixed 14-period length and closing prices.
• Searches the RSI series for confirmed pivot lows and pivot highs.
• Compares each confirmed RSI pivot with the previous eligible pivot of the same type.
• Compares the corresponding price low or high with the prior price pivot.
• Identifies regular bullish divergence when RSI forms a higher low while price forms a lower low.
• Identifies regular bearish divergence when RSI forms a lower high while price forms a higher high.
• Requires the distance between the two confirmed pivots to remain inside the fixed internal range window.
• Waits for the required right-side confirmation bars before accepting a pivot.
• Displays confirmed divergence inside the RSI panel.
• Draws the same confirmed price-pivot relationship on the main chart with a neon line.
• Evaluates the selected trend-filter mode.
• Rejects a tracked entry when the trend filter does not allow that direction.
• Rejects a tracked entry when an opposite divergence is simultaneously present.
• Rejects a tracked entry while another trade is active.
• Opens a tracked trade at the close of the divergence-confirmation candle.
• Calculates Stop Loss distance from ATR.
• Places TP1 and TP2 at proportional distances inside the final TP3 target.
• Tracks only TP3 as the winning exit.
• Tracks Stop Loss as a -1R loss.
• Extends the active profit and loss boxes until the trade closes.
• Preserves completed boxes as historical trade visuals.
• Preserves historical TP1, TP2, and TP3 price labels.
• Updates the dashboard with bar-based historical statistics.
• Provides separate static alerts and combined dynamic alerts.
The script does not use machine-learning prediction.
It does not claim that RSI divergence predicts the future with certainty.
Its dashboard is not TradingView Strategy Tester.
Its statistics are calculated internally from the script’s own bar-touch rules.
━━━━━━━━━━━━━━━━━━━━━━
🧠 CORE IDEA
━━━━━━━━━━━━━━━━━━━━━━
RSI divergence describes disagreement between price direction and RSI pivot direction.
A regular bullish divergence occurs when:
• price forms a lower low
• RSI forms a higher low
A regular bearish divergence occurs when:
• price forms a higher high
• RSI forms a lower high
The divergence can indicate that momentum is not confirming the newest price extreme.
However, divergence alone does not answer:
• whether the broader trend supports the reversal
• whether price is above or below a long-term directional reference
• whether Supertrend agrees with the signal
• whether the selected higher timeframe agrees with the signal
• where a volatility-adjusted Stop Loss should be mapped
• where intermediate and final targets should be displayed
• whether another tracked trade is already active
• whether historical bar touches reached TP3 or Stop Loss first
• how the signal behaves across Dark, Light, or Mobile layouts
The script therefore combines the divergence calculation with an optional trend filter and a fixed trade-tracking model.
The complete workflow is:
RSI pivot confirmation
→ price-pivot comparison
→ regular divergence confirmation
→ RSI-panel visualization
→ main-chart neon price-divergence line
→ optional trend-filter validation
→ one-active-trade check
→ entry at confirmation-candle close
→ ATR-based Stop Loss
→ TP1 / TP2 / TP3 mapping
→ historical bar-touch tracking
→ TP3 or SL result
→ dashboard statistics
→ static and dynamic alerts
The modules are not intended to operate as unrelated indicators.
Each module supports the same process: identifying a confirmed divergence, deciding whether it is eligible for tracking, mapping the trade structure, and recording the result under explicit rules.
━━━━━━━━━━━━━━━━━━━━━━
🧩 WHY THIS SCRIPT IS NOT A SIMPLE RSI DIVERGENCE MARKER
━━━━━━━━━━━━━━━━━━━━━━
A basic RSI divergence script can stop after drawing a line between two oscillator pivots.
RSI Divergence Entry Engine continues beyond that step.
A confirmed divergence can move through the following stages:
RSI pivot appears
→ right-side confirmation bars complete
→ previous eligible RSI pivot is located
→ pivot distance is validated
→ corresponding price pivots are compared
→ bullish or bearish divergence is confirmed
→ RSI divergence region is displayed
→ main-chart neon price-divergence line is displayed
→ active trend filter is evaluated
→ opposite-direction conflict is rejected
→ existing active-trade state is checked
→ ATR risk distance is calculated
→ entry, SL, TP1, TP2, and TP3 are stored
→ trade boxes extend through time
→ TP3 or SL is detected
→ completed trade is added to statistics
→ historical TP prices remain visible
The RSI module identifies the momentum disagreement.
The trend-filter module defines whether the tracked entry is directionally permitted.
The ATR module adapts the Stop Loss distance to current volatility.
The target module translates the chosen TP3 R multiple into three visual target levels.
The trade-state module prevents overlapping tracked positions.
The statistics module summarizes the outcomes produced by those exact rules.
The alert module communicates divergence, entry, TP3, and Stop Loss events.
This coordinated process makes the publication an entry-engine framework rather than only a divergence drawing tool.
━━━━━━━━━━━━━━━━━━━━━━
⚙️ HOW THE SCRIPT WORKS
━━━━━━━━━━━━━━━━━━━━━━
The indicator operates from a separate RSI pane while using force-overlay visuals for selected elements on the main chart.
The internal RSI configuration is:
• RSI length: 14
• Source: close
• Regular bullish divergence: enabled
• Regular bearish divergence: enabled
• Hidden bullish divergence: internally disabled
• Hidden bearish divergence: internally disabled
• Minimum pivot separation: 5 bars
• Maximum pivot separation: 60 bars
The user controls:
• Pivot Lookback
• Confirmation Bars
• Main-chart signal-label size
• ATR Period
• Stop Loss Distance in ATR
• TP3 Target in R
• Trend Filter
• Higher-Timeframe Trend Timeframe
• Theme Mode
First, the script calculates RSI:
osc = ta.rsi(close, 14)
The script then detects confirmed RSI pivots:
pivotLowValue = ta.pivotlow(osc, lbL, lbR)
pivotHighValue = ta.pivothigh(osc, lbL, lbR)
A pivot is not known on the pivot candle itself.
It becomes confirmed only after the selected Confirmation Bars have closed to its right.
The script then retrieves the previous confirmed pivot value, price value, and pivot bar.
Regular bullish divergence requires:
• current RSI pivot low above the previous RSI pivot low
• current price low below the previous price low
• valid pivot distance
• confirmed current chart bar
Regular bearish divergence requires:
• current RSI pivot high below the previous RSI pivot high
• current price high above the previous price high
• valid pivot distance
• confirmed current chart bar
The confirmed divergence is then displayed in two places:
• RSI pane
• Main price chart
The trend filter is applied only to the tracked trade entry.
This means a confirmed divergence can remain visible even when:
• the selected trend filter rejects the direction
• another trade is already active
• bullish and bearish conditions conflict on the same calculation
This separation is intentional.
The divergence visual represents analytical context.
The main-chart BULLISH or SELL trade label represents an entry that the tracking engine actually accepted.
━━━━━━━━━━━━━━━━━━━━━━
📉 RSI CALCULATION
━━━━━━━━━━━━━━━━━━━━━━
The Relative Strength Index is calculated from closing prices using a fixed length of 14.
The RSI line is displayed in blue.
The RSI pane includes:
• 70 Overbought line
• 50 Middle line
• 30 Oversold line
Dark Mode uses:
• black RSI-panel background
• red Overbought line
• white dotted Middle line
• green Oversold line
Light Mode uses:
• white RSI-panel background
• dark Middle line
• red Overbought line
• green Oversold line
The 70 and 30 lines provide visual context.
They are not mandatory divergence conditions.
A bullish divergence can be detected outside the Oversold region.
A bearish divergence can be detected outside the Overbought region.
The script does not require RSI to cross 30 or 70 before accepting a divergence.
━━━━━━━━━━━━━━━━━━━━━━
🔍 PIVOT DETECTION MODEL
━━━━━━━━━━━━━━━━━━━━━━
Pivot Lookback controls the number of candles examined on the left side of a potential RSI pivot.
The default value is 5.
Higher values generally produce larger and less frequent swing points.
Lower values generally produce smaller and more frequent swing points.
Confirmation Bars controls the number of completed candles required on the right side of the potential pivot.
The default value is 1.
A higher Confirmation Bars value provides more right-side confirmation but increases delay.
A lower value confirms earlier but can identify smaller structures.
The script also requires the previous pivot to be between 5 and 60 bars away.
These minimum and maximum distance values are fixed internally to keep the public settings panel compact.
The pivot model is symmetrical:
• pivot lows are used for bullish divergence
• pivot highs are used for bearish divergence
━━━━━━━━━━━━━━━━━━━━━━
🟢 REGULAR BULLISH DIVERGENCE
━━━━━━━━━━━━━━━━━━━━━━
A regular bullish divergence is confirmed when:
• a new RSI pivot low is confirmed
• the previous eligible RSI pivot low exists
• the current RSI pivot low is higher than the previous RSI pivot low
• the current corresponding price low is lower than the previous price low
• the pivot distance is between the fixed internal limits
• the current calculation bar is confirmed
Conceptually:
Price:
lower low
RSI:
higher low
The RSI pane displays:
• a green divergence line between the two RSI pivot values
• a translucent green fill between the real RSI path and the straight divergence reference
• a BULLISH label at the confirmed pivot location
The main chart displays:
• a three-layer green neon line between the corresponding price lows
A tracked bullish trade opens only when:
• the bullish divergence is not opposed by a bearish divergence on the same calculation
• the selected trend filter allows bullish entries
• no tracked trade is currently active
• another trade did not close on the same candle
• ATR is available and greater than zero
The tracked entry price is the close of the confirmation candle.
It is not the historical pivot-low price.
━━━━━━━━━━━━━━━━━━━━━━
🔴 REGULAR BEARISH DIVERGENCE
━━━━━━━━━━━━━━━━━━━━━━
A regular bearish divergence is confirmed when:
• a new RSI pivot high is confirmed
• the previous eligible RSI pivot high exists
• the current RSI pivot high is lower than the previous RSI pivot high
• the current corresponding price high is higher than the previous price high
• the pivot distance is between the fixed internal limits
• the current calculation bar is confirmed
Conceptually:
Price:
higher high
RSI:
lower high
The RSI pane displays:
• a red divergence line between the two RSI pivot values
• a translucent red fill between the real RSI path and the straight divergence reference
• a SELL label at the confirmed pivot location
The main chart displays:
• a three-layer red neon line between the corresponding price highs
A tracked bearish trade opens only when:
• the bearish divergence is not opposed by a bullish divergence on the same calculation
• the selected trend filter allows bearish entries
• no tracked trade is currently active
• another trade did not close on the same candle
• ATR is available and greater than zero
The tracked entry price is the close of the confirmation candle.
It is not the historical pivot-high price.
━━━━━━━━━━━━━━━━━━━━━━
⏳ PIVOT CONFIRMATION AND SIGNAL TIMING
━━━━━━━━━━━━━━━━━━━━━━
This section is important.
The script uses ta.pivotlow() and ta.pivothigh().
Pivot functions require candles to the right of the pivot before confirmation.
For example, when Confirmation Bars is 1:
• the potential pivot occurs
• one additional candle closes
• the pivot becomes confirmed
• the divergence condition can then be calculated
The RSI-panel divergence line and RSI divergence label are drawn at the original pivot-bar location after confirmation.
The main-chart neon divergence line also connects the original price-pivot bars after the divergence is confirmed.
This creates a historical visual relationship between the two pivots.
It does not mean the divergence was available in realtime on the original pivot candle.
The tracked trade entry is not placed back on the pivot.
The tracked entry occurs at the close of the later candle where the divergence confirmation becomes available.
Therefore, users must distinguish between:
Pivot Visualization
Shows where the confirmed historical pivots occurred.
Trade Entry Label
Shows the candle where the script actually accepted and opened the tracked setup.
Changing Confirmation Bars changes the confirmation delay.
Increasing Confirmation Bars can materially change signal timing and historical divergence output.
━━━━━━━━━━━━━━━━━━━━━━
✨ MAIN-CHART NEON DIVERGENCE VISUALS
━━━━━━━━━━━━━━━━━━━━━━
Confirmed RSI divergences are also displayed directly on the main price chart.
Bullish divergence:
• connects the two corresponding price lows
• uses green
• uses a three-layer neon appearance
Bearish divergence:
• connects the two corresponding price highs
• uses red
• uses a three-layer neon appearance
The neon effect is created from:
• a wide transparent outer glow
• a medium inner glow
• a bright two-pixel core line
The neon line is a historical divergence visual.
It is not an entry line.
It is not a Stop Loss.
It is not a support or resistance guarantee.
The line is created only after the RSI pivot and divergence have been confirmed.
Older line objects are removed when the configured internal object limit is exceeded.
Deleting an older visual object does not change the underlying signal calculation.
━━━━━━━━━━━━━━━━━━━━━━
🎨 RSI DIVERGENCE AREA SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
Inside the RSI pane, the script creates a filled polygon between:
• the actual RSI path from the first pivot to the second pivot
• the straight divergence line connecting those pivot endpoints
Bullish divergence uses a translucent green fill.
Bearish divergence uses a translucent red fill.
The purpose is to make the momentum disagreement easier to recognize than a thin line alone.
The fill does not measure probability.
A larger visual area does not automatically mean a stronger or more profitable divergence.
The fill depends on:
• RSI movement between the pivots
• distance between the pivots
• selected Pivot Lookback
• selected Confirmation Bars
• chart symbol
• timeframe
• loaded historical data
━━━━━━━━━━━━━━━━━━━━━━
🧭 TREND FILTER SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
The trend filter determines whether a confirmed divergence is eligible to open a tracked trade.
Available modes are:
• Off
• EMA Trend
• Supertrend
• HTF Trend
The filter does not hide the confirmed divergence visuals.
It only changes whether the trade engine accepts the bullish or bearish entry.
This allows users to study:
• all confirmed divergence structures
• only the subset that passed the selected directional filter
The active trend reference is drawn on the main chart when a filter mode is selected.
The reference is green when the active filter state is bullish.
The reference is red when the active filter state is bearish.
━━━━━━━━━━━━━━━━━━━━━━
📈 EMA TREND FILTER
━━━━━━━━━━━━━━━━━━━━━━
EMA Trend uses a fixed chart-timeframe EMA 200.
Bullish entries are allowed when:
• chart close is above EMA 200
Bearish entries are allowed when:
• chart close is below EMA 200
When price equals the EMA exactly, neither directional condition is satisfied.
The EMA filter is intended to align bullish divergence tracking with price above a long-term average and bearish divergence tracking with price below it.
It does not guarantee that price will continue in the filtered direction.
A divergence rejected by the EMA filter can still remain visible as a divergence visual.
━━━━━━━━━━━━━━━━━━━━━━
📊 SUPERTREND FILTER
━━━━━━━━━━━━━━━━━━━━━━
Supertrend mode uses fixed internal parameters:
• ATR length: 10
• factor: 3.0
Bullish entries are allowed when the Supertrend state is bullish.
Bearish entries are allowed when the Supertrend state is bearish.
The Supertrend reference is displayed on the main chart.
The fixed parameters keep the public settings menu simple and make behavior consistent across users.
The Supertrend filter can react differently across symbols and timeframes because ATR and price structure differ.
A bullish Supertrend state does not guarantee a successful bullish divergence trade.
A bearish Supertrend state does not guarantee a successful bearish divergence trade.
━━━━━━━━━━━━━━━━━━━━━━
⏱️ HIGHER-TIMEFRAME TREND FILTER
━━━━━━━━━━━━━━━━━━━━━━
HTF Trend compares the selected higher-timeframe close with its EMA 200.
Bullish entries are allowed when:
• higher-timeframe close is above higher-timeframe EMA 200
Bearish entries are allowed when:
• higher-timeframe close is below higher-timeframe EMA 200
The default higher timeframe is 240 minutes.
The request uses:
• gaps_off
• lookahead_off
The script does not intentionally request future higher-timeframe data.
However, the currently forming higher-timeframe candle can continue changing until that higher-timeframe candle closes.
This means the realtime HTF filter state can change while the active higher-timeframe candle is still developing.
Users who require fully closed higher-timeframe confirmation should account for this timing characteristic when interpreting realtime signals.
Changing the HTF Trend Timeframe recalculates historical eligibility.
━━━━━━━━━━━━━━━━━━━━━━
🎯 ENTRY MODEL
━━━━━━━━━━━━━━━━━━━━━━
The indicator uses the close of the divergence-confirmation candle as the tracked entry reference.
A bullish trade is opened when:
• valid bullish divergence is confirmed
• no bearish divergence conflict exists
• bullish trend permission is true
• no trade is active
• no trade closed on the same candle
• ATR is valid
A bearish trade uses the mirrored conditions.
The entry is stored at close.
The script then calculates:
• ATR-based risk distance
• Stop Loss
• TP1
• TP2
• TP3
Only signals that actually open a tracked trade receive the main-chart BULLISH or SELL entry label.
A divergence visual without an entry label can therefore indicate:
• trend-filter rejection
• existing active trade
• same-candle direction conflict
• same-candle previous trade closure
• unavailable ATR
━━━━━━━━━━━━━━━━━━━━━━
🛑 ATR STOP LOSS MODEL
━━━━━━━━━━━━━━━━━━━━━━
Risk distance is calculated as:
ATR × Stop Loss Distance.
Default settings:
• ATR Period: 14
• Stop Loss Distance: 2.0 ATR
Bullish trade:
Stop Loss = entry − risk distance
Bearish trade:
Stop Loss = entry + risk distance
ATR adapts the raw price distance to current market volatility.
The script does not examine:
• market structure below the bullish signal
• market structure above the bearish signal
• spread
• instrument tick value
• account size
• position size
• broker margin
• contract specifications
The ATR Stop Loss is a visual and statistical model.
It is not a broker order.
━━━━━━━━━━━━━━━━━━━━━━
🏆 TP1 / TP2 / TP3 MODEL
━━━━━━━━━━━━━━━━━━━━━━
The user selects the final TP3 target from 1R to 7R.
The default is 2R.
TP1 and TP2 are placed automatically inside the final target distance.
TP1:
one-third of the TP3 distance
TP2:
two-thirds of the TP3 distance
For a 3R TP3 setting:
• TP1 = 1R
• TP2 = 2R
• TP3 = 3R
For a 2R TP3 setting:
• TP1 ≈ 0.67R
• TP2 ≈ 1.33R
• TP3 = 2R
TP1 and TP2 are visual guide levels.
The current statistics engine does not close partial positions at TP1 or TP2.
It does not move Stop Loss to break even after TP1 or TP2.
It does not add partial R profit when TP1 or TP2 is touched.
Only TP3 is counted as a winning trade.
A Stop Loss is counted as -1R.
━━━━━━━━━━━━━━━━━━━━━━
🚦 ONE ACTIVE TRADE AT A TIME
━━━━━━━━━━━━━━━━━━━━━━
The trade engine maintains one active tracked position.
While a trade is active:
• new bullish divergence entries are not opened
• new bearish divergence entries are not opened
• divergence visuals can still appear
• historical divergence lines can still be drawn
This prevents overlapping tracked positions from affecting the statistics model.
A new trade is also prevented from opening on the same candle that the previous trade closes.
The next eligible divergence must occur on a later candle.
This design keeps each tracked result independent under the script’s internal accounting rules.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ TP3 / SL SAME-CANDLE HANDLING
━━━━━━━━━━━━━━━━━━━━━━
Historical OHLC candles do not reveal the exact sequence of every intrabar price movement.
A candle can contain both:
• the TP3 price
• the Stop Loss price
When both are touched inside the same candle, the script cannot know from OHLC data which level occurred first.
The engine uses a conservative rule:
Stop Loss receives priority.
The trade is recorded as a loss.
TP3 and Stop Loss checks begin on the candle after entry.
The entry candle cannot immediately close the tracked trade.
This avoids assuming an unknown movement sequence inside the entry candle.
The conservative priority rule can produce different outcomes from lower-timeframe or tick-based execution reconstruction.
━━━━━━━━━━━━━━━━━━━━━━
📦 TRADE BOX VISUAL SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
Each tracked trade creates two main-chart boxes:
Profit Box
Extends from entry to TP3.
Stop Box
Extends from entry to Stop Loss.
Bullish and bearish trades use the same green profit-area and red risk-area color logic.
While the trade remains active, the boxes extend to the current bar.
When the trade closes, the boxes stop at the exit candle and remain visible historically.
The boxes help visualize:
• entry timing
• risk distance
• final target distance
• trade duration
• exit candle
The boxes are chart drawings.
They are not broker orders.
Older boxes are deleted when the internal historical object limit is exceeded.
━━━━━━━━━━━━━━━━━━━━━━
🏷️ ACTIVE AND HISTORICAL PRICE LABELS
━━━━━━━━━━━━━━━━━━━━━━
During an active tracked trade, the right side of the chart displays dynamic labels for:
• ENTRY
• SL
• TP1
• TP2
• TP3
Each label includes the current stored price.
The labels move to the newest bar while the trade remains active.
On the exit candle, the final prices remain visible for that calculation.
When the trade closes, permanent historical labels are created for:
• TP1
• TP2
• TP3
These historical labels remain attached to the completed trade’s right edge.
The purpose is to preserve the target-price structure after the active dynamic labels disappear.
Historical TP labels do not indicate that TP1 or TP2 was actually touched.
They display the planned target prices for the completed tracked trade.
The final result is determined only by TP3 or Stop Loss.
━━━━━━━━━━━━━━━━━━━━━━
✅ RESULT LABELS
━━━━━━━━━━━━━━━━━━━━━━
When TP3 is reached, the script prints:
TARGET HIT
The trade is counted as a win equal to the selected TP3 R value.
When Stop Loss is reached, the script prints:
SL
The trade is counted as a -1R loss.
Result labels are displayed at the corresponding exit price.
All visible chart labels use bold-italic typography.
Dark Mode label text uses pure white.
Light Mode uses dark text where required for contrast.
━━━━━━━━━━━━━━━━━━━━━━
🎨 THEME SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
The indicator includes three theme modes:
• Dark Mode
• Light Mode
• Mobile Theme
Dark Mode
Designed for dark TradingView layouts.
It uses:
• black RSI-panel background
• dark dashboard surface
• white dashboard text
• pure-white chart-label text
• red brand accents
• green bullish visuals
• red bearish visuals
Light Mode
Designed for light TradingView layouts.
It uses:
• white RSI-panel background
• white dashboard surface
• dark dashboard text
• dark chart-label text where appropriate
• red brand accents
• adjusted divergence transparency
Mobile Theme
Designed for smaller screens.
It uses:
• compact main-chart labels
• smaller RSI labels
• tiny price labels
• a two-row dashboard
• Win Rate
• NET R
Mobile Theme does not display the full desktop statistics table.
Theme selection changes presentation.
It does not change the underlying divergence, trend-filter, or trade calculations.
━━━━━━━━━━━━━━━━━━━━━━
📟 DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━
Dark Mode and Light Mode display the full bottom-right dashboard.
The header displays:
• RSI DIVERGENCE
• selected TP3 R value
• active Trend Filter
The full dashboard includes:
Status
Possible values:
• NO ACTIVE TRADE
• ACTIVE BUY
• ACTIVE SELL
Closed Trades
Number of completed tracked trades.
TP3 Wins
Number of trades that reached TP3 before Stop Loss under the script’s bar-touch rules.
Losses
Number of trades recorded at Stop Loss.
Win Rate
TP3 Wins divided by Closed Trades.
NET R
Gross Profit R minus Gross Loss R.
Gross Profit
Sum of winning TP3 R values.
Gross Loss
Number of losing trades expressed as R because every Stop Loss equals -1R.
Average / Trade
NET R divided by Closed Trades.
Profit Factor
Gross Profit R divided by Gross Loss R.
Mobile Theme displays only:
• Win Rate
• NET R
The dashboard is placed on the main chart even though the indicator calculates in a separate RSI pane.
━━━━━━━━━━━━━━━━━━━━━━
📊 STATISTICS METHODOLOGY
━━━━━━━━━━━━━━━━━━━━━━
The statistics are produced by the script’s internal bar-based trade tracker.
They are not imported from a broker.
They are not verified account results.
They are not TradingView Strategy Tester results.
Win Rate:
wins / closed trades
Gross Profit R:
wins × selected TP3 R
Gross Loss R:
losses × 1R
NET R:
Gross Profit R − Gross Loss R
Average R:
NET R / closed trades
Profit Factor:
Gross Profit R / Gross Loss R
When there are profitable trades but no recorded losses, the script displays 999 as a finite placeholder instead of mathematical infinity.
The statistics do not include:
• TP1 partial profits
• TP2 partial profits
• break-even exits
• trailing stops
• spread
• commission
• slippage
• swap
• latency
• order rejection
• partial fills
• position sizing
• account equity
• compounding
• taxes
Statistics depend on:
• loaded chart history
• selected symbol
• timeframe
• data provider
• Pivot Lookback
• Confirmation Bars
• Trend Filter
• HTF Trend Timeframe
• ATR Period
• Stop Loss multiplier
• TP3 target
• historical-data revisions
Changing any of these inputs can change historical results.
━━━━━━━━━━━━━━━━━━━━━━
🚨 ALERT SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
The script includes static TradingView alert conditions for:
• Regular Bullish Divergence
• Hidden Bullish Divergence
• Regular Bearish Divergence
• Hidden Bearish Divergence
• BUY Entry
• SELL Entry
• TP3 Hit
• Stop Loss Hit
Regular bullish and bearish divergence are enabled in the current public configuration.
Hidden bullish and hidden bearish divergence logic is internally disabled.
The hidden alert choices can therefore appear in TradingView’s alert-condition list, but no hidden divergence event is produced while the internal hidden-divergence switches remain disabled.
The script also includes dynamic alert() calls for:
• BUY entry
• SELL entry
• TP3 hit
• Stop Loss hit
Dynamic BUY and SELL messages can include:
• tradewsamet identifier
• chart ticker
• chart timeframe
• entry price
• TP1 price
• TP2 price
• TP3 price
• Stop Loss price
• final R target
• active Trend Filter
This allows one TradingView alert using:
Any alert() function call
to receive all dynamic entry and result events.
━━━━━━━━━━━━━━━━━━━━━━
🔔 HOW TO USE ALERTS
━━━━━━━━━━━━━━━━━━━━━━
For a specific static event:
1. Add RSI Divergence Entry Engine to the chart.
2. Open TradingView’s Create Alert window.
3. Select the indicator as the condition.
4. Choose the required event.
5. Select the notification method.
6. Use an appropriate frequency.
7. Test the alert before relying on it.
For one combined dynamic workflow:
1. Add the indicator to the chart.
2. Open Create Alert.
3. Select RSI Divergence Entry Engine .
4. Select Any alert() function call.
5. Configure the delivery method.
6. Test BUY, SELL, TP3, and SL message handling.
When the script, settings, symbol, or timeframe changes materially, recreate existing alerts.
A TradingView alert can continue using the script snapshot stored when the alert was created.
Alerts are monitoring tools.
They do not execute, modify, or close broker orders.
━━━━━━━━━━━━━━━━━━━━━━
🧪 HOW TO USE THE INDICATOR
━━━━━━━━━━━━━━━━━━━━━━
A practical workflow:
1. Add RSI Divergence Entry Engine to a standard candlestick chart.
2. Select Dark Mode, Light Mode, or Mobile Theme.
3. Begin with Pivot Lookback set to 5.
4. Begin with Confirmation Bars set to 1.
5. Observe the RSI-panel divergence structures.
6. Observe the matching neon price-pivot lines on the main chart.
7. Remember that the pivot visual becomes available only after right-side confirmation.
8. Distinguish the neon divergence line from the later tracked entry label.
9. Begin with Trend Filter set to Off when studying raw divergence frequency.
10. Test EMA Trend for chart-timeframe directional alignment.
11. Test Supertrend for volatility-based directional alignment.
12. Test HTF Trend for higher-timeframe EMA context.
13. Verify the selected HTF timeframe.
14. Review the main-chart trend reference.
15. Observe whether a BULLISH or SELL entry label is accepted.
16. Review ENTRY, SL, TP1, TP2, and TP3 prices.
17. Observe the profit and risk boxes.
18. Remember that TP1 and TP2 are visual only.
19. Review the final TARGET HIT or SL result.
20. Review dashboard Win Rate and NET R.
21. Compare Dark/Light full dashboard with Mobile Theme.
22. Use alerts for monitoring rather than blind execution.
23. Review broader market structure independently.
24. Review spread, liquidity, volatility, and news conditions.
25. Define personal account risk and position size.
26. Test the exact symbol, timeframe, and data feed personally used.
The indicator is designed for structured study and monitoring.
It should not be treated as an automatic decision-maker.
━━━━━━━━━━━━━━━━━━━━━━
⚙️ SETTINGS REFERENCE
━━━━━━━━━━━━━━━━━━━━━━
🎨 Theme
Theme Mode
Dark Mode
Uses the full dark visual profile.
Light Mode
Uses the full light visual profile.
Mobile Theme
Uses compact labels and a two-row dashboard.
━━━━━━━━━━━━━━━━━━━━━━
🎯 Signal Settings
Pivot Lookback
Controls the left-side pivot search width.
Default:
5
Higher values generally create larger and less frequent pivot structures.
Confirmation Bars
Controls the number of right-side completed candles required to confirm the RSI pivot.
Default:
1
Increasing the value increases confirmation delay.
Chart Signal Label Size
Controls the main-chart BULLISH and SELL entry-label size.
Available values:
• Tiny
• Small
• Normal
• Large
• Huge
Mobile Theme overrides the selected size with a compact layout.
━━━━━━━━━━━━━━━━━━━━━━
🧭 Trend Filter
Trend Filter
Available modes:
• Off
• EMA Trend
• Supertrend
• HTF Trend
Off
Allows tracked bullish and bearish entries without directional trend filtering.
EMA Trend
Uses chart close relative to EMA 200.
Supertrend
Uses ATR 10 and factor 3.0.
HTF Trend
Uses selected higher-timeframe close relative to higher-timeframe EMA 200.
HTF Trend Timeframe
Selects the higher timeframe used by HTF Trend.
Default:
240 minutes
This setting has no effect when HTF Trend is not selected.
━━━━━━━━━━━━━━━━━━━━━━
🛡️ Trade Management
ATR Period
Controls the ATR used for risk-distance calculations.
Default:
14
Stop Loss Distance (ATR)
Multiplies ATR to calculate the Stop Loss distance.
Default:
2.0
TP3 Target (R)
Selects the final target from 1R to 7R.
Default:
2R
TP1 and TP2 are calculated automatically from the TP3 distance.
All public input values are hidden from TradingView’s status line to reduce chart-header clutter.
━━━━━━━━━━━━━━━━━━━━━━
🧠 WHAT MAKES THIS SCRIPT ORIGINAL
━━━━━━━━━━━━━━━━━━━━━━
RSI, divergence, EMA, Supertrend, ATR, risk/reward targets, and trade statistics are established technical-analysis concepts.
These concepts are not unique by themselves.
The originality of RSI Divergence Entry Engine lies in the coordinated workflow applied to them:
fixed RSI calculation
→ confirmed oscillator pivots
→ price / RSI regular divergence comparison
→ pivot-distance validation
→ RSI-path divergence filling
→ main-chart three-layer neon pivot lines
→ optional chart or higher-timeframe trend filtering
→ one-active-trade state
→ confirmation-candle entry
→ ATR-normalized Stop Loss
→ proportional TP1 / TP2 placement
→ adjustable TP3 R target
→ conservative OHLC exit handling
→ permanent risk/reward history
→ historical target-price labels
→ theme-aware chart output
→ mobile-specific dashboard
→ internal R-based statistics
→ static and dynamic alert workflows
Distinctive implementation features include:
• separating divergence context from accepted tracked entries
• displaying the same confirmed divergence in the RSI pane and on the main chart
• filling the RSI path-to-divergence region
• using a three-layer neon price-divergence line
• preserving trade boxes after closure
• preserving TP1, TP2, and TP3 planned prices historically
• allowing multiple direction-filter models inside one entry workflow
• maintaining one tracked trade at a time
• applying conservative Stop Loss priority when TP3 and SL share a candle
• offering theme-specific dashboard behavior
• reducing the Mobile Theme dashboard to Win Rate and NET R
• supporting static conditions and combined dynamic alert() messages
• keeping public settings compact while documenting fixed internal values
The script is not a collection of unrelated indicators placed on one chart.
Every component supports the same objective: converting a confirmed RSI divergence into a transparent, filterable, volatility-mapped, historically reviewable entry framework.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ IMPORTANT PRACTICAL NOTES
━━━━━━━━━━━━━━━━━━━━━━
Signal frequency depends on:
• symbol
• timeframe
• data provider
• Pivot Lookback
• Confirmation Bars
• fixed 5–60 bar pivot-distance window
• Trend Filter
• HTF Trend Timeframe
• existing active-trade state
• ATR availability
• available historical data
Higher Pivot Lookback values can reduce frequency.
Higher Confirmation Bars values increase delay.
EMA Trend can reject counter-position signals relative to EMA 200.
Supertrend can change direction after price movement.
HTF Trend can remain sensitive to the currently developing higher-timeframe candle.
Only one tracked trade can be active.
A divergence can therefore be visible without becoming a tracked trade.
TP1 and TP2 are not partial exits.
Historical TP1, TP2, and TP3 labels display planned prices, not proof that every level was touched.
Dashboard statistics use loaded chart history only.
Different brokers or exchanges can produce different:
• highs
• lows
• closes
• RSI pivots
• ATR values
• divergence signals
• trend-filter states
• TP3 / SL outcomes
• dashboard statistics
Changing the chart’s available history can change the first eligible pivot pair and all later trade-state sequencing.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ LIMITATIONS AND SHORTCOMINGS
━━━━━━━━━━━━━━━━━━━━━━
This script has important limitations:
It does not guarantee profitable trades.
It does not predict future price movement.
It does not execute orders.
It does not place broker Stop Loss orders.
It does not place broker Take Profit orders.
It does not calculate position size.
It does not calculate account risk.
It does not include spread.
It does not include commission.
It does not include slippage.
It does not include latency.
It does not include swap or financing.
It does not model partial fills.
It does not model order rejection.
It does not model contract specifications.
It does not model tick-by-tick execution.
It uses historical OHLC bars.
It cannot always determine whether TP3 or SL occurred first inside one candle.
It resolves same-candle TP3 / SL ambiguity in favor of Stop Loss.
It does not record TP1 or TP2 as partial profit.
It does not move Stop Loss to break even.
It does not trail Stop Loss.
It maintains one active tracked trade.
It can ignore otherwise valid new entries while a trade is active.
It uses pivot confirmation.
Pivot visuals are not available on the original pivot candle in realtime.
RSI pivot visuals are placed at the historical pivot location after confirmation.
Main-chart neon lines are created after divergence confirmation.
The HTF filter can change while the current higher-timeframe candle remains open.
A confirmed divergence can fail.
A trend-aligned divergence can fail.
A larger divergence area does not guarantee a stronger result.
A neon divergence line is not guaranteed support or resistance.
A TARGET HIT label is not broker-verified execution.
Dashboard statistics are not audited performance.
Profit Factor displays 999 when wins exist without recorded losses.
Changing settings recalculates historical conditions.
Changing symbol, timeframe, provider, or available history can change output.
Alert delivery depends on TradingView and user configuration.
Alerts do not guarantee broker execution.
For these reasons, the indicator should be used as an educational decision-support and chart-review tool, not as a standalone automated strategy.
━━━━━━━━━━━━━━━━━━━━━━
👤 WHO THIS SCRIPT MAY BE USEFUL FOR
━━━━━━━━━━━━━━━━━━━━━━
This script may be useful for traders who:
• understand basic RSI divergence
• want regular bullish and bearish divergence visuals
• prefer pivot-confirmed structures
• want divergence displayed in both RSI and price
• want a clear neon main-chart divergence line
• want optional trend filtering
• use EMA 200
• use Supertrend
• use higher-timeframe direction
• want ATR-based risk mapping
• want adjustable R targets
• want historical risk/reward boxes
• want historical planned TP prices
• want one-active-trade statistics
• want Dark, Light, and Mobile themes
• want static alerts
• want one combined dynamic alert
• understand that chart statistics are not verified trading results
It may be less suitable for users who:
• want signals on the unconfirmed pivot candle
• want no pivot delay
• want hidden divergence enabled publicly
• want every divergence to open a trade
• want multiple overlapping tracked trades
• want partial TP accounting
• want automatic break-even management
• want trailing stops
• want tick-level backtesting
• want verified Strategy Tester results
• want broker execution
• want guaranteed reversal signals
• expect a high Win Rate to continue unchanged
• expect the HTF filter to remain fixed before the higher-timeframe candle closes
━━━━━━━━━━━━━━━━━━━━━━
🧭 BEST PRACTICE SUGGESTIONS
━━━━━━━━━━━━━━━━━━━━━━
For studying raw divergence behavior:
• use Trend Filter Off
• begin with Pivot Lookback 5
• begin with Confirmation Bars 1
• observe divergence visuals before evaluating trades
• distinguish pivot location from confirmation timing
For trend-aligned divergence:
• test EMA Trend
• test Supertrend
• compare signal frequency
• review whether the filter removes useful countertrend setups
For broader directional context:
• test HTF Trend
• use a higher timeframe meaningfully above the chart timeframe
• remember that the active HTF candle can change before closing
For trade mapping:
• begin with ATR 14
• begin with Stop Loss Distance 2.0 ATR
• begin with TP3 2R
• remember that TP1 and TP2 are visual only
• review same-candle TP3 / SL cases conservatively
For chart clarity:
• use Dark Mode on dark chart layouts
• use Light Mode on light chart layouts
• use Mobile Theme on small screens
• adjust the main-chart entry-label size
• use neon divergence lines as context, not automatic entries
Always:
• wait for divergence confirmation
• review broader price structure
• review liquidity and volatility
• review session conditions
• review news risk
• define personal account risk
• define personal position size
• test the exact symbol and timeframe
• verify alerts before relying on them
• remember that every divergence can fail
━━━━━━━━━━━━━━━━━━━━━━
🔓 PUBLICATION NOTE
━━━━━━━━━━━━━━━━━━━━━━
RSI Divergence Entry Engine is published as an educational RSI-divergence, directional-filtering, ATR trade-mapping, historical-visualization, and alert tool.
The purpose of this description is to explain:
• how RSI is calculated
• how RSI pivot lows and highs are confirmed
• how Pivot Lookback affects structure selection
• how Confirmation Bars affect delay
• how the fixed pivot-distance window works
• how regular bullish divergence is identified
• how regular bearish divergence is identified
• how divergence is displayed inside the RSI pane
• how the RSI divergence area is filled
• how corresponding price pivots are displayed with neon lines
• when the pivot visuals become available
• why pivot visuals appear at historical pivot locations
• why tracked entries are placed on confirmation-candle close
• how the trend filter affects entries without hiding divergence context
• how EMA Trend works
• how Supertrend works
• how HTF Trend works
• how currently forming higher-timeframe candles affect realtime context
• how ATR risk distance is calculated
• how Stop Loss is placed
• how TP1, TP2, and TP3 are calculated
• why TP1 and TP2 are visual only
• why only TP3 counts as a win
• how one-active-trade handling works
• how same-candle TP3 / SL ambiguity is resolved
• how historical trade boxes are retained
• what historical TP labels represent
• how Dark Mode, Light Mode, and Mobile Theme differ
• what the dashboard displays
• how Win Rate, NET R, Average R, and Profit Factor are calculated
• why the statistics are not broker-verified
• what static alert conditions are available
• how “Any alert() function call” works
• what the script does not simulate
• why the combined modules form one coordinated workflow
The script is designed to support structured review.
It does not promise profitable results.
It does not remove market risk.
It does not replace independent analysis.
It does not replace personal risk management.
━━━━━━━━━━━━━━━━━━━━━━
🕒 REPAINTING, BACKPLOTTING, AND TIMING DISCLOSURE
━━━━━━━━━━━━━━━━━━━━━━
RSI Divergence Entry Engine uses pivot functions.
Pivot confirmation requires future candles relative to the original pivot location.
The number of required right-side candles is controlled by Confirmation Bars.
The script does not know that a pivot exists on the original pivot candle.
After the right-side candles close:
• the pivot becomes confirmed
• the divergence can be calculated
• the RSI divergence line is displayed at the historical pivot locations
• the RSI divergence label is displayed at the confirmed pivot location
• the main-chart neon line connects the corresponding historical price pivots
This historical placement is a visual back-reference to the confirmed pivot structure.
It must not be interpreted as a realtime signal that was available on the original pivot candle.
The tracked trade entry is not backdated.
The tracked trade opens at the close of the later confirmation candle when all entry rules are valid.
The main-chart BULLISH or SELL entry label appears on that confirmation candle.
Trade outcome checks begin on the following candle.
The HTF Trend request uses lookahead_off.
It does not intentionally access future higher-timeframe values.
However, the current higher-timeframe candle can continue developing in realtime until it closes.
Historical results can change when:
• Pivot Lookback changes
• Confirmation Bars changes
• Trend Filter changes
• HTF Trend Timeframe changes
• ATR settings change
• TP3 target changes
• chart symbol changes
• timeframe changes
• exchange or broker feed changes
• historical data is revised
• available chart history changes
Confirmed chart-bar calculations reduce unfinished current-chart-candle changes.
They do not remove pivot confirmation delay, historical pivot placement, HTF live-candle variation, data-feed differences, or market risk.
━━━━━━━━━━━━━━━━━━━━━━
🛡️ DISCLAIMER
━━━━━━━━━━━━━━━━━━━━━━
RSI Divergence Entry Engine is provided for educational and informational purposes only.
It does not constitute financial, investment, trading, legal, accounting, or tax advice.
No indicator can guarantee future results.
Markets are uncertain.
Momentum changes.
Volatility changes.
Trend changes.
Liquidity changes.
Historical chart behavior does not ensure future performance.
Every user is responsible for their own:
• analysis
• validation
• symbol selection
• timeframe selection
• trend-filter selection
• execution planning
• Stop Loss placement
• target planning
• position sizing
• risk management
• alert configuration
• trading decisions
• broker execution
• legal obligations
• tax obligations
The RSI pivots, divergence lines, divergence fills, neon price-pivot lines, trend references, BULLISH labels, SELL labels, ENTRY labels, Stop Loss levels, TP1 levels, TP2 levels, TP3 levels, trade boxes, historical target labels, TARGET HIT labels, SL labels, dashboard statistics, Win Rate, NET R, Average R, Profit Factor, and alerts are visual analysis tools only.
A bullish divergence is not a guaranteed reversal.
A bearish divergence is not a guaranteed reversal.
An EMA-aligned signal is not guaranteed to succeed.
A Supertrend-aligned signal is not guaranteed to succeed.
A higher-timeframe aligned signal is not guaranteed to succeed.
A TARGET HIT label is not proof of an actual broker fill.
An SL label is not proof of an actual broker fill.
The dashboard is not verified account performance.
The statistics are not audited.
The script does not include spread, commission, slippage, latency, financing, partial fills, order rejection, position sizing, account equity, or broker-specific execution behavior.
Use the script as a structured RSI-divergence review, directional-filtering, trade-mapping, and monitoring framework—not as a promise of profitability or a substitute for independent judgment.
インジケーター

Momentum Pulse SignalsMomentum Pulse Signals
This indicator generates Buy/Sell badges from a simple momentum score (the "pulse"), then automatically manages an ATR-based stop loss and a risk:reward-based take profit for each signal, showing the resulting entry/stop/target levels directly on the chart.
The pulse is just two common indicators added together. RSI is re-centred so 50 becomes 0 and the range becomes −1 to +1. The MACD histogram is divided by its own recent standard deviation and clipped to the same −1 to +1 range, so it scales itself to whatever the instrument's normal histogram size happens to be. The two are blended with an adjustable weight. When the blended value pushes past a positive trigger level the state flips bullish; when it pushes past the negative trigger level it flips bearish. A badge prints on the flip. That's the whole idea.
Key Features
Blended RSI + MACD-histogram score generates the base Buy/Sell signal, with an optional candle-confirmation requirement (close beyond open in the signal direction).
The MACD part is normalised by its own rolling standard deviation, so the same trigger level works across instruments without rescaling.
A trigger level with a dead zone around zero means the state only flips on a decisive move, not on every wiggle across zero.
Optional slope filter: the pulse must also be moving in the signal's direction over the last few bars.
Automatic ATR-based stop loss and configurable Risk:Reward take profit are calculated for every new signal, with intermediate take-profit levels plotted when Risk:Reward is greater than 1.
On-chart entry / stop-loss / take-profit lines and an SL distance (in points) label, both toggleable.
Take-profit, stop-loss, and "invalidated" (opposite signal fired before target/stop was hit) markers are plotted separately so you can see how each trade idea played out.
Optional baseline plot coloured by whether the pulse is positive or negative.
Real-price calculation via request.security() keeps signals consistent regardless of chart type (Heikin Ashi, Renko, etc.).
A full set of alertcondition() calls for Buy/Sell signals, take-profit hits, stop-loss hits, and invalidated entries.
How to Use
Start with the defaults. Raise the Pulse Trigger Level if you want fewer badges, lower it if you want more.
Shorten the Normalization Length to make the MACD side react faster, lengthen it to make it steadier.
Move the RSI Weight toward 1 to lean on RSI, toward 0 to lean on MACD.
Turn the slope filter off if you want signals the moment the level is crossed rather than waiting for agreement.
Watch the on-chart entry/SL/TP lines to track an open idea's risk and progress.
Set alerts on "Buy/Sell Signal", "Entry Signal", "Take Profit Hit", "Stop Loss Hit", or "Entry Invalidated" depending on which events you want. インジケーター

Divergence Indicator RSI, MACD,, Hidden Reversal Signals LunqFXDivergence Indicator is a multi-engine divergence scanner for TradingView that reads RSI, MACD and OBV at every confirmed swing and only draws a divergence when the engines agree — so instead of the usual flood of weak one-oscillator signals, you get a few graded, high-conviction ones. Every divergence is rated by strength: ★★★ all three engines confirm (rare, strongest), ★★ two confirm, single-engine noise is filtered out by default. It detects regular divergences (price makes a new extreme, oscillators refuse — potential reversal) and hidden divergences (trend continuation), on any market — forex, crypto, stocks, indices, gold — and any timeframe. Built in Pine Script v6, fully non-repainting. Keywords: divergence indicator, RSI divergence, MACD divergence, OBV divergence, hidden divergence, regular divergence, reversal, momentum, exhaustion, multi oscillator scanner.
◆ WHY MULTI-ENGINE
Any single oscillator diverges constantly — that's why classic divergence tools feel random. Requiring independent confirmation from momentum (RSI), trend-momentum (MACD) and volume flow (OBV) removes most false positives: when all three refuse to follow price, the move is genuinely running out of fuel.
◆ WHAT IT DRAWS
Divergence lines on price — solid neon violet for bullish, neon amber for bearish; dashed for hidden divergences.
Star-graded labels — ★★ / ★★★ with tooltips explaining exactly what diverged.
Exhaustion candles — a unique display layer: candles glow at full neon while price and engines agree, and fade as engines stop confirming — you see a divergence brewing before it prints.
Status strip dashboard — a horizontal HUD along the bottom: last signal + strength, a live engine board (P / RSI / MACD / OBV direction arrows), a FUEL meter, and bull/bear counters.
◆ HOW IT WORKS
Swings are detected with confirmed pivots (N closed bars each side).
At each new confirmed pivot the scanner compares price and each engine against the previous pivot: price lower low + engine higher low = regular bull; price higher low + engine lower low = hidden bull (mirrored for highs).
The number of agreeing engines (1–3) becomes the star rating; signals below your minimum are skipped.
The live engine board and fuel meter track slope agreement in real time — display-only context that never alters signals.
◆ HOW TO USE IT
Treat ★★★ regular divergences as your primary reversal alerts — look for entries with your own structure/levels.
Use hidden divergences to join the trend on pullbacks.
Watch the FUEL meter: when it drains and candles fade, tighten stops on trend trades.
Raise Min strength to 3 for only the rarest, cleanest signals; lower pivot bars for faster (but noisier) detection.
◆ SETTINGS
Pivot left/right bars, max gap between swings, minimum strength, hidden divergences on/off, engine toggles (RSI/MACD/OBV), RSI length, exhaustion candles, label size, dashboard position/size.
◆ ALERTS
Bullish divergence · Bearish divergence (fire when a confirmed signal prints).
◆ LIMITATIONS
Signals confirm with a pivot delay (right bars) — that is the honest cost of zero repaint; lower it for speed, raise it for reliability.
On symbols without volume data the OBV engine adds no information — disable it there.
Divergence marks exhaustion, not timing — always combine with structure and risk management.
◆ ORIGINALITY & NON-REPAINTING
Original work: the three-engine agreement grading, the exhaustion-candle layer, the live engine board and the fuel meter are my own implementation — no third-party code. All divergences are built from confirmed pivots only; a drawn line or label never moves or disappears.
Educational analysis tool, not financial advice. © LunqFX. インジケーター

RSI Core Levels Heatmap [BigBeluga]🔵 OVERVIEW
The RSI Core Levels Heatmap turns the standard Relative Strength Index (RSI) indicator into powerful support and resistance lines drawn directly on your main price chart. Instead of forcing you to constantly look down at a separate oscillator window, this script automatically finds hidden momentum levels and projects them right where you trade, helping you spot key reversal floors and ceilings instantly.
🔵 FEATURES
The system uses a smart layout tracking engine to map momentum without cluttering your screen:
1 — Momentum-Mapped Support & Resistance Lines
Signal Line Crossover Alerts: The indicator tracks momentum changes using a smooth Signal Line Length . When the raw RSI line crosses above or below this signal line, it triggers a setup.
Smart Price Capture: The moment a crossover happens, the engine looks back at the last 10 candles. If it is a bullish bounce, it finds the low price; if it is a bearish drop, it grabs the high price.
Direct Chart Overlay: It takes those key prices and draws clean support or resistance lines right on your main chart with clear labels.
2 — No-Clutter Overlap Protection Logic
Collision Checker: To stop your chart from looking like a messy spiderweb, the indicator checks if a new line is being drawn too close to an old one.
Duplicate Blocking: If a new level lands directly on top of an existing active zone, the script blocks it automatically to keep your trading area perfectly clean.
// Strict Collision Box Overlap Detection Matrix
is_overlapping_existing_block(high_val, low_val) =>
overlap = false
if array.size(activeBlocks) > 0
for i = 0 to array.size(activeBlocks) - 1
BlockLevel item = array.get(activeBlocks, i)
if (high_val <= item.topPrice and high_val >= item.botPrice) or (low_val >= item.botPrice and low_val <= item.topPrice) or (high_val >= item.topPrice and low_val <= item.botPrice)
overlap := true
break
overlap
3 — Active Line Lifecycle & FIFO System
Automatic Extension: All active, unbroken support and resistance lines automatically stretch forward on every new candle so they stay fresh.
Broken Line Changes: When price actions breaks through a line, the script instantly changes its style to a thin, grey dashed line and stops tracking it. This shows you exactly where historical levels failed.
Levels Heat Color: Each support and resistance level color intense is based on the rsi value at the moment level was created.
FIFO (First-In, First-Out) Lag Protection: To keep your TradingView running fast without any lag, you can set a Max Active Levels & Labels limit. When you reach this cap, the oldest lines drop off the chart first (First-In, First-Out) to make room for new ones.
// Object Array State Lifecycle Management Snippet
if array.size(activeBlocks) > 0
for i = array.size(activeBlocks) - 1 to 0
BlockLevel item = array.get(activeBlocks, i)
bool broken = item.isBull ? (close < item.botPrice) : (close > item.topPrice)
if broken
label.delete(item.lvlLabel)
line.set_style(item.lvlLine, line.style_dashed)
line.set_color(item.lvlLine, color.gray)
line.set_width(item.lvlLine, 1)
array.remove(activeBlocks, i)
else
line.set_x2(item.lvlLine, bar_index)
label.set_x(item.lvlLabel, bar_index)
4 — Gradient Heatmap Ribbon & Proximity Dashboard
Color-Changing Ribbon blocks: The bottom sub-pane features a smooth gradient ribbon that tracks market extremes. It lights up bright green during deep oversold conditions, bright red when overbought, and turns yellow during tight consolidations ( Show Midline Squeeze Zone ).
Distance Telemetry HUD Table: A clean on-screen table calculates exactly how close the current price is to your nearest active support or resistance level in points and exact percentages.
🔵 HOW TO USE
Using this simple multi-layer blueprint helps you manage setups step-by-step:
Trading Reversals and Bounces: Watch the chart when price falls down toward a green support line. If the Dashboard Table shows the distance getting very close to 0% and the bottom ribbon is flashing deep green (oversold), look for a long bounce trade off the level.
Managing Risk and Trailing Stops: If you enter long at a support line, use that level as your risk floor. If price flushes below it, the indicator will instantly turn the line grey and dashed, letting you know the setup is invalid and it is time to cut the trade.
Spotting Squeeze Breakouts: When the bottom ribbon stays yellow, it means the market is squeezing sideways. Watch your distance dashboard closely; when price breaks out of the squeeze and flies toward your outer lines, you can ride the explosive momentum expansion.
🔵 NOTES
Why this implementation is unique:
It saves screen space by turning abstract momentum data from an oscillator below into highly accurate, tradeable price targets up on your main chart.
The overlap blocker prevents multiple lines from bunching together, keeping your chart clean and easy to read.
The automated FIFO memory cleaning system makes sure the script stays fast and lightweight, no matter how many bars are loaded on your chart.
インジケーター

Adaptive Momentum Oscillator (MTF Signal Framework)📖 Overview
The Adaptive Momentum Oscillator is a multi-layer analytical tool designed to evaluate market momentum through a combination of smoothed price deviation, signal averaging, and regime-based visualization.
Instead of relying on a single momentum calculation, the indicator builds a structured view of market behavior by separating:
underlying momentum pressure
signal smoothing
and trend regime states
This allows traders to interpret market conditions with reduced noise and clearer directional context.
⭐ Key Features
🔹 Multi-Layer Momentum Structure
The oscillator combines raw momentum movement with smoothed signal lines to separate short-term fluctuations from broader directional bias.
🔹 Signal Confirmation Logic
Buy and sell conditions are derived from structured momentum shifts rather than single threshold crossings, helping reduce premature signals in choppy conditions.
🔹 Trend Regime Visualization
The indicator highlights different market phases:
bullish expansion zones
bearish expansion zones
neutral or transition phases
This helps contextualize momentum behavior instead of treating all movement equally.
🔹 Histogram Momentum Tracking
The histogram represents the acceleration and deceleration of momentum, allowing traders to observe weakening or strengthening trends.
🔹 Dynamic Signal Behavior
Signals adapt to market conditions instead of using fixed static rules, improving responsiveness during volatility changes.
📊 How to Interpret
🟢 Buy Signal
Indicates that momentum has shifted upward and confirmation conditions are aligned with bullish pressure.
🔴 Sell Signal
Indicates that momentum has shifted downward and bearish pressure dominates recent structure.
📉 Histogram
Increasing bars = strengthening momentum
Decreasing bars = weakening momentum
Color shifts = regime transitions
🎯 Best Applications
Swing trading
Momentum confirmation
Trend filtering
Reversal detection
Market structure analysis
⚠️ Limitations
This indicator should not be used as a standalone trading system.
Momentum signals may lag during rapid reversals, and additional confirmation from price action or risk management is recommended.
💡 Originality
Unlike traditional oscillators such as MACD or RSI, this script is designed as a multi-layer momentum framework, where:
raw momentum
smoothed signal behavior
and regime classification
are combined into a unified structure.
The goal is not to generate isolated signals, but to provide a continuous model of market momentum behavior across different phases. インジケーター

インジケーター

Participation-Adjusted Momentum [TradeDots]Participation-Adjusted Momentum
Summary
This indicator computes a momentum oscillator that has been adjusted by participation quality . Raw momentum (standardized rate-of-change) is multiplied by a quality blend derived from volume percentile, close-location alignment within the bar, and range-per-volume efficiency. The intent is to differentiate strong momentum supported by participation from moves that look impressive on price alone but occur on thin volume or wide ranges with little net travel. The histogram is colored by one of five interpretable states (Strong Bull, Strong Bear, Thin, Quiet Accumulation, Noisy) so users see at a glance whether to trust a momentum reading.
What is original here
Momentum oscillators (rate-of-change, MACD, RSI) and volume oscillators (volume percentile, MFI) are widely available. This script's contribution is the deliberate combination into a single adjusted reading, plus the five-state classification that maps raw-momentum / participation combinations to labelled regimes. The "Quiet Accumulation" state (low momentum but rising volume percentile) and the "Thin" state (strong momentum but low participation) are specifically called out because they are the most actionable readings — both indicate that the price reading and the order-flow reading disagree, and that disagreement deserves a label.
How it works
Each bar, the following quantities are computed.
Raw momentum. Rate-of-change of close over a configurable length, then z-scored (subtract the mean, divide by the standard deviation) over the normalization lookback. The result is approximately bounded but can exceed plus or minus 3 in extreme moves.
EMA slope. A 50-period EMA's change over a configurable lookback, min-max normalized to 0-100. Used as a secondary directional bias (computed and exposed as a hidden plot, but not directly added to the displayed oscillator).
Volume percentile. Volume rank over the normalization lookback (typically 100 bars).
Close-location value. Where the close sits within the bar's high-low range, expressed as a percentage. For an upward-direction reading, a close near the bar's high indicates buyers won the bar; for a downward-direction reading, a close near the bar's low indicates sellers won.
Participation. Volume percentile (divided by 100) multiplied by direction-aligned close-location value (also normalized to 0-1). Result is in ; higher means "good participation".
Range per volume. Bar range divided by volume. High range per volume means a wide candle moved on thin flow — typical of news spikes, illiquid prints, or false moves. The percentile rank of range-per-volume is inverted (low range-per-volume gives a high "efficiency score") and used as a quality factor.
Quality blend. A weighted combination: 0.4 * participation + 0.4 * range_efficiency + 0.2. The +0.2 floor ensures that even with zero participation and zero efficiency, the adjusted momentum retains 20% of the raw signal so the oscillator does not flatline completely.
Adjusted momentum = raw momentum × quality blend.
State classification (mutually exclusive):
Strong Bull : raw momentum at or above +threshold and participation at or above 0.55
Strong Bear : raw momentum at or below −threshold and participation at or above 0.55
Thin : absolute raw momentum at or above threshold and participation below 0.35 — momentum without volume, a warning state
Quiet Accumulation : absolute raw momentum below the quiet threshold and volume percentile above the quiet-volume floor — flat price but rising participation
Noisy / Low Quality : the catch-all when none of the above apply
The histogram bar color reflects the current state.
Repainting and data integrity
All factors are computed on confirmed bar values; alerts are gated by barstate.isconfirmed. No request.security() calls are made — the script operates entirely on the chart timeframe.
How to read the chart
The primary plot is the adjusted-momentum histogram, colored by state.
A thin overlay line shows the same value with continuous color for easy zero-line reading.
Reference lines at zero and at ±1 standard deviation provide context for how extreme the current reading is.
Hidden plots expose raw momentum, participation, volume percentile, and direction so they are available in the Data Window.
The dashboard panel shows the current state in the header, then numeric readings for raw momentum (in z-units), adjusted momentum, volume percentile, participation, range efficiency, and the quality blend.
Inputs
Inputs are grouped into three sections.
Core Settings : ROC length, percentile / z-score lookback, EMA slope length, slope lookback bars, strong-momentum z-threshold, quiet-accumulation maximum z, quiet-accumulation minimum volume percentile.
Visual Settings : zero-line toggle, ±1σ band toggle, dashboard toggle, panel position and size, panel background color.
Any Alert() function call conditions : per-alert toggles.
Alerts
Four alert conditions are provided, each firing on the first bar the state is entered:
Strong Bull Momentum
Strong Bear Momentum
Quiet Accumulation Detected
Momentum Without Volume (the "Thin" warning state)
Each is declared via alertcondition() and is fired programmatically through alert() when the corresponding input toggle is enabled, with alert.freq_once_per_bar_close. Alert messages include {{ticker}} and {{interval}} placeholders.
How to use this script
This is a confirmation indicator. It does not generate entries on its own.
When considering an entry on price strength alone, check this indicator. A Strong Bull or Strong Bear state confirms that volume and close location support the move.
The "Thin" state is a warning. A breakout that prints during a Thin reading should be treated more cautiously than the same breakout during Strong Bull.
The Quiet Accumulation state can identify periods of base-building before a move and is useful as a "watchlist" signal.
Use alongside a setup-specific indicator for entry timing.
Limitations and honest caveats
Volume quality varies dramatically between markets. On crypto exchanges, wash-trading and bot-driven order flow can produce misleading volume percentile readings. Apply with awareness.
Z-score normalization requires the lookback to contain a representative variety of states. On instruments with strong regime changes, early-bar z-scores may be unreliable until the lookback fills.
The close-location alignment factor reads single-bar close behavior. On gappy markets or after market closes, the alignment may not reflect intraday order flow.
The script does not signal direction independently; it adjusts and labels momentum that is already present.
The +0.2 floor in the quality blend is a design choice to avoid flat-lining the oscillator. Users who want a strict "zero adjustment when participation is zero" reading can set the participation weights higher and adjust the floor by modifying the source code.
Disclaimer
This script is published for informational and educational purposes. It is not investment advice and is not a recommendation to buy or sell any instrument. Adjusted momentum is a descriptive measure, not a prediction of future price. Users are solely responsible for their own trading decisions and risk management.
インジケーター

Heisenberg Uncertainty Bands [JOAT]HEISENBERG UNCERTAINTY BANDS
A novel band-and-state engine inspired by the Heisenberg uncertainty principle: the recognition that for a market, just as for a quantum particle, you cannot simultaneously be certain about both position (where price is) and momentum (how fast it is moving). Heisenberg Uncertainty Bands measures both uncertainties, tracks their empirical floor, classifies the current market into one of three quantum-inspired states — pure position |x⟩, pure momentum |p⟩, or mixed |ψ⟩ — and projects bands around price accordingly.
The principle, translated
In quantum mechanics, Δx · Δp ≥ ℏ/2 — the product of the position uncertainty and the momentum uncertainty cannot fall below a constant called Planck's reduced. For markets the analogue is:
Δx — the rolling standard deviation of price over a configurable window. The uncertainty in where price is sitting.
Δp — the rolling standard deviation of returns (log or arithmetic, configurable) over a separate window. The uncertainty in how fast price is moving.
ℏ̂ (hbar-hat) — the EMA-smoothed long-run product Δx · Δp. The script's empirical estimate of the market-specific lower bound.
Just like in physics, when the market is certain about position (price has been stable), it becomes uncertain about momentum (next direction is unknown) — and vice versa. The script measures both, computes the product, compares it to the empirical floor, and uses the ratio Δx/Δp as the state classifier.
Three quantum states
Pure Position State |x⟩ — Δx/Δp below the position threshold (default 0.40). Price is constrained to a tight band; the next directional move is uncertain. Yellow palette.
Pure Momentum State |p⟩ — Δp/Δx below the momentum threshold (default 0.40). Direction is committed; the range is widening. Magenta palette.
Mixed State |ψ⟩ — neither pure state condition holds. Violet palette.
The state badge on the right of the chart shows the bra-ket glyph (Unicode |x⟩ / |p⟩ / |ψ⟩ by default; can fall back to plain POS / MOM / MIX if your font lacks the brackets). A state cooldown (default 3 bars) debounces flicker.
Band projection
Two band families are projected around the live mid price:
Position bands — mid ± k × Δx. Solid by default. The classic "how wide is price ranging right now" envelope.
Momentum bands — mid ± k × (Δp scaled to the price axis). Dashed by default (configurable: Dashed / Dotted / Solid). Projected so their visual range matches the position bands.
When the two families are far apart in width, the state is decisive (|x⟩ if position is much tighter, |p⟩ if momentum is much tighter). When they are similar, the state is mixed.
Optional uncertainty-score candle tint
A toggleable layer recolours each candle based on how far the current Δx · Δp product deviates from the empirical floor ℏ̂. When the product is at the floor, the market is at its quantum-mechanical minimum — the most decisive setup; further from the floor means the market is "spending uncertainty" on both axes simultaneously.
Visual system
Position bands (solid, gradient fill optional).
Momentum bands (dashed / dotted / solid).
Mid line (style configurable).
State badge (right-side floating, configurable offset and size).
Background tint by state (configurable transparency, institutional default).
Optional candle re-tint by uncertainty score.
A locked Plasma palette (yellow position / magenta momentum / violet mixed on a deep-void ground) gives the chart a distinctive physics-inspired identity.
Dashboard
Monospaced table, positionable to any of nine corners, optional compact-no-header mode. Surfaces:
Current Δx and Δp values.
Δx · Δp product and its ratio to the ℏ̂ floor.
Δx / Δp ratio (drives the state).
Current state (|x⟩ / |p⟩ / |ψ⟩) with bar age.
Last state change with bars-ago.
Return mode (Log / Arithmetic) in use.
Alerts
Three alert conditions:
Pure Position State entry
Pure Momentum State entry
Mixed State return
How to read it
Two reads, in order of conviction:
Pure Momentum State |p⟩ entry is the script's directional commitment signal. Momentum has decisively exceeded position uncertainty — the move is real. Trend-following tools and breakout entries become high-conviction.
Pure Position State |x⟩ is the coil. Range has clamped down, direction is undecided. Reversion tools become high-conviction inside the band; the next state transition (back to |ψ⟩ or jumping to |p⟩) often produces a decisive breakout.
When Δx · Δp is close to ℏ̂ (the empirical floor) the market is at its most efficient — there is no slack in either axis to spare. These bars often coincide with the cleanest reversals and breakouts; the candle-tint layer is there specifically to highlight them.
Suggested settings
Defaults (position window 20, momentum window 20, hbar smoothing 100, k = 2.0, state threshold 0.40) are tuned for 15m–4H on liquid markets. For lower timeframes drop both windows to 10–14. For HTF (4H+) raise both to 30–50. Log returns are the theoretically-correct mode and the recommended default; switch to Arithmetic only if your instrument has trivially small price scale.
Originality
The implementation — the Δx / Δp dual-uncertainty pipeline, the EMA-smoothed empirical ℏ̂ floor, the three-state quantum-inspired classifier with bra-ket labelling, the dual-band projection with auto-scale, the uncertainty-score candle tint, the cooldown-debounced state machine, and the plasma palette — is JOAT-original. No third-party code reused. The Heisenberg principle is fundamental physics; the financial-market analogue and its implementation here are original work.
Limitations
The Heisenberg analogy is structural, not literal — markets do not obey the quantum-mechanical commutator relation; the script uses the concept of an inviolable joint-uncertainty floor as a market-regime classifier. The empirical floor ℏ̂ is estimated by EMA over a long window (default 100 bars) — on instruments with very short history the floor is approximate. State classification can flicker across the threshold; the cooldown is there to suppress this and is tunable.
—
-made with passion by jackofalltrades
インジケーター

MACD Momentum Entry Engine [trade_w_samet]🎯 MACD Momentum Entry Engine
MACD Momentum Entry Engine is a structured momentum-analysis and visual trade-model indicator designed to help traders study confirmed MACD events, momentum quality, directional persistence, market regime, trend alignment, candle confirmation, and multi-target risk references directly from one coordinated workflow.
The script is built around one central idea:
A MACD event should not automatically become an entry signal.
Instead of treating every MACD crossover as equally meaningful, the engine first identifies the type of momentum event, then evaluates its strength, expansion, slope, acceleration, market environment, candle quality, directional persistence, and optional trend alignment before a permanent LONG or SHORT setup is accepted.
The indicator includes:
• Configurable MACD fast, slow, and signal lengths
• EMA, SMA, RMA, and WMA calculation options
• Early Trigger and Momentum Confirmed entry timing
• Reversal, Continuation, Zero-Line Reclaim, and Momentum Expansion setups
• A transparent 0–100 Momentum Quality Score
• Alignment, histogram strength, expansion, slope, and acceleration scoring
• Loose, Balanced, Strict, and Off quality modes
• A separate 0–100 Anti-Chop Market Regime Score
• ADX, price efficiency, EMA separation, and volatility-expansion analysis
• A separate 0–100 Entry Qualification Score
• Candle body, close location, MACD separation, persistence, impulse, and trigger-context analysis
• A final composite setup score
• A+, A, B, and C internal setup grades
• Optional chart EMA, confirmed higher-timeframe EMA, and combined trend bias
• Confirmed higher-timeframe calculations
• Zero-line directional filtering
• ATR-normalized absolute histogram-strength filtering
• Internal signal cooldown and same-bar re-entry protection
• One-active-trade-at-a-time visual management
• ATR-based and XAUUSD fixed-pip risk models
• Three visual take-profit levels
• Stop First and Targets First same-bar assumptions
• Equal-third internal trade-model accounting
• Active Entry, TP1, TP2, TP3, and SL lines
• Active reward and risk boxes on the main chart
• TP3-only historical trade-model preservation
• Separate SL, Closed TP1, Closed TP2, and TP3 result labels
• Adjustable LONG, SHORT, and result-label sizes
• MACD histogram, line, signal line, momentum background, and anti-chop background
• Neon LONG and SHORT dots directly on the MACD line
• A compact main-chart dashboard
• XAUUSD symbol verification and mismatch warning
• Static TradingView alert conditions
• Detailed dynamic alert() messages
• Data Window diagnostics
• Confirmed-close permanent signals
The purpose of this script is to provide a structured way to study when a MACD event is supported by broader momentum and market context.
It is not financial advice.
It is not an automated trading system.
It does not guarantee profitable trades.
It does not execute broker orders.
It does not replace personal analysis, position sizing, or risk management.
━━━━━━━━━━━━━━━━━━━━━━
📌 OVERVIEW
━━━━━━━━━━━━━━━━━━━━━━
At a high level, MACD Momentum Entry Engine does the following:
• Calculates a configurable MACD using the selected average types.
• Separates the visual histogram scale from the calculation scale.
• Detects confirmed MACD crossovers and zero-line events.
• Identifies Reversal, Continuation, Zero-Line Reclaim, and Expansion setup types.
• Optionally accepts the event immediately through Early Trigger mode.
• Optionally arms the setup and waits for renewed momentum through Momentum Confirmed mode.
• Measures momentum alignment, histogram strength, histogram expansion, MACD slope, and acceleration.
• Produces separate bullish and bearish 0–100 Momentum Quality Scores.
• Measures market regime using ADX, directional efficiency, EMA separation, and volatility expansion.
• Produces a separate 0–100 Market Regime Score.
• Evaluates candle direction, body quality, close location, MACD separation, persistence, and price impulse.
• Produces separate bullish and bearish Entry Qualification Scores.
• Combines momentum, regime, and entry quality into a final composite score.
• Assigns an internal A+, A, B, or C grade.
• Applies optional chart EMA and confirmed higher-timeframe EMA bias.
• Applies zero-line, absolute-strength, cooldown, and trade-slot controls.
• Confirms permanent LONG and SHORT signals only after candle close.
• Opens one visual trade model from the confirmed signal-bar close.
• Calculates Entry, Stop Loss, TP1, TP2, and TP3.
• Tracks targets and stop events from the next candle onward.
• Applies the selected same-bar processing assumption.
• Preserves completed TP3 models when historical display is enabled.
• Removes trade drawings after SL, Closed TP1, or Closed TP2 outcomes.
• Converts the original entry label into the final result for non-TP3 outcomes.
• Adds a separate electric-purple FULL TARGET label for TP3 outcomes.
• Displays Momentum, Trend, Regime, Trade, Last Result, and Protection states in the bottom-right dashboard.
• Provides static and dynamic alert options.
• Exposes diagnostic values through TradingView’s Data Window.
The indicator does not use machine-learning prediction.
Its scores are not probabilities.
Its labels do not promise future direction.
The script is a rule-based educational momentum framework that explains how a raw MACD event becomes an accepted or rejected setup.
━━━━━━━━━━━━━━━━━━━━━━
🧠 CORE IDEA
━━━━━━━━━━━━━━━━━━━━━━
The core idea behind MACD Momentum Entry Engine is that a crossover alone contains limited context.
A basic crossover only confirms that one MACD line has moved through another.
It does not automatically explain:
• whether the histogram is expanding
• whether momentum is accelerating
• whether the move is occurring in a directional or choppy market
• whether the signal candle supports the direction
• whether MACD separation is meaningful relative to recent behavior
• whether momentum has persisted
• whether price is aligned with an optional trend filter
• whether a recent signal already occurred
• whether a visual trade model is already active
The engine therefore uses a staged sequence:
MACD event
→ setup classification
→ momentum-quality scoring
→ optional trend-bias validation
→ anti-chop regime scoring
→ entry qualification
→ additional signal filters
→ confirmed signal
→ visual trade model
→ TP / SL lifecycle
→ result handling
For bullish conditions, the script studies upward MACD transitions, positive histogram alignment, renewed expansion, positive slope, positive acceleration, bullish candle behavior, and directional persistence.
For bearish conditions, the same process is mirrored.
The purpose is not to find the largest possible number of signals.
The purpose is to make the acceptance process visible, configurable, and understandable.
━━━━━━━━━━━━━━━━━━━━━━
🧩 WHY THIS SCRIPT IS NOT A SIMPLE BUY/SELL INDICATOR
━━━━━━━━━━━━━━━━━━━━━━
MACD Momentum Entry Engine is not designed to be used as a blind buy/sell system.
A raw MACD event must move through multiple stages:
A crossover or momentum event appears
→ the event is classified
→ the momentum-quality layer is evaluated
→ the trend-bias layer is evaluated
→ the anti-chop layer is evaluated
→ the candle and entry-quality layer is evaluated
→ zero-line and absolute-strength filters are checked
→ cooldown and active-trade restrictions are checked
→ the setup must remain valid at candle close
→ a permanent LONG or SHORT setup is printed
→ Entry, SL, TP1, TP2, and TP3 are projected
→ the trade model is monitored from the following candle
→ the model closes at TP3 or Stop
→ the final chart result is preserved or cleaned
Each module serves a different purpose.
The MACD core defines the momentum relationship.
The setup engine identifies what kind of event occurred.
The momentum-quality engine measures the internal strength of that event.
The anti-chop engine measures whether the broader environment is directional enough for the selected mode.
The entry-qualification engine evaluates the signal candle and immediate price response.
The trend-bias engine optionally restricts direction.
The trade engine standardizes the visual risk framework.
The dashboard explains the current engine state.
This makes the script a coordinated momentum-analysis workflow rather than a basic crossover marker.
━━━━━━━━━━━━━━━━━━━━━━
⚙️ HOW THE SCRIPT WORKS
━━━━━━━━━━━━━━━━━━━━━━
The script operates through connected calculation stages.
First, it calculates every supported moving-average type on every candle.
The selected average type is then used for the fast MACD average, slow MACD average, and signal average.
The MACD line is the difference between the selected fast and slow averages.
The histogram is the difference between the MACD line and the signal line.
fastAverage = f_selectMa(macdMaType, fastEma, fastSma, fastRma, fastWma)
slowAverage = f_selectMa(macdMaType, slowEma, slowSma, slowRma, slowWma)
macdLine = fastAverage - slowAverage
signalLine = f_selectMa(signalMaType, signalEma, signalSma, signalRma, signalWma)
histogram = macdLine - signalLine
The histogram visual multiplier changes only the displayed column length.
It does not change:
• the MACD line
• the signal line
• the histogram used by calculations
• quality scores
• setup detection
• trade results
After the MACD core is calculated, the engine measures:
• absolute histogram strength
• one-bar histogram expansion
• MACD slope
• momentum acceleration
• adaptive baselines for each measurement
The setup engine then checks the enabled event types.
The quality, trend, regime, qualification, and additional-filter stages determine whether the setup is eligible.
A final permanent signal is accepted only after the candle closes and every enabled condition remains valid.
━━━━━━━━━━━━━━━━━━━━━━
🟢 BULLISH MACD MOMENTUM LOGIC
━━━━━━━━━━━━━━━━━━━━━━
A bullish setup begins with one of four enabled event types.
Bullish Reversal
A bullish MACD crossover occurs while the MACD line remains below zero.
This represents a momentum turn from the negative side of the zero line.
Bullish Continuation
A bullish MACD crossover occurs while the MACD line is at or above zero.
This represents renewed bullish alignment on the positive side.
Bullish Zero-Line Reclaim
The MACD line crosses above zero while:
• MACD is above the signal line
• the histogram is positive
• the bar is confirmed
Bullish Momentum Expansion
The histogram resumes positive expansion after a short contraction while:
• MACD remains above the signal line
• MACD slope is positive
• no new crossover is being used on the same bar
• no new zero-line cross is being used on the same bar
The event must then pass the active momentum-quality requirement.
When enabled, it must also pass:
• chart EMA bias
• confirmed higher-timeframe EMA bias
• EMA slope confirmation
• ATR distance from the trend EMA
• anti-chop regime requirement
• entry qualification
• bullish candle direction
• minimum MACD separation
• momentum persistence
• zero-line direction
• absolute histogram strength
• cooldown
• active-trade availability
The final signal uses confirmed-bar logic.
bullishSignal =
barstate.isconfirmed and
bullishEntryCandidate and
bullishZeroLinePass and
absoluteStrengthPass and
bullishQualityPass and
bullishTrendPass and
antiChopPass and
bullishQualificationPass and
bullishCandlePass and
separationPass and
bullishPersistencePass and
cooldownPass and
tradeSlotAvailable
When every active rule passes, the script can display:
• a neon green dot on the MACD line
• a LONG label on the main chart
• setup type, grade, and score information
• a visual Entry, SL, TP1, TP2, and TP3 model
This confirms that the configured bullish momentum conditions were valid at candle close.
It does not mean price must continue upward.
━━━━━━━━━━━━━━━━━━━━━━
🔴 BEARISH MACD MOMENTUM LOGIC
━━━━━━━━━━━━━━━━━━━━━━
A bearish setup mirrors the bullish process.
Bearish Reversal
A bearish MACD crossover occurs while the MACD line remains above zero.
This represents a momentum turn from the positive side of the zero line.
Bearish Continuation
A bearish MACD crossover occurs while the MACD line is at or below zero.
This represents renewed bearish alignment on the negative side.
Bearish Zero-Line Reclaim
The MACD line crosses below zero while:
• MACD is below the signal line
• the histogram is negative
• the bar is confirmed
Bearish Momentum Expansion
The histogram resumes negative expansion after a short contraction while:
• MACD remains below the signal line
• MACD slope is negative
• no new bearish crossover is being used on the same bar
• no new bearish zero-line cross is being used on the same bar
The setup must then pass the same quality, trend, regime, candle, separation, persistence, strength, cooldown, and trade-slot controls.
A permanent SHORT signal appears only when all active conditions remain valid at candle close.
The script can then display:
• a neon red dot on the MACD line
• a SHORT label on the main chart
• setup type, grade, and score information
• Entry, SL, TP1, TP2, and TP3 references
This confirms that the configured bearish momentum conditions were valid at candle close.
It does not guarantee continued downside movement.
━━━━━━━━━━━━━━━━━━━━━━
💎 MACD MOMENTUM QUALITY FILTER SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
The script includes a separate bullish and bearish Momentum Quality Score.
The quality layer evaluates five components.
Alignment — maximum 20 points
Bullish alignment requires:
• MACD above the signal line
• positive histogram
Bearish alignment requires:
• MACD below the signal line
• negative histogram
Histogram Strength — maximum 25 points
The absolute histogram value is compared with an adaptive EMA baseline.
This measures whether current separation is meaningful relative to recent MACD behavior.
Histogram Expansion — maximum 20 points
The engine measures the one-bar change in absolute histogram strength.
Points are awarded only when the histogram is expanding in the setup direction.
MACD Slope — maximum 20 points
Bullish setups require positive slope for this component.
Bearish setups require negative slope.
The slope magnitude is compared with its own adaptive baseline.
Momentum Acceleration — maximum 15 points
Acceleration measures the change in MACD slope.
Positive acceleration supports bullish scoring.
Negative acceleration supports bearish scoring.
bullishQualityScore = f_clamp(
bullishAlignmentScore +
bullishHistogramStrengthScore +
bullishExpansionScore +
bullishSlopeScore +
bullishAccelerationScore,
0.0,
100.0
The available quality modes are:
Off
Removes the minimum Momentum Quality Score restriction.
Loose
Requires a minimum score of 45.
Balanced
Requires a minimum score of 60.
Strict
Requires a minimum score of 75 and is the default.
The score is not a win rate.
It is not a probability.
It measures how closely the current MACD event matches the engine’s momentum-strength framework.
━━━━━━━━━━━━━━━━━━━━━━
📏 VOLATILITY / ATR NORMALIZATION FILTER
━━━━━━━━━━━━━━━━━━━━━━
The indicator uses ATR normalization to compare certain values across changing volatility conditions.
The Absolute Strength Filter calculates:
Absolute Histogram Strength = |Histogram| / ATR × 100.
This value is used as an additional minimum-strength condition.
The default settings are:
• Normalization ATR Length: 14
• Minimum Absolute Strength: 1.0
• Use Absolute Strength Filter: enabled
ATR normalization helps reduce dependence on the raw numerical scale of a market.
For example, a raw MACD histogram value cannot be compared directly across instruments with very different prices and volatility.
Normalization places the histogram in relation to the instrument’s recent ATR.
The same ATR framework is also used by:
• optional price-to-EMA trend buffers
• EMA-separation regime measurement
• price-impulse scoring
• ATR-based trade management
ATR normalization does not make one configuration universal.
Symbols, sessions, exchanges, and data feeds can still behave differently.
━━━━━━━━━━━━━━━━━━━━━━
🕯️ DISPLACEMENT QUALITY FILTER
━━━━━━━━━━━━━━━━━━━━━━
The entry-qualification engine evaluates whether the signal candle shows enough directional response.
The Candle component contributes up to 25 points.
It is divided into:
Directional Body — maximum 12.5 points
For bullish setups, the engine measures the positive candle body relative to the full candle range.
For bearish setups, it measures the negative body.
Close Location — maximum 12.5 points
Bullish setups receive more points when the close is nearer the candle high.
Bearish setups receive more points when the close is nearer the candle low.
Price Impulse contributes up to 15 additional points.
The engine compares the one-bar directional price movement with ATR.
A bullish price impulse measures positive close-to-close displacement.
A bearish price impulse measures negative close-to-close displacement.
This layer does not predict the next candle.
It measures whether the completed signal candle supports the direction of the MACD event.
━━━━━━━━━━━━━━━━━━━━━━
📊 REACTION STRENGTH FILTER
━━━━━━━━━━━━━━━━━━━━━━
The engine includes a separate Entry Qualification Score.
Its components are:
Candle Quality — maximum 25 points
Combines directional body and close location.
MACD Separation — maximum 25 points
Measures current histogram separation relative to its adaptive baseline.
Momentum Persistence — maximum 20 points
Measures how long directional MACD and histogram alignment has remained active.
Price Impulse — maximum 15 points
Measures directional close-to-close movement relative to ATR.
Trigger Context — maximum 15 points
Confirms that an eligible setup event is currently active.
The total is limited to 0–100.
Available modes are:
Off
Removes the minimum Entry Qualification Score restriction.
Loose
Requires a minimum score of 45.
Balanced
Requires a minimum score of 60.
Strict
Requires a minimum score of 75 and is the default.
The final signal also uses internal candle-direction, separation, and persistence requirements.
These internal parameters remain active in the background to keep the public settings menu cleaner.
The Entry Qualification Score is not a verified accuracy figure.
It describes the quality of the completed entry context according to the script’s rules.
━━━━━━━━━━━━━━━━━━━━━━
🧼 CONFIRMED SIGNAL FILTER
━━━━━━━━━━━━━━━━━━━━━━
Permanent LONG and SHORT signals wait for candle close.
The engine uses confirmed-bar checks on:
• MACD crossovers
• zero-line crossings
• expansion triggers
• momentum confirmation
• final LONG and SHORT conditions
The higher-timeframe trend layer also uses previous completed higher-timeframe values.
htfConfirmedClose = request.security(
syminfo.tickerid,
higherTimeframe,
close ,
gaps = barmerge.gaps_off,
lookahead = barmerge.lookahead_on
)
htfConfirmedEma = request.security(
syminfo.tickerid,
higherTimeframe,
ta.ema(close, trendLength) ,
gaps = barmerge.gaps_off,
lookahead = barmerge.lookahead_on
)
This approach prevents an unfinished higher-timeframe candle from becoming the permanent trend reference.
Entry Timing provides two workflows.
Early Trigger
Uses the confirmed setup event directly.
Momentum Confirmed
Arms the setup and waits for a later confirmed candle with:
• continued MACD alignment
• directional histogram
• renewed histogram expansion
• directional MACD slope
The confirmation opportunity is temporary.
If renewed momentum does not appear inside the internal window, the armed setup expires.
The script does not plot final signals into earlier candles.
Historical results can still change when:
• settings change
• symbol data changes
• timeframe changes
• the data provider revises history
• the available chart-history range changes
━━━━━━━━━━━━━━━━━━━━━━
🎯 ENTRY MODEL
━━━━━━━━━━━━━━━━━━━━━━
When a final LONG or SHORT setup passes every enabled condition, the trade engine can create a visual trade model.
The Entry reference is the close of the confirmed signal candle.
For a LONG model:
• Stop is below Entry
• TP1 is above Entry
• TP2 is above TP1
• TP3 is above TP2
For a SHORT model:
• Stop is above Entry
• TP1 is below Entry
• TP2 is below TP1
• TP3 is below TP2
tradeEntryPrice := close
tradeStopPrice := tradeEntryPrice - selectedStopDistance
tradeTp1Price := tradeEntryPrice + selectedTp1Distance
tradeTp2Price := tradeEntryPrice + selectedTp2Distance
tradeTp3Price := tradeEntryPrice + selectedTp3Distance
The model begins checking TP and SL from the following candle.
This prevents the signal candle’s earlier high or low from being treated as though it occurred after the close-based entry.
The engine stores:
• direction
• entry bar
• entry price
• stop price
• TP1 price
• TP2 price
• TP3 price
• initial risk
• target R values
• TP1 and TP2 progress
• setup type
• setup grade
• risk model
• original signal label
The displayed model is an educational chart reference.
It is not a broker order.
━━━━━━━━━━━━━━━━━━━━━━
🛑 ATR STOP-LOSS MODEL
━━━━━━━━━━━━━━━━━━━━━━
The indicator includes two risk models.
ATR Based
Stop distance is calculated as:
ATR × ATR Stop Multiplier.
The default settings are:
• ATR Length: 14
• ATR Stop Multiplier: 1.50
• TP1: 0.50R
• TP2: 1.00R
• TP3: 1.50R
The minimum distance is protected by the symbol’s minimum tick.
XAUUSD Fixed Pips
Stop and target distances use:
Selected Pips × XAUUSD Pip Size.
The default settings are:
• Pip Size: 0.01
• Stop Loss: 1000 pips
• TP1: 500 pips
• TP2: 1000 pips
• TP3: 1500 pips
Under the common 0.01 convention, those values correspond to:
• Stop distance: 10.00 price units
• TP1 distance: 5.00 price units
• TP2 distance: 10.00 price units
• TP3 distance: 15.00 price units
Broker conventions can differ.
Users should verify their symbol specification before relying on fixed-pip distances.
The XAUUSD protection system checks the symbol.
The dashboard shows:
• ✅ XAUUSD VERIFIED when XAUUSD Fixed Pips is used on a recognized XAUUSD symbol
• ⚠️ CHECK SYMBOL when the mode is used on another symbol
• 🛡️ ATR MODE when ATR Based is selected
The warning does not block calculations.
It tells the user to verify pip size and target distances.
━━━━━━━━━━━━━━━━━━━━━━
🎯 TAKE-PROFIT RR MODEL
━━━━━━━━━━━━━━━━━━━━━━
The visual model contains three take-profit levels.
ATR Based mode calculates targets from the initial stop distance:
TP1 Distance = Initial Risk × TP1 RR.
TP2 Distance = Initial Risk × TP2 RR.
TP3 Distance = Initial Risk × TP3 RR.
XAUUSD Fixed Pips mode uses independent fixed target distances.
The script enforces the following order:
TP1 < TP2 < TP3.
If a selected value would violate that order, the next target is moved at least one minimum tick beyond the prior target.
The trade model internally treats the position as three equal portions.
Each target represents one-third of the model.
If Stop is reached after TP1 or TP2, the script calculates an internal net-R result from:
• the portions already modeled as closed at reached targets
• the remaining portion or portions modeled at Stop
This internal calculation supports Data Window counters.
It is not broker-verified performance.
It does not account for:
• spread
• commission
• slippage
• latency
• partial-fill differences
• financing
• order rejection
• execution venue behavior
━━━━━━━━━━━━━━━━━━━━━━
📦 ACTIVE TP / SL BOX SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
When a confirmed trade model opens, the script can draw on the main chart:
• Entry line
• TP1 line
• TP2 line
• TP3 line
• Stop Loss line
• TP1 reward box
• TP2 reward box
• TP3 reward box
• SL risk box
• LONG or SHORT label
The Entry line is white.
The TP lines are green and initially dashed.
The SL line is red and solid.
The SL box uses a solid border.
When a target is reached:
• the corresponding box becomes more visible
• the corresponding target line becomes solid
• the target line becomes thicker
• the dynamic target alert can fire
When TP3 is reached:
• the complete model closes
• the original LONG or SHORT label remains
• a separate electric-purple TP3 FULL TARGET label appears
• the trade model can remain historically visible
When the model closes at Stop before TP3:
• all active boxes are deleted
• all active trade lines are deleted
• the original LONG or SHORT label is converted into the final result
• the final result becomes SL, CLOSED TP1, or CLOSED TP2
Only TP3 outcomes can retain completed historical boxes and lines.
This is a chart-cleanliness decision.
It does not imply that other outcomes did not occur.
━━━━━━━━━━━━━━━━━━━━━━
🚦 ONE ACTIVE TRADE AT A TIME
━━━━━━━━━━━━━━━━━━━━━━
The script uses one-active-trade-at-a-time visual management.
When the trade engine is enabled:
• a new trade model cannot open while another model is active
• a new trade cannot open on the same candle that closed the previous model
• the internal setup engine continues calculating
• permanent signals are restricted by trade-slot availability
This prevents overlapping Entry, TP, and SL structures.
It also keeps the trade lifecycle easier to interpret.
When the trade engine is disabled, qualified signals can still be evaluated without opening a visual trade model.
The one-active-model rule is a visual and analytical design choice.
It does not restrict the user’s personal trading activity.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ SAME-CANDLE TP / SL HANDLING
━━━━━━━━━━━━━━━━━━━━━━
Trade monitoring begins after the entry candle.
If a later historical candle touches both Stop and one or more targets, standard OHLC data does not reveal the exact intrabar sequence.
The indicator therefore provides two assumptions.
Stop First
If Stop and a target are both touched on the same candle, Stop is processed first.
This is the default and more conservative assumption.
Targets First
Reached targets are processed before Stop.
If TP3 is reached, the model closes at TP3.
Otherwise, remaining portions can close at Stop.
Neither mode reconstructs tick-level execution.
The indicator does not know:
• whether the high occurred before the low
• the bid/ask path
• actual fill sequence
• spread at the time
• slippage
• queue priority
• partial fills
The selected same-bar rule is a modeling assumption required by the limits of OHLC candles.
━━━━━━━━━━━━━━━━━━━━━━
🏷️ MACD MOMENTUM LABELS
━━━━━━━━━━━━━━━━━━━━━━
The indicator uses separate entry and result labels.
Entry labels display:
🚀 LONG
or:
🔴 SHORT
Entry Label Content provides:
Direction Only
Displays only LONG or SHORT.
Grade
Displays direction and setup grade.
Score + Grade
Displays direction, grade, and rounded composite score.
The default is Score + Grade.
LONG and SHORT label sizes can be adjusted independently.
Both default to Small.
The label tooltip contains:
• setup direction
• setup type
• setup grade
• composite score
• Momentum Quality Score
• Entry Qualification Score
• Market Regime Score
• trend-bias state
Result labels include:
🛑 SL
⚠️ CLOSED TP1
✅ CLOSED TP2
🏆 TP3 HIT
✅ FULL TARGET
SL, Closed TP1, and Closed TP2 transform the original entry label.
TP3 creates a separate result label and preserves the original entry label.
All chart-label text uses bold and italic formatting.
━━━━━━━━━━━━━━━━━━━━━━
📍 MACD DISPLAY MODES
━━━━━━━━━━━━━━━━━━━━━━
The indicator operates in a separate MACD pane while selected trade visuals, entry labels, and the dashboard are forced onto the main price chart.
The MACD pane can display:
MACD Line
A white line representing the difference between the selected fast and slow averages.
Signal Line
A red line representing the selected signal smoothing.
Histogram
Color changes communicate momentum condition:
• stronger green for bullish expansion
• softer green for bullish contraction
• stronger red for bearish expansion
• softer red for bearish contraction
Histogram Visual Length
The default multiplier is 1.60.
This changes visual column length only.
It does not affect calculations.
Neon Signal Dots
Qualified LONG setups produce a neon green glow and center dot on the MACD line.
Qualified SHORT setups produce a neon red glow and center dot.
Momentum Background
The pane background changes according to strong or weak bullish and bearish momentum states.
Anti-Chop Background
A neutral gray background can identify conditions blocked by the Anti-Chop Engine.
Each major visual element can be shown or hidden independently.
━━━━━━━━━━━━━━━━━━━━━━
🧹 SETUP INVALIDATION
━━━━━━━━━━━━━━━━━━━━━━
Not every raw MACD event remains eligible.
A setup can be rejected or expire because:
• its momentum score is below the selected threshold
• trend bias does not permit the direction
• the market regime is below the active Anti-Chop threshold
• the Entry Qualification Score is insufficient
• candle direction does not support the setup
• MACD separation is insufficient
• directional persistence is insufficient
• the zero-line filter blocks the direction
• normalized histogram strength is too low
• the signal cooldown is active
• another visual trade is active
• a trade closed on the current candle
• Momentum Confirmed mode does not receive renewed expansion in time
• an opposite raw setup replaces the armed direction
The internal cooldown is eight bars.
Momentum Confirmed mode uses a temporary internal confirmation window.
These background controls are intentionally not exposed as advanced public inputs.
They remain part of the engine’s consistency rules.
A rejected event is not displayed as a permanent entry signal.
━━━━━━━━━━━━━━━━━━━━━━
📟 DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━
The indicator includes a compact dashboard in the bottom-right corner of the main price chart.
The dashboard displays:
Momentum
Possible states include:
• STRONG LONG
• LONG
• STRONG SHORT
• SHORT
• NEUTRAL
Trend
Possible states include:
• BULLISH
• BEARISH
• NEUTRAL
• OFF
Regime
Possible states include:
• TRENDING
• DEVELOPING
• CHOP
• OFF
Trade
Possible states include:
• WAITING
• LONG ACTIVE
• LONG TP1 REACHED
• LONG TP2 REACHED
• SHORT ACTIVE
• SHORT TP1 REACHED
• SHORT TP2 REACHED
Last
Displays the most recent closed model result:
• SL
• CLOSED TP1
• CLOSED TP2
• TP3
Protection
Displays:
• ATR MODE
• XAUUSD VERIFIED
• CHECK SYMBOL
The dashboard is not TradingView Strategy Tester.
It does not display audited brokerage results.
Its states are based on the indicator’s own rule-based calculations.
━━━━━━━━━━━━━━━━━━━━━━
🚨 ALERT SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
MACD Momentum Entry Engine includes static TradingView alert conditions for:
• MACD Momentum LONG
• MACD Momentum SHORT
• TP1
• TP2
• TP3
• Stop Loss
• XAUUSD Mode Warning
The XAUUSD warning condition is limited to a qualified entry bar when Fixed Pips mode is active on a non-XAUUSD symbol.
The script also includes detailed dynamic alert() messages.
Dynamic Entry messages can include:
• direction
• symbol
• timeframe
• setup type
• setup grade
• composite score
• risk model
• Entry
• Stop Loss
• TP1
• TP2
• TP3
• XAUUSD mismatch warning when relevant
Dynamic target messages can include:
• target name
• direction
• symbol
• timeframe
• reached target price
• Entry
• Stop Loss
• TP1
• TP2
• TP3
Dynamic stop messages can include:
• final result
• direction
• symbol
• timeframe
• Entry
• exit price
• Stop Loss
• whether TP1 or TP2 was reached first
Alerts are monitoring tools.
They do not place or manage broker orders.
━━━━━━━━━━━━━━━━━━━━━━
🔔 HOW TO USE ALERTS
━━━━━━━━━━━━━━━━━━━━━━
For static conditions:
1. Add MACD Momentum Entry Engine to the chart.
2. Open TradingView’s Create Alert window.
3. Select the indicator as the condition.
4. Choose LONG, SHORT, TP1, TP2, TP3, SL, or XAUUSD Mode Warning.
5. Select a frequency appropriate for confirmed-candle monitoring.
6. Test the alert before relying on it.
For detailed dynamic messages:
1. Enable Detailed Dynamic Alerts in the indicator settings.
2. Open TradingView’s Create Alert window.
3. Select MACD Momentum Entry Engine .
4. Select Any alert() function call.
5. Configure the delivery method.
6. Test the complete message format.
Alert delivery can depend on:
• TradingView servers
• the selected symbol
• the selected timeframe
• market-data availability
• realtime feed status
• user alert configuration
• webhook or external-service availability
Creating an alert does not guarantee broker execution.
━━━━━━━━━━━━━━━━━━━━━━
🧪 HOW TO USE THE INDICATOR
━━━━━━━━━━━━━━━━━━━━━━
A practical workflow:
1. Add MACD Momentum Entry Engine to a standard candlestick chart.
2. Begin with the default MACD values of 12, 26, and 9.
3. Keep Entry Timing on Early Trigger while learning the setup types.
4. Keep Momentum Quality on Strict for the default selective profile.
5. Keep Anti-Chop on Strict.
6. Keep Entry Qualification on Strict.
7. Observe whether the event is Reversal, Continuation, Zero Reclaim, or Expansion.
8. Review the MACD histogram, line relationship, and neon signal dot.
9. Review the main-chart LONG or SHORT label.
10. Open the label tooltip to inspect the scores and setup type.
11. Review Momentum, Trend, Regime, Trade, Last Result, and Protection in the dashboard.
12. Verify the selected risk model.
13. When using XAUUSD Fixed Pips, confirm XAUUSD VERIFIED.
14. Treat Entry, SL, TP1, TP2, and TP3 as planning references.
15. Use alerts for monitoring rather than blind execution.
16. Compare every setup with personal structure, session, volatility, and risk rules.
17. Test the exact symbol, timeframe, session, and data feed personally used.
The indicator is designed for structured review.
It should not be treated as an automatic decision-maker.
━━━━━━━━━━━━━━━━━━━━━━
⚙️ SETTINGS REFERENCE
━━━━━━━━━━━━━━━━━━━━━━
⚙️ MACD Core
Calculation Source
Selects the price source used by the MACD calculation.
Fast Length
Controls the fast average.
Default: 12.
Slow Length
Controls the slow average.
Default: 26.
Signal Length
Controls signal-line smoothing.
Default: 9.
MACD Average Type
Selects EMA, SMA, RMA, or WMA for the fast and slow averages.
Signal Average Type
Selects EMA, SMA, RMA, or WMA for the signal line.
━━━━━━━━━━━━━━━━━━━━━━
🎯 Entry Engine
Entry Timing
Early Trigger accepts the confirmed setup event directly.
Momentum Confirmed waits for renewed directional histogram expansion and MACD continuation after the setup is armed.
━━━━━━━━━━━━━━━━━━━━━━
🧠 Momentum Quality Engine
Quality Filter
Selects Off, Loose, Balanced, or Strict.
Strict is the default.
The score combines:
• alignment
• histogram strength
• histogram expansion
• MACD slope
• momentum acceleration
━━━━━━━━━━━━━━━━━━━━━━
📈 Trend Bias Engine
Trend Bias Mode
Selects:
• Off
• Chart EMA
• Higher Timeframe EMA
• Combined EMA
Off is the default.
Trend EMA Length
Controls the chart and higher-timeframe EMA.
Default: 200.
Chart EMA Slope Lookback
Controls the chart-bar lookback used to evaluate EMA direction.
Require EMA Slope Confirmation
Requires a rising EMA for LONG and falling EMA for SHORT.
Higher Timeframe
Selects the confirmed higher-timeframe context.
Default: 60 minutes.
Price-to-EMA ATR Buffer
Requires an optional minimum ATR-normalized distance between price and the trend EMA.
Zero disables the distance requirement.
━━━━━━━━━━━━━━━━━━━━━━
🧱 Anti-Chop Engine
Anti-Chop Filter
Selects Off, Loose, Balanced, or Strict.
Strict is the default.
The regime score combines:
• ADX — 35 points
• price efficiency — 30 points
• EMA separation — 20 points
• volatility expansion — 15 points
━━━━━━━━━━━━━━━━━━━━━━
✅ Entry Qualification Engine
Enable Reversal Setups
Allows MACD crossovers on the opposite side of zero.
Enable Continuation Setups
Allows MACD crossovers on the directional side of zero.
Enable Zero-Line Reclaims
Allows confirmed MACD zero-line crossings with aligned histogram and signal-line conditions.
Enable Momentum Expansions
Allows renewed histogram expansion after contraction while MACD alignment remains valid.
Entry Qualification Filter
Selects Off, Loose, Balanced, or Strict.
Strict is the default.
The score combines:
• candle quality
• MACD separation
• persistence
• price impulse
• trigger context
━━━━━━━━━━━━━━━━━━━━━━
💼 Trade Management Engine
Enable Trade Engine
Enables the one-active-trade-at-a-time visual model.
Risk Model
Selects ATR Based or XAUUSD Fixed Pips.
XAUUSD Fixed Pips is the default.
ATR Length
Controls ATR for the adaptive model.
ATR Stop Multiplier
Controls stop distance in ATR mode.
ATR TP1 Risk/Reward
Controls TP1 distance in ATR mode.
ATR TP2 Risk/Reward
Controls TP2 distance in ATR mode.
ATR TP3 Risk/Reward
Controls TP3 distance in ATR mode.
XAUUSD Pip Size
Controls the price-unit value of one selected pip.
XAUUSD Stop-Loss Pips
Controls fixed Stop distance.
XAUUSD TP1 Pips
Controls fixed TP1 distance.
XAUUSD TP2 Pips
Controls fixed TP2 distance.
XAUUSD TP3 Pips
Controls fixed TP3 distance.
Same-Bar Resolution
Selects Stop First or Targets First.
Show Active TP / SL Zones
Shows Entry, targets, Stop, boxes, and lines on the main chart.
Keep Historical TP3 Zones
Preserves completed TP3 models.
Historical TP3 Trade Limit
Limits completed TP3 models retained on the chart.
Trade Result Labels
Enables SL, Closed TP1, Closed TP2, and TP3 result labels.
SL Label Size
Controls SL result size.
Closed TP1 Label Size
Controls Closed TP1 result size.
Closed TP2 Label Size
Controls Closed TP2 result size.
TP3 Label Size
Controls the separate FULL TARGET label size.
━━━━━━━━━━━━━━━━━━━━━━
🛡️ Signal Filters
Zero-Line Filter
Off allows both sides of zero.
Trend Direction requires LONG above zero and SHORT below zero.
Trend Direction is the default.
Use Absolute Strength Filter
Enables ATR-normalized minimum histogram strength.
Normalization ATR Length
Controls normalization.
Minimum Absolute Strength
Controls the required normalized histogram value.
━━━━━━━━━━━━━━━━━━━━━━
🎨 Visual Settings
Show MACD Line
Shows or hides the MACD line.
Show Signal Line
Shows or hides the signal line.
Show Histogram
Shows or hides histogram columns.
Histogram Visual Length
Changes histogram display scale without changing calculations.
Show MACD Neon Signal Dots
Shows qualified LONG and SHORT dots on the MACD line.
Show Momentum Background
Shows directional momentum background states.
Highlight Blocked Chop Conditions
Shows a neutral background when Anti-Chop blocks entries.
Show LONG / SHORT Labels
Shows or hides main-chart entry labels.
Entry Label Content
Selects Direction Only, Grade, or Score + Grade.
LONG Label Size
Controls LONG label size.
SHORT Label Size
Controls SHORT label size.
━━━━━━━━━━━━━━━━━━━━━━
📟 Mini Dashboard
Show Mini Dashboard
Shows or hides the compact bottom-right main-chart dashboard.
━━━━━━━━━━━━━━━━━━━━━━
🔔 Dynamic Alerts
Enable Detailed Dynamic Alerts
Enables runtime alert() messages.
For these messages, create the TradingView alert using:
Any alert() function call.
Input values are hidden from the status line.
MACD plot values are also prevented from creating status-line or price-scale labels, while diagnostic values remain available in the Data Window.
━━━━━━━━━━━━━━━━━━━━━━
🧠 WHAT MAKES THIS SCRIPT ORIGINAL
━━━━━━━━━━━━━━━━━━━━━━
MACD, moving averages, ATR, ADX, and trend filters are familiar technical-analysis concepts.
These concepts are not unique by themselves.
The originality of MACD Momentum Entry Engine lies in the coordinated process applied to a MACD event:
Configurable MACD event
→ setup-type classification
→ adaptive momentum-strength baselines
→ five-component Momentum Quality Score
→ optional confirmed trend-bias layer
→ four-component Anti-Chop Regime Score
→ five-component Entry Qualification Score
→ final composite score and grade
→ zero-line and normalized-strength validation
→ confirmed-close signal
→ one-active multi-target trade lifecycle
→ TP3-only historical preservation
→ non-TP3 visual cleanup
→ dynamic alerts
→ main-chart diagnostic dashboard
→ XAUUSD mode verification
Distinctive implementation features include:
• four separate setup families
• different logic for Reversal and Continuation crossovers
• zero-line reclaim detection
• renewed expansion detection without requiring a fresh crossover
• adaptive baselines for strength, expansion, slope, and acceleration
• separate bullish and bearish scoring
• a Momentum Quality Score independent from Entry Qualification
• an Anti-Chop Score independent from momentum quality
• confirmed previous higher-timeframe EMA values
• a 70/30 final composite structure
• A+, A, B, and C grades
• visual-only histogram scaling
• equal-third multi-target internal accounting
• same-candle processing assumptions
• XAUUSD symbol verification
• separate result behavior for TP3 and non-TP3 outcomes
• detailed Data Window diagnostics
The script is not a simple combination of unrelated indicators.
Every module supports the same objective: determining whether a confirmed MACD event has enough momentum, market, and entry context to become a permanent visual setup.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ IMPORTANT PRACTICAL NOTES
━━━━━━━━━━━━━━━━━━━━━━
Signal frequency depends on:
• fast, slow, and signal lengths
• selected average types
• Entry Timing
• enabled setup families
• Momentum Quality mode
• Trend Bias mode
• EMA length
• higher timeframe
• EMA slope requirement
• price-to-EMA buffer
• Anti-Chop mode
• Entry Qualification mode
• zero-line filter
• absolute-strength threshold
• symbol
• timeframe
• session
• volatility
• available history
• data provider
• active-trade state
Strict modes reduce accepted signals.
They do not guarantee better results.
Trend Bias Off allows the momentum engine to evaluate both directions without EMA permission.
Higher Timeframe EMA and Combined EMA should use a timeframe meaningfully above the chart timeframe.
XAUUSD Fixed Pips is designed around a selectable pip convention.
The default 0.01 value may not match every broker or synthetic symbol.
Momentum Confirmed produces later and potentially fewer signals than Early Trigger.
Histogram Visual Length does not alter logic.
Changing settings recalculates historical signals and trade models.
A setup that looks different after changing the chart range may be affected by available historical data and adaptive baselines.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ LIMITATIONS AND SHORTCOMINGS
━━━━━━━━━━━━━━━━━━━━━━
This script has important limitations:
It does not guarantee profitable trades.
It does not predict future price movement.
It does not execute orders.
It does not place broker stops or targets.
It does not include spread.
It does not include commission.
It does not include slippage.
It does not include latency.
It does not model partial fills.
It does not model financing or swap.
It uses bar-based OHLC data.
Historical candles do not reveal exact intrabar order.
Stop First and Targets First are assumptions.
The setup score is not a win probability.
A+ is not a guaranteed outcome.
The Anti-Chop Score cannot identify every ranging condition.
Trend filters can delay or block valid reversals.
Trend Bias Off can allow countertrend signals.
ATR normalization does not make settings universal.
Fixed-pip conventions can differ between brokers.
XAUUSD symbol detection cannot verify a broker’s contract specification.
The dashboard is not TradingView Strategy Tester.
Data Window counters are not audited account performance.
The internal R model assumes three equal portions.
The internal model does not represent real position sizing.
One-active-trade logic is a visual-management rule.
Alert delivery depends on TradingView and user configuration.
Changing settings changes historical calculations.
Changing symbol, exchange, session, timeframe, or feed can change signals.
Adaptive baselines depend on available chart history.
Confirmed higher-timeframe values reduce unfinished-HTF changes but introduce delay.
Permanent signals wait for candle close and therefore do not capture the earliest intrabar moment.
For these reasons, the indicator should be used as an educational decision-support tool, not as a standalone automated strategy.
━━━━━━━━━━━━━━━━━━━━━━
👤 WHO THIS SCRIPT MAY BE USEFUL FOR
━━━━━━━━━━━━━━━━━━━━━━
This script may be useful for traders who:
• already understand basic MACD behavior
• want more context than a raw crossover
• study momentum expansion and contraction
• distinguish reversal, continuation, zero-line, and expansion events
• want transparent setup scoring
• want an anti-chop layer
• want optional chart and higher-timeframe trend context
• prefer confirmed-close signals
• want Entry, SL, and three target references
• use XAUUSD and want configurable fixed-pip distances
• want symbol-mismatch warnings
• want a compact dashboard
• want detailed alerts
• want diagnostic Data Window values
• prefer one active visual model at a time
It may be less suitable for users who:
• want guaranteed signals
• want a fully automated trading bot
• want every MACD crossover displayed
• expect a score to equal probability
• expect one setting to work on every market
• require exact tick-level execution
• want Strategy Tester results from an indicator
• want the indicator to replace personal judgment
• expect alerts to execute broker orders automatically
━━━━━━━━━━━━━━━━━━━━━━
🧭 BEST PRACTICE SUGGESTIONS
━━━━━━━━━━━━━━━━━━━━━━
For the default selective profile:
• use standard candlesticks
• begin with MACD 12 / 26 / 9
• keep Entry Timing on Early Trigger
• keep Momentum Quality on Strict
• keep Anti-Chop on Strict
• keep Entry Qualification on Strict
• keep the Zero-Line Filter on Trend Direction
• keep Absolute Strength enabled
• keep all four setup families enabled while learning
• use the dashboard to identify blocked regime conditions
• verify the selected risk model before reviewing trade levels
• use Stop First for conservative historical same-bar handling
• confirm XAUUSD VERIFIED when using Fixed Pips
• use alerts for monitoring rather than blind execution
For additional frequency:
• change Momentum Quality from Strict to Balanced
• change Anti-Chop from Strict to Balanced
• change Entry Qualification from Strict to Balanced
• disable the Zero-Line Filter
• disable Absolute Strength
• keep Trend Bias Off
• use Early Trigger
For additional directional restriction:
• use Chart EMA, Higher Timeframe EMA, or Combined EMA
• enable EMA slope confirmation
• add a Price-to-EMA ATR Buffer
• use a higher timeframe above the chart timeframe
• use Momentum Confirmed instead of Early Trigger
Always:
• wait for the setup candle to close
• review the setup type
• review the score components
• verify market structure independently
• review session and volatility
• verify the stop distance
• use personal position sizing
• test the exact symbol and timeframe
• understand the same-bar assumption
• treat all projected levels as analytical references
━━━━━━━━━━━━━━━━━━━━━━
🔓 PUBLICATION NOTE
━━━━━━━━━━━━━━━━━━━━━━
MACD Momentum Entry Engine is published as an educational momentum-analysis and visual trade-model tool.
The purpose of this description is to explain:
• how the configurable MACD core is calculated
• how average types affect the MACD and signal lines
• how setup events are classified
• how Reversal setups work
• how Continuation setups work
• how Zero-Line Reclaim setups work
• how Momentum Expansion setups work
• how Early Trigger and Momentum Confirmed differ
• how the Momentum Quality Score is constructed
• how adaptive momentum baselines work
• how the Anti-Chop Score is constructed
• how the Entry Qualification Score is constructed
• how final composite scores and grades are assigned
• how chart and confirmed higher-timeframe trend filters work
• how zero-line and absolute-strength filters work
• when permanent signals appear
• how the one-active-trade model works
• how Entry and Stop are calculated
• how TP1, TP2, and TP3 are calculated
• how same-candle ambiguity is handled
• how historical TP3 visuals are retained
• how non-TP3 visuals are cleaned
• how result labels behave
• what the dashboard displays
• how XAUUSD protection works
• what static and dynamic alerts contain
• what diagnostic values are available
• what the timing limitations are
• what the model does not simulate
• why familiar MACD concepts are organized into an original workflow
The script is designed to support structured analysis.
It does not promise profitable results.
It does not remove market risk.
It does not execute trades.
It should not be used as a blind LONG/SHORT system.
MAIN CHART SCREENSHOT PLAN
Use one clean standard candlestick chart.
Show the indicator with its default settings.
The screenshot should contain:
• complete symbol and timeframe information
• the indicator name
• visible standard price candles
• one clear LONG or SHORT label
• one active or completed Entry / TP / SL model
• the white Entry line
• green TP1, TP2, and TP3 levels
• the red SL area and solid SL line
• the MACD pane
• the white MACD line
• the red signal line
• the green/red histogram
• one neon MACD signal dot
• the bottom-right main-chart dashboard
• the Protection state
Do not include:
• other indicators
• manual drawings
• unrelated labels
• social-media links
• pricing information
• promotional claims
• account-profit screenshots
• win-rate claims
• non-standard candles
• hidden symbol or timeframe information
• excessive zoom
• decorative graphics unrelated to the script
The screenshot should demonstrate normal default behavior and make the relationship between the MACD event, main-chart signal, trade model, and dashboard easy to understand.
━━━━━━━━━━━━━━━━━━━━━━
🛡️ DISCLAIMER
━━━━━━━━━━━━━━━━━━━━━━
MACD Momentum Entry Engine is provided for educational and informational purposes only.
It does not constitute financial, investment, trading, legal, or tax advice.
No indicator can guarantee future results.
Markets are uncertain.
Momentum changes.
Volatility changes.
Liquidity changes.
Historical chart behavior does not ensure future performance.
Every user is responsible for their own:
• analysis
• validation
• risk management
• position sizing
• alert configuration
• trading decisions
• broker execution
• legal obligations
• tax obligations
The MACD line, signal line, histogram, momentum states, setup types, quality scores, regime scores, entry scores, composite scores, grades, trend states, LONG and SHORT labels, Entry references, Stop Loss levels, take-profit levels, boxes, result labels, Data Window values, dashboard states, internal counters, and alerts are visual analysis tools only.
The displayed Entry is not a guaranteed fill.
The displayed Stop Loss is not a broker order.
The displayed TP1, TP2, and TP3 levels are not guaranteed objectives.
The Momentum Quality Score is not a win probability.
The Entry Qualification Score is not a probability.
The Market Regime Score is not a guarantee that a market is trending.
The A+, A, B, and C grades are not promises of performance.
The internal trade model does not include spread, commissions, slippage, latency, order-book conditions, contract specifications, or partial fills.
Use this script as a structured MACD momentum-review and decision-support framework, not as a promise of profitability or a substitute for independent judgment. インジケーター

DAX Universe Relative Strength [JS]DAX Universe Relative Strength
This indicator compares the current stock with an equal-weighted German stock market benchmark consisting of DAX, MDAX, SDAX and TecDAX.
Instead of comparing a stock only with one single index, the script creates a broader DAX Universe benchmark by calculating the average performance of the four major German equity indices over a selected lookback period.
The goal is to identify whether a stock is showing relative strength or relative weakness versus the broader German stock universe.
How it works:
1. The script measures the performance of the current stock over the selected comparison period.
2. It measures the performance of DAX, MDAX, SDAX and TecDAX over the same period.
3. It calculates the equal-weighted average performance of these four indices.
4. It compares the stock’s performance with this benchmark.
5. The result is plotted as a relative strength line.
Interpretation:
- RS above 0:
The stock is outperforming the DAX Universe benchmark.
- RS below 0:
The stock is underperforming the DAX Universe benchmark.
- RS above its moving average:
Relative strength is improving.
- RS below its moving average:
Relative strength is weakening.
- Strong RS signal:
The stock is above the benchmark, above its RS moving average, and the RS moving average is rising.
This indicator is designed as a filter, not as a standalone buy or sell signal.
For pullback and swing trading, I use it to identify stocks that are stronger than the broader German market. A strong RS reading does not mean that a stock should be bought immediately. It only means that the stock deserves attention and may be worth adding to a watchlist.
A complete trade setup should also include:
- constructive trend structure
- price above important moving averages
- controlled pullback
- declining selling pressure
- clear pivot or trigger
- defined stop-loss
- attractive risk/reward ratio
The indicator includes:
- relative strength line
- moving average of the RS line
- zero line
- histogram
- background highlighting
- interpretation label
- alert conditions for RS changes
Suggested use cases:
- screening German stocks
- comparing DAX, MDAX, SDAX and TecDAX stocks
- identifying potential market leaders
- filtering pullback candidates
- avoiding stocks with persistent relative weakness
Important:
This script is for educational and analytical purposes only. It does not provide investment advice, buy signals or sell signals. Always combine relative strength analysis with your own chart analysis, risk management and trading plan. インジケーター

Momentum Leader Scanner - AshishMomentum Leader Scanner — a systematic tool for catching high-conviction momentum stocks after their initial breakout (EP candle), while they consolidate quietly in the EMA9/21 cloud before the next leg up. Combines relative strength vs. benchmark, proximity to 52-week highs, and a low-volume pullback filter to surface coiled setups — then locks a precise breakout trigger price the moment a setup is confirmed, so you can place your entry order in advance instead of reacting after the move has already started.
How it works
The script anchors its analysis to the most recent qualifying EP candle (a single-day move of 8%+ by default) and measures the stock's outperformance against a benchmark (default: NIFTYMIDSML400) since that candle — not over an arbitrary fixed window. This avoids one EP candle alone inflating a "strength" reading; the outperformance has to be sustained after the move, not just caused by it.
A setup requires four conditions together:
Outperformance vs benchmark since the EP candle exceeds a minimum threshold (default 10%)
Proximity to 52-week high (default within 20%) — confirming the stock hasn't lost its leadership
A qualifying EP candle within the detection window
A healthy pullback — price sitting inside the EMA9/EMA21 cloud (with a small tolerance for wick excursions) while the EMA9 > EMA21 > EMA50 stack stays intact, on below-average volume
When all four align, the script locks a breakout trigger price — the highest high since the EP candle — letting you pre-place a GTT order rather than waiting for a confirmed close above resistance, which is often a day or more late.
What it's good for
Catching stocks in the "coil after the jump" phase: violent move, quiet digestion, then continuation. It explicitly tracks how many separate EP candles have fired (visible as a diagnostic) so you can judge whether a stock had one clean catalyst or has been repeatedly volatile.
What it isn't built for
Slow, low-volatility grinders that never have a sharp EP candle (a different system altogether), and stocks that move too fast and too cleanly to ever pull back into the cloud on a daily timeframe.
Status
Actively used and refined against live market data — published as-is for traders who understand swing/momentum trading and want to incorporate systematic outperformance and pullback logic into their own process. Not financial advice; verify every signal against your own risk management before acting on it. インジケーター

RSI Slope Divergence HelperRSI Slope Divergence Helper compares the rolling slope of price with the rolling slope of RSI.
This is not a classic pivot-divergence detector. It does not wait for confirmed swing pivots. Instead, it compares rolling price behavior and rolling RSI behavior directly by converting both slopes into normalized, unitless values and displaying them in the same pane.
The purpose of this script is to help users observe when price slope and RSI slope are moving together, moving against each other, or moving with low slope. It is a context and visualization tool only. It does not provide trade-action instructions and it is not a trading system.
What it shows
- Normalized price slope.
- Normalized RSI slope.
- A spread histogram between the two normalized slopes.
- Neutral slope-relationship states.
- A compact dashboard.
- Optional factual markers.
- A neutral Divergence Footprint layer.
How the calculation works
The script first calculates RSI using the selected RSI source and RSI length.
For price, it estimates a rolling linear-regression slope by comparing the current linear-regression value with the prior linear-regression value. The price slope is expressed as a percentage of the prior fitted price value so it can be compared across different symbols and price levels.
For RSI, the script estimates a rolling linear-regression slope from RSI itself. Since RSI is already bounded from 0 to 100, its slope is measured in RSI points.
The two slope series have different units, so they are normalized separately:
- price slope is divided by its own rolling standard deviation
- RSI slope is divided by its own rolling standard deviation
This converts both slopes into comparable unitless values.
The displayed spread is:
normalized price slope - normalized RSI slope
A positive spread means the normalized price slope is above the normalized RSI slope. A negative spread means the normalized price slope is below the normalized RSI slope.
No request.security() is used. The script uses current chart bars only and does not use lookahead or future data.
Why it is different from classic RSI divergence scripts
Many RSI divergence scripts compare confirmed price pivots with confirmed RSI pivots. This script takes a different approach.
It focuses on rolling slope behavior:
- price slope
- RSI slope
- normalized slope spread
- duration of the current disagreement episode
- peak spread during the current episode
- spread motion
- phase gap
Because it is slope-based, it is intended as a visual helper for observing disagreement between price movement and RSI movement. It is not a reversal detector and it does not forecast future price behavior.
Divergence Footprint
The Divergence Footprint is a neutral context layer that describes the current slope-disagreement episode.
It can show:
- whether slope disagreement is active
- how many bars the current disagreement episode has persisted
- the peak absolute spread reached during the current episode
- whether the absolute spread is expanding, cooling, or holding
- the phase gap between normalized price slope and normalized RSI slope
The phase gap is calculated by applying an angle transform to each normalized slope and then comparing the two angles. It is descriptive only. It is not a probability, score, forecast, or confirmation tool.
Optional phase-gap and duration plots are off by default to keep the pane clean.
State model
The dashboard uses neutral state names:
- Warming up
- Aligned upward
- Aligned downward
- Upper disagreement
- Lower disagreement
- Flat / low slope
- Mixed slopes
Upper disagreement means price slope is positive while RSI slope is negative.
Lower disagreement means price slope is negative while RSI slope is positive.
These states describe the current relationship between the two slopes. They do not imply reversal or continuation.
Markers and alerts
Markers are optional and off by default.
The marker display mode can be set to:
- Off
- Disagreement only
- All events
When enabled, markers are small and factual:
- P+ R- means price slope is positive while RSI slope is negative.
- P- R+ means price slope is negative while RSI slope is positive.
- Align marks slope agreement returning after a prior slope-disagreement episode, when enabled.
Alerts use the same neutral event logic:
- Upper slope disagreement
- Lower slope disagreement
- Slope agreement restored
- Spread crossed above threshold
- Spread crossed below threshold
Alerts are confirmed on bar close by default. Intrabar mode is available, but realtime values can update until the bar closes.
Dashboard
The default dashboard is compact and auto-sized. It is designed to stay readable without covering the indicator pane.
Compact layout shows:
- State
- Price slope
- RSI slope
- Spread
- Footprint
- Event mode
Standard and Detailed layouts add more context, including RSI value, spread motion, phase gap, disagreement bars, episode peak spread, active warm-up bars, and bar status.
Visual customization
Users can adjust:
- table layout
- table position
- table text size
- header text size
- table colors
- row backgrounds
- state-row highlighting
- plot colors
- histogram transparency
- marker colors
- background tint
- fixed table sizing, when desired
By default, fixed table cell sizing is off, so the dashboard auto-sizes to its content. Markers and background tint are also off by default to keep the pane clean.
Visual settings do not affect the calculations.
Live behavior and robustness
The script includes:
- automatic warm-up floor
- guarded denominators
- minimum normalized slope threshold
- optional spread-threshold filter for events
- optional minimum persistence for disagreement events
- optional event cooldown
- confirmed-bar event handling by default
- realtime / confirmed bar status disclosure in the table
If there is not enough history, or if the normalization denominator is not usable, the script avoids producing misleading slope states and displays safe fallback text such as n/a or Warming up.
Limitations
This script is not financial advice and not a trading system.
Slope disagreement can persist.
Slope disagreement can disappear without a major price move.
Slope disagreement does not predict reversal or continuation.
RSI is a bounded oscillator and can remain extended while price continues moving.
Default settings are starting points, not optimized settings.
Normalization length, slope length, smoothing length, and thresholds affect sensitivity.
Japanese notes
価格の傾きとRSIの傾きを正規化して比較し、両者の乖離をスプレッドとDivergence Footprintで表示する補助ツールです。通常のピボット型RSIダイバージェンス検出ではありません。売買判断や将来の値動きを示すものではなく、状況把握のための可視化ツールです。既定ではCompact表示、マーカーと背景色はオフ、確定足イベント処理がオンです。 インジケーター

MTF Stoch RSI Snapshot 9 Timeframe OverviewThis indicator provides a compact multi-timeframe view of the Stochastic RSI across 9 different timeframes:
1m, 5m, 15m, 30m, 45m, 1h, 2h, 6h, 1D
Instead of switching between charts, the script displays all selected timeframes side by side in a clean column layout. Each column represents one timeframe and shows the current position of the two Stoch RSI lines, making it easier to quickly understand momentum conditions across multiple market structures.
Main Features
Multi-timeframe Stoch RSI visualization
9 fixed timeframe columns
K and D lines shown inside each column
Gradient background based on oscillator level
Quick visual identification of overbought and oversold areas
20 / 50 / 80 reference levels
Optional numeric K and D values
Compact layout designed for fast market reading
How to Read It
Each column represents a timeframe.
The vertical position of the lines shows where the Stoch RSI currently is:
Near the bottom: oversold / weak momentum area
Around the middle: neutral zone
Near the top: overbought / strong momentum area
The background gradient helps identify the oscillator zone immediately, while the two plotted lines allow you to see the current relationship between K and D.
This is useful when you want to compare short-term and higher-timeframe momentum at a glance.
Typical Use Cases
Scalping confirmation
Multi-timeframe momentum alignment
Spotting overbought / oversold conditions across timeframes
Filtering entries based on higher-timeframe context
Quickly checking whether short-term movement agrees with broader market structure
Notes
This indicator does not generate buy or sell signals by itself.
It is intended as a visual decision-support tool and should be used together with price action, trend analysis, support and resistance, and proper risk management.
Disclaimer
This script is for educational and informational purposes only.
It is not financial advice. Always test any trading approach carefully before using it in live markets. インジケーター
