Login Page - Create Account

Technical Studies Reference


Range Expansion Index

This study calculates and displays a Range Expansion Index of the Price Data. This is an oscillator that was developed by Thomas DeMark.

Let \(H\), \(L\), and \(C\) be random variables denoting the High, Low, and Close Prices, respectively, and let \(H_t\), \(L_t\), and \(C_t\) be their respective values at Index \(t\).

Let \(X^{(HC)}\) and \(X^{(LC)}\) be random variables denoting the Input Data for Comparison with High and Input Data for Comparison with Low Inputs, respectively, and let \(X_t^{(HC)}\) and \(X_t^{(LC)}\) be their respective values at Index \(t\).

Let the Inputs Length, Lookback Length 1, Lookback Length 2, Lookback Length 3, and Duration Length be denoted as \(n\), \(n_L^{(1)}\), \(n_L^{(2)}\), \(n_L^{(3)}\), and \(n_D\), respectively.

There are two methods of calculation of the Range Expansion Index: Basic and Advanced (to be described in detail shortly), and the Input Basic or Advanced? determines which of these is computed. We begin by evaluating two logical Conditions based on Price comparisons.

  • Condition 1 (\(C1\)): \(\left(H_t \geq X_{t - n_L^{(2)}}^{(HC)} \space or \space H_t \geq X_{t - n_L^{(2)} - 1}^{(HC)}\right) \space and \space \left(L_t \leq X_{t - n_L^{(2)}}^{(LC)} \space or \space L_t \leq X_{t - n_L^{(2)} - 1}^{(LC)}\right)\)
  • Condition 2 (\(C2\)): \(\left(H_{t - n_L^{(1)}} \geq C_{t - n_L^{(3)}} \space or \space H_{t - n_L^{(1)}} \geq C_{t - n_L^{(3)} - 1}\right) \space and \space \left(L_{t - n_L^{(1)}} \leq C_{t - n_L^{(3)}} \space or \space L_{t - n_L^{(1)}} \leq C_{t - n_L^{(3)} - 1}\right)\)

The inequalities \(\geq\) and \(\leq\) are replaced with the strict inequalities \(>\) and \(<\), respectively, if the Input Basic or Advanced? is set to Advanced and the Input Use Strict Inequalities? is set to Yes.

We define a function called the Conditional Multiplier, denoted as \(v_t\left(X^{(HC)}, X^{(LC)}, n_L^{(1)}, n_L^{(2)}, n_L^{(3)}\right)\). Because the notation is a cumbersome, we will omit the function parameters going forward. The method of computation of \(v_t\) is determined by the setting of the Basic or Advanced? Input.

If Basic or Advanced? is set to Basic, then \(v_t\) is computed as follows.

\(\displaystyle{v_t = \left\{\begin{matrix} 0 & C1 = 0 \space and \space C2 = 0 \\ 1 & C1 = 1 \space or \space C2 = 1 \end{matrix}\right .}\)

If Basic or Advanced? is set to Advanced, then \(v_t\) is computed as above, but with the following additional step.

\(v_t = 0 \Rightarrow v_{t - 1} = 0\)

The Range Expansion Index (REI) is denoted as \(REI_t\left(X^{(HC)}, X^{(LC)},n, n_L^{(1)}, n_L^{(2)}, n_L^{(3)}\right)\). Just as with \(v_t\), we will omit the parameters going forward. We compute the REI as follows for \(t \geq n + \max\left\{n_L^{(1)}, n_L^{(2)}, n_L^{(3)}, n_D\right\}\).

\(\displaystyle{REI_t = 100 \cdot \frac{\sum_{i = t - n + 1}^t v_t\left(H_i - H_{i - n_L^{(1)}} + L_i - L_{i - n_L^{(1)}}\right)}{\sum_{i = t - n + 1}^t \left(\left|H_i - H_{i - n_L^{(1)}}\right| + \left|L_i - L_{i - n_L^{(1)}}\right|\right)}}\)

The REI oscillates between \(-100\) and \(+100\).

This study also displays horizontal lines at zero and at levels determined by the Overbought Line Value and Oversold Line Value Inputs. These should be set to positive and negative values, respectively.

Let the Input Arrow Offset Percentage be denoted as \(k\).

If the REI breaks out above the Overbought Line for \(n_D\) chart bars or more, then a green Down Arrow appears above the REI Subgraph at a horizontal location \(n_D\) bars from the left of where the breakout occurred. The vertical position of the arrow is given by \(REI_T + \frac{k}{100} \cdot REI_T\), where \(T\) is the value of the Index where the arrow is drawn.

If the REI breaks out below the Oversold Line for \(n_D\) chart bars or more, then a red Up Arrow appears below the REI Subgraph at a horizontal location \(n_D\) bars from the left of where the breakout occurred. The vertical position of the arrow is given by \(REI_T + \frac{k}{100} \cdot REI_T\), where \(T\) is the value of the Index where the arrow is drawn.

Inputs


*Last modified Monday, 03rd October, 2022.