Demarker Technical Indicator
Demarker Technical Indicator is based on the
comparison of the period maximum with the previous period maximum. If
the current period (bar) maximum is higher, the respective difference
between the two will be registered. If the current maximum is lower or
equaling the maximum of the previous period, the naught value will be
registered. The differences received for N periods are then summarized.
The received value is used as the numerator of the DeMarker and will be
divided by the same value plus the sum of differences between the price
minima of the previous and the current periods (bars). If the current
price minimum is greater than that of the previous bar, the naught
value will be registered.
When the indicator falls below 30, the bullish price
reversal should be expected. When the indicator rises above 70, the
bearish price reversal should be expected.
If you use periods of longer duration, when
calculating the indicator, you’ll be able to catch the long term market
tendency. Indicators based on short periods let you enter the market at
the point of the least risk and plan the time of transaction so that it
falls in with the major trend.
Calculation:
The value of the DeMarker for the "i" interval is calculated as follows:

The DeMax(i) is calculated:
If high(i) > high(i1) , then DeMax(i) = high(i)high(i1), otherwise DeMax(i) = 0

The DeMin(i) is calculated:
If low(i) < low(i1), then DeMin(i) = low(i1)low(i), otherwise DeMin(i) = 0

The value of the DeMarker is calculated as:
DMark(N) = SMA(DeMax, N)/(SMA(DeMax, N)+SMA(DeMin, N))
Where: SMA — Simple Moving Average; N — the number of periods used in the calculation.
Source Code
Full MQL4 source of DeMarker is available in the Code Base: DeMarker
