OPEN-SOURCE SCRIPT
MTF Support / Resistance Channels

MTF Support / Resistance Channels
Filled support and resistance zones built from confirmed pivots across up to three user-selected timeframes, plotted on the chart. Channel thickness is ATR-derived, so zones scale automatically with volatility — no fiddling with absolute pip/dollar widths when you switch instruments. A proximity filter hides distant zones to keep things readable.
The point is to put hourly, daily, and weekly structure on a single chart without stacking three windows or losing context every time you change zoom.
How it works
For each of the three configured timeframes, the script runs a pivot detector inside request.security (with lookahead_off, so no future-data leak) and stores the most recent N confirmed pivot highs and lows. Each pivot becomes a horizontal channel centered on the pivot price, with half-width = ATR × multiplier computed on the chart's own timeframe. The proximity filter compares each pivot to current close and hides anything more than X% away.
All drawing objects are rebuilt on the last bar so zone widths stay current with the latest ATR reading.
How to read it
Each timeframe has its own color (defaults: teal for TF1, amber for TF2, purple for TF3). The filled bands are the zones themselves. Labels at the right edge mark the timeframe, whether it's support or resistance, and the exact pivot price.
The most useful signal isn't any individual zone — it's confluence. When a TF1 zone overlaps with a TF2 or TF3 zone, you have multiple timeframes pointing at the same price area, which tends to matter more than any single level on its own.
Inputs
Built-in alerts
A pivot-confirmation alert is available for each timeframe and direction (six total):
Each one signals that the projected zone set has been updated with a fresh reference level.
Notes
Higher-timeframe pivots don't confirm until pivot lookback bars after the actual high or low. On a weekly timeframe with lookback 2, that's two weeks of delay. This is by design — you're getting confirmed structural levels, not real-time fractals — but it's worth keeping in mind when the chart shows a level that visually looks "late."
Pair the pivot lookback with how you intend to use the zones. Lookback 2 with N=3 zones gives you a recent structural map suitable for swing context. Lookback 4 with N=1 gives you only the major levels — less clutter, more meaning per zone.
The ATR multiplier matters more than people expect. 0.3 of a 14-period ATR is a sensible starting point, but a forex pair and a small-cap stock will need very different settings before the bands look right against actual price respect.
This is a structural tool, not a signal generator. It marks where price has historically rejected on multiple horizons.
Five years of work on a trading system left me with dozens of indicators that ultimately didn't earn a place in the final build. They're not failures — they're tools that solved problems I no longer needed solved. So instead of shelving them, I'm publishing the majority of them open-source.
If you're a discretionary trader, take what's useful. If you're a systems builder, the source is yours to dissect, modify, and improve. The best return on five years of work is for it to keep working — for someone.
If you use this script — or part of it — in your own work, please credit the original with a link back to my profile.
Note: these indicators have been updated to Pine Script v6 — some manually, some with AI assistance.
Filled support and resistance zones built from confirmed pivots across up to three user-selected timeframes, plotted on the chart. Channel thickness is ATR-derived, so zones scale automatically with volatility — no fiddling with absolute pip/dollar widths when you switch instruments. A proximity filter hides distant zones to keep things readable.
The point is to put hourly, daily, and weekly structure on a single chart without stacking three windows or losing context every time you change zoom.
How it works
For each of the three configured timeframes, the script runs a pivot detector inside request.security (with lookahead_off, so no future-data leak) and stores the most recent N confirmed pivot highs and lows. Each pivot becomes a horizontal channel centered on the pivot price, with half-width = ATR × multiplier computed on the chart's own timeframe. The proximity filter compares each pivot to current close and hides anything more than X% away.
All drawing objects are rebuilt on the last bar so zone widths stay current with the latest ATR reading.
How to read it
Each timeframe has its own color (defaults: teal for TF1, amber for TF2, purple for TF3). The filled bands are the zones themselves. Labels at the right edge mark the timeframe, whether it's support or resistance, and the exact pivot price.
The most useful signal isn't any individual zone — it's confluence. When a TF1 zone overlaps with a TF2 or TF3 zone, you have multiple timeframes pointing at the same price area, which tends to matter more than any single level on its own.
Inputs
- Timeframes 1/2/3 — the three higher timeframes to source pivots from. Defaults: 1H, Daily, Weekly. Choose timeframes higher than your chart timeframe.
- Pivot Lookback — bars required on each side to confirm a pivot. 2 captures most meaningful swings; 4–5 restricts to major structural pivots only. Default 2.
- Zones per direction per TF — how many of the most recent pivots to keep per timeframe per direction. 1 = freshest level only; 3–5 for historical structure; up to 15 for deep multi-level context. Default 1.
- Display toggles — turn off resistance, support, or any individual timeframe.
- Proximity filter — hide zones further than X% from current close. Default on, 20%.
- ATR Length / Multiplier — controls channel half-width. Defaults 14 / 0.3. Increase the multiplier on volatile instruments; decrease on smooth ones.
- Colors — one per timeframe.
Built-in alerts
A pivot-confirmation alert is available for each timeframe and direction (six total):
- New TF1 / TF2 / TF3 Resistance Pivot — fires when a new pivot high is confirmed on that timeframe
- New TF1 / TF2 / TF3 Support Pivot — fires when a new pivot low is confirmed on that timeframe
Each one signals that the projected zone set has been updated with a fresh reference level.
Notes
Higher-timeframe pivots don't confirm until pivot lookback bars after the actual high or low. On a weekly timeframe with lookback 2, that's two weeks of delay. This is by design — you're getting confirmed structural levels, not real-time fractals — but it's worth keeping in mind when the chart shows a level that visually looks "late."
Pair the pivot lookback with how you intend to use the zones. Lookback 2 with N=3 zones gives you a recent structural map suitable for swing context. Lookback 4 with N=1 gives you only the major levels — less clutter, more meaning per zone.
The ATR multiplier matters more than people expect. 0.3 of a 14-period ATR is a sensible starting point, but a forex pair and a small-cap stock will need very different settings before the bands look right against actual price respect.
This is a structural tool, not a signal generator. It marks where price has historically rejected on multiple horizons.
Five years of work on a trading system left me with dozens of indicators that ultimately didn't earn a place in the final build. They're not failures — they're tools that solved problems I no longer needed solved. So instead of shelving them, I'm publishing the majority of them open-source.
If you're a discretionary trader, take what's useful. If you're a systems builder, the source is yours to dissect, modify, and improve. The best return on five years of work is for it to keep working — for someone.
If you use this script — or part of it — in your own work, please credit the original with a link back to my profile.
Note: these indicators have been updated to Pine Script v6 — some manually, some with AI assistance.
Script de código abierto
Fiel al espíritu de TradingView, el creador de este script lo ha convertido en código abierto, para que los traders puedan revisar y verificar su funcionalidad. ¡Enhorabuena al autor! Aunque puede utilizarlo de forma gratuita, recuerde que cualquier republicación del código está sujeta a nuestras Normas internas.
Exención de responsabilidad
La información y las publicaciones no constituyen, ni deben considerarse como, asesoramiento o recomendaciones financieras, de inversión, de trading u otro tipo, proporcionadas o respaldadas por TradingView. Obtenga más información en Condiciones de uso.
Script de código abierto
Fiel al espíritu de TradingView, el creador de este script lo ha convertido en código abierto, para que los traders puedan revisar y verificar su funcionalidad. ¡Enhorabuena al autor! Aunque puede utilizarlo de forma gratuita, recuerde que cualquier republicación del código está sujeta a nuestras Normas internas.
Exención de responsabilidad
La información y las publicaciones no constituyen, ni deben considerarse como, asesoramiento o recomendaciones financieras, de inversión, de trading u otro tipo, proporcionadas o respaldadas por TradingView. Obtenga más información en Condiciones de uso.