TradingView
Trendoscope
3 avr. 2022 10:52

mZigzag 

Avalanche / TetherKuCoin

Description

Library "mZigzag"
Matrix implementation of zigzag to allow further possibilities.
Main advantage of this library over previous zigzag methods is that you can attach any number of indicator/oscillator information to zigzag

calculate(length, ohlc, indicatorHigh, indicatorLow, numberOfPivots) calculates zigzag and related information
  Parameters:
    length: is zigzag length
    ohlc: array of OHLC values to be used for zigzag calculation
    indicatorHigh: Array of indicator values calculated based on high price of OHLC
    indicatorLow: Array of indicators values calculated based on low price of OHLC
    numberOfPivots: Number of pivots to be returned
  Returns: pivotMatrix Matrix containing zigzag pivots, pivot bars, direction, ratio, and indicators added via indicatorHigh/indicatorLow
newZG is true if a new pivot is added to array
doubleZG is true if last calculation returned two new pivots (Happens on extreme price change)

draw(length, ohlc, indicatorLabels, indicatorHigh, indicatorLow, numberOfPivots, lineColor, lineWidth, lineStyle, showHighLow, showRatios, showIndicators) draws zigzag and related information
  Parameters:
    length: is zigzag length
    ohlc: array of OHLC values to be used for zigzag calculation
    indicatorLabels: Array of name of indicators passed
    indicatorHigh: Array of indicator values calculated based on high price of OHLC
    indicatorLow: Array of indicators values calculated based on low price of OHLC
    numberOfPivots: Number of pivots to be returned
    lineColor: zigzag line color. set to blue by default
    lineWidth: zigzag line width. set to 1 by default
    lineStyle: zigzag line style. set to line.style_solid by default
    showHighLow: show HH, HL, LH, LL labels
    showRatios: show pivot retracement ratios from previous zigzag
    showIndicators: show indicator values
  Returns: pivotMatrix Matrix containing zigzag pivots, pivot bars, direction, ratio, and indicators added via indicatorHigh/indicatorLow
zigzaglines array of zigzag lines
zigzaglabels array of zigzag labels

Notes de version

v2

Updated:
draw(length, ohlc, indicatorLabels, indicatorHigh, indicatorLow, numberOfPivots, lineColor, lineWidth, lineStyle, showLabel, showIndicators) draws zigzag and related information
  Parameters:
    length: is zigzag length
    ohlc: array of OHLC values to be used for zigzag calculation
    indicatorLabels: Array of name of indicators passed
    indicatorHigh: Array of indicator values calculated based on high price of OHLC
    indicatorLow: Array of indicators values calculated based on low price of OHLC
    numberOfPivots: Number of pivots to be returned
    lineColor: zigzag line color. set to blue by default
    lineWidth: zigzag line width. set to 1 by default
    lineStyle: zigzag line style. set to line.style_solid by default
    showLabel: Show pivot label
    showIndicators: Include indicators in labels. If set to false, indicators are shown as tooltips
  Returns: valueMatrix Matrix containing zigzag pivots for price and indicators
directionMatrix Matrix containing direction of price and indicator values at pivots
ratioMatrix Matrix containing ratios of price and indicator values at pivots
barArray Array containing pivot bars
zigzaglines array of zigzag lines
zigzaglabels array of zigzag labels

Notes de version

v3

Updated:
calculate(length, ohlc, indicatorHigh, indicatorLow, numberOfPivots, supertrendLength) calculates zigzag and related information
  Parameters:
    length: is zigzag length
    ohlc: array of OHLC values to be used for zigzag calculation
    indicatorHigh: Array of indicator values calculated based on high price of OHLC
    indicatorLow: Array of indicators values calculated based on low price of OHLC
    numberOfPivots: Number of pivots to be returned
    supertrendLength: is number of pivot history to calculate supertrend
  Returns: valueMatrix Matrix containing zigzag pivots for price and indicators
directionMatrix Matrix containing direction of price and indicator values at pivots
ratioMatrix Matrix containing ratios of price and indicator values at pivots
divergenceMatrix matrix containing divergence details for each indicators
doubleDivergenceMatrix matrix containing double divergence details for each indicators
barArray Array containing pivot bars
supertrendDir is direction of zigzag based supertrend
supertrend is supertrend value of zigzag based supertrend
newZG is true if a new pivot is added to array
doubleZG is true if last calculation returned two new pivots (Happens on extreme price change)

Notes de version

v4

Added:
calculate2(length, ohlc, indicatorHigh, indicatorLow, numberOfPivots, supertrendLength) calculates zigzag and related information uses shift/unshift rather than pop and push
  Parameters:
    length: is zigzag length
    ohlc: array of OHLC values to be used for zigzag calculation
    indicatorHigh: Array of indicator values calculated based on high price of OHLC
    indicatorLow: Array of indicators values calculated based on low price of OHLC
    numberOfPivots: Number of pivots to be returned
    supertrendLength: is number of pivot history to calculate supertrend
  Returns: valueMatrix Matrix containing zigzag pivots for price and indicators
directionMatrix Matrix containing direction of price and indicator values at pivots
ratioMatrix Matrix containing ratios of price and indicator values at pivots
divergenceMatrix matrix containing divergence details for each indicators
doubleDivergenceMatrix matrix containing double divergence details for each indicators
barArray Array containing pivot bars
supertrendDir is direction of zigzag based supertrend
supertrend is supertrend value of zigzag based supertrend
newZG is true if a new pivot is added to array
doubleZG is true if last calculation returned two new pivots (Happens on extreme price change)

Notes de version

v5

Added:
calculateplain(length, ohlc, indicatorHigh, indicatorLow, numberOfPivots) calculates zigzag and related information uses shift/unshift rather than pop and push. Also does not calculate divergence and ratios.
  Parameters:
    length: is zigzag length
    ohlc: array of OHLC values to be used for zigzag calculation
    indicatorHigh: Array of indicator values calculated based on high price of OHLC
    indicatorLow: Array of indicators values calculated based on low price of OHLC
    numberOfPivots: Number of pivots to be returned
  Returns: valueMatrix Matrix containing zigzag pivots for price and indicators
directionArray Matrix containing direction of price and indicator values at pivots
barArray Array containing pivot bars
newZG is true if a new pivot is added to array
doubleZG is true if last calculation returned two new pivots (Happens on extreme price change)

Removed:
calculate2(length, ohlc, indicatorHigh, indicatorLow, numberOfPivots, supertrendLength) calculates zigzag and related information uses shift/unshift rather than pop and push

Notes de version

v6

Updated:
calculateplain(length, ohlc, indicatorHigh, indicatorLow, numberOfPivots) calculates zigzag and related information uses shift/unshift rather than pop and push. Also does not calculate divergence and ratios.
  Parameters:
    length: is zigzag length
    ohlc: array of OHLC values to be used for zigzag calculation
    indicatorHigh: Array of indicator values calculated based on high price of OHLC
    indicatorLow: Array of indicators values calculated based on low price of OHLC
    numberOfPivots: Number of pivots to be returned
  Returns: valueMatrix Matrix containing zigzag pivots for price and indicators
directionArray Matrix containing direction of price and indicator values at pivots
barArray Array containing pivot bars
newZG is true if a new pivot is added to array
doubleZG is true if last calculation returned two new pivots (Happens on extreme price change)

Notes de version

v7

Notes de version

v8

Fixed an edge case highlighted by @mortdiggiddy

Notes de version

v9

Notes de version

v10

Notes de version

v11

Notes de version

v12
Commentaires
djmad
awesome, Thankyou
Trendoscope
@djmad, thanks very much :)
djmad
@HeWhoMustNotBeNamed, can u please post the call to get the zigzag-description like in the actual plot of this libary?
This would give a really nice "infosource" as stand alone indicator
Trendoscope
@djmad, line 174 to 175. But, you need to add an import statement at the start.

import HeWhoMustNotBeNamed/mZigzag/1 as zigzag


And when calling draw, you need to add library namespace.

zigzag.draw instead of just draw
djmad
@HeWhoMustNotBeNamed, Thanks very much for the quickl response
Trendoscope
@djmad, you can actually add any number of oscillators or indicators to it and show them all on UI
KioseffTrading
Trendoscope
@KioseffTrading, thanks my friend :)
KioseffTrading
GREAT UPDATE!
KioseffTrading
yay for new version!
Plus