Also, one minor detail in addition to the above: the descriptive enumerator (in "PATTERN_INDEX") must be placed after the "GARTLEY" enumerator. Mainly because the variables are translated into array locations where the first 36 are 4-point patterns and the rest 5-point patterns. This follows from the method:

keeping track of whether a pattern is a 4 point pattern or a 5 point pattern when drawing them. So descriptive enumerators in the top of the enum will be drawn as 4 point patterns, and those at the back drawn as 5-point patterns. If a 4 point pattern is desired increment "NUM_4POINTPATTERNS" in addition to "NUM_PATTERNS" in HPFGlobals.mq5.

I just downloaded MT5 and first thing I did was try out your harmonic indicator @Andre. The previous versions did not work (the fastzzz also sucked) but this version 3 is superb! Thank you. I am testing it now. Very happy. Lots of odd harmonic patterns I never heard of (nenstar, swan etc) but fortunately these can be disabled :)

Thank you so much for the nice tools!
I am studying programming, but I am creating an EA.
When we want to make the entry point the timing when PRZ started, it is in trouble not to know what value should be judged by days.
Under what conditions (what value) is the PRZ start displayed by default?

The PRZ start (and end) denote the beginning and ending of what is referred to as the harmonic window in the code. Most patterns have 1-3 ratios concerning the D-point of the pattern, and the harmonic window starts when all these ratios are satisfied and ends when one ratio is no longer satisfied. Copy pasting from an earlier discussion on the matter:

Andre Enger:

Point
D is an intersection in a set-theoretic sense, like the part which is
common/shared between all zones. I've tried to illustrate using paint
how this works on the Gartley, which have two ratios to be satisfied
w.r.t. point D and the rest:

It must lie at 0.786 of XA, which is "zonified" using unary slack 0.1 to 0.686 - 0.886. This is the yellow part of the figure.

It
must lie at 1.272 - 1.618 of BC, which is "zonified" using range slack
0.01 to 1.262 - 1.628. This is the blue part of the figure.

Therefore a valid point D is in the common part of the two zones above, shown as the green part in the figure.

...

The PRZ start is displayed, i.e. drawn on the chart as a small horizontal line-segment, as soon as it is discovered, generally as a projection. When/if price reaches this level the PRZ start line is removed and replaced by a PRZ end line. This latter line, which is a good measure for a stop loss, can also be seen in advance by double clicking the pattern.

Andre Enger:...

Also, one minor detail in addition to the above: the descriptive enumerator (in "PATTERN_INDEX") must be placed after the "GARTLEY" enumerator. Mainly because the variables are translated into array locations where the first 36 are 4-point patterns and the rest 5-point patterns. This follows from the method:

keeping track of whether a pattern is a 4 point pattern or a 5 point pattern when drawing them. So descriptive enumerators in the top of the enum will be drawn as 4 point patterns, and those at the back drawn as 5-point patterns. If a 4 point pattern is desired increment "NUM_4POINTPATTERNS" in addition to "NUM_PATTERNS" in HPFGlobals.mq5.

`Thank you so much for the nice tools! I am studying programming, but I am creating an EA. When we want to make the entry point the timing when PRZ started, it is in trouble not to know what value should be judged by days. Under what conditions (what value) is the PRZ start displayed by default?`

showheyhey:The PRZ start (and end) denote the beginning and ending of what is referred to as

the harmonic windowin the code. Most patterns have 1-3 ratios concerning the D-point of the pattern, and the harmonic window starts when all these ratios are satisfied and ends when one ratio is no longer satisfied. Copy pasting from an earlier discussion on the matter:Andre Enger:Point D is an intersection in a set-theoretic sense, like the part which is common/shared between all zones. I've tried to illustrate using paint how this works on the Gartley, which have two ratios to be satisfied w.r.t. point D and the rest:

Therefore a valid point D is in the common part of the two zones above, shown as the green part in the figure.

...