1. Search for ZZ breaks – only at the availability of a maximum or minimum of the approximating curve (Snake), other extremums should be skipped as irrelevant.
2. ZZ is calculated on a larger timeframe (file named SZZ_without_ZZ.mq4 is responsible for this) and built on a smaller one (file SZZReader.mq4). This, along with par.1, allows us to decrease the amount of “redrawings”, as well as to avoid including “redundant” breaks and, partly, artificial stop-level touching extremums, into ZZ. Besides, the use of ZZ on a smaller timeframe will allow us to calculate the proportions between horizontal projections of sections more precisely.
3. The forming section of ZZ does not roll back from the reached levels, as the price does, but fixes them in order not to “distort” the proportions of shape development (in a case of turn, a new ZZ break will be formed on the latest of the reached levels, this development “alternative” is fixed with a “rubber-band”).