Quick Overview:
If you’re navigating the world of trading, you’ve probably encountered your fair share of ZigZag indicators. However, many of them come with complex algorithms that just don’t cut it. The working principle and settings can be a bit of a head-scratcher too.
That’s why I decided to create my own version of the ZigZag, and naturally, I named it after myself! This ZigZag boasts a straightforward and intuitive approach. It effectively highlights impulses and corrections that matter to you, without the hassle of redrawing, as it only marks existing impulses.
Features and How It Works:
extern double MinRatio=0.33;
This parameter determines the relationship of a new impulse to the previous one that the ZigZag will respond to. In simpler terms, a new line will only be drawn if the current impulse is at least 0.33 of the previous one.
- 0.5 - meaning the new impulse must be at least half of the previous
- 0.75 - meaning the new impulse must be at least three-quarters, and so on.

extern int MinPoints=20;
This filter helps to eliminate minor movements, or market noise. It sets the minimum impulse size needed for a response, measured in points. Essentially, the ZigZag won’t react to impulses smaller than MinPoints.

extern int ForcePoints=50;
This parameter allows the ZigZag to react to significant pullbacks even if they are less than the MinRatio. For instance, this is useful after sharp market movements.
If the MinPoints parameter is set higher than ForcePoints, the ForcePoints value will automatically adjust to match.

extern bool ByClose=False;
This fascinating parameter allows the ZigZag to be drawn based on close prices, effectively ignoring the market noise from highs and lows.
extern int History=5000;
And finally, here’s a simple parameter for History. It’s just that!
So there you have it! The Orlov ZigZag is designed to simplify your trading experience, helping you focus on the important price movements without the clutter of unnecessary noise. Give it a try and let me know what you think!