Simple Zig Zag
Automation of many graphical constructions, including simple ones like channels, trends (higher highs / lower lows) or Fibo grids, requires defining a "refined movement", i.e. price passing from local minimum to local maximum and from local maximum to local minimum.
This task is efficiently solved by ZigZag indicator included in the standard MetaTrader delivery set.
However, conventional ZigZag has a number of drawbacks.
- ZigZag always repaints which is inconvenient when applying it in trading algorithms,
- the indicator algorithm includes several embedded loops which can significantly slow down a ZigZag-based EA optimization,
- the indicator is fine tuned by three parameters significantly slowing down optimization. Considering that changing one parameter affects the impact of the remaining two, the optimization process may fail in finding a reliable extreme value.
Having all this in mind, I have developed a much simpler algorithm of defining refined movements.
The proposed algorithm
- does not contain embedded loops. All calculations are performed as soon as new price data becomes available,
- does not repaint itself (e.g., a detected reversal will not turn into something else over time),
- contains a single parameter - standard pass length (set to be different on different timeframes for more convenience).
The indicator solves the task visually by highlighting local maximums and minimums and plotting refined passes between them.
This tool allows you to develop a simple EA based on Fibo corrections. One of the provided screenshots displays clearly recognizable trend and correction movements which is critical for developing an EA using Fibo corrections.