# ZUP indicator - your assistant in the definition of harmonic patterns

Hello!

Like other developments of this kind, the indicator is based on the quite ordinary ZigZag. That is, ZZ values are the basis of all constructions, as a simplified model of the price chart. This cannot be called either a minus or a plus, the indicator nevertheless has its own characteristics in the context of identifying price extremes. In this regard, a key parameter of the success formula is a correctly configured ZigZag.

Fortunately, unlike other similar developments, ZUP offers a choice of one and a half dozen varieties of ZigZag. Thus, you are not limited to one single implementation, but you can choose the most suitable algorithm. To do this, for starters, you need to understand the differences between different ZigZag implementations.

## ZigZag indicator

Actually, the indicator itself sets two main tasks. Firstly, it combines many ways of determining extrema on a chart and, secondly, it provides convenient tools for finding patterns by found extremum points. Therefore, the way to determine the extrema is worth a separate discussion.

By default, the indicator is configured to search for Pessavento patterns. The choice of ZigZag for building patterns is carried out by the very first parameter - ExtIndicator. This parameter can take one of 15 values.

## 1. Standard ZigZag from MT4

This indicator works similarly to what is standard on MT4. The indicator updates only the last point of the wave. That is, after the indicator has determined the reversal, the point becomes fixed, after which the search for a new reversal begins.

**Indicator Parameters:**

- minBars (ExtDepth in the original) - the minimum period in bars, limiting the convergence of ZigZag;
- ExtDeviation - the distance in points between the vertices;
- ExtBackstep - period in bars between two extremes;
- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

## 2. ZigZag Alexa

The indicator determines price extremes based on the average price of a bar. It is believed that the trend has changed direction when the average price of the next bar differs by a given deviation value.

**Indicator Parameters:**

- minSize - deviation value in points;
- minPercent - deviation in percent (used when minSize = 0);
- chHL - enables the display of ZigZag support and resistance lines;
- PeakDet - turns on the display of previous extremes;
- chHL_PeakDet_or_vts - set to false to display iVTS;
- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

The advantages of the indicator include speed, that is, less load on the processor and a more predictable algorithm for determining highs / lows. The disadvantages are a more stringent algorithm, which is why it is necessary to select appropriate parameters for different timeframes for the correct determination of price waves. The standard ZigZag does not have this drawback.

## 3. ZigZag Ensign

The indicator algorithm is similar to that in the Ensign platform. The trend is determined by the lows and highs of the bars. That is, we have a bullish trend with the minimum and maximum of the current bar above the values of the previous one. On the contrary, a bar with a declining min-max and max-max indicates a bearish trend. At the same time, the trend should be in a single state on the segment in minBars. A trend change occurs when the price changes by more than minSize points. In this case, the redrawing of the indicator values occurs after the bar is closed.

**Indicator Parameters:**

- minBars - the minimum number of bars for lowering highs or rising lows;
- minSize - the minimum movement in points for a trend change condition;
- chHL - enables the display of ZigZag support and resistance lines;
- PeakDet - turns on the display of previous extremes;
- chHL_PeakDet_or_vts - set to false to display iVTS;
- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

## 4. ZigZag Ensign (modified)

The algorithm is almost the same as the standard Ensign, except that the value of the minSize parameter specified in the input parameters will be ignored and calculated automatically.

**Indicator Parameters:**

- minBars - the minimum number of bars to account for the trend;
- chHL - enables the display of ZigZag support and resistance lines;
- PeakDet - turns on the display of previous extremes;
- chHL_PeakDet_or_vts - set to false to display iVTS;
- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

## 5. ZigZag Touber

ZigZag based on a recursive algorithm. First of all, over the entire history segment, the indicator is looking for a single maximum. Then, on the segments before and after the found maximum, two minimums are sought, and so on. The search for new extrema ends when the distance between adjacent vertices becomes less than the minSize value.

- minSize - the minimum distance between the adjacent maximum and minimum;
- minPercent - the same as minSize, but as a percentage of the price;
- PeakDet - turns on the display of levels of previous extremes.

## 6. ZigZag Gann Swing

The algorithm is based on the idea of building Gann swing. Unlike the original interpretation, the indicator ignores the rule of the external bar. This is done due to the inconsistency of ZigZag calculations in real time and on history. For the sake of consistency of calculations, it was decided to move away from the original algorithm.

**Indicator Parameters:**

- minBars - here the parameter sets the trend level: 0 - 1-bar trend (small); 1 - 2-bar trend (intermediate); 2 - 3-bar trend (main); more than two - a trend of a higher level;
- PeakDet - turns on the display of levels of previous extremes;
- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

## 7. DT-ZigZag (standard)

ZigZag based on a higher timeframe. For calculation, the external indicator “ZigZag_new_nen3” is used. The calculation method is similar to the standard indicator from MT4.

**Indicator Parameters:**

- GrossPeriod - select the timeframe by which ZigZag will be calculated;
- minBars (ExtDepth in the original) - limits the minimum number of bars on which ZigZag can converge no more than on ExtDeviation points;
- ExtDeviation - the distance in points between the vertices;
- ExtBackstep - responsible for the number of bars between the vertices;
- PeakDet - turns on the display of levels of previous extremes;
- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

*Please note that all indicators with the DT prefix must be located in the same folder as ZUP.*

*The indicator is drawn like a regular ZigZag, except that the vertices are displayed by several points, the number of which is a multiple of the oldest period.*

*It should also be taken into account that the maxima and minima found on the senior TF may not correspond to the maximum values on the younger TF. The ZigZagHighLow parameter, set to true, will use the values of the lowest TF for drawing, and set to false, the data of the senior TF. In the second embodiment, there may be a situation where the extreme values of ZigZag will hang in the air.*

## 8. DT-ZigZag (Klota)

In this case, the indicator “DT_ZZ” is referred to.

**Indicator Parameters:**

- GrossPeriod - select the timeframe by which ZigZag will be calculated;
- minBars - the minimum number of bars to account for the trend;
- PeakDet - turns on the display of levels of previous extremes;
- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

## 9. DT-ZigZag (Candida)

An indicator called “CZigZag” is used.

**Indicator Parameters:**

- GrossPeriod - select the timeframe by which ZigZag will be calculated;
- minBars (ExtDepth in the original) - the minimum period in bars, limiting the convergence of ZigZag;
- ExtDeviation - the distance in points between the vertices;
- PeakDet - turns on the display of levels of previous extremes;
- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

## 10. DT-ZigZag on Gann Swings

An indicator called “Swing_ZZ” is used. The algorithm is similar to ZigZag Gann Swing, but it is used on an older TF.

**Indicator Parameters:**

- GrossPeriod - select the timeframe by which ZigZag will be calculated;
- minBars - the minimum number of bars to account for the trend;
- PeakDet - turns on the display of levels of previous extremes;
- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

## 11. Search for Gartley patterns

The value of search Patterns includes the search for Gartley patterns based on the standard ZigZag indicator. Directly ZigZag for searching for Gartley patterns can be selected through the AlgorithmSearchPatterns parameter, which can take 7 different values:

- 0 - standard ZigZag from MT4;
- 1 - ZigZag Alexa, in which the beam size is indicated in points;
- 2 - The same ZigZag, but the size is set in percent;
- 3 - Similar to ZigZag Ensign;
- 4 - ZigZag Touber;
- 5 - ZigZag on the Gann Swings;
- 6 - ZigZag Taleksa.

**Also, consider the parameters: **

- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

## 12. ZigZag Taleks

The search for extrema is not quite standard - from left to right.

**Indicator Parameters:**

- ExtPoint - the number of points (ZigZag extrema);
- PeakDet - turns on the display of levels of previous extremes.

## 13. ZigZag SQZZ (Commodity expert)

A rather complicated algorithm is used here. Using ZigZag rays, the area is calculated and ZigZag itself is calculated based on the results.

**Indicator Parameters:**

- minSize - the minimum distance between the adjacent maximum and minimum;
- minBars - the minimum number of bars to account for the trend;
- PeakDet - turns on the display of levels of previous extremes;
- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

## 14. ZigZag Wellix

ZigZag based on levels developed by wellx.

**Indicator Parameters:**

- auto - use automatic level calculation;
- minBar - percentage parameter for the StLevel level;
- maxBar - percentage parameter for the BigLevel level;
- StLevel - the first level of the zigzag;
- BigLevel - the second level of the zigzag;
- PeakDet - turns on the display of levels of previous extremes;
- ExtMaxBar - determines the number of candles for calculating the indicator (0 - the whole story);
- ExtMinBar - index of the first candle.

The ExtStyleZZ parameter is responsible for displaying ZigZag on the chart. If true, ZigZag is drawn with lines; with false, it is drawn with dots on the chart. Colors are set through the standard “Colors” tab.

## Installation and setup

The indicator is installed in the usual way, that is, by moving the file to the Indicators directory. To do this, open the terminal data directory via File - Open the data directory. The required folder will be located in MQL4 - Indicators. For the indicator to appear in the terminal, you need to restart the program or click Update via the context menu of the navigator window.

The indicator is constantly evolving, so a large number of ZUP versions can be found on the network. Unfortunately, most of them no longer work under the latest builds of Metatrader. Version 63 adds the ability to build Fibonacci Arcs. In the 64th version, 2 new ZigZag were added - Taleks and Commodity expert, and for Mikmed channels you can now set your own extensions. In version 137, the pattern search algorithm was improved and it became possible to save and load patterns from files. Also, in the latest versions, most of the errors were fixed related to the construction of patterns on standard MT4 objects.

We will consider exactly version 150, although a newer version with advanced features has already appeared in the Market. In particular, manual wave marking and traditional wave levels are supported. Version 150, however, has more than all the necessary functionality for automatically detecting patterns and is distributed free of charge. You can independently compare the functionality by downloading a demo product from the Market.

Including ZigZag settings, all indicator parameters are distributed into 16 blocks.

- Choosing the main ZigZag for calculating Pesavento patterns;
- Fibonacci line management;
- Pesavento Pattern Settings;
- Gartley Pattern Settings;
- Options Andrews Pitchfork;
- Mikmed channels;
- Fibo fan;
- Fibo Expantion Settings
- Versum levels;
- Fibo Arc (Arc)
- Golden Spiral;
- ZigZag Pivot Settings;
- Channel parameters;
- Fibo Time Zones Options;
- Additional indicator settings;
- General settings.

We will only consider parameters related to Gartley patterns, since it is these formations that are of the greatest interest. The indicator itself has four hundred parameters available and it makes no sense to discuss each of them individually. Detailed instructions and a description of the input parameters from the author of the indicator are in the appendix to the article.

After setting all the necessary parameters, nothing else needs to be done. It is enough to drop the indicator on the chart, after which it will immediately show the last formed figure.

## Gartley patterns

To get started, you need to choose ZigZag to build patterns. Here you have a choice of 7 options. The AlgorithmSearchPatterns parameter is responsible for this, which takes effect when the ExtIndicator value is set to “search Patterns”.

First of all, you might want to disable Wil Andrews. Even if you use Andrews Pitchfork for trading, a large amount of visual trash will still interfere with market perception. If you only need to search for patterns, it’s better to turn off all unnecessary functions. To disable Andrews Pitchfork, set ExtPitchforkDynamic and ExtPitchforkStatic to 0.

You can also disable the display of correction values on the slopes of ZigZag. To do this, in the Pessavento Pattern Block, set the value of ExtHidden to 0. Thus, a pure ZigZag will be shown on the chart.

The Gartley pattern found on the chart looks something like this:

The description of the detected pattern is displayed in the upper left corner of the graph. You can also find out the name of the pattern by moving the cursor over the resulting shape. Below point D, the estimated levels of extensions from points XA and BD are marked. You can disable the display of levels by specifying the PotencialsLevels_retXD parameter of 0. Specifically, which levels to display are indicated in the visibleLevelsABCD parameter.

The green line on the graph is the mirrored trend line of the last knee. Red channel levels are plotted parallel to line XB. Both lines indicate the expected price deployment after the formation of the figure.

If the last ZigZag extremum is rebuilt, the figure will also be rebuilt to a new vertex and all levels will be recounted.

By default, only the last pattern is displayed. But you can also display all the patterns in a specific section of the story by changing the ExtGartleyTypeSearch parameter. A value of 1 will lead to the conclusion of all patterns on the maxBarToD plot with recounting when changing the ZigZag extrema. A value of 2 will start the search only once, that is, the patterns found will not be recounted when ZigZag changes.

The SelectPattern parameter is responsible for which patterns to search on the chart. You can leave 0, then the search will be carried out across the entire set of patterns. Or leave the output of only one specific pattern (starting at index 9), for example, Black Swan.

In general, ZUP is able to recognize about 4 dozen patterns that have their own unique characteristics.

SelectPattern can accept 9 sets of shapes:

- 0 - search for all patterns;
- 1 - search for exclusively classical figures (Gartley, Butterfly, Bat, Crab);
- 2 - classic and anticlassical patterns;
- 3 - search for exotic patterns;
- 4 - exclusively antipatterns;
- 5 - all patterns except the “Total” set;
- 6 - exclusively “Total”;
- 7 - any five-point patterns selected through the visiblePattern bit parameter (do not show 0, show 1);
- 8 - without five-point patterns.

By individual parameters, you can enable / disable the display of ABCD patterns, 3 Movements and 4-point patterns:

- ABCD - can take 3 values, from 0 to 2. 0 - do not display the pattern at all, 1 - display any formations, and 2 - display only harmonically correct ABCD formations;
- Ext_3Drives - output of the “3 Movements” pattern;
- Dragon - conclusion of the Dragon pattern;
- Ext_4PointPattern - output of a 4-point pattern.

In addition, you can set your own patterns through the appropriate parameters:

- CustomPattern - a way to display custom shapes. 0 - do not display on the chart, 1 - display together with the remaining figures, 2 - display only custom figures;
- NameCustomPattern - name of the custom figure;
- ... the following parameters determine the shape of the pattern, that is, the corrections XB, AC, BD and XD.

## Trade Application

The indicator is not sharpened for use on a specific timeframe or symbol, so you can freely apply it to any trading instrument. In this case, perhaps some of the built-in ZigZag-s will have to reconfigure or use the time-tested ZigZag from MT4.

The pattern is marked on the chart when all setup points have been formed, including point D. That is, for this ZigZag must have time to rebuild to the current peak. At the same time, if the last ZigZag knee changes, the figure will be redrawn according to the actual vertices, or will disappear if the point leaves the correction zone. That is, only valid patterns corresponding to harmonic proportions are displayed on the chart.

Thus, you need to enter the market immediately after the appearance of the figure or a little later. For example, after breaking through a three-bar high / low. Our site already has a detailed article on what goals to use for different harmonic patterns. The indicator itself draws trend lines corresponding to the XB and CD knees. You can also navigate them when setting trading goals.

## Conclusion

It should be understood that ZUP is a professional tool that performs several functions at once. And, like any tool of this kind, ZUP is heavily overloaded with settings, which, in the beginning, can cause rejection and a desire to return to simpler programs. But, having understood the parameters, you will definitely appreciate the indicator's functionality. It can become a source of inspiration or just a working tool - you decide. In any case, the presence of this indicator in the arsenal of any trader engaged in graphical analysis is mandatory!