Technical Analysis  Technical Indicators  Oscillators  DeMarker

Analyze with the

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.


The value of the DeMarker for the "i" interval is calculated as follows:

  • The DeMax(i) is calculated:

    If high(i) > high(i-1) , then DeMax(i) = high(i)-high(i-1), otherwise DeMax(i) = 0


  • The DeMin(i) is calculated:

    If low(i) < low(i-1), then DeMin(i) = low(i-1)-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))

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

Warning: All rights on these materials are reserved by MetaQuotes Software Corp. Copying or reprinting of these materials in whole or in part is prohibited.