# Major Levels

> Major support and resistance levels from the whole history of the market – weekly, daily and 4-hour swing points that price has respected – each with a score from 0 to 100 and a minimum-score filter.

Updated: 2026-10-28T00:31:22.000Z · https://chartrider.com/docs/indicators/major-levels/

## What you see
Horizontal lines at the major price levels of the market, found in its whole history back to the first candle, not only in the candles on screen. Green lines are support (price is above them), red lines resistance (price is below them). A level that price broke through changes its colour from that candle on. Stronger levels are drawn more opaque and thicker. The label at the right end shows the score and the timeframes that confirm the level, e.g. **74 · 1D+4H**.

Each line starts on the candle after the level was confirmed and only appears where its score at that time reached **Minimum score**, so scrolling back shows what was known back then. With **Draw from confirmation** off, the lines of the levels that pass the filter at the right edge of the view run across the whole view instead. **Zones** shades the price range of the swing points behind each level. **Max levels in view** keeps the strongest ones when many levels are close together.

The legend shows the nearest level above and below the candle under the cursor with its score, e.g. **Above (74) 85,078.9**. While the history loads it says so; if it can't be loaded (no connection), the levels come from the loaded candles only and the legend tells you.

## How it works
For each selected timeframe (weekly, daily, 4-hour, optionally hourly), swing highs and swing lows that lie close together form a level – highs and lows together, because a former resistance that later holds as support is the same level. "Close" is **Level tolerance** times the average true range (ATR) of that timeframe, so the tolerance grows with the timeframe and with volatility. **Pivots per level** sets how many swing points a level needs; **Pivot strength** how clearly a swing has to stand out (higher = fewer, larger swings). The same level on several timeframes becomes one level (confluence).

After its confirmation, every candle that comes within **Touch tolerance** × ATR of a level counts as a touch, and a close more than **Break tolerance** × ATR on the other side as a break.

The **score** from 0 to 100 rises with the highest confirming timeframe, the number of touches, how far price moved away after recent touches, how often the level held recently instead of being broken, and its age. A level that price keeps running through scores lower than one that keeps holding. The score is updated with every touch and break; earlier candles always see the score of their time.

## How to read it
- Levels with a high score on the weekly or daily timeframe are the ones the whole market watches: expect reactions there.
- A level that changed colour (broken resistance now support) is often retested from the other side.
- Raise **Minimum score** to see only the strongest levels, lower it to see more.

## Using it in strategies
Outputs: `above` and `below` (nearest level above and below the close with at least Minimum score at that time), `aboveScore` and `belowScore`, `aboveDist` and `belowDist` (distance from the close in ATR of the chart candles), `touch` (+1 a level held as support on this candle, −1 rejected price as resistance, otherwise 0) and `break` (+1 the candle closed above a level, −1 below). Only levels confirmed before the candle count, with their score from back then, so backtests see what was known at the time. In the chart, in F5 backtests and in the Strategy Lab the levels come from the whole history; where only the candles of the test are available, from those candles. In the [Trade Setup](https://chartrider.com/docs/strategies/trade-setup/), "Price vs line" works with `above` and `below`, and "Compare" checks the score or the distance. In [WickScript](https://chartrider.com/docs/wickscript/), `major(70).below` is the nearest level below with a score of at least 70 and `major(70).touch == 1` a candle that held on one; the detection settings are named values, e.g. `major(70, tolerance: 0.8, timeframes: "1W 1D")`. Or use `use indicator "Major Levels" with minScore 70 as ml` and read `ml.belowScore`.

## 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.

### Detection

| Setting | Type | Default | Description |
|---|---|---|---|
| Weekly pivots (1W) | Switch | On | Find levels from weekly swing points (weeks start on Monday, UTC). Off / On. |
| Daily pivots (1D) | Switch | On | Find levels from daily swing points (UTC days). Off / On. |
| 4-hour pivots (4H) | Switch | On | Find levels from 4-hour swing points. Off / On. |
| Hourly pivots (1H) | Switch | Off | Find levels from hourly swing points too – many more, smaller levels. Off / On. |
| Level tolerance (× ATR of the timeframe) | Number | `0.5` | How close swing points must be to form one level, and how close levels on different timeframes must be to merge, in ATR of the timeframe. (min 0.05) |
| Pivots per level | Number | `2` | Number of swing points a level needs before it is confirmed. (min 2) |
| Touch tolerance (× ATR) | Number | `0.25` | How close a candle has to come to a level to count as a touch, in ATR. (min 0) |
| Break tolerance (× ATR) | Number | `0.25` | How far beyond a level a close has to be to count as a break, in ATR. (min 0) |
| Pivot strength | Number | `1` | How clearly a swing has to stand out against its neighbours: 2 needs twice as many candles on each side, 0.5 half as many. (min 0.5) |
| Minimum score (0 … 100) | Number | `60` | Only levels with at least this score at that time are drawn and used by the outputs. (min 0) |

### Display

| Setting | Type | Default | Description |
|---|---|---|---|
| Max levels in view | Number | `30` | Most levels drawn at once: the strongest in the visible price range. (min 1) |
| Draw from confirmation | Switch | On | On: each line starts where its level was confirmed and reached the minimum score. Off: lines across the whole view. Off / On. |
| Labels | Switch | On | Score and timeframes at the right end of each line. Off / On. |
| Zones | Switch | Off | Shade the price range of the swing points behind each level. Off / On. |

### Styles

| Setting | Type | Default | Description |
|---|---|---|---|
| Support color | Color | `#22c55e` |  |
| Resistance color | Color | `#ef4444` |  |
| Line width | Number | `1` |  |

## 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 |
|---|---|---|
| above | `above` | Nearest level above the close with at least Minimum score at that time (a price). |
| below | `below` | Nearest level at or below the close with at least Minimum score (a price). |
| aboveScore | `aboveScore` | Score of that level above (0 … 100). |
| belowScore | `belowScore` | Score of that level below (0 … 100). |
| aboveDist | `aboveDist` | Distance from the close up to that level, in ATR(14) of the chart candles. |
| belowDist | `belowDist` | Distance from the close down to that level, in ATR(14). |
| touch | `touch` | +1: the candle came down to a level and closed above it (held as support); −1: came up to one and closed below (rejected as resistance); 0 otherwise. |
| break | `break` | +1: the candle closed above a level it was below before; −1: closed below one; 0 otherwise. |

## 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 "Major Levels from the list" on chart
use indicator "MajorLevels" with tolerance 0.5 as myMajorlevels
show myMajorlevels.above as line "above"
```
