PINE LIBRARY

rzigzag

Updated
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: [matrix<float> zigzagmatrix, bool newPivot, bool doublePivot]

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: [array<line> zigzaglines, array<label> zigzaglabels]

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: [matrix<float> zigzagmatrix, array<line> zigzaglines, array<label> zigzaglabels, bool newPivot, bool doublePivot]

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: [array<line> zigzaglines, array<label> zigzaglabels]
Release Notes
v2

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

Added:
iZigzag(length, h, l, numberOfPivots)
  calculates plain zigzag based on input array
  Parameters:
    length: Zigzag Length
    h: array containing high values of a series
    l: array containing low values of a series
    numberOfPivots: Number of max pivots to be returned
  Returns: matrix<float> zigzagmatrix
Release Notes
v7
Release Notes
v8
Release Notes
v9

Minor defect
Release Notes
v10
arrayshewhomustnotbenamedMarket GeometryZigzag

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