The main idea is to consider that the change of a trend is not MA crossing, but the output prices of a flat zone. In other words, in flat (perhaps more appropriately be called "dead") zone, deals are not concluded, which can serve as a kind of filter to filter out false crossings of the Moving Average.
Translated from Russian by MetaQuotes Software Corp.
Original code: https://www.mql5.com/ru/code/1270
The Acceleration/Deceleration Indicator (AC) measures acceleration and deceleration of the current driving force.Average Directional Movement Index (ADX)
The Average Directional Movement Index Indicator (ADX) helps to determine if there is a price trend.