# Support & Resistance Zones

> Finds price areas where several swing highs or swing lows cluster and draws them as support and resistance zones from the moment they are confirmed.

Updated: 2026-10-25T01:30:08.000Z · https://chartrider.com/docs/indicators/support-resistance-zones/

## What you see
Horizontal zones filled in Line Color, with a thin edge that tells their side:
- Green edge: support, built from swing lows.
- Red edge: resistance, built from swing highs.

A zone starts on the candle after the touch that confirms it – the touch that brings the cluster to Minimum Touches. Its height spans the prices of the touching swings; if they all sit at the same price, the zone extends by the grouping tolerance (see below) on each side. A zone ends once its cluster has had no touch within Look back Range candles.

## How it works
The indicator goes through the candles in order. Each new swing high or low joins the nearest group of earlier swings whose price lies within a tolerance, otherwise it starts a new group. The tolerance is the larger of a share of price (Price Tolerance) and a share of the ATR (ATR Factor K × ATR over ATR Period), so it widens in volatile markets. Swings older than Look back Range candles drop out of their group. A group becomes a zone once it has Minimum Touches swings, and a confirmed zone never changes afterwards. With Enable Clustering off, every single swing becomes its own zone.

## How to read it
Requiring more touches gives fewer, more established zones. Zones below price are potential support, zones above potential resistance. Zones stay on the chart after price has moved through them until they expire, so always check on which side of a zone price is now.

## Using it in strategies
The outputs `level`, `levelMin` and `levelMax` (middle, lower and upper edge) and `fromIndex` / `toIndex` describe the most recently confirmed zone, support or resistance. They appear at the close of the confirming candle – never earlier – and hold until the next zone is confirmed, so a backtest only sees zones that were known at that time. Before the first zone they are empty (na). In the [Trade Setup](https://chartrider.com/docs/strategies/trade-setup/) they are mainly useful as price references, for example a stop just beyond `levelMin`. In [WickScript](https://chartrider.com/docs/wickscript/): `use indicator "Support & Resistance Zones" with minTouches 5 as sr`, then `sr.levelMax`.

## Settings

Open the settings with the slider icon next to the indicator (Indicators, `F3`). Numeric settings can be swept as Step 1 / Step 2 parameters when you run a strategy.

### Inputs

| Setting | Type | Default | Description |
|---|---|---|---|
| Look back Range | Number | `1000` | How long a zone lives without a new touch, in candles: swings older than this drop out of their group, and a zone without a touch in this window ends. (min 3) |
| Price Tolerance (fraction of price, 0.001 = 0.1 %) | Number | `0.001` | Tolerance for grouping swings, as a fraction of price (0.001 = 0.1 %). (min 0) |
| Minimum Touches | Number | `10` | Number of swings a group needs before it becomes a zone. Ignored when Enable Clustering is off. (min 1) |
| ATR Period | Number | `14` | ATR length for the ATR-based tolerance. (min 1) |
| ATR Factor K | Number | `0.2` | ATR multiple for the tolerance. The larger of the price-based and the ATR-based tolerance is used; 0 uses the price tolerance only. (min 0) |
| Pivot Point Range | Number | `20` | How clearly a candle has to stand out against the candles before it to count as a swing; larger values find fewer, stronger swings. (min 0) |
| Time Frame Multiplier | Number | `1` | Calculate the zones on candles this many times larger than the chart's (2 on a 15m chart = 30m candles). The outputs then change at the close of each larger candle. (min 1) |
| Enable Clustering | On/off | on | On: group nearby swings into zones. Off: every swing becomes its own zone. |

### Styles

| Setting | Type | Default | Description |
|---|---|---|---|
| Line Color | Color | `#9eacbf` |  |

## Outputs

These values can be used in Trade Setup triggers, filters and exits (see [Trade Setup](https://chartrider.com/docs/strategies/trade-setup/)) and in WickScript.

| Output | In WickScript | Description |
|---|---|---|
| level | `level` | Middle price of the most recently confirmed zone (average of its touches). |
| levelMin | `levelMin` | Lower edge of that zone. |
| levelMax | `levelMax` | Upper edge of that zone. |
| fromIndex | `fromIndex` | Position of the zone's first touch within the loaded candles (larger candles with a Time Frame Multiplier); it shifts when more history is loaded. |
| toIndex | `toIndex` | Position of the confirming touch within the loaded candles; it shifts when more history is loaded. |

## Use in WickScript

`use indicator` creates this indicator inside a script, with settings by their ID. Each output is a field of the name after `as`. See [WickScript indicators](https://chartrider.com/docs/wickscript/indicators/).

```wickscript
wickscript 1
indicator "Support & Resistance Zones from the list" on chart
use indicator "SRZones" with lookBackRange 1000 as mySrzones
show mySrzones.level as line "level"
```
