TradingView
Trendoscope
16 Feb 2023 pukul 14.00

ZigzagTypes 

Bitcoin / TetherUSBinance

Huraian

Library "ZigzagTypes"
Zigzag related user defined types. Depends on DrawingTypes library for basic types

Indicator
  Indicator is collection of indicator values applied on high, low and close
  Fields:
    indicatorHigh: Indicator Value applied on High
    indicatorLow: Indicator Value applied on Low

PivotCandle
  PivotCandle represents data of the candle which forms either pivot High or pivot low or both
  Fields:
    _high: High price of candle forming the pivot
    _low: Low price of candle forming the pivot
    length: Pivot length
    pHighBar: represents number of bar back the pivot High occurred.
    pLowBar: represents number of bar back the pivot Low occurred.
    pHigh: Pivot High Price
    pLow: Pivot Low Price
    indicators: Array of Indicators - allows to add multiple

Pivot
  Pivot refers to zigzag pivot. Each pivot can contain various data
  Fields:
    point: pivot point coordinates
    dir: direction of the pivot. Valid values are 1, -1, 2, -2
    level: is used for multi level zigzags. For single level, it will always be 0
    ratio: Price Ratio based on previous two pivots
    indicatorNames: Names of the indicators applied on zigzag
    indicatorValues: Values of the indicators applied on zigzag
    indicatorRatios: Ratios of the indicators applied on zigzag based on previous 2 pivots

ZigzagFlags
  Flags required for drawing zigzag. Only used internally in zigzag calculation. Should not set the values explicitly
  Fields:
    newPivot: true if the calculation resulted in new pivot
    doublePivot: true if the calculation resulted in two pivots on same bar
    updateLastPivot: true if new pivot calculated replaces the old one.

Zigzag
  Zigzag object which contains whole zigzag calculation parameters and pivots
  Fields:
    length: Zigzag length. Default value is 5
    numberOfPivots: max number of pivots to hold in the calculation. Default value is 20
    offset: Bar offset to be considered for calculation of zigzag. Default is 0 - which means calculation is done based on the latest bar.
    level: Zigzag calculation level - used in multi level recursive zigzags
    zigzagPivots: array<Pivot> which holds the last n pivots calculated.
    flags: ZigzagFlags object which is required for continuous drawing of zigzag lines.

ZigzagObject
  Zigzag Drawing Object
  Fields:
    zigzagLine: Line joining two pivots
    zigzagLabel: Label which can be used for drawing the values, ratios, directions etc.

ZigzagProperties
  Object which holds properties of zigzag drawing. To be used along with ZigzagDrawing
  Fields:
    lineColor: Zigzag line color. Default is color.blue
    lineWidth: Zigzag line width. Default is 1
    lineStyle: Zigzag line style. Default is line.style_solid.
    showLabel: If set, the drawing will show labels on each pivot. Default is false
    textColor: Text color of the labels. Only applicable if showLabel is set to true.
    maxObjects: Max number of zigzag lines to display. Default is 300
    xloc: Time/Bar reference to be used for zigzag drawing. Default is Time - xloc.bar_time.

ZigzagDrawing
  Object which holds complete zigzag drawing objects and properties.
  Fields:
    properties: ZigzagProperties object which is used for setting the display styles of zigzag
    drawings: array<ZigzagObject> which contains lines and labels of zigzag drawing.
    zigzag: Zigzag object which holds the calculations.

Nota Keluaran

v2

Rearranged the ZigzagDrawing type parameters so that Zigzag object will come in front.

Updated:
ZigzagDrawing
  Object which holds complete zigzag drawing objects and properties.
  Fields:
    zigzag: Zigzag object which holds the calculations.
    properties: ZigzagProperties object which is used for setting the display styles of zigzag
    drawings: array<ZigzagObject> which contains lines and labels of zigzag drawing.

Nota Keluaran

v3

Updated:
Pivot
  Pivot refers to zigzag pivot. Each pivot can contain various data
  Fields:
    point (Point type from HeWhoMustNotBeNamed/DrawingTypes/1): pivot point coordinates
    dir (series int): direction of the pivot. Valid values are 1, -1, 2, -2
    level (series int): is used for multi level zigzags. For single level, it will always be 0
    componentIndex (series int): is the lower level zigzag array index for given pivot. Used only in multi level Zigzag Pivots
    ratio (series float): Price Ratio based on previous two pivots
    indicatorNames (string[]): Names of the indicators applied on zigzag
    indicatorValues (float[]): Values of the indicators applied on zigzag
    indicatorRatios (float[]): Ratios of the indicators applied on zigzag based on previous 2 pivots

Nota Keluaran

v4

Updated:
Pivot
  Pivot refers to zigzag pivot. Each pivot can contain various data
  Fields:
    point (Point type from HeWhoMustNotBeNamed/DrawingTypes/1): pivot point coordinates
    dir (series int): direction of the pivot. Valid values are 1, -1, 2, -2
    level (series int): is used for multi level zigzags. For single level, it will always be 0
    componentIndex (series int): is the lower level zigzag array index for given pivot. Used only in multi level Zigzag Pivots
    subComponents (series int): is the number of sub waves per each zigzag wave. Only applicable for multi level zigzags
    ratio (series float): Price Ratio based on previous two pivots
    indicatorNames (string[]): Names of the indicators applied on zigzag
    indicatorValues (float[]): Values of the indicators applied on zigzag
    indicatorRatios (float[]): Ratios of the indicators applied on zigzag based on previous 2 pivots

Nota Keluaran

v5

Updated:
Pivot
  Pivot refers to zigzag pivot. Each pivot can contain various data
  Fields:
    point (Point type from HeWhoMustNotBeNamed/DrawingTypes/2): pivot point coordinates
    dir (series int): direction of the pivot. Valid values are 1, -1, 2, -2
    level (series int): is used for multi level zigzags. For single level, it will always be 0
    componentIndex (series int): is the lower level zigzag array index for given pivot. Used only in multi level Zigzag Pivots
    subComponents (series int): is the number of sub waves per each zigzag wave. Only applicable for multi level zigzags
    ratio (series float): Price Ratio based on previous two pivots
    indicatorNames (string[]): Names of the indicators applied on zigzag
    indicatorValues (float[]): Values of the indicators applied on zigzag
    indicatorRatios (float[]): Ratios of the indicators applied on zigzag based on previous 2 pivots
Komen
CryptoCoffeeNChill
Thanks for the code @HeWhoMustNotBeNamed.

any idea why if i try increase the number of pivot points to > like 75 it offsets the entire zigzag that's drawn and only displays a small portion of it. this is my code:

indicator("TESTTT", overlay = true)

import HeWhoMustNotBeNamed/ZigzagTypes/2 as zzt
import HeWhoMustNotBeNamed/DrawingTypes/1 as dt
import HeWhoMustNotBeNamed/ZigzagMethods/3 as zzm
// Create a new instance of the Zigzag type

var Pivot = zzt.Pivot.new()
var zigzag = zzt.Zigzag.new(length = 5, numberOfPivots = 100 )
var zigzagproperties = zzt.ZigzagProperties.new(lineColor = color.rgb(255,0,0,0), lineWidth = 2,maxObjects = 500,xloc = xloc.bar_time)
var zigzagd = zzt.ZigzagDrawing.new(zigzag = zigzag, properties = zigzagproperties)

// zzm.calculate(zigzag)
x = zzm.drawfresh(zigzagd)
Trendoscope
@CryptoCoffeeNChill, add max_lines_count =500 to indicator definition. By default it is very less
CryptoCoffeeNChill
serkany88
Is this usable with your rzigzag library that uses matrixes?
Trendoscope
@serkany88, no, but I published another library ZigzagMethods which has all the zigzag implementations you need
serkany88
@HeWhoMustNotBeNamed, So this means i don't have to use library instead i can just use this methods with types.
Trendoscope
@serkany88, that's right. I will publish an example today.
Lebih