OPEN-SOURCE SCRIPT
Automatic Support & Resistance Indicator

The script finds swing pivot highs/lows (local turning points) on multiple timeframes (your execution TF + 1H + 4H). Each pivot price becomes a candidate level.
When a new pivot appears, it either:
Merges into an existing nearby level (within a tolerance), or
Creates a new level.
The merge tolerance is based on ATR × multiplier and a tick-based minimum.
Each level keeps simple stats:
Touches = how many pivot events have merged into that level (a proxy for “importance”)
Updated time = how recently it was reinforced
Source tags = which TFs contributed pivots (e.g., 15m/1H/4H)
It then selects which levels to display:
Always includes the nearest level below price (support candidate) and nearest level above price (resistance candidate).
Fills the rest (up to maxLevels) by a score dominated by touches + recency.
“Support vs Resistance” is dynamic:
If current price is above a level → it’s treated/labeled as Support.
If current price is below a level → it’s treated/labeled as Resistance.
Lines are drawn as true horizontal levels:
Using extend=extend.both, and the script only updates the Y price, so levels stay glued to price when you pan/zoom.
Labels show what you’re seeing:
S or R (current role)
touch count (strength proxy)
source TF tags (where the level came from)
optional * marking the nearest S/R.
If you like this indicator, I would be happy if you could paypal me some coffee money: paypal.me/Ccholl
When a new pivot appears, it either:
Merges into an existing nearby level (within a tolerance), or
Creates a new level.
The merge tolerance is based on ATR × multiplier and a tick-based minimum.
Each level keeps simple stats:
Touches = how many pivot events have merged into that level (a proxy for “importance”)
Updated time = how recently it was reinforced
Source tags = which TFs contributed pivots (e.g., 15m/1H/4H)
It then selects which levels to display:
Always includes the nearest level below price (support candidate) and nearest level above price (resistance candidate).
Fills the rest (up to maxLevels) by a score dominated by touches + recency.
“Support vs Resistance” is dynamic:
If current price is above a level → it’s treated/labeled as Support.
If current price is below a level → it’s treated/labeled as Resistance.
Lines are drawn as true horizontal levels:
Using extend=extend.both, and the script only updates the Y price, so levels stay glued to price when you pan/zoom.
Labels show what you’re seeing:
S or R (current role)
touch count (strength proxy)
source TF tags (where the level came from)
optional * marking the nearest S/R.
If you like this indicator, I would be happy if you could paypal me some coffee money: paypal.me/Ccholl
Open-source Skript
Ganz im Sinne von TradingView hat dieser Autor sein/ihr Script als Open-Source veröffentlicht. Auf diese Weise können nun auch andere Trader das Script rezensieren und die Funktionalität überprüfen. Vielen Dank an den Autor! Sie können das Script kostenlos verwenden, aber eine Wiederveröffentlichung des Codes unterliegt unseren Hausregeln.
Haftungsausschluss
Die Informationen und Veröffentlichungen sind nicht als Finanz-, Anlage-, Handels- oder andere Arten von Ratschlägen oder Empfehlungen gedacht, die von TradingView bereitgestellt oder gebilligt werden, und stellen diese nicht dar. Lesen Sie mehr in den Nutzungsbedingungen.
Open-source Skript
Ganz im Sinne von TradingView hat dieser Autor sein/ihr Script als Open-Source veröffentlicht. Auf diese Weise können nun auch andere Trader das Script rezensieren und die Funktionalität überprüfen. Vielen Dank an den Autor! Sie können das Script kostenlos verwenden, aber eine Wiederveröffentlichung des Codes unterliegt unseren Hausregeln.
Haftungsausschluss
Die Informationen und Veröffentlichungen sind nicht als Finanz-, Anlage-, Handels- oder andere Arten von Ratschlägen oder Empfehlungen gedacht, die von TradingView bereitgestellt oder gebilligt werden, und stellen diese nicht dar. Lesen Sie mehr in den Nutzungsbedingungen.