Zig Zag Oscillator Indicator (ZZO)

The Zig Zag Oscillator indicator provides a way of viewing the Zig Zag Indicator information in a different form. Through the years, the Zigzag oscillator has become one of the most versatile indicators of the whole Investor/RT unique toolkit when it comes to analyse waves and identify market conditions.

The very first output result of the ZZO indicator represented the percent change at each bar of the current price from the base price of the current ZigZag leg. When the ZigZag is currently in an uptrend state, the Zig Zag Oscillator will be above 0. Similarly, when the Zig Zag is in a downtrend state, the oscillator will be below 0. Optionally, reference lines may be drawn at any percent change level. If a reference line value of 10% is specified, reference lines will be drawn at both 10% and -10%. It is common to draw the reference lines at the same level as the minimum percent change level, to see clearly when prices have reached the minimum required level.

Since this first output, more than 40+ other results (detailed in the preference tabs) have been added to provide access to various data elements characterising the components of a zigzag line, ie the pivot, directions, rotations, etc . Many of these options, such as the Flex statistics one, were created upon customer requests, as these traders needed to access easily aggregated information about the different current and past zigzag waves.  Their goal was to identify market congestion and trending periods, and create filters that will improve the profitability of their favourite trading signals. In one sentence, identify long lasting edge for their trading strategies by incorporating such market condition filters into their trade entries and exits setups.

Indeed, the Zigzag oscillator output results are mainly used through the corresponding ZZO tokens incorporated into the RTL formula used to build Custom indicators and Signals markers.

When added directly into a chart, the ZZO outputs returning price information (see the list in the preference Tabs) can be directly displayed on the main instrument pane, typically using a "line" or "steps" style. In contrast, all other ZZO outputs displayed on charts are typically added as a histogram to a separate pane. Very often, custom indicators will also be added to the chart, but with the "invisible" style, with the corresponding values being displayed at pivot bars thanks to the dedicated zigzag line "custom indicator" label features.

Presentation

Important notice :

The Zig Zag Oscillator is unique in that it is a forward looking indicator, and as such, past values can change based on future price movement. More specifically, whatever the retracement criteria method (%, $, ticks, bars, fractals), a pivot bar will only become “confirmed” after a certain number of bars (ie whenever the retracement criteria is completed).

Please review this video that demonstrates how to manage the usage of the forward-looking Zig Zag Oscillator within a Custom Indicator or Signal Marker. Due to this forward-looking nature, when the ZZO token is used within RTL, special consideration must be made to accommodate the addition of any Custom Indicators or Signals that contain ZZO when adding to a chart.

Above screenshot is a 5 tick Renko chart of the S&P 500 E-mini, with two ZZO output results used to calculate the ratio of the current wave volume vs the previous 10 waves. See more details in the examples Tab.

Below is an expanded view of all the main possible outputs (detailed in the Preferences Tab) that can be accessed through the ZZO indicator, with a focus on the "flex statistics" and "Data per unit since Last pivot" options. Associated with other Investor/RT unique features, such as the Signal and Session statistics indicators and the Multi periodicity features (through the MPD indicator), the ZZO indicator is ultimate wave analysis tool (that requires zero additional coding) as all corresponding outputs can be accessed in the RTL language through the ZZO token.

Formula

The Following ZZO price options output can be displayed on the main instrument pane, typically using a “line” or “steps” style

ZZO outputs returning price information 

  • Pivot Price represents the price of the last Zig Zag pivot point. 
  • Previous Pivot Price represents the price of the next to last Zig Zag pivot point. 
  • Price X Pivots Back represents the price of the pivot point, X pivots ago. As for the two previous outputs, the corresponding price level is updated once every pivot bar.
  • Open Swing High and Low will identify the high and low of the 1st zig zag move of the session and extend those prices through the duration of the session, resetting the next session at its open swing high or low.
  • Zig Zag Line Price provides, for any given bar, the price of the line being displayed so that you can easily compare the current price to the value of the current Zig Zag leg at that bar.
  • Confirmed Price: this option identifies the price of the last "confirmed pivot", ie the last pivot that is guaranteed not to change because of any future price action (the resulting confirmed pivot price will only be updated on the very precise bar on which the retracement criteria have been achieved)
  • Retracement of Previous Leg (X%) : This output will return a price level (updated once a pivot) corresponding to a X% retracement from the last confirmed pivot point.
  • Extreme price of Leg keeps track of the highest price experienced during an up leg (respectively the lowest price of a down leg)

If displayed on a chart, all other ZZO outputs options discussed below are typically added as an histogram on a separate chart pane.

Outputs identifying Pivot bars and leg direction

  • Direction : This result represents the direction of the current Zig Zag leg. A value of 1 represents the current leg is upward trending, while a value of 0 represents that the current leg is downward trending.
  • Pivot Bar : The result for any bar is 1 if that bar is the first bar of a new leg of the zigzag, zero otherwise.
  • Up Pivot is simply 1 (true) on the pivot bar that terminates up legs (highs) and 0 (false) on all other bars.
  • Down Pivot is 1 on the pivot bar that terminates down lets (lows) and 0 (false) on all other bars.

Outputs returning price change and retracement information

  • Zig Zag Percent Change This result represents the percent change of the current price (close) from the previous pivot price. 
  • Zig Zag Price Change represents the price change of the current price (close) from the previous pivot price. 
  • Retracement Level : This result represents the retracement level of a current price with respect to the last leg of the Zig Zag. This is expressed as a positive percentage value for up legs (negative percentage for down legs)
  • Max change since Pivot keeps track of the highest amplitude of  the zigzag price change since the last pivot
  • Max Drawdown of Leg : this result will provide the max drawdown value, ie the highest difference observed between the Extreme price of Leg and the current price

Outputs returning cumulative leg information since a pivot (Volume, ticks/trades, Delta, Buy volume, Sell volume, leg duration in seconds or as a number of bars, etc)

  • Volume Since Last Pivot, Delta Since Last Pivot, Bars Since Last Pivot : These results give the user access to the cumulative volume, delta or number of bars that occurred within each leg of the zig zag since the last pivot. These values plot historically and provide accurate values for each bar as it builds within each leg and between each pivot.
  • The Bars Since Last Pivot (Directional) will return same value as Bars since Last pivot, but with a negative sign for down legs. Up/down volume will return the same result as Volume since last pivot, but with a negative sign for down legs.
  • Please also note that there are multiple similar “X Pivots ago” variants of above outputs : Bars Since X Pivots Back, Volume Since X Pivots Back, Delta Since X Pivots Back, Volume Per Price Since X Pivots Back, and Delta Per Price Since X Pivots Back. These results accumulate data (volume, delta, number of bars) from a user-specified number of pivots back to the present, and in some cases, divide that result by the price change since that pivot.
  • Time in Move (secs) : returning the duration of the ongoing leg in seconds.

  • Data per unit since last pivot : If you have not found your favorite “Since last pivot” data in the above list, please check this option that do offer to expand the list of data being aggregated by wave beyond volume and delta, ie you have access also to the cumulated number of trades, buy volume or sell volume for example. You may also calculate any value per second or per minute.

Outputs returning rotation, leg count, wave and other trend based information

  • Rotations and Rotation Size: Rotations gives a running total of the number of legs or rotations that have occurred in the chart. Rotation Size provides a value with only on the pivot bars equivalent to the size, in ticks, of the rotation or leg (zero on non-pivot bars). The Rotation Size option works very well in combination with the Profile on Indicator (ignore zero) option, as it enables users to plot a profile of the size/height of all rotations in any given chart.
  • Average rotations height (ticks) returns the average rotations for the past X legs
  • Previous price change returns the price change of the last completed legs (value updated at every pivot)
  • Waves counts sequential higher highs and lower lows. As we continue to accumulate higher highs and higher lows, the wave count will increase by 1 with each higher leg. When a lower low or high is detected, the count changes to -1 and continues to decrement by 1 with each lower high or lower low leg. The negative values continue to accumulate until a higher high (or low) is detected in which case the positive count begins in other direction
  • Legs Into Charts and Legs Into Session provide 2 ways to count waves from the start of the chart / start of the session while Legs from end of Chart offers a count starting at the most recent bar of the chart.
  • Trend : This result conveys how many consecutive legs of higher highs and lows, or lower lows and highs, have occurred. For instance, if an up leg has a higher high than previous up leg, a value of 1 is applied. If the subsequent down leg has a higher low than previous down leg, value goes to 2, and value continues to increment until a lower high or low is encountered at which point the value becomes -1, and continues to decrement until a higher high or low is encountered.
  • Trend count : output currently not in use

  • Flex statistic : Flex Statistics allows the user to specify a combination of statistics (Avg, Sum, Max, Min), data items (Rotation Size, Pivot Price, Total Volume, etc), number of legs, and the direction of legs (all legs, up legs only, down legs only). This combination of options allows the user to extract just about any statistical data imaginable from the market-structured moves organised by the Zig Zag Indicator. All these outputs, which are calculated data based on past legs, are therefore updated once every pivot. More information is available on this dedicated video.

ZZO outputs returning “forward looking” information

3 result options are looking “forward” (these are to be used obviously for analysing/backtesting “after the facts” the quality of entry signals, not under real time data feed conditions)

  • Bars Until Next Pivot and Price At Next Pivot return the corresponding information for every bar.
  • Max Move before Retrace will return a value at every pivot bar calculated as follows : For an “up pivot” bar, it will give you the difference between the highest price achieved in the future (by definition on an upcoming pivot high bar) before the (future price) comes back and retrace, breaking the price of the low pivot point of that up leg (ie the starting point of that up leg..)
EF WAVE VOL ANALYSIS (@ES#)
Showcasing the use of Zigzag Oscillator token to calculate the volume ratio of an ongoing zigzag leg vs the avg vol of the past X legs. This chart was uploaded by Investor/RT 15.2.4 showing symbol: @...

Read more Download

ZigZagFlexStatistics (@ES#)
Zig Zag Oscillator Flex Statistics. This chart is explained in the video Zig Zag Oscillator: Flex Statistics. This chart was uploaded by Investor/RT 12.7.1 showing symbol: @ES#.

Read more Download

ZZO PivotsPerSession (@ES#)
Chart counts the number of moves (zig zag legs) within each session by using MPD on ZZO. Use blue button at top to control the minimum size of moves (in ticks). This chart was uploaded by Investor/...

Read more Download

ZigZagStudy_Ticks
This chart is documented in the Profiles On Indicators article. This chart profiles the significant moves identified by the Zig Zag indicator and produces data such as the number of moves and average...

Read more Download

Pop-up Video Description View
Volume Filtering
Volume Filtering: Studying Behavior of Large vs Small Trades

This video introduces the ability to add a trade size volume filter to any instrument in any...

 Watch
Zig Zag Oscillator: Flex Statistics

This video highlights a powerful new result option added to Zig Zag Oscillator titled Flex...

 Watch
Using Zig Zag Oscillator in RTL
Using Zig Zag Oscillator in RTL

This video demonstrates how to manage the usage of the forward-looking Zig Zag Oscillator within...

 Watch