Chess_Data_5This library supplies a randomized list of 1-Move Chess Puzzles, this is 5/5 in my collection of puzzles on Tradingview.
This library contains 730 chess puzzles, this is enough for 1 unique chess puzzle for 2 years (730/365 = 2)
The Puzzles are sourced from Lichess's open-source database found here -> | database.lichess.org
This data has been reduced to only included 1-Move chess puzzles with a popularity rating of > 70, and condensed for ease of formatting and less characters.
The reduced format of the data in this library reads:
"Puzzle Code, Modified FEN, Moves, Puzzle Rating, Popularity Rating"
Puzzle Code: Lichess Codes Identifying each puzzle, this allows them to be retrieved from their website based on this Code.
Modified FEN:  Forsyth-Edwards Notation is the standard notation to describe positions of a chess game. This includes the active move tacked onto the end after the last '/', this simplifies the process to retrieve the active move in PineScript.
Moves: This holds the first move seen by the player in the puzzle (opposite color), and then the correct next move which is Puzzle Solution, that the player is trying to determine.
Puzzle Rating: Difficulty Rating of the Puzzle, Generally speaking | Under 1500 = Beginner | 1500 to 1800 Casual | 1800 to 2100 Intermediate | 2100+ Advanced 
Popularity Ranking: This is the popularity ranking calculated by lichess based on their own data of user feedback.
 Note: After Reducing the amount of data down to only 1-Move puzzles with a popularity rating of > 70%, there is still around 340k puzzles. (Enough for over 900 Years!) 
 > Functions [/b
 get() 
Returns the list of chess puzzle data.
Arrays
Chess_Data_4This library supplies a randomized list of 1-Move Chess Puzzles, this is 4/5 in my collection of puzzles on Tradingview.
This library contains 730 chess puzzles, this is enough for 1 unique chess puzzle for 2 years (730/365 = 2)
The Puzzles are sourced from Lichess's open-source database found here -> | database.lichess.org
This data has been reduced to only included 1-Move chess puzzles with a popularity rating of > 70, and condensed for ease of formatting and less characters.
The reduced format of the data in this library reads:
"Puzzle Code, Modified FEN, Moves, Puzzle Rating, Popularity Rating"
Puzzle Code: Lichess Codes Identifying each puzzle, this allows them to be retrieved from their website based on this Code.
Modified FEN:  Forsyth-Edwards Notation is the standard notation to describe positions of a chess game. This includes the active move tacked onto the end after the last '/', this simplifies the process to retrieve the active move in PineScript.
Moves: This holds the first move seen by the player in the puzzle (opposite color), and then the correct next move which is Puzzle Solution, that the player is trying to determine.
Puzzle Rating: Difficulty Rating of the Puzzle, Generally speaking | Under 1500 = Beginner | 1500 to 1800 Casual | 1800 to 2100 Intermediate | 2100+ Advanced 
Popularity Ranking: This is the popularity ranking calculated by lichess based on their own data of user feedback.
 Note: After Reducing the amount of data down to only 1-Move puzzles with a popularity rating of > 70%, there is still around 340k puzzles. (Enough for over 900 Years!) 
 > Functions [/b
 get() 
Returns the list of chess puzzle data.
Chess_Data_3This library supplies a randomized list of 1-Move Chess Puzzles, this is 3/5 in my collection of puzzles on Tradingview.
This library contains 730 chess puzzles, this is enough for 1 unique chess puzzle for 2 years (730/365 = 2)
The Puzzles are sourced from Lichess's open-source database found here -> | database.lichess.org
This data has been reduced to only included 1-Move chess puzzles with a popularity rating of > 70, and condensed for ease of formatting and less characters.
The reduced format of the data in this library reads:
"Puzzle Code, Modified FEN, Moves, Puzzle Rating, Popularity Rating"
Puzzle Code: Lichess Codes Identifying each puzzle, this allows them to be retrieved from their website based on this Code.
Modified FEN:  Forsyth-Edwards Notation is the standard notation to describe positions of a chess game. This includes the active move tacked onto the end after the last '/', this simplifies the process to retrieve the active move in PineScript.
Moves: This holds the first move seen by the player in the puzzle (opposite color), and then the correct next move which is Puzzle Solution, that the player is trying to determine.
Puzzle Rating: Difficulty Rating of the Puzzle, Generally speaking | Under 1500 = Beginner | 1500 to 1800 Casual | 1800 to 2100 Intermediate | 2100+ Advanced 
Popularity Ranking: This is the popularity ranking calculated by lichess based on their own data of user feedback.
 Note: After Reducing the amount of data down to only 1-Move puzzles with a popularity rating of > 70%, there is still around 340k puzzles. (Enough for over 900 Years!) 
 > Functions [/b
 get() 
Returns the list of chess puzzle data.
Chess_Data_2This library supplies a randomized list of 1-Move Chess Puzzles, this is 2/5 in my collection of puzzles on Tradingview.
This library contains 730 chess puzzles, this is enough for 1 unique chess puzzle for 2 years (730/365 = 2)
The Puzzles are sourced from Lichess's open-source database found here -> | database.lichess.org
This data has been reduced to only included 1-Move chess puzzles with a popularity rating of > 70, and condensed for ease of formatting and less characters.
The reduced format of the data in this library reads:
"Puzzle Code, Modified FEN, Moves, Puzzle Rating, Popularity Rating"
Puzzle Code: Lichess Codes Identifying each puzzle, this allows them to be retrieved from their website based on this Code.
Modified FEN:  Forsyth-Edwards Notation is the standard notation to describe positions of a chess game. This includes the active move tacked onto the end after the last '/', this simplifies the process to retrieve the active move in PineScript.
Moves: This holds the first move seen by the player in the puzzle (opposite color), and then the correct next move which is Puzzle Solution, that the player is trying to determine.
Puzzle Rating: Difficulty Rating of the Puzzle, Generally speaking | Under 1500 = Beginner | 1500 to 1800 Casual | 1800 to 2100 Intermediate | 2100+ Advanced 
Popularity Ranking: This is the popularity ranking calculated by lichess based on their own data of user feedback.
 Note: After Reducing the amount of data down to only 1-Move puzzles with a popularity rating of > 70%, there is still around 340k puzzles. (Enough for over 900 Years!) 
 > Functions [/b
 get() 
Returns the list of chess puzzle data.
Chess_Data_1This library supplies a randomized list of 1-Move Chess Puzzles, this is 1/5 in my collection of puzzles on Tradingview.
This library contains 730 chess puzzles, this is enough for 1 unique chess puzzle for 2 years (730/365 = 2)
The Puzzles are sourced from Lichess's open-source database found here -> | database.lichess.org
This data has been reduced to only included 1-Move chess puzzles with a popularity rating of > 70, and condensed for ease of formatting and less characters.
The reduced format of the data in this library reads:
"Puzzle Code, Modified FEN, Moves, Puzzle Rating, Popularity Rating"
Puzzle Code: Lichess Codes Identifying each puzzle, this allows them to be retrieved from their website based on this Code.
Modified FEN:  Forsyth-Edwards Notation is the standard notation to describe positions of a chess game. This includes the active move tacked onto the end after the last '/', this simplifies the process to retrieve the active move in PineScript.
Moves: This holds the first move seen by the player in the puzzle (opposite color), and then the correct next move which is Puzzle Solution, that the player is trying to determine.
Puzzle Rating: Difficulty Rating of the Puzzle, Generally speaking | Under 1500 = Beginner | 1500 to 1800 Casual | 1800 to 2100 Intermediate | 2100+ Advanced 
Popularity Ranking: This is the popularity ranking calculated by lichess based on their own data of user feedback.
 Note: After Reducing the amount of data down to only 1-Move puzzles with a popularity rating of > 70%, there is still around 340k puzzles. (Enough for over 900 Years!) 
 > Functions [/b
 get() 
Returns the list of chess puzzle data.
HT: Levels LibLibrary   "Levels" 
 method initialize(id) 
  Namespace types: levels_collection
  Parameters:
     id (levels_collection) 
 method create_level(id, name, value, level_start_bar, level_color, show) 
  Namespace types: levels_collection
  Parameters:
     id (levels_collection) 
     name (string) 
     value (float) 
     level_start_bar (int) 
     level_color (color) 
     show (bool) 
 method set_level(id, name, value, level_start_bar, show) 
  Namespace types: levels_collection
  Parameters:
     id (levels_collection) 
     name (string) 
     value (float) 
     level_start_bar (int) 
     show (bool) 
 method find_resistance(id) 
  Namespace types: levels_collection
  Parameters:
     id (levels_collection) 
 method find_support(id) 
  Namespace types: levels_collection
  Parameters:
     id (levels_collection) 
 method draw_level(id) 
  Namespace types: level_info
  Parameters:
     id (level_info) 
 method draw_all_levels(id) 
  Namespace types: levels_collection
  Parameters:
     id (levels_collection) 
 level_info 
  Fields:
     name (series__string) 
     value (series__float) 
     bar_num (series__integer) 
     level_line (series__line) 
     line_start_bar (series__integer) 
     level_color (series__color) 
     show (series__bool) 
     ss (series__bool) 
     sr (series__bool) 
 levels_collection 
  Fields:
     levels (array__|level_info|#OBJ)
Word_Puzzle_Data_R2ZLibrary   "Word_Puzzle_Data_R2Z" 
This Library consists of functions for returning arrays of words starting with R through Z.
By splitting the data through multiple libraries, I can import more tokens into my final compiled script, so having this data separately is extremely helpful.
This library is the the container 1/3 for my database of 5 Letter words uses in my "Word Puzzle" Game.
The List was Obtained from this master list| gist.github.com
The list was also filtered for profanity.
If there were more than 999 words under 1 first letter, then I have made the array for the 1 letter into 2. 'letter1' & 'letter2', these are used for the letters "P, B, & S".
All words are lowercase
 r_ary() 
- Returns an array of words starting with "R"
 s1_ary() 
- Returns an array of words starting with "S"
 s2_ary() 
- Returns an array of words starting with "S"
 t_ary() 
- Returns an array of words starting with "T"
 u_ary() 
- Returns an array of words starting with "U"
 v_ary() 
- Returns an array of words starting with "V"
 w_ary() 
- Returns an array of words starting with "W"
 x_ary() 
- Returns an array of words starting with "X"
 y_ary() 
- Returns an array of words starting with "Y"
 z_ary() 
- Returns an array of words starting with "Z"
Word_Puzzle_Data_I2QLibrary   "Word_Puzzle_Data_I2Q" 
This Library consists of functions for returning arrays of words starting with I through Q.
By splitting the data through multiple libraries, I can import more tokens into my final compiled script, so having this data separately is extremely helpful.
This library is the the container 1/3 for my database of 5 Letter words uses in my "Word Puzzle" Game.
The List was Obtained from this master list| gist.github.com
The list was also filtered for profanity.
If there were more than 999 words under 1 first letter, then I have made the array for the 1 letter into 2. 'letter1' & 'letter2', these are used for the letters "P, B, & S".
All words are lowercase
 i_ary() 
- Returns an array of words starting with "I"
 j_ary() 
- Returns an array of words starting with "J"
 k_ary() 
- Returns an array of words starting with "K"
 l_ary() 
- Returns an array of words starting with "L"
 m_ary() 
- Returns an array of words starting with "M"
 n_ary() 
- Returns an array of words starting with "N"
 o_ary() 
- Returns an array of words starting with "O"
 p1_ary() 
- Returns an array of words starting with "P"
 p2_ary() 
- Returns an array of words starting with "P"
 q_ary() 
- Returns an array of words starting with "Q"
Word_Puzzle_Data_A2HLibrary   "Word_Puzzle_Data_A2H" 
This Library consists of functions for returning arrays of words starting with A through H.
By splitting the data through multiple libraries, I can import more tokens into my final compiled script, so having this data separately is extremely helpful.
This library is the the container 1/3 for my database of 5 Letter words uses in my "Word Puzzle" Game.
The List was Obtained from this master list| gist.github.com
The list was also filtered for profanity.
If there were more than 999 words under 1 first letter, then I have made the array for the 1 letter into 2. 'letter1' & 'letter2', these are used for the letters "P, B, & S".
All words are lowercase
 a_ary() 
- Returns an array of words starting with "'A"
 b1_ary() 
- Returns an array of words starting with "B"
 b2_ary() 
- Returns an array of words starting with "B"
 c_ary() 
- Returns an array of words starting with "C"
 d_ary() 
- Returns an array of words starting with "D"
 e_ary() 
- Returns an array of words starting with "E"
 f_ary() 
- Returns an array of words starting with "F"
 g_ary() 
- Returns an array of words starting with "G"
 h_ary() 
- Returns an array of words starting with "H"
TimeSeriesRecurrencePlotLibrary   "TimeSeriesRecurrencePlot" 
In descriptive statistics and chaos theory, a recurrence plot (RP) is a plot showing, for each moment i i in time, the times at which the state of a dynamical system returns to the previous state at `i`, i.e., when the phase space trajectory visits roughly the same area in the phase space as at time `j`.
```
A recurrence plot (RP) is a graphical representation used in the analysis of time series data and dynamical systems. It visualizes recurring states or events over time by transforming the original time series into a binary matrix, where each element represents whether two consecutive points are above or below a specified threshold. The resulting Recurrence Plot Matrix reveals patterns, structures, and correlations within the data while providing insights into underlying mechanisms of complex systems.
```
~starling7b
___
Reference:
en.wikipedia.org
github.com
github.com
github.com
github.com
juliadynamics.github.io
 distance_matrix(series1, series2, max_freq, norm) 
  Generate distance matrix between two series.
  Parameters:
     series1 (float) : Source series 1.
     series2 (float) : Source series 2.
     max_freq (int) : Maximum frequency to inpect or the size of the generated matrix.
     norm (string) : Norm of the distance metric, default=`euclidean`, options=`euclidean`, `manhattan`, `max`.
  Returns: Matrix with distance values.
 method normalize_distance(M) 
  Normalizes a matrix within its Min-Max range.
  Namespace types: matrix
  Parameters:
     M (matrix) : Source matrix.
  Returns: Normalized matrix.
 method threshold(M, threshold) 
  Updates the matrix with the condition `M(i,j) > threshold ? 1 : 0`.
  Namespace types: matrix
  Parameters:
     M (matrix) : Source matrix.
     threshold (float) 
  Returns: Cross matrix.
 rolling_window(a, b, sample_size) 
  An experimental alternative method to plot a recurrence_plot.
  Parameters:
     a (array) : Array with data.
     b (array) : Array with data.
     sample_size (int) 
  Returns: Recurrence_plot matrix.
TimeSeriesGrammianAngularFieldLibrary   "TimeSeriesGrammianAngularField" 
provides Grammian angular field and associated utility functions.
___
Reference:
*Time Series Classification: A review of Algorithms and Implementations*.
www.researchgate.net
 method normalize(data, a, b) 
  Normalize the series to a optional range, usualy within `(-1, 1)` or `(0, 1)`.
  Namespace types: array
  Parameters:
     data (array) : Sample data to normalize.
     a (float) : Minimum target range value, `default=-1.0`.
     b (float) : Minimum target range value, `default= 1.0`.
  Returns: Normalized array within new range.
___
Reference:
*Time Series Classification: A review of Algorithms and Implementations*.
 normalize_series(source, length, a, b) 
  Normalize the series to a optional range, usualy within `(-1, 1)` or `(0, 1)`.\
*Note that this may provide a different result than the array version due to rolling range*.
  Parameters:
     source (float) : Series to normalize.
     length (int) : Number of bars to sample the range.
     a (float) : Minimum target range value, `default=-1.0`.
     b (float) : Minimum target range value, `default= 1.0`.
  Returns: Normalized series within new range.
 method polar(data) 
  Turns a normalized sample array into polar coordinates.
  Namespace types: array
  Parameters:
     data (array) : Sampled data values.
  Returns: Converted array into polar coordinates.
 polar_series(source) 
  Turns a normalized series into polar coordinates.
  Parameters:
     source (float) : Source series.
  Returns: Converted series into polar coordinates.
 method gasf(data) 
  Gramian Angular Summation Field *`GASF`*.
  Namespace types: array
  Parameters:
     data (array) : Sampled data values.
  Returns: Matrix with *`GASF`* values.
 method gasf_id(data) 
  Trig. identity of Gramian Angular Summation Field *`GASF`*.
  Namespace types: array
  Parameters:
     data (array) : Sampled data values.
  Returns: Matrix with *`GASF`* values.
Reference:
*Time Series Classification: A review of Algorithms and Implementations*.
 method gadf(data) 
  Gramian Angular Difference Field *`GADF`*.
  Namespace types: array
  Parameters:
     data (array) : Sampled data values.
  Returns: Matrix with *`GADF`* values.
 method gadf_id(data) 
  Trig. identity of Gramian Angular Difference Field *`GADF`*.
  Namespace types: array
  Parameters:
     data (array) : Sampled data values.
  Returns: Matrix with *`GADF`* values.
Reference:
*Time Series Classification: A review of Algorithms and Implementations*.
CCOMET_Scanner_LibraryLibrary   "CCOMET_Scanner_Library" 
- A Trader's Edge (ATE)_Library was created to assist in constructing CCOMET Scanners
 Loc_tIDs_Col(_string, _firstLocation) 
  TickerIDs: You must form this single tickerID input string exactly as described in the scripts info panel (little gray 'i' that
is circled at the end of the settings in the settings/input panel that you can hover your cursor over this 'i' to read the
details of that particular input). IF the string is formed correctly then it will break up this single string parameter into
a total of 40 separate strings which will be all of the tickerIDs that the script is using in your CCOMET Scanner.
Locations: This function is used when there's a desire to print an assets ALERT LABELS. A set Location on the scale is assigned to each asset.
This is created so that if a lot of alerts are triggered, they will stay relatively visible and not overlap each other.
If you set your '_firstLocation' parameter as 1, since there are a max of 40 assets that can be scanned, the 1st asset's location
is assigned the value in the '_firstLocation' parameter, the 2nd asset's location is the (1st asset's location+1)...and so on.
  Parameters:
     _string (simple string) : (string)
A maximum of 40 Tickers (ALL joined as 1 string for the input parameter) that is formulated EXACTLY as described
within the tooltips of the TickerID inputs in my CCOMET Scanner scripts:
assets = input.text_area(tIDset1, title="TickerID (MUST READ TOOLTIP)", tooltip="Accepts 40 TICKERID's for each
copy of the script on the chart. TEXT FORMATTING RULES FOR TICKERID'S:
(1) To exclude the EXCHANGE NAME in the Labels, de-select the next input option.
(2) MUST have a space (' ') AFTER each TickerID.
(3) Capitalization in the Labels will match cap of these TickerID's.
(4) If your asset has a BaseCurrency & QuoteCurrency (ie. ADAUSDT  ) BUT you ONLY want Labels
to show BaseCurrency(ie.'ADA'), include a FORWARD SLASH ('/') between the Base & Quote (ie.'ADA/USDT')", display=display.none)
     _firstLocation (simple int) : (simple int)
Optional (starts at 1 if no parameter added).
Location that you want the first asset to print its label if is triggered to do so.
ie. loc2=loc1+1, loc3=loc2+1, etc.
  Returns: Returns 40 output variables in the tuple (ie. between the ' ') with the TickerIDs, 40 variables for the locations for alert labels, and 40 Colors for labels/plots
 TickeridForLabelsAndSecurity(_ticker, _includeExchange) 
  This function accepts the TickerID Name as its parameter and produces a single string that will be used in all of your labels.
  Parameters:
     _ticker (simple string) : (string)
For this parameter, input the varible named '_coin' from your 'f_main()' function for this parameter. It is the raw
Ticker ID name that will be processed.
     _includeExchange (simple bool) : (bool)
Optional (if parameter not included in function it defaults to false  ).
Used to determine if the Exchange name will be included in all labels/triggers/alerts.
  Returns: ( )
Returns 2 output variables:
1st ('_securityTickerid') is to be used in the 'request.security()' function as this string will contain everything
TV needs to pull the correct assets data.
2nd ('lblTicker') is to be used in all of the labels in your CCOMET Scanner as it will only contain what you want your labels
to show as determined by how the tickerID is formulated in the CCOMET Scanner's input.
 InvalID_LblSz(_barCnt, _close, _securityTickerid, _invalidArray, _tablePosition, _stackVertical, _lblSzRfrnce) 
  INVALID TICKERIDs: This is to add a table in the middle right of your chart that prints all the TickerID's that were either not formulated
correctly in the '_source' input or that is not a valid symbol and should be changed.
LABEL SIZES: This function sizes your Alert Trigger Labels according to the amount of Printed Bars the chart has printed within
a set time period, while also keeping in mind the smallest relative reference size you input in the 'lblSzRfrnceInput'
parameter of this function. A HIGHER % of Printed Bars(aka...more trades occurring for that asset on the exchange),
the LARGER the Name Label will print, potentially showing you the better opportunities on the exchange to avoid
exchange manipulation liquidations.
*** SHOULD NOT be used as size of labels that are your asset Name Labels next to each asset's Line Plot...
if your CCOMET Scanner includes these as you want these to be the same size for every asset so the larger ones dont cover the
smaller ones if the plots are all close to each other ***
  Parameters:
     _barCnt (float) : (float)
Get the 1st variable('barCnt') from the Security function's tuple and input it as this functions 1st input
parameter which will directly affect the size of the 2nd output variable ('alertTrigLabel') that is also outputted by this function.
     _close (float) : (float)
Put your 'close' variable named '_close' from the security function here.
     _securityTickerid (string) : (string)
Throughout the entire charts updates, if a '_close' value is never registered then the logic counts the asset as INVALID.
This will be the 1st TickerID variable (named _securityTickerid) outputted from the tuple of the TickeridForLabels()
function above this one.
     _invalidArray (array) : (array string)
Input the array from the original script that houses all of the invalidArray strings.
     _tablePosition (simple string) : (string)
Optional (if parameter not included, it defaults to position.middle_right). Location on the chart you want the table printed.
Possible strings include: position.top_center, position.top_left, position.top_right, position.middle_center,
position.middle_left, position.middle_right, position.bottom_center, position.bottom_left, position.bottom_right.
     _stackVertical (simple bool) : (bool)
Optional (if parameter not included, it defaults to true). All of the assets that are counted as INVALID will be
created in a list. If you want this list to be prited as a column then input 'true' here, otherwise they will all be in a row.
     _lblSzRfrnce (string) : (string)
Optional (if parameter not included, it defaults to size.small). This will be the size of the variable outputted
by this function named 'assetNameLabel' BUT also affects the size of the output variable 'alertTrigLabel' as it uses this parameter's size
as the smallest size for 'alertTrigLabel' then uses the '_barCnt' parameter to determine the next sizes up depending on the "_barCnt" value.
  Returns: ( )
Returns 2 variables:
1st output variable ('AssetNameLabel') is assigned to the size of the 'lblSzRfrnceInput' parameter.
2nd output variable('alertTrigLabel') can be of variying sizes depending on the 'barCnt' parameter...BUT the smallest
size possible for the 2nd output variable ('alertTrigLabel') will be the size set in the 'lblSzRfrnceInput' parameter.
 PrintedBarCount(_time, _barCntLength, _barCntPercentMin) 
  The Printed BarCount Filter looks back a User Defined amount of minutes and calculates the % of bars that have printed
out of the TOTAL amount of bars that COULD HAVE been printed within the same amount of time.
  Parameters:
     _time (int) : (int)
The time associated with the chart of the particular asset that is being screened at that point.
     _barCntLength (int) : (int)
The amount of time (IN MINUTES) that you want the logic to look back at to calculate the % of bars that have actually
printed in the span of time you input into this parameter.
     _barCntPercentMin (int) : (int)
The minimum % of Printed Bars of the asset being screened has to be GREATER than the value set in this parameter
for the output variable 'bc_gtg' to be true.
  Returns: ( )
Returns 2 outputs:
1st is the % of Printed Bars that have printed within the within the span of time you input in the '_barCntLength' parameter.
2nd is true/false according to if the Printed BarCount % is above the threshold that you input into the '_barCntPercentMin' parameter.
convergingpatternsLibrary   "convergingpatterns" 
Library having implementation of converging chart patterns
 getPatternNameByType(patternType) 
  Returns pattern name based on type
  Parameters:
     patternType (int) : integer value representing pattern type
  Returns: string name of the pattern
 method find(this, sProperties, dProperties, patterns, ohlcArray) 
  find converging patterns for given zigzag
  Namespace types: zg.Zigzag
  Parameters:
     this (Zigzag type from Trendoscope/ZigzagLite/2) : Current zigzag Object
     sProperties (ScanProperties) : ScanProperties Object
     dProperties (DrawingProperties type from Trendoscope/abstractchartpatterns/5) : DrawingProperties Object
     patterns (array type from Trendoscope/abstractchartpatterns/5) : array of existing patterns to check for duplicates
     ohlcArray (array type from Trendoscope/ohlc/1) : array of OHLC values for historical reference
  Returns: string name of the pattern
 ScanProperties 
  Object containing properties for pattern scanning
  Fields:
     baseProperties (ScanProperties type from Trendoscope/abstractchartpatterns/5) : Object of Base Scan Properties
     convergingDistanceMultiplier (series float) : when multiplied with pattern size gets the max number of bars within which the pattern should converge
simpletradeLibrary   "simpletrade" 
Library with Simple Trade types and tracking mechanism
 method evaluate(this) 
  Evaluate current trade and update status
  Namespace types: SimpleTrade
  Parameters:
     this (SimpleTrade) : SimpleTrade object that need to be evaluated
  Returns: current SimpleTrade object
 method erase(this) 
  Erase SimpleTrade drawings
  Namespace types: SimpleTrade
  Parameters:
     this (SimpleTrade) : SimpleTrade object that needs to be erased
  Returns: void
 method draw(this, offset, gap) 
  Draw SimpleTrade drawings
  Namespace types: SimpleTrade
  Parameters:
     this (SimpleTrade) : SimpleTrade object that needs to be drawn
     offset (int) : offset distance at which the drawing needs to be drawn.
     gap (int) : gap between start and end of the Simple trade drawings
  Returns: updated offset
 TradeDrawing 
  Object containing Trade drawings
  Fields:
     entryToStop (series box) : box showing entry to stop range
     entryToTarget (series box) : box showing entry to target range
     maxGain (series box) : box highlighting max gain of the Trade
     maxLoss (series box) : box highlighting max lowss of the Trade
     invalidationLine (series line) : line displaying trade invalidation price
     invalidationLabel (series label) : label displaying trade invalidation price
     stopLabel (series label) : label displaying trade stop price
     entryLabel (series label) : label displaying trade entry price
     targetLabel (series label) : label displaying trade target price
     patternLabel (series label) : label displaying trade pattern details
 SimpleTrade 
  Object containing Simple trade details for tracking
  Fields:
     id (series int) : Unique trade id
     pid (series int) : parent id for trade. Multiple trades can have single parent id
     dir (series int) : trade direction
     tradeName (series string) : Trade name or description
     tradeColor (series color) : color in which the trade needs to be drawn
     entry (series float) : trade entry price
     stop (series float) : trade stop price
     invalidation (series float) : trade invalidation price
     target (series float) : trade target price
     maxGainPrice (series float) : price at which the trade attained max gain
     maxLossPrice (series float) : price at which the trade attained max loss
     drawing (TradeDrawing) : TradeDrawing object contianing drawing items
     status (series int) : current status of the trade
     maxStatus (series int) : max status attained by the trade
basechartpatternsLibrary   "basechartpatterns" 
Library having complete chart pattern implementation
 getPatternNameById(id) 
  Returns pattern name by id
  Parameters:
     id (int) : pattern id
  Returns: Pattern name
 method find(points, properties, dProperties, ohlcArray) 
  Find patterns based on array of points
  Namespace types: chart.point 
  Parameters:
     points (chart.point ) : array of chart.point objects
     properties (ScanProperties type from Trendoscope/abstractchartpatterns/1) : ScanProperties object
     dProperties (DrawingProperties type from Trendoscope/abstractchartpatterns/1) : DrawingProperties object
     ohlcArray (OHLC  type from Trendoscope/ohlc/1) 
  Returns: Flag indicating if the pattern is valid, Current Pattern object
 method find(this, properties, dProperties, patterns, ohlcArray) 
  Find patterns based on the currect zigzag object but will not store them in the pattern array.
  Namespace types: zg.Zigzag
  Parameters:
     this (Zigzag type from Trendoscope/ZigzagLite/2) : Zigzag object containing pivots
     properties (ScanProperties type from Trendoscope/abstractchartpatterns/1) : ScanProperties object
     dProperties (DrawingProperties type from Trendoscope/abstractchartpatterns/1) : DrawingProperties object
     patterns (Pattern  type from Trendoscope/abstractchartpatterns/1) : Array of Pattern objects
     ohlcArray (OHLC  type from Trendoscope/ohlc/1) 
  Returns: Flag indicating if the pattern is valid, Current Pattern object
abstractchartpatternsLibrary   "abstractchartpatterns" 
Library having abstract types and methods for chart pattern implementations
 checkBarRatio(p1, p2, p3, properties) 
  checks if three zigzag pivot points are having uniform bar ratios
  Parameters:
     p1 (chart.point) : First pivot point
     p2 (chart.point) : Second pivot point
     p3 (chart.point) : Third pivot point
     properties (ScanProperties) 
  Returns: true if points are having uniform bar ratio
 getRatioDiff(p1, p2, p3) 
  gets ratio difference between 3 pivot combinations
  Parameters:
     p1 (chart.point) 
     p2 (chart.point) 
     p3 (chart.point) 
  Returns: returns the ratio difference between pivot2/pivot1 ratio and pivot3/pivot2 ratio
 method inspect(points, stratingBar, endingBar, direction, ohlcArray) 
  Creates a trend line between 2 or 3 points and validates and selects best combination
  Namespace types: chart.point 
  Parameters:
     points (chart.point ) : Array of chart.point objects used for drawing trend line
     stratingBar (int) : starting bar of the trend line
     endingBar (int) : ending bar of the trend line
     direction (float) : direction of the last pivot. Tells whether the line is joining upper pivots or the lower pivots
     ohlcArray (OHLC  type from Trendoscope/ohlc/1) : Array of OHLC values
  Returns: boolean flag indicating if the trend line is valid and the trend line object as tuple
 method draw(this) 
  draws pattern on the chart
  Namespace types: Pattern
  Parameters:
     this (Pattern) : Pattern object that needs to be drawn
  Returns: Current Pattern object
 method erase(this) 
  erase the given pattern on the chart
  Namespace types: Pattern
  Parameters:
     this (Pattern) : Pattern object that needs to be erased
  Returns: Current Pattern object
 method push(this, p, maxItems) 
  push Pattern object to the array by keeping maxItems limit
  Namespace types: Pattern 
  Parameters:
     this (Pattern ) : array of Pattern objects
     p (Pattern) : Pattern object to be added to array
@oaram maxItems Max number of items the array can hold
     maxItems (int) 
  Returns: Current Pattern array
 method deepcopy(this) 
  Perform deep copy of a chart point array
  Namespace types: chart.point 
  Parameters:
     this (chart.point ) : array of chart.point objects
  Returns: deep copy array
 DrawingProperties 
  Object containing properties for pattern drawing
  Fields:
     patternLineWidth (series int) : Line width of the pattern trend lines
     showZigzag (series bool) : show zigzag associated with pattern
     zigzagLineWidth (series int) : line width of the zigzag lines. Used only when showZigzag is set to true
     zigzagLineColor (series color) : color of the zigzag lines. Used only when showZigzag is set to true
     showPatternLabel (series bool) : display pattern label containing the name
     patternLabelSize (series string) : size of the pattern label. Used only when showPatternLabel is set to true
     showPivotLabels (series bool) : Display pivot labels of the patterns marking 1-6
     pivotLabelSize (series string) : size of the pivot label. Used only when showPivotLabels is set to true
     pivotLabelColor (series color) : color of the pivot label outline. chart.bg_color or chart.fg_color are the appropriate values.
     deleteOnPop (series bool) : delete the pattern when popping out from the array of Patterns.
 Pattern 
  Object containing Individual Pattern data
  Fields:
     points (chart.point ) 
     originalPoints (chart.point ) 
     trendLine1 (Line type from Trendoscope/LineWrapper/1) : First trend line joining pivots 1, 3, 5
     trendLine2 (Line type from Trendoscope/LineWrapper/1) : Second trend line joining pivots 2, 4 (, 6)
     properties (DrawingProperties) : DrawingProperties Object carrying common properties
     patternColor (series color) : Individual pattern color. Lines and labels will be using this color.
     ratioDiff (series float) : Difference between trendLine1 and trendLine2 ratios
     zigzagLine (series polyline) : Internal zigzag line drawing Object
     pivotLabels (label ) : array containning Pivot labels
     patternLabel (series label) : pattern label Object
     patternType (series int) : integer representing the pattern type
     patternName (series string) : Type of pattern in string
 ScanProperties 
  Object containing properties for pattern scanning
  Fields:
     offset (series int) : Zigzag pivot offset. Set it to 1 for non repainting scan.
     numberOfPivots (series int) : Number of pivots to be used in pattern search. Can be either 5 or 6
     errorRatio (series float) : Error Threshold to be considered for comparing the slope of lines
     flatRatio (series float) : Retracement ratio threshold used to determine if the lines are flat
     checkBarRatio (series bool) : Also check bar ratio are within the limits while scanning the patterns
     barRatioLimit (series float) : Bar ratio limit used for checking the bars. Used only when checkBarRatio is set to true
     avoidOverlap (series bool) : avoid overlapping patterns.
     allowedPatterns (bool ) : array of bool encoding the allowed pattern types.
     allowedLastPivotDirections (int ) : array of int representing allowed last pivot direction for each pattern types
     themeColors (color ) : color array of themes to be used.
ohlcLibrary   "ohlc" 
Library having OHLC and Indicator type and method implementations.
 getOhlcArray(o, h, l, c, barindex, bartime, indicators) 
  get array of OHLC values when called on every bar
  Parameters:
     o (float) : Open price
     h (float) : High Price
     l (float) : Low Price
     c (float) : Close Price
     barindex (int) : bar_index of OHLC data
     bartime (int) : time of OHLC cata
     indicators (Indicator ) : array containing indicator
  Returns: Array of OHLC objects
 push(this, item, maxItems) 
  Push items to OHLC array with maxItems limit
  Parameters:
     this (OHLC ) 
     item (OHLC) : OHLC Item to be pushed to the array
     maxItems (int) : max Items the array can hold at a time
  Returns: current object
 push(this, item, maxItems) 
  Push items to Indicator array with maxItems limit
  Parameters:
     this (Indicator ) 
     item (Indicator) : Indicator Item to be pushed to the array
     maxItems (int) : max Items the array can hold at a time
  Returns: current object
 unshift(this, item, maxItems) 
  Unshift items to OHLC array with maxItems limit
  Parameters:
     this (OHLC ) 
     item (OHLC) : OHLC Item to be unshifted to the array
     maxItems (int) : max Items the array can hold at a time
  Returns: current object
 unshift(this, item, maxItems) 
  Unshift items to Indicator array with maxItems limit
  Parameters:
     this (Indicator ) 
     item (Indicator) : Indicator Item to be unshifted to the array
     maxItems (int) : max Items the array can hold at a time
  Returns: current object
 method getPoints(indicators) 
  get array of points based on array of indicator values
  Namespace types: Indicator 
  Parameters:
     indicators (Indicator ) : Array containing indicator objects
  Returns: array of indicator points
 method plot(indicator, xloc, line_color, line_style, line_width) 
  plots an array of Indicator using polyline
  Namespace types: Indicator 
  Parameters:
     indicator (Indicator ) : Array containing indicator objects
     xloc (string) : can have values xloc.bar_index or xloc.bar_time. Used for drawing the line based on either bars or time.
     line_color (color) : color in which the plots need to be printed on chart.
     line_style (string) : line style line.style_solid, line.style_dotted, line.style_dashed, line.style_arrow_right, line.style_arrow_left, line.style_arrow_both
     line_width (int) : width of the plot line
  Returns: array of plot polyline
 Indicator 
  Object containing Indicator name and value
  Fields:
     name (series string) : Indicator Name
     value (chart.point) : Indicator Value as a chart point
 OHLC 
  Object containing OHLC and indicator values
  Fields:
     o (series float) : Open price
     h (series float) : High Price
     l (series float) : Low Price
     c (series float) : Close Price
     barindex (series int) : bar_index of OHLC data
     bartime (series int) : time of OHLC cata
     indicators (Indicator ) : array containing indicator
chartpatternsLibrary   "chartpatterns" 
Library having complete chart pattern implementation
 method draw(this) 
  draws pattern on the chart
  Namespace types: Pattern
  Parameters:
     this (Pattern) : Pattern object that needs to be drawn
  Returns: Current Pattern object
 method erase(this) 
  erase the given pattern on the chart
  Namespace types: Pattern
  Parameters:
     this (Pattern) : Pattern object that needs to be erased
  Returns: Current Pattern object
 method findPattern(this, properties, patterns) 
  Find patterns based on the currect zigzag object and store them in the patterns array
  Namespace types: zg.Zigzag
  Parameters:
     this (Zigzag type from Trendoscope/ZigzagLite/2) : Zigzag object containing pivots
     properties (PatternProperties) : PatternProperties object
     patterns (Pattern ) : Array of Pattern objects
  Returns: Current Pattern object
 PatternProperties 
  Object containing properties for pattern scanning
  Fields:
     offset (series int) : Zigzag pivot offset. Set it to 1 for non repainting scan.
     numberOfPivots (series int) : Number of pivots to be used in pattern search. Can be either 5 or 6
     errorRatio (series float) : Error Threshold to be considered for comparing the slope of lines
     flatRatio (series float) : Retracement ratio threshold used to determine if the lines are flat
     checkBarRatio (series bool) : Also check bar ratio are within the limits while scanning the patterns
     barRatioLimit (series float) : Bar ratio limit used for checking the bars. Used only when checkBarRatio is set to true
     avoidOverlap (series bool) 
     patternLineWidth (series int) : Line width of the pattern trend lines
     showZigzag (series bool) : show zigzag associated with pattern
     zigzagLineWidth (series int) : line width of the zigzag lines. Used only when showZigzag is set to true
     zigzagLineColor (series color) : color of the zigzag lines. Used only when showZigzag is set to true
     showPatternLabel (series bool) : display pattern label containing the name
     patternLabelSize (series string) : size of the pattern label. Used only when showPatternLabel is set to true
     showPivotLabels (series bool) : Display pivot labels of the patterns marking 1-6
     pivotLabelSize (series string) : size of the pivot label. Used only when showPivotLabels is set to true
     pivotLabelColor (series color) : color of the pivot label outline. chart.bg_color or chart.fg_color are the appropriate values.
     allowedPatterns (bool ) : array of bool encoding the allowed pattern types.
     themeColors (color ) : color array of themes to be used.
 Pattern 
  Object containing Individual Pattern data
  Fields:
     pivots (Pivot  type from Trendoscope/ZigzagLite/2) : array of Zigzag Pivot points
     trendLine1 (Line type from Trendoscope/LineWrapper/1) : First trend line joining pivots 1, 3, 5
     trendLine2 (Line type from Trendoscope/LineWrapper/1) : Second trend line joining pivots 2, 4 (, 6)
     properties (PatternProperties) : PatternProperties Object carrying common properties
     patternColor (series color) : Individual pattern color. Lines and labels will be using this color.
     ratioDiff (series float) : Difference between trendLine1 and trendLine2 ratios
     zigzagLine (series polyline) : Internal zigzag line drawing Object
     pivotLabels (label ) : array containning Pivot labels
     patternLabel (series label) : pattern label Object
     patternType (series int) : integer representing the pattern type
     patternName (series string) : Type of pattern in string
LineWrapperLibrary   "LineWrapper" 
Wrapper Type for Line. Useful when you want to store the line details without drawing them. Can also be used in scnearios where you collect lines to be drawn and draw together towards the end.
 method draw(this) 
  draws line as per the wrapper object contents
  Namespace types: Line
  Parameters:
     this (Line) : (series Line) Line object.
  Returns: current Line object
 method draw(this) 
  draws lines as per the wrapper object array
  Namespace types: Line 
  Parameters:
     this (Line ) : (series array) Array of Line object.
  Returns: current Array of Line objects
 method update(this) 
  updates or redraws line as per the wrapper object contents
  Namespace types: Line
  Parameters:
     this (Line) : (series Line) Line object.
  Returns: current Line object
 method update(this) 
  updates or redraws lines as per the wrapper object array
  Namespace types: Line 
  Parameters:
     this (Line ) : (series array) Array of Line object.
  Returns: current Array of Line objects
 method delete(this) 
  Deletes the underlying line drawing object
  Namespace types: Line
  Parameters:
     this (Line) : (series Line) Line object.
  Returns: Current Line object
 method get_price(this, bar) 
  get line price based on bar
  Namespace types: Line
  Parameters:
     this (Line) : (series Line) Line object.
     bar (int) : (series/int) bar at which line price need to be calculated
  Returns: line price at given bar.
 Line 
  Line Wrapper object
  Fields:
     p1 (chart.point) 
     p2 (chart.point) 
     xloc (series string) : (series string) See description of x1 argument. Possible values: xloc.bar_index and xloc.bar_time. Default is xloc.bar_index.
     extend (series string) : (series string) If extend=extend.none, draws segment starting at point (x1, y1) and ending at point (x2, y2). If extend is equal to extend.right or extend.left, draws a ray starting at point (x1, y1) or (x2, y2), respectively. If extend=extend.both, draws a straight line that goes through these points. Default value is extend.none.
     color (series color) : (series color) Line color.
     style (series string) : (series string) Line style. Possible values: line.style_solid, line.style_dotted, line.style_dashed, line.style_arrow_left, line.style_arrow_right, line.style_arrow_both.
     width (series int) : (series int) Line width in pixels.
     obj (series line) : line object
ZigzagLiteLibrary   "ZigzagLite" 
Lighter version of the Zigzag Library. Without indicators and sub-component divisions
 method getPrices(pivots) 
  Gets the array of prices from array of Pivots
  Namespace types: Pivot 
  Parameters:
     pivots (Pivot ) : array array of Pivot objects
  Returns: array array of pivot prices
 method getBars(pivots) 
  Gets the array of bars from array of Pivots
  Namespace types: Pivot 
  Parameters:
     pivots (Pivot ) : array array of Pivot objects
  Returns: array array of pivot bar indices
 method getPoints(pivots) 
  Gets the array of chart.point from array of Pivots
  Namespace types: Pivot 
  Parameters:
     pivots (Pivot ) : array array of Pivot objects
  Returns: array array of pivot points
 method getPoints(this) 
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) 
 method calculate(this, ohlc, ltfHighTime, ltfLowTime) 
  Calculate zigzag based on input values and indicator values
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) : Zigzag object
     ohlc (float ) : Array containing OHLC values. Can also have custom values for which zigzag to be calculated
     ltfHighTime (int) : Used for multi timeframe zigzags when called within request.security. Default value is current timeframe open time.
     ltfLowTime (int) : Used for multi timeframe zigzags when called within request.security. Default value is current timeframe open time.
  Returns: current Zigzag object
 method calculate(this) 
  Calculate zigzag based on properties embedded within Zigzag object
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) : Zigzag object
  Returns: current Zigzag object
 method nextlevel(this) 
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) 
 method clear(this) 
  Clears zigzag drawings array
  Namespace types: ZigzagDrawing 
  Parameters:
     this (ZigzagDrawing ) : array
  Returns: void
 method clear(this) 
  Clears zigzag drawings array
  Namespace types: ZigzagDrawingPL 
  Parameters:
     this (ZigzagDrawingPL ) : array
  Returns: void
 method drawplain(this) 
  draws fresh zigzag based on properties embedded in ZigzagDrawing object without trying to calculate
  Namespace types: ZigzagDrawing
  Parameters:
     this (ZigzagDrawing) : ZigzagDrawing object
  Returns: ZigzagDrawing object
 method drawplain(this) 
  draws fresh zigzag based on properties embedded in ZigzagDrawingPL object without trying to calculate
  Namespace types: ZigzagDrawingPL
  Parameters:
     this (ZigzagDrawingPL) : ZigzagDrawingPL object
  Returns: ZigzagDrawingPL object
 method drawfresh(this, ohlc) 
  draws fresh zigzag based on properties embedded in ZigzagDrawing object
  Namespace types: ZigzagDrawing
  Parameters:
     this (ZigzagDrawing) : ZigzagDrawing object
     ohlc (float ) : values on which the zigzag needs to be calculated and drawn. If not set will use regular OHLC
  Returns: ZigzagDrawing object
 method drawcontinuous(this, ohlc) 
  draws zigzag based on the zigzagmatrix input
  Namespace types: ZigzagDrawing
  Parameters:
     this (ZigzagDrawing) : ZigzagDrawing object
     ohlc (float ) : values on which the zigzag needs to be calculated and drawn. If not set will use regular OHLC
  Returns:  
 PivotCandle 
  PivotCandle represents data of the candle which forms either pivot High or pivot low or both
  Fields:
     _high (series float) : High price of candle forming the pivot
     _low (series float) : Low price of candle forming the pivot
     length (series int) : Pivot length
     pHighBar (series int) : represents number of bar back the pivot High occurred.
     pLowBar (series int) : represents number of bar back the pivot Low occurred.
     pHigh (series float) : Pivot High Price
     pLow (series float) : Pivot Low Price
 Pivot 
  Pivot refers to zigzag pivot. Each pivot can contain various data
  Fields:
     point (chart.point) : 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
     ratio (series float) : Price Ratio based on previous two pivots
     sizeRatio (series float) 
 ZigzagFlags 
  Flags required for drawing zigzag. Only used internally in zigzag calculation. Should not set the values explicitly
  Fields:
     newPivot (series bool) : true if the calculation resulted in new pivot
     doublePivot (series bool) : true if the calculation resulted in two pivots on same bar
     updateLastPivot (series bool) : true if new pivot calculated replaces the old one.
 Zigzag 
  Zigzag object which contains whole zigzag calculation parameters and pivots
  Fields:
     length (series int) : Zigzag length. Default value is 5
     numberOfPivots (series int) : max number of pivots to hold in the calculation. Default value is 20
     offset (series int) : Bar offset to be considered for calculation of zigzag. Default is 0 - which means calculation is done based on the latest bar.
     level (series int) : Zigzag calculation level - used in multi level recursive zigzags
     zigzagPivots (Pivot ) : array which holds the last n pivots calculated.
     flags (ZigzagFlags) : ZigzagFlags object which is required for continuous drawing of zigzag lines.
 ZigzagObject 
  Zigzag Drawing Object
  Fields:
     zigzagLine (series line) : Line joining two pivots
     zigzagLabel (series label) : 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 (series color) : Zigzag line color. Default is color.blue
     lineWidth (series int) : Zigzag line width. Default is 1
     lineStyle (series string) : Zigzag line style. Default is line.style_solid.
     showLabel (series bool) : If set, the drawing will show labels on each pivot. Default is false
     textColor (series color) : Text color of the labels. Only applicable if showLabel is set to true.
     maxObjects (series int) : Max number of zigzag lines to display. Default is 300
     xloc (series string) : Time/Bar reference to be used for zigzag drawing. Default is Time - xloc.bar_time.
     curved (series bool) : Boolean field to print curved zigzag - used only with polyline implementation
 ZigzagDrawing 
  Object which holds complete zigzag drawing objects and properties.
  Fields:
     zigzag (Zigzag) : Zigzag object which holds the calculations.
     properties (ZigzagProperties) : ZigzagProperties object which is used for setting the display styles of zigzag
     drawings (ZigzagObject ) : array which contains lines and labels of zigzag drawing.
 ZigzagDrawingPL 
  Object which holds complete zigzag drawing objects and properties - polyline version
  Fields:
     zigzag (Zigzag) : Zigzag object which holds the calculations.
     properties (ZigzagProperties) : ZigzagProperties object which is used for setting the display styles of zigzag
     zigzagLabels (label ) 
     zigzagLine (series polyline) : polyline object of zigzag lines
arraysLibrary   "arraymethods" 
Supplementary array methods.
 delete(arr, index) 
  remove int object from array of integers at specific index
  Parameters:
     arr : int array
     index : index at which int object need to be removed
  Returns: void
 delete(arr, index) 
  remove float object from array of float at specific index
  Parameters:
     arr : float array
     index : index at which float object need to be removed
  Returns: float
 delete(arr, index) 
  remove bool object from array of bool at specific index
  Parameters:
     arr : bool array
     index : index at which bool object need to be removed
  Returns: bool
 delete(arr, index) 
  remove string object from array of string at specific index
  Parameters:
     arr : string array
     index : index at which string object need to be removed
  Returns: string
 delete(arr, index) 
  remove color object from array of color at specific index
  Parameters:
     arr : color array
     index : index at which color object need to be removed
  Returns: color
 delete(arr, index) 
  remove line object from array of lines at specific index and deletes the line
  Parameters:
     arr : line array
     index : index at which line object need to be removed and deleted
  Returns: void
 delete(arr, index) 
  remove label object from array of labels at specific index and deletes the label
  Parameters:
     arr : label array
     index : index at which label object need to be removed and deleted
  Returns: void
 delete(arr, index) 
  remove box object from array of boxes at specific index and deletes the box
  Parameters:
     arr : box array
     index : index at which box object need to be removed and deleted
  Returns: void
 delete(arr, index) 
  remove table object from array of tables at specific index and deletes the table
  Parameters:
     arr : table array
     index : index at which table object need to be removed and deleted
  Returns: void
 delete(arr, index) 
  remove linefill object from array of linefills at specific index and deletes the linefill
  Parameters:
     arr : linefill array
     index : index at which linefill object need to be removed and deleted
  Returns: void
 popr(arr) 
  remove last int object from array
  Parameters:
     arr : int array
  Returns: int
 popr(arr) 
  remove last float object from array
  Parameters:
     arr : float array
  Returns: float
 popr(arr) 
  remove last bool object from array
  Parameters:
     arr : bool array
  Returns: bool
 popr(arr) 
  remove last string object from array
  Parameters:
     arr : string array
  Returns: string
 popr(arr) 
  remove last color object from array
  Parameters:
     arr : color array
  Returns: color
 popr(arr) 
  remove and delete last line object from array
  Parameters:
     arr : line array
  Returns: void
 popr(arr) 
  remove and delete last label object from array
  Parameters:
     arr : label array
  Returns: void
 popr(arr) 
  remove and delete last box object from array
  Parameters:
     arr : box array
  Returns: void
 popr(arr) 
  remove and delete last table object from array
  Parameters:
     arr : table array
  Returns: void
 popr(arr) 
  remove and delete last linefill object from array
  Parameters:
     arr : linefill array
  Returns: void
 shiftr(arr) 
  remove first int object from array
  Parameters:
     arr : int array
  Returns: int
 shiftr(arr) 
  remove first float object from array
  Parameters:
     arr : float array
  Returns: float
 shiftr(arr) 
  remove first bool object from array
  Parameters:
     arr : bool array
  Returns: bool
 shiftr(arr) 
  remove first string object from array
  Parameters:
     arr : string array
  Returns: string
 shiftr(arr) 
  remove first color object from array
  Parameters:
     arr : color array
  Returns: color
 shiftr(arr) 
  remove and delete first line object from array
  Parameters:
     arr : line array
  Returns: void
 shiftr(arr) 
  remove and delete first label object from array
  Parameters:
     arr : label array
  Returns: void
 shiftr(arr) 
  remove and delete first box object from array
  Parameters:
     arr : box array
  Returns: void
 shiftr(arr) 
  remove and delete first table object from array
  Parameters:
     arr : table array
  Returns: void
 shiftr(arr) 
  remove and delete first linefill object from array
  Parameters:
     arr : linefill array
  Returns: void
 push(arr, val, maxItems) 
  add int to the end of an array with max items cap. Objects are removed from start to maintain max items cap
  Parameters:
     arr : int array
     val : int object to be pushed
     maxItems : max number of items array can hold
  Returns: int 
 push(arr, val, maxItems) 
  add float to the end of an array with max items cap. Objects are removed from start to maintain max items cap
  Parameters:
     arr : float array
     val : float object to be pushed
     maxItems : max number of items array can hold
  Returns: float 
 push(arr, val, maxItems) 
  add bool to the end of an array with max items cap. Objects are removed from start to maintain max items cap
  Parameters:
     arr : bool array
     val : bool object to be pushed
     maxItems : max number of items array can hold
  Returns: bool 
 push(arr, val, maxItems) 
  add string to the end of an array with max items cap. Objects are removed from start to maintain max items cap
  Parameters:
     arr : string array
     val : string object to be pushed
     maxItems : max number of items array can hold
  Returns: string 
 push(arr, val, maxItems) 
  add color to the end of an array with max items cap. Objects are removed from start to maintain max items cap
  Parameters:
     arr : color array
     val : color object to be pushed
     maxItems : max number of items array can hold
  Returns: color 
 push(arr, val, maxItems) 
  add line to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
  Parameters:
     arr : line array
     val : line object to be pushed
     maxItems : max number of items array can hold
  Returns: line 
 push(arr, val, maxItems) 
  add label to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
  Parameters:
     arr : label array
     val : label object to be pushed
     maxItems : max number of items array can hold
  Returns: label 
 push(arr, val, maxItems) 
  add box to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
  Parameters:
     arr : box array
     val : box object to be pushed
     maxItems : max number of items array can hold
  Returns: box 
 push(arr, val, maxItems) 
  add table to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
  Parameters:
     arr : table array
     val : table object to be pushed
     maxItems : max number of items array can hold
  Returns: table 
 push(arr, val, maxItems) 
  add linefill to the end of an array with max items cap. Objects are removed and deleted from start to maintain max items cap
  Parameters:
     arr : linefill array
     val : linefill object to be pushed
     maxItems : max number of items array can hold
  Returns: linefill 
 unshift(arr, val, maxItems) 
  add int to the beginning of an array with max items cap. Objects are removed from end to maintain max items cap
  Parameters:
     arr : int array
     val : int object to be unshift
     maxItems : max number of items array can hold
  Returns: int 
 unshift(arr, val, maxItems) 
  add float to the beginning of an array with max items cap. Objects are removed from end to maintain max items cap
  Parameters:
     arr : float array
     val : float object to be unshift
     maxItems : max number of items array can hold
  Returns: float 
 unshift(arr, val, maxItems) 
  add bool to the beginning of an array with max items cap. Objects are removed from end to maintain max items cap
  Parameters:
     arr : bool array
     val : bool object to be unshift
     maxItems : max number of items array can hold
  Returns: bool 
 unshift(arr, val, maxItems) 
  add string to the beginning of an array with max items cap. Objects are removed from end to maintain max items cap
  Parameters:
     arr : string array
     val : string object to be unshift
     maxItems : max number of items array can hold
  Returns: string 
 unshift(arr, val, maxItems) 
  add color to the beginning of an array with max items cap. Objects are removed from end to maintain max items cap
  Parameters:
     arr : color array
     val : color object to be unshift
     maxItems : max number of items array can hold
  Returns: color 
 unshift(arr, val, maxItems) 
  add line to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
  Parameters:
     arr : line array
     val : line object to be unshift
     maxItems : max number of items array can hold
  Returns: line 
 unshift(arr, val, maxItems) 
  add label to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
  Parameters:
     arr : label array
     val : label object to be unshift
     maxItems : max number of items array can hold
  Returns: label 
 unshift(arr, val, maxItems) 
  add box to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
  Parameters:
     arr : box array
     val : box object to be unshift
     maxItems : max number of items array can hold
  Returns: box 
 unshift(arr, val, maxItems) 
  add table to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
  Parameters:
     arr : table array
     val : table object to be unshift
     maxItems : max number of items array can hold
  Returns: table 
 unshift(arr, val, maxItems) 
  add linefill to the beginning of an array with max items cap. Objects are removed and deleted from end to maintain max items cap
  Parameters:
     arr : linefill array
     val : linefill object to be unshift
     maxItems : max number of items array can hold
  Returns: linefill 
 flush(arr) 
  remove all int objects in an array
  Parameters:
     arr : int array
  Returns: int 
 flush(arr) 
  remove all float objects in an array
  Parameters:
     arr : float array
  Returns: float 
 flush(arr) 
  remove all bool objects in an array
  Parameters:
     arr : bool array
  Returns: bool 
 flush(arr) 
  remove all string objects in an array
  Parameters:
     arr : string array
  Returns: string 
 flush(arr) 
  remove all color objects in an array
  Parameters:
     arr : color array
  Returns: color 
 flush(arr) 
  remove and delete all line objects in an array
  Parameters:
     arr : line array
  Returns: line 
 flush(arr) 
  remove and delete all label objects in an array
  Parameters:
     arr : label array
  Returns: label 
 flush(arr) 
  remove and delete all box objects in an array
  Parameters:
     arr : box array
  Returns: box 
 flush(arr) 
  remove and delete all table objects in an array
  Parameters:
     arr : table array
  Returns: table 
 flush(arr) 
  remove and delete all linefill objects in an array
  Parameters:
     arr : linefill array
  Returns: linefill
ZigzagLibrary   "Zigzag" 
Zigzag related user defined types. Depends on DrawingTypes library for basic types
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts ZigzagTypes/Pivot object to string representation
  Namespace types: Pivot
  Parameters:
     this (Pivot) : ZigzagTypes/Pivot
     sortKeys (bool) : If set to true, string output is sorted by keys.
     sortOrder (int) : Applicable only if sortKeys is set to true. Positive number will sort them in ascending order whreas negative numer will sort them in descending order. Passing 0 will not sort the keys
     includeKeys (string ) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of ZigzagTypes/Pivot
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts Array of Pivot objects to string representation
  Namespace types: Pivot 
  Parameters:
     this (Pivot ) : Pivot object array
     sortKeys (bool) : If set to true, string output is sorted by keys.
     sortOrder (int) : Applicable only if sortKeys is set to true. Positive number will sort them in ascending order whreas negative numer will sort them in descending order. Passing 0 will not sort the keys
     includeKeys (string ) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of Pivot object array
 method tostring(this) 
  Converts ZigzagFlags object to string representation
  Namespace types: ZigzagFlags
  Parameters:
     this (ZigzagFlags) : ZigzagFlags object
  Returns: string representation of ZigzagFlags
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts ZigzagTypes/Zigzag object to string representation
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) : ZigzagTypes/Zigzagobject
     sortKeys (bool) : If set to true, string output is sorted by keys.
     sortOrder (int) : Applicable only if sortKeys is set to true. Positive number will sort them in ascending order whreas negative numer will sort them in descending order. Passing 0 will not sort the keys
     includeKeys (string ) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of ZigzagTypes/Zigzag
 method calculate(this, ohlc, indicators, indicatorNames) 
  Calculate zigzag based on input values and indicator values
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) : Zigzag object
     ohlc (float ) : Array containing OHLC values. Can also have custom values for which zigzag to be calculated
     indicators (matrix) : Array of indicator values
     indicatorNames (string ) : Array of indicator names for which values are present. Size of indicators array should be equal to that of indicatorNames
  Returns: current Zigzag object
 method calculate(this) 
  Calculate zigzag based on properties embedded within Zigzag object
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) : Zigzag object
  Returns: current Zigzag object
 method nextlevel(this) 
  Calculate Next Level Zigzag based on the current calculated zigzag object
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) : Zigzag object
  Returns: Next Level Zigzag object
 method clear(this) 
  Clears zigzag drawings array
  Namespace types: ZigzagDrawing 
  Parameters:
     this (ZigzagDrawing ) : array
  Returns: void
 method drawplain(this) 
  draws fresh zigzag based on properties embedded in ZigzagDrawing object without trying to calculate
  Namespace types: ZigzagDrawing
  Parameters:
     this (ZigzagDrawing) : ZigzagDrawing object
  Returns: ZigzagDrawing object
 method drawfresh(this, ohlc, indicators, indicatorNames) 
  draws fresh zigzag based on properties embedded in ZigzagDrawing object
  Namespace types: ZigzagDrawing
  Parameters:
     this (ZigzagDrawing) : ZigzagDrawing object
     ohlc (float ) : values on which the zigzag needs to be calculated and drawn. If not set will use regular OHLC
     indicators (matrix) : Array of indicator values
     indicatorNames (string ) : Array of indicator names for which values are present. Size of indicators array should be equal to that of indicatorNames
  Returns: ZigzagDrawing object
 method drawcontinuous(this, ohlc, indicators, indicatorNames) 
  draws zigzag based on the zigzagmatrix input
  Namespace types: ZigzagDrawing
  Parameters:
     this (ZigzagDrawing) : ZigzagDrawing object
     ohlc (float ) : values on which the zigzag needs to be calculated and drawn. If not set will use regular OHLC
     indicators (matrix) : Array of indicator values
     indicatorNames (string ) : Array of indicator names for which values are present. Size of indicators array should be equal to that of indicatorNames
  Returns:  
 method getPrices(pivots) 
  Namespace types: Pivot 
  Parameters:
     pivots (Pivot ) 
 method getBars(pivots) 
  Namespace types: Pivot 
  Parameters:
     pivots (Pivot ) 
 Indicator 
  Indicator is collection of indicator values applied on high, low and close
  Fields:
     indicatorHigh (series float) : Indicator Value applied on High
     indicatorLow (series float) : Indicator Value applied on Low
 PivotCandle 
  PivotCandle represents data of the candle which forms either pivot High or pivot low or both
  Fields:
     _high (series float) : High price of candle forming the pivot
     _low (series float) : Low price of candle forming the pivot
     length (series int) : Pivot length
     pHighBar (series int) : represents number of bar back the pivot High occurred.
     pLowBar (series int) : represents number of bar back the pivot Low occurred.
     pHigh (series float) : Pivot High Price
     pLow (series float) : Pivot Low Price
     indicators (Indicator ) : Array of Indicators - allows to add multiple
 Pivot 
  Pivot refers to zigzag pivot. Each pivot can contain various data
  Fields:
     point (chart.point) : 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
     microComponents (series int) : is the number of base zigzag components in a zigzag wave
     ratio (series float) : Price Ratio based on previous two pivots
     sizeRatio (series float) 
     subPivots (Pivot ) 
     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
 ZigzagFlags 
  Flags required for drawing zigzag. Only used internally in zigzag calculation. Should not set the values explicitly
  Fields:
     newPivot (series bool) : true if the calculation resulted in new pivot
     doublePivot (series bool) : true if the calculation resulted in two pivots on same bar
     updateLastPivot (series bool) : true if new pivot calculated replaces the old one.
 Zigzag 
  Zigzag object which contains whole zigzag calculation parameters and pivots
  Fields:
     length (series int) : Zigzag length. Default value is 5
     numberOfPivots (series int) : max number of pivots to hold in the calculation. Default value is 20
     offset (series int) : Bar offset to be considered for calculation of zigzag. Default is 0 - which means calculation is done based on the latest bar.
     level (series int) : Zigzag calculation level - used in multi level recursive zigzags
     zigzagPivots (Pivot ) : array which holds the last n pivots calculated.
     flags (ZigzagFlags) : ZigzagFlags object which is required for continuous drawing of zigzag lines.
 ZigzagObject 
  Zigzag Drawing Object
  Fields:
     zigzagLine (series line) : Line joining two pivots
     zigzagLabel (series label) : 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 (series color) : Zigzag line color. Default is color.blue
     lineWidth (series int) : Zigzag line width. Default is 1
     lineStyle (series string) : Zigzag line style. Default is line.style_solid.
     showLabel (series bool) : If set, the drawing will show labels on each pivot. Default is false
     textColor (series color) : Text color of the labels. Only applicable if showLabel is set to true.
     maxObjects (series int) : Max number of zigzag lines to display. Default is 300
     xloc (series string) : 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:
     zigzag (Zigzag) : Zigzag object which holds the calculations.
     properties (ZigzagProperties) : ZigzagProperties object which is used for setting the display styles of zigzag
     drawings (ZigzagObject ) : array which contains lines and labels of zigzag drawing.
ColorPalettesThis is my first public (and I hope not the last) library providing different color palettes used for data visualization. Each palette can contain either 3 to  9  colors or 3 to  11  colors.
So there you go. Happy New Year!
I want your new year to be as colorful, vibrant and rich as these color palettes.
Dedicated to  @veryfid . RIP, dude.
 --- 
Library   "ColorPalettes" 
A library of various color palettes for data visualization
 Reds(n) 
  A function to generate the sequential `Reds` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Reds` palette.
 Blues(n) 
  A function to generate the sequential `Blues` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Blues` palette.
 Greens(n) 
  A function to generate the sequential `Greens` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Greens` palette.
 Purples(n) 
  A function to generate the sequential `Purples` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Purples` palette.
 Oranges(n) 
  A function to generate the sequential `Oranges` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Oranges` palette.
 Greys(n) 
  A function to generate the sequential `Greys` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Greys` palette.
 YlGn(n) 
  A function to generate the sequential `YlGn` (Yellow/Green) palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `YlGn` palette.
 YlGnBu(n) 
  A function to generate the sequential `YlGnBu` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `YlGnBu` palette.
 GnBu(n) 
  A function to generate the sequential `GnBu` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `GnBu` palette.
 BuGn(n) 
  A function to generate the sequential `BuGn` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `BuGn` palette.
 PuBuGn(n) 
  A function to generate the sequential `PuBuGn` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `PuBuGn` palette.
 PuBu(n) 
  A function to generate the sequential `PuBu` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `PuBu` palette.
 BuPu(n) 
  A function to generate the sequential `BuPu` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `BuPu` palette.
 RdPu(n) 
  A function to generate the sequential `RdPu` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `RdPu` palette.
 PuRd(n) 
  A function to generate the sequential `PuRd` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `PuRd` palette.
 OrRd(n) 
  A function to generate the sequential `OrRd` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `OrRd` palette.
 YlOrRd(n) 
  A function to generate the sequential `YlOrRd` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `YlOrRd` palette.
 YlOrBr(n) 
  A function to generate the sequential `YlOrBr` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `YlOrBr` palette.
 Inferno(n) 
  A function to generate the sequential `Inferno` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Inferno` palette.
 Magma(n) 
  A function to generate the sequential `Magma` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Magma` palette.
 Plasma(n) 
  A function to generate the sequential `Plasma` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Plasma` palette.
 Viridis(n) 
  A function to generate the sequential `Viridis` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Viridis` palette.
 Cividis(n) 
  A function to generate the sequential `Cividis` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Cividis` palette.
 Spectral(n) 
  A function to generate the diverging `Spectral` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Spectral` palette.
 Turbo(n) 
  A function to generate the diverging `Turbo` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `Turbo` palette.
 BrBG(n) 
  A function to generate the diverging `BrBG` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `BrBG` palette.
 PiYG(n) 
  A function to generate the diverging `PiYG` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `PiYG` palette.
 PRGn(n) 
  A function to generate the diverging `PRGn` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `PRGn` palette.
 PuOr(n) 
  A function to generate the diverging `PuOr` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `PuOr` palette.
 RdBu(n) 
  A function to generate the diverging `RdBu` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `RdBu` palette.
 RdGy(n) 
  A function to generate the diverging `RdGy` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `RdGy` palette.
 RdYlBu(n) 
  A function to generate the diverging `RdYlBu` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `RdYlBu` palette.
 RdYlGn(n) 
  A function to generate the diverging `RdYlGn` palette of the specified size.
  Parameters:
     n (int)  The size of the output palette to generate. Default is 9.
  Returns: An array of colors from the `RdYlGn` palette.






















