Skip to content
ChartRiderDocs
Docs/Indicators/REH / REL

REH / REL

Finds relative equal highs (REH) and relative equal lows (REL) – liquidity resting above and below the market – and tracks touches and kills candle by candle, with outputs for strategies.

Updated ·Markdown

What you see

  • REH levels above the market (REH color) and REL levels below (REL color): a line at the outer edge – the highest high or lowest low of the cluster – and a light band to the inner edge. The label shows the type, the number of equal swings ("REH ×3"), the price, the touches and the state.
  • Dots mark touches. A cross marks the candle that killed a level; killed levels continue dashed, expired ones dotted.
  • A levels box with the nearest REH and REL, their distance in ATR and the last touch and kill. The chart legend shows the nearest REH and REL at the candle under the crosshair.

How it works

  1. Swings: a swing high is strictly higher than the Swing strength candles before it and at least as high as those after it, and is known once those later candles have closed. Swing lows mirror this.
  2. Level: at least Min equal highs / lows swings whose prices differ by no more than Equal tolerance × ATR, at least Swing strength candles apart, within Max bars between equals, with no higher candle (REH) or lower candle (REL) between them. A later equal swing joins the level.
  3. Each later candle: a kill when price trades beyond the outer edge by more than Kill tolerance × ATR (with the wick, or only with the close when Kill on is set to close); otherwise a touch when price comes within Touch tolerance × ATR of the outer edge. A level that is neither touched nor joined for Level lifetime candles expires.

The ATR is a 14-period Wilder ATR; settings at 0 use values that suit the chart timeframe. Every output depends only on candles up to that candle, and the forming live candle confirms no swing and kills nothing by its close. The Elements settings change only the drawing.

How to read it

In ICT terms relative equal highs and lows are obvious liquidity: stops cluster just beyond them, and price is often drawn there. A kill is a sweep or break of that liquidity, a touch a test without taking it. A kill followed by a quick move back points to a sweep and possible turn; a kill on a close with follow-through points to continuation.

Using it in strategies

The outputs work in the Trade Setup as triggers (REL kill, touch), filters (REH dist ATR, the ages) and price lines for stops or limits (REL, REL killed). In WickScript output names ignore case, spaces and symbols: use indicator "REH / REL" with pivotLen 5, killMode "close" as rr, then rr.relKill or rr.rehDistAtr.

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

SettingTypeDefaultDescription
Equal tolerance (× ATR, 0 = auto)Number0Largest price difference between equal swings, as a multiple of the ATR. 0 picks a value that suits the chart timeframe.
Swing strength in bars (0 = auto)Number0Number of candles on each side that define a swing; also the minimum distance between two equal swings. 0 picks a value that suits the chart timeframe.
Min equal highs / lowsNumber2Number of equal swings a level needs (at least 2).
Max bars between equals (0 = auto)Number0Largest number of candles between the equal swings of a level. 0 picks a value that suits the chart timeframe.
Level lifetime in bars without touch (0 = auto)Number0A level that is neither touched nor joined by a new equal swing for this many candles expires. 0 picks a value that suits the chart timeframe.

Touch & kill

SettingTypeDefaultDescription
Touch tolerance (× ATR)Number0.1How close, as a multiple of the ATR, price must come to the outer edge for a touch.
Kill tolerance beyond level (× ATR)Number0How far, as a multiple of the ATR, price must trade beyond the outer edge to kill the level. 0 = any amount beyond.
Kill onChoiceWick beyond levelWick: a high (low) beyond the level kills it. Close: only a close beyond kills; a wick beyond counts as a touch. Options: Wick beyond level, Close beyond level.

Elements

SettingTypeDefaultDescription
Show REHOn/offonDraw REH levels.
Show RELOn/offonDraw REL levels.
Show killed levelsOn/offonKeep drawing levels after they were killed (dashed).
Show expired levelsOn/offoffAlso draw levels that expired without a kill (dotted).
Mark touchesOn/offonMark each touch with a dot.
Prices in labelsOn/offonShow the level price in the label.
Show levels boxOn/offonShow the levels box with the values at the latest candle.

Styles

SettingTypeDefaultDescription
REHColor#F59E0B
RELColor#38BDF8

Outputs

These values can be used in Trade Setup triggers, filters and exits (see Trade Setup) and in WickScript.

OutputIn WickScriptDescription
formedformed+1 when a REL is confirmed on this candle, −1 for a REH, 0 otherwise.
touchtouch+1 when a REL is touched on this candle, −1 for a REH, 0 otherwise.
killkill+1 when a REL is killed on this candle, −1 for a REH, 0 otherwise.
REH formedREHformed1 when a new REH is confirmed on this candle, else 0.
REL formedRELformed1 when a new REL is confirmed on this candle, else 0.
REH touchREHtouch1 when a REH is touched on this candle, else 0.
REL touchRELtouch1 when a REL is touched on this candle, else 0.
REH killREHkill1 when a REH is killed on this candle, else 0.
REL killRELkill1 when a REL is killed on this candle, else 0.
REH formed ageREHformedageCandles since the last REH was confirmed (0 = this candle). Before the first one it counts all candles loaded so far.
REL formed ageRELformedageCandles since the last REL was confirmed (0 = this candle). Before the first one it counts all candles loaded so far.
REH touch ageREHtouchageCandles since the last REH touch (0 = this candle). Before the first one it counts all candles loaded so far.
REL touch ageRELtouchageCandles since the last REL touch (0 = this candle). Before the first one it counts all candles loaded so far.
REH kill ageREHkillageCandles since the last REH kill (0 = this candle). Before the first one it counts all candles loaded so far.
REL kill ageRELkillageCandles since the last REL kill (0 = this candle). Before the first one it counts all candles loaded so far.
REHREHPrice of the nearest active REH above the close; no value if there is none.
RELRELPrice of the nearest active REL below the close; no value if there is none.
REH dist ATRREHdistATRDistance from the close up to that REH, in ATR.
REL dist ATRRELdistATRDistance from the close down to that REL, in ATR.
REH killedREHkilledPrice of the most recently killed REH; it stays until the next REH kill.
REL killedRELkilledPrice of the most recently killed REL; it stays until the next REL kill.

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.

WickScript
wickscript 1
indicator "REH / REL from the list" on chart
use indicator "REH/REL" with eqTolAtr 0 as myRehrel
show myRehrel.formed as line "formed"

Generated from the ChartRider source code on every release – settings, outputs and the WickScript reference always match the app.

Imprint·Privacy·Contact·Changelog·llms-full.txt

Paper trading uses play money only. Nothing in these docs is investment advice.