Blockunity Excess Index (BEI)

Blockunity Updated   
Identify excess zones resulting in market reversals by visualizing price deviations from an average.

The Excess Index (BEI) is designed to identify excess zones resulting in reversals, based on price deviations from a moving average. This moving average is fully customizable (type, period to be taken into account, etc.). This indicator also multiplies the moving average with a configurable coefficient, to give dynamic support and resistance levels. Finally, the BEI also provides reversal signals to alert you to any risk of trend change, on any asset.

The Idea
The goal is to provide the community with a visual and customizable tool for analyzing large price deviations from an average.

How to Use
Very simple to use, this indicator plots colored zones according to the price's deviation from the moving average. Moving average extensions also provide dynamic support and resistance. Finally, signals alert you to potential reversal points.

The Moving Average
The Moving Average, which defaults to a gray line over 200 periods, serves as a stable reference point. It is accompanied by an Index, whose color varies from yellow to orange to red, offering an overview of market conditions.

These dynamic lines can be used to determine effective supports and resistances.

Green and red triangles serve as clear indicators for buy and sell signals.

Mainly, the type of moving average is configurable. The default is an SMA.
A Simple Moving Average (SMA) calculates the average of a selected range of prices by the number of periods in that range.

But you can also, for example, switch the mode to EMA.
The Exponential Moving Average (EMA) is a moving average that places a greater weight and significance on the most recent data points:

You also have WMA.
A Weighted Moving Average (WMA) gives more weight on recent data and less on past data:

And finally, the possibility of having a PCMA.
PCMA takes into account the highest and lowest points in the lookback period and divides this by two to obtain an average:

You can change other parameters such as lookback periods, as well as the coefficient used to define extension lines.
You can refer to the tooltips directly in the indicator parameters.

For those who prefer a minimalist display, you can activate a "Bar Color" in the settings (You must also uncheck "Borders" and "Wick" in your Chart Settings), and deactivate all other elements as you wish:

Finally, you can customize all the different colors, as well as the parameters of the table that indicates the Index value and the asset trend.

How it Works
The Index is calculated using the following method:

abs_distance    =   math.abs(close - base_ma)
bei             =   (abs_distance - ta.lowest(abs_distance, lookback_norm)) / (ta.highest(abs_distance, lookback_norm) - ta.lowest(abs_distance, lookback_norm)) * 100

Signals are triggered according to the following conditions:
  • A Long (buy) signal is triggered when the Index falls below 100, when the closing price is lower than 5 periods ago, and when the price is under the moving average.
  • A Short (sell) signal is triggered when the Index falls below 100, when the closing price is greater than 5 periods ago, and when the price is above the moving average.
Release Notes:
Addition of an alerting system. This alert can be activated by setting the condition "Blockunity Excess Index (BEI)" and selecting "Any alert() function call". The alerts sent are as follows:
  • Buy or sell signals.
  • Exceeding upper or lower extension.

Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.


The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?