PINE LIBRARY
Updated 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: [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]
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
v2Just updating library reference.
Release Notes
v3Release Notes
v4Release Notes
v5Release Notes
v6Added:
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
v7Release Notes
v8Release Notes
v9Minor defect
Release Notes
v10Pine 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 publications is governed by House Rules.
Trial - trendoscope.io/trial
Subscribe - trendoscope.io/pricing
Blog - docs.trendoscope.io
Subscribe - trendoscope.io/pricing
Blog - docs.trendoscope.io
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.
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 publications is governed by House Rules.
Trial - trendoscope.io/trial
Subscribe - trendoscope.io/pricing
Blog - docs.trendoscope.io
Subscribe - trendoscope.io/pricing
Blog - docs.trendoscope.io
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.