OPEN-SOURCE SCRIPT
RSI Slope Divergence Helper

RSI 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表示、マーカーと背景色はオフ、確定足イベント処理がオンです。
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表示、マーカーと背景色はオフ、確定足イベント処理がオンです。
Script open-source
Dans l'esprit TradingView, le créateur de ce script l'a rendu open source afin que les traders puissent examiner et vérifier ses fonctionnalités. Bravo à l'auteur! Bien que vous puissiez l'utiliser gratuitement, n'oubliez pas que la republication du code est soumise à nos Règles.
Clause de non-responsabilité
Les informations et publications ne sont pas destinées à être, et ne constituent pas, des conseils ou recommandations financiers, d'investissement, de trading ou autres fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.
Script open-source
Dans l'esprit TradingView, le créateur de ce script l'a rendu open source afin que les traders puissent examiner et vérifier ses fonctionnalités. Bravo à l'auteur! Bien que vous puissiez l'utiliser gratuitement, n'oubliez pas que la republication du code est soumise à nos Règles.
Clause de non-responsabilité
Les informations et publications ne sont pas destinées à être, et ne constituent pas, des conseils ou recommandations financiers, d'investissement, de trading ou autres fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.