Volatility Scaled RSI
- Indicators
- Version: 1.0
- Activations: 5
# Volatility Scaled RSI - Strength separated from volatility
*Category: Oscillators | Difficulty: intermediate | Window: separate window below the chart | Markets: Universal (Forex, indices, commodities, crypto, stocks) | Suggested timeframes: M15, M30, H1, H4, D1*
## Short description
> A relative strength index where every change is normalised by the volatility of its own moment. It measures pure direction instead of a blend of direction and volatility.
## Full description
### Overview
A relative strength index built on raw price changes treats a move in a quiet bar and one in an explosive bar identically. The consequence is that when volatility changes regime the oscillator changes behaviour without anything structural happening: extreme values become more or less frequent, and thresholds that worked stop working. This version normalises every change by dividing it by the ATR of the corresponding bar before aggregating. All changes therefore enter with the same weight relative to the volatility of their moment, and the oscillator measures pure directional strength instead of a blend of direction and volatility. The non-normalised version is also drawn on the chart, so the difference between the two approaches is visible and verifiable.
### How the calculation works
1. For each bar the close change versus the previous bar is computed.
2. The change is divided by the ATR over InpAtrPeriod bars, giving a value in volatility units.
3. The normalised changes are separated by sign and summed over the oscillator window.
4. The oscillator is the share of the sum of advances over the total, as a percentage.
5. In parallel the classic version on raw changes is computed, drawn as a grey comparison line.
6. A zero sum, meaning no movement in the window, returns the neutral value instead of causing a division by zero.
### How to use it
- Use the coloured line as the main oscillator and the grey one only as a comparison reference.
- When the two lines diverge sharply, the difference is entirely attributable to a volatility regime change.
- The thresholds stay valid across volatility changes, which is not the case with the classic version.
- Hide the classic line if you prefer a clean chart: it is purely informative and does not affect the computation.
- Particularly useful on instruments alternating quiet and explosive phases, where the classic version is more unstable.
### Who it is for and on which timeframes
It suits traders using a relative strength index who have noticed the thresholds work well in some periods and poorly in others. It works from M15 to D1. The visual comparison with the classic version makes the advantage immediately obvious, with no need to trust the documentation. It is also useful to system builders, because an oscillator whose thresholds stay valid over time noticeably reduces the need for reoptimisation.
### Practical example of reading a signal
On BTCUSD H1 the market moves from a very quiet week to an extremely volatile one. In the first week the classic oscillator reaches extreme values easily, because the few changes present dominate the sum. In the second the opposite happens: the changes are all large and offset each other, so the oscillator stays closer to the centre. The normalised version instead behaves the same way in both weeks, because every change was related to the volatility of its own moment. The two lines, overlaid on the chart, visibly diverge exactly at the transition between the two regimes.
## Input parameters
| Parameter | Default | Description |
|---|---|---|
| `InpPeriod` | 14 | Oscillator period, that is over how many bars the changes are aggregated. |
| `InpAtrPeriod` | 30 | ATR period used to normalise each change. Keeping it wide makes the normalisation more stable. |
| `InpUpperLevel` | 70.0 | Upper oscillator threshold. |
| `InpLowerLevel` | 30.0 | Lower threshold. If the two thresholds are inverted, the indicator reorders them automatically. |
| `InpShowClassic` | true | Also draws the classic version for comparison. Disabling it declutters the chart without touching the computation. |
## Advantages / strengths
- It separates directional strength from volatility, two quantities the classic oscillator inevitably blends.
- The thresholds stay valid across regime changes, reducing the need for reoptimisation.
- The visual comparison with the classic version makes the advantage immediately verifiable by the user.
- The classic version can be hidden with a parameter, without touching the main computation.
## Limitations and warnings
- The normalisation requires computing an ATR for every bar, making it heavier than the classic version.
- On instruments with very stable volatility the difference from the classic version is negligible.
- The value does not coincide with the classic oscillator: anyone with thresholds tuned to that must revise them.
- It remains an oscillator and as such describes the present state without anticipating future movement.
**No repaint:** values printed on a closed bar are never modified afterwards.
**Disclaimer.** This product is a technical analysis tool, not an automated trading system, and it offers no profit guarantee whatsoever. Financial markets carry the risk of total loss of the invested capital. Past performance is not indicative of future results. Every signal must be confirmed with your own analysis, a money management plan and prior testing on a demo account. The author is not responsible for trading decisions taken on the basis of this indicator.
## Suggested tags / keywords for MQL5
`rsi`, `oscillator`, `volatility`, `normalization`, `atr`, `relative strength`, `no repaint`, `regime`
