HeWhoMustNotBeNamed

rzigzag

Library "rzigzag"
Recursive Zigzag Using Matrix allows to create zigzags recursively on multiple levels. After bit of consideration, decided to make this public.

zigzag(length, ohlc, numberOfPivots, offset)
  calculates plain zigzag based on input
  Parameters:
    length: Zigzag Length
    ohlc: Array containing ohlc values. Can also contain custom series
    numberOfPivots: Number of max pivots to be returned
    offset: Offset from current bar. Can be used for calculations based on confirmed bars
  Returns:

nextlevel(zigzagmatrix, numberOfPivots)
  calculates next level zigzag based on present zigzag coordinates
  Parameters:
    zigzagmatrix: Matrix containing zigzag pivots , bars, bar time, direction and level
    numberOfPivots: Number of max pivots to be returned
  Returns: matrix<float> zigzagmatrix

draw(zigzagmatrix, newPivot, doublePivot, lineColor, lineWidth, lineStyle, showLabel, xloc)
  draws zigzag based on the zigzagmatrix input
  Parameters:
    zigzagmatrix: Matrix containing zigzag pivots , bars, bar time, direction and level
    newPivot: Flag indicating there is update in the pivots
    doublePivot: Flag containing there is double pivot update on same bar
    lineColor: Zigzag line color
    lineWidth: Zigzag line width
    lineStyle: Zigzag line style
    showLabel: Flag to indicate display pivot labels
    xloc: xloc preference for drawing lines/labels
  Returns:

draw(length, ohlc, numberOfPivots, offset, lineColor, lineWidth, lineStyle, showLabel, xloc)
  calculates and draws zigzag based on zigzag length and source input
  Parameters:
    length: Zigzag Length
    ohlc: Array containing ohlc values. Can also contain custom series
    numberOfPivots: Number of max pivots to be returned
    offset: Offset from current bar. Can be used for calculations based on confirmed bars
    lineColor: Zigzag line color
    lineWidth: Zigzag line width
    lineStyle: Zigzag line style
    showLabel: Flag to indicate display pivot labels
    xloc: xloc preference for drawing lines/labels
  Returns:

drawfresh(zigzagmatrix, zigzaglines, zigzaglabels, lineColor, lineWidth, lineStyle, showLabel, xloc)
  draws fresh zigzag for all pivots in the input matrix.
  Parameters:
    zigzagmatrix: Matrix containing zigzag pivots , bars, bar time, direction and level
    zigzaglines: array to which all newly created lines will be added
    zigzaglabels: array to which all newly created lables will be added
    lineColor: Zigzag line color
    lineWidth: Zigzag line width
    lineStyle: Zigzag line style
    showLabel: Flag to indicate display pivot labels
    xloc: xloc preference for drawing lines/labels
  Returns:
Release Notes: v2

Just updating library reference.
Release Notes: v3
Release Notes: v4
Release Notes: v5

Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House Rules.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.