This ZigZag Library is a Bit different. Instead of using percentages or looking more than 1 bar left or right, this Zigzag library calculates pivots by just looking at the current bar highs and lows and the ones of one bar earlier. This is the most accurate way of calculating pivots and it also eliminates lag.
The library also features a solution for bars that have both a higher high and a higher low like seen below.
You can also use your own colors for the labels and the lines.
You can also quickly select a one-colored theme without changing all colors at once
method isHigherHigh(this) Checks if current pivot is a higher high Namespace types: Pivot Parameters: this (Pivot): (Pivot) The object to work with. @return (bool) True if the pivot is a higher high, false if not.
method isLowerHigh(this) Checks if current pivot is a lower high Namespace types: Pivot Parameters: this (Pivot): (Pivot) The object to work with. @return (bool) True if the pivot is a lower high, false if not.
method isHigherLow(this) Checks if current pivot is a higher low Namespace types: Pivot Parameters: this (Pivot): (Pivot) The object to work with. @return (bool) True if the pivot is a higher low, false if not.
method isLowerLow(this) Checks if current pivot is a lower low Namespace types: Pivot Parameters: this (Pivot): (Pivot) The object to work with. @return (bool) True if the pivot is a lower low, false if not.
method getLastPivotHigh(this) Gets the last Pivot High Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The latest Pivot High
method getLastPivotLow(this) Gets the last Pivot Low Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The latest Pivot Low
method prev(this, index) Namespace types: Pivot[] Parameters: this (Pivot[]) index (int)
Theme Used to create a (color) theme to draw Zigzag Fields: colorDefault (series color) colorNeutral (series color) colorBullish (series color) colorBearish (series color) coloredLines (series bool)
Point Used to determine a coordination on the chart Fields: x (series int) y (series float)
Pivot Used to determine pivots on the chart Fields: point (Point) isHigh (series bool) isHigher (series bool) ln (series line) lb (series label)
ملاحظات الأخبار
⋅
v2: Fixes bug that would draw wrong color
ملاحظات الأخبار
⋅
v3 | Minor (commenting) updates and fixes in script. The new() function now returns the pivots array.
ملاحظات الأخبار
⋅
v4 | Major overhaul of functions and added extra functions to get latest and previous pivot high / low
Added: method first(this) Gets the first Pivot Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The first Pivot in the array or NA if not available.
method getHigh(this, prev) Gets the latest Pivot High based on prev number Pivot high back. Default the latest Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. prev (int): (int) Number of prev pivot highs back. (1 = latest, 1 < is previous ones). @return (Pivot) The latest Pivot High or NA if not available.
method getLastHigh(this) Gets the latest pivot high Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The latest Pivot high in the array
method getPrevHigh(this) Gets the previous pivot high Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The previous Pivot high in the array or NA if not available
method getLow(this, prev) Gets the Pivot Low Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. prev (int)
method getLastLow(this) Gets the latest pivot low Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The latest Pivot low in the array or NA if not available
method getPrevLow(this) Gets the previous pivot low Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The previous Pivot low in the array or NA if not available
Updated: method last(this) Gets previous Pivot Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The last Pivot in the array or NA if not available.
method prev(this) Gets previous Pivot Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The previous Pivot or NA if not available.
Removed: method getLastPivotHigh(this) Gets the last Pivot High
method getLastPivotLow(this) Gets the last Pivot Low
ملاحظات الأخبار
⋅
v5 | In this update, I've added new features and changed some array methods to avoid confusion. The library no longer overrides the get(), last(), first() functions for the array<Pivot> object. Added new Features:
Now let's you select custom source
Now keeps track of current close price of pivot
Can disable/enable the feature to show close price info of pivots
Added: method getFirst(this) Gets the first Pivot Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The first Pivot in the array or NA if not available.
method getLast(this) Gets previous Pivot Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The last Pivot in the array or NA if not available.
method getPrev(this, index) Gets previous Pivot by index number. Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. index (int): (int) The index number. (optional, default is 1) @return (Pivot) The previous Pivot or NA if not available.
Updated: method getLastLow(this) Gets the latest pivot low Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The latest Pivot low in the array or NA if not available
method getPrevLow(this) Gets the previous pivot low Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The previous Pivot low in the array or NA if not available
Theme Used to create a (color) theme to draw Zigzag Fields: colorDefault (series color) colorNeutral (series color) colorBullish (series color) colorBearish (series color) coloredLines (series bool) showCloseInfo (series bool)
Pivot Used to determine pivots on the chart Fields: point (Point) isHigh (series bool) isHigher (series bool) close (series float) closeAbovePrevPivot (series bool) closeAbovePrevPivotClose (series bool) ln (series line) lb (series label)
Removed: method first(this) Gets the first Pivot
method last(this) Gets previous Pivot
method prev(this) Gets previous Pivot
ملاحظات الأخبار
⋅
v6 | Fixed a bug at pivot lows, that would draw lines from high instead of low
ملاحظات الأخبار
⋅
v7 | This update brings:
Enable/disable enable features
Tooltips with all available data for all pivots. Great for feedback on mouse-hover. You can customize the what is shown or hidden.
Added: method isAtCurrentBar(this) Checks if the current pivot is at the current bar Namespace types: Pivot Parameters: this (Pivot): (Pivot) The object to work with. @return (bool) Wether the current pivot is at the current bar or not.
Source The source to use Fields: high (series float) low (series float) priority (series string)
Features Features to enable Fields: closeBreaksClose (series bool) closeBreaksPivot (series bool)
Tooltips Tooltips to show Fields: name (series bool) price (series bool) close (series bool) closeBreaksClose (series bool) closeBreaksPivot (series bool)
Settings All settings for the indicator Fields: source (Source) features (Features) theme (Theme)
Updated: method getLast(this) Gets the latest Pivot Namespace types: Pivot[] Parameters: this (Pivot[]): (array<Pivot>) The object to work with. @return (Pivot) The last Pivot in the array or NA if not available.
new(customSettings) Creates a new ZigZag Instance Parameters: customSettings (Settings): (Settings) The settings for this instance.
getLowerTimeframePeriod() Helper function to generate a lower timeframe period (string) for current timeframe period. You can use this on conjuction with request.security_lower_tf() to figure out if current high of of this bar was created before the low of this bar. @return (string) Timeframe period for lower timeframe.
Theme Used to create a (color) theme to draw Zigzag Fields: colorDefault (series color) colorNeutral (series color) colorBullish (series color) colorBearish (series color) coloredLines (series bool) showCloseInfo (series bool) showTooltips (series bool) tooltips (Tooltips)
Pivot Used to determine pivots on the chart. Fields: point (Point) isHigh (series bool) isHigher (series bool) name (series string) abbr (series string) close (series float) comulativeVolume (series float) closeBreaksPivot (series bool) closeBreaksClose (series bool) isLast (series bool) ln (series line) lb (series label)
ملاحظات الأخبار
⋅
v8 | You can now customize the size of the pivot text and the thickness of the lines.
@niquedegraaff This seems like a great library. I have the Zig Zag drawing from the example in the library. How do I extend the length of the pivots so that they are not so short? I would like to only draw larger pivots. Thank you!!!!
Seykool
⋅
Could you please give an example simple code snippet to get the last high and low pivot? This lib seams amazing!
Seykool
⋅
@Seykool, I just don't figure out how to use it, what do I use for this?
niquedegraaff
⋅
@Seykool, Yes, sorry for the late reply. I'm not that active atm.
import niquedegraaff/Absolute_ZigZag_Lib/10 as ZigZag
array<ZigZag.Pivot> pivots = ZigZag.new() // You can insert your own Settings in the new() statement here
ZigZag.Pivot lastPivotHigh = pivots.getLastHigh()
ZigZag.Pivot lastPivotLow = pivots.getLastLow()
// lastPivotHigh.point.y gives you the price value of the last pivot high
// lastPivotLow.point.y gives you the price value of the last pivot low
// You can also get the previous last pivot so you can compare them
ZigZag.Pivot prevPivotHigh = pivots.getPrevHigh()
bool isHigher = prevPivotHigh.point.y < lastPivotHigh.point.y
// But I have already build that in:
isHigher := lastPivotHigh.isHigher
// You can also get previous pivots further than just 2 with getHigh(#) and getLow(#). Or use getPrev(#)
ZigZag.Pivot threePivotsHighBack = pivots.getHigh(3)
// There are more advanced functions that check if last pivot was broken with a close or just a wick. Just look into the code. It's pretty straight forward :). Have fun!
JavierFL
⋅
Great Zigzag, I was looking for this for a long time. Thanks!
Bavatha
⋅
Hi sir . How to avoid inside candles and consequtive inside candles .
avramoff
⋅
Hello, can you help? How can I make the indicator cover the entire chart?