utilsLibrary   "utils" 
Few essentials captured together (subset of arrayutils)
 timer(timeStart, timeEnd) 
  finds difference between two timestamps
  Parameters:
     timeStart (int) : start timestamp
     timeEnd (int) 
  Returns:  
 method check_overflow(pivots, barArray, dir) 
  finds difference between two timestamps
  Namespace types: array
  Parameters:
     pivots (array) : pivots array
     barArray (array) : pivot bar array
     dir (int) : direction for which overflow need to be checked
  Returns: bool overflow
 method get_trend_series(pivots, length, highLow, trend) 
  finds series of pivots in particular trend
  Namespace types: array
  Parameters:
     pivots (array) : pivots array
     length (int) : length for which trend series need to be checked
     highLow (int) : filter pivot high or low
     trend (int) : Uptrend or Downtrend
  Returns: int  trendIndexes
 method get_trend_series(pivots, firstIndex, lastIndex) 
  finds series of pivots in particular trend
  Namespace types: array
  Parameters:
     pivots (array) : pivots array
     firstIndex (int) : First index of the series
     lastIndex (int) : Last index of the series
  Returns: int  trendIndexes
 getConsolidatedLabel(include, labels, separator) 
  Consolidates labels into single string by concatenating it with given separator
  Parameters:
     include (array) : array of conditions to include label or not
     labels (array) : string array of labels
     separator (string) : Separator for concatenating labels
  Returns: string labelText
 method getColors(theme) 
  gets array of colors based on theme
  Namespace types: series Theme
  Parameters:
     theme (series Theme) : dark or light theme
  Returns: color  themeColors
Arrays
HTFCandlesLibLibrary   "HTFCandlesLib" 
Library to get detailed higher timeframe candle information
 method tostring(this, delimeter) 
  Returns OHLC values, BarIndex of higher and lower timeframe candles in string format
  Namespace types: Candle
  Parameters:
     this (Candle) : Current Candle object
     delimeter (string) : delimeter to join the string components of the candle
  Returns: String representation of the Candle
 method draw(this, bullishColor, bearishColor, printDescription) 
  Draws the current candle using boxes and lines for body and wicks
  Namespace types: Candle
  Parameters:
     this (Candle) : Current Candle object
     bullishColor (color) : color for bullish representation
     bearishColor (color) : color for bearish representation
     printDescription (bool) : if set to true prints the description
  Returns: Current candle object
 getCurrentCandle(ltfCandles) 
  Gets the current candle along with reassigned ltf components. To be used with request.security to capture higher timeframe candle data
  Parameters:
     ltfCandles (array) : Lower timeframe Candles array
  Returns: Candle object with embedded lower timeframe key candles in them
 Candle 
  Candle represents the data related to a candle
  Fields:
     o (series float) : Open price of the candle
     h (series float) : High price of the candle
     l (series float) : Low price of the candle
     c (series float) : Close price of the candle
     lo (Candle) : Lower timeframe candle that records the open price of the current candle.
     lh (Candle) : Lower timeframe candle that records the high price of the current candle.
     ll (Candle) : Lower timeframe candle that records the low price of the current candle.
     lc (Candle) : Lower timeframe candle that records the close price of the current candle.
     barindex (series int) : Bar Index of the candle
     bartime (series int) : Bar time of the candle
     last (Candle) : Link to last candle of the series if any
NumberOfVisibleBarsLibrary   "NumberOfVisibleBars" 
TODO: add library description here
 NumberOfVisibleBars() 
  Calculates the number of visible bars on the user screen
  Returns: The numbers of visible bars on the user screen (int)
ToStringMx█   OVERVIEW 
Contains methods for conversion of matrices to string.
Supports matrices of int/float/bool/string/color/line/label/box/.
- toStringMx(matrix) - converts matrix to a string matrix converting each of its elements to string
- toS(matrix) - converts matrix to a string matrix (using toStringMx()) and outputs as string using str.tostring(matrix) 
Conversion of each item to string is made using toS() function from moebius1977/ToS/1 library.
█   GENERAL DESCRIPTION OF FUNCTIONS 
All  toStringMx(matrix)  and  toS(matrix)   methods have same parameters. The only difference will be in  format  parameter as explained below. 
Parameters:
     this (matrix)  Matrix to be converted to a string matrix.
     format (string)  Format string.
     nz (string)  Placeholder for na items.
 format  parameter depends on the type: 
  For  matrix  format parameter works in the same way as `str.format()` (i.e. you can use same format strings as with `str.format()` with `{0}` as a placeholder for the value) with some shorthand "format" options available:
--- number ---
- "" 						 => "{0}"
- "number"                    => "{0}"
- "0"                         => "{0, number, 0       }"
- "0.0"                       => "{0, number, 0.0      }"
- "0.00"                      => "{0, number, 0.00     }"
- "0.000"                     => "{0, number, 0.000    }"
- "0.0000"                    => "{0, number, 0.0000   }"
- "0.00000"                   => "{0, number, 0.00000  }"
- "0.000000"                  => "{0, number, 0.000000 }"
- "0.0000000"                 => "{0, number, 0.0000000}"
--- date ---
- "date"                      => "{0, date, dd.MM.YY}"
- "date : time"               => "{0, date, dd.MM.YY} : {0, time, HH.mm.ss}"
- "dd.MM"                     => "{0, date, dd:MM}"
- "dd"                        => "{0, date, dd}"
- "...  ... " in any place is substituted with "{0, date, dd.MM.YY}"
--- time ---
- "time"                      => "{0, time, HH:mm:ss}"
- "HH:mm"                     => "{0, time, HH:mm}"
- "mm:ss"                     => "{0, time, mm:ss}"
- "date time"                 => "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}"
- "date, time"                => "{0, date, dd.MM.YY\}, {0, time, HH.mm.ss}"
- "date,time"                 => "{0, date, dd.MM.YY\},{0, time, HH.mm.ss}"
- "date time"                => "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}"
- "...  ... " in any place is substituted with "{0, time, HH.mm.ss}"
For  matrix :
     format (string) : (string) (Optional) Use `x1` as placeholder for `x1` and so on. E.g. default format is `"(x1, y1) - (x2, y2)"`.
For  matrix :
     format (string) : (string) (Optional) Use `x1` as placeholder for `x`, `y1 - for `y` and `txt` for label's text. E.g. default format is `(x1, y1): "txt"` if ptint_text is true and `(x1, y1)` if false.
For  matrix :
     format (string) : (string) (Optional) Use `x1` as placeholder for `x`, `y1 - for `y` etc.   E.g. default format is  "(x1, y1) - (x2, y2)".
For  matrix :
     format (string) : (string) (Optional) Options are "HEX" (e.g. "#FFFFFF33") or "RGB" (e.g. "rgb(122,122,122,23)"). Default is "HEX".
█   FULL LIST OF FUNCTIONS AND PARAMETERS 
 method toStringMx(mx, format, nz) 
  Returns a string matrix made of original matrix items converted to string with toS().
  Namespace types: matrix
  Parameters:
     mx (matrix) 
     format (string) : (string) Like in str.format()
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.
 method toStringMx(mx, format, nz) 
  Returns a string matrix made of original matrix items converted to string with toS().
  Namespace types: matrix
  Parameters:
     mx (matrix) 
     format (string) : (string) Like in str.format() with some shorthand options:
```
--- number ---
- "" 						 => "{0}"
- "number"                    => "{0}"
- "0"                         => "{0, number, 0       }"
- "0.0"                       => "{0, number, 0.0      }"
- "0.00"                      => "{0, number, 0.00     }"
- "0.000"                     => "{0, number, 0.000    }"
- "0.0000"                    => "{0, number, 0.0000   }"
- "0.00000"                   => "{0, number, 0.00000  }"
- "0.000000"                  => "{0, number, 0.000000 }"
- "0.0000000"                 => "{0, number, 0.0000000}"
--- date ---
- "date"                      => "{0, date, dd.MM.YY}"
- "date : time"               => "{0, date, dd.MM.YY} : {0, time, HH.mm.ss}"
- "dd.MM"                     => "{0, date, dd:MM}"
- "dd"                        => "{0, date, dd}"
- "...  ... " in any place is substituted with "{0, date, dd.MM.YY}"
--- time ---
- "time"                      => "{0, time, HH:mm:ss}"
- "HH:mm"                     => "{0, time, HH:mm}"
- "mm:ss"                     => "{0, time, mm:ss}"
- "date time"                 => "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}"
- "date, time"                => "{0, date, dd.MM.YY\}, {0, time, HH.mm.ss}"
- "date,time"                 => "{0, date, dd.MM.YY\},{0, time, HH.mm.ss}"
- "date time"                => "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}"
- "...  ... " in any place is substituted with "{0, time, HH.mm.ss}"
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.
 method toStringMx(mx, format, nz) 
  Returns a string matrix made of original matrix items converted to string with toS().
  Namespace types: matrix
  Parameters:
     mx (matrix) 
     format (string) : (string) Like in str.format() with some shorthand options:
```
--- number ---
- "" 						 => "{0}"
- "number"                    => "{0}"
- "0"                         => "{0, number, 0       }"
- "0.0"                       => "{0, number, 0.0      }"
- "0.00"                      => "{0, number, 0.00     }"
- "0.000"                     => "{0, number, 0.000    }"
- "0.0000"                    => "{0, number, 0.0000   }"
- "0.00000"                   => "{0, number, 0.00000  }"
- "0.000000"                  => "{0, number, 0.000000 }"
- "0.0000000"                 => "{0, number, 0.0000000}"
--- date ---
- "date"                      => "{0, date, dd.MM.YY}"
- "date : time"               => "{0, date, dd.MM.YY} : {0, time, HH.mm.ss}"
- "dd.MM"                     => "{0, date, dd:MM}"
- "dd"                        => "{0, date, dd}"
- "...  ... " in any place is substituted with "{0, date, dd.MM.YY}"
--- time ---
- "time"                      => "{0, time, HH:mm:ss}"
- "HH:mm"                     => "{0, time, HH:mm}"
- "mm:ss"                     => "{0, time, mm:ss}"
- "date time"                 => "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}"
- "date, time"                => "{0, date, dd.MM.YY\}, {0, time, HH.mm.ss}"
- "date,time"                 => "{0, date, dd.MM.YY\},{0, time, HH.mm.ss}"
- "date time"                => "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}"
- "...  ... " in any place is substituted with "{0, time, HH.mm.ss}"
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.
 method toStringMx(mx, format, nz) 
  Returns a string matrix made of original matrix items converted to string with toS().
  Namespace types: matrix
  Parameters:
     mx (matrix) 
     format (string) : (string) Like in str.format()
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.
 method toStringMx(mx, format, nz) 
  Returns a string matrix made of original matrix items converted to string with toS().
  Namespace types: matrix
  Parameters:
     mx (matrix) 
     format (string) : (string) "HEX" (default) or "RGB"
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.
 method toStringMx(mx, format, nz) 
  Returns a string matrix made of original matrix items converted to string with toS().
  Namespace types: matrix
  Parameters:
     mx (matrix) 
     format (string) : (string) (Optional) Format string. By default "{0}: {1}" if showIDs = true or "{1}" otherwise. (use "{0}" as a placeholder for id and "{1}" for item value)
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.
 method toStringMx(mx, format, nz) 
  Returns a string matrix made of original matrix items converted to string with toS().
  Namespace types: matrix
  Parameters:
     mx (matrix) 
     format (string) : (string) (Optional) Format string. By default "{0}: {1}" if showIDs = true or "{1}" otherwise. (use "{0}" as a placeholder for id and "{1}" for item value)
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.
 method toStringMx(mx, format, nz) 
  Returns a string matrix made of original matrix items converted to string with toS().
  Namespace types: matrix
  Parameters:
     mx (matrix) 
     format (string) : (string) (Optional) Format string. By default "{0}: {1}" if showIDs = true or "{1}" otherwise. (use "{0}" as a placeholder for id and "{1}" for item value)
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.
 method toS(this, format, nz) 
  Converts each element of the matrix to string outputs using str.tostring(matrix)
  Namespace types: matrix
  Parameters:
     this (matrix) : (matrix) Matrix to be converted to string
     format (string) : (string) Format string as in str.format()
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.export method toS(matrix this,  string format = "", string nz = na) => str.tostring(this.toStringMx(format, nz))
 method toS(this, format, nz) 
  Converts each element of the matrix to string outputs using str.tostring(matrix)
  Namespace types: matrix
  Parameters:
     this (matrix) : (matrix) Matrix to be converted to string
     format (string) : (string) Like in str.format() with some shorthand options:
```
--- number ---
- "" 						 => "{0}"
- "number"                    => "{0}"
- "0"                         => "{0, number, 0       }"
- "0.0"                       => "{0, number, 0.0      }"
- "0.00"                      => "{0, number, 0.00     }"
- "0.000"                     => "{0, number, 0.000    }"
- "0.0000"                    => "{0, number, 0.0000   }"
- "0.00000"                   => "{0, number, 0.00000  }"
- "0.000000"                  => "{0, number, 0.000000 }"
- "0.0000000"                 => "{0, number, 0.0000000}"
--- date ---
- "date"                      => "{0, date, dd.MM.YY}"
- "date : time"               => "{0, date, dd.MM.YY} : {0, time, HH.mm.ss}"
- "dd.MM"                     => "{0, date, dd:MM}"
- "dd"                        => "{0, date, dd}"
- "...  ... " in any place is substituted with "{0, date, dd.MM.YY}"
--- time ---
- "time"                      => "{0, time, HH:mm:ss}"
- "HH:mm"                     => "{0, time, HH:mm}"
- "mm:ss"                     => "{0, time, mm:ss}"
- "date time"                 => "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}"
- "date, time"                => "{0, date, dd.MM.YY\}, {0, time, HH.mm.ss}"
- "date,time"                 => "{0, date, dd.MM.YY\},{0, time, HH.mm.ss}"
- "date time"                => "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}"
- "...  ... " in any place is substituted with "{0, time, HH.mm.ss}"
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.export method toS(matrix this,  string format = "", string nz = na) => str.tostring(this.toStringMx(format, nz))
 method toS(this, format, nz) 
  Converts each element of the matrix to string outputs using str.tostring(matrix)
  Namespace types: matrix
  Parameters:
     this (matrix) : (matrix) Matrix to be converted to string
     format (string) : (string) Format string as in str.format()
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.export method toS(matrix this,  string format = "", string nz = na) => str.tostring(this.toStringMx(format, nz))
 method toS(this, format, nz) 
  Converts each element of the matrix to string outputs using str.tostring(matrix)
  Namespace types: matrix
  Parameters:
     this (matrix) : (matrix) Matrix to be converted to string
     format (string) : (string) "HEX" (default) or "RGB"
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.export method toS(matrix this,  string format = "", string nz = na) => str.tostring(this.toStringMx(format, nz))
 method toS(this, format, nz) 
  Converts each element of the matrix to string outputs using str.tostring(matrix)
  Namespace types: matrix
  Parameters:
     this (matrix) : (matrix) Matrix to be converted to string
     format (string) : (string) (Optional) Format string. By default "{0}: {1}" if showIDs = true or "{1}" otherwise. (use "{0}" as a placeholder for id and "{1}" for item value)
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.export method toS(matrix this,  string format = "", string nz = na) => str.tostring(this.toStringMx(format, nz))
 method toS(this, format, nz) 
  Converts each element of the matrix to string outputs using str.tostring(matrix)
  Namespace types: matrix
  Parameters:
     this (matrix) : (matrix) Matrix to be converted to string
     format (string) : (string) (Optional) Format string. By default "{0}: {1}" if showIDs = true or "{1}" otherwise. (use "{0}" as a placeholder for id and "{1}" for item value)
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.export method toS(matrix this,  string format = "", string nz = na) => str.tostring(this.toStringMx(format, nz))
 method toS(this, format, nz) 
  Converts each element of the matrix to string outputs using str.tostring(matrix)
  Namespace types: matrix
  Parameters:
     this (matrix) : (matrix) Matrix to be converted to string
     format (string) : (string) (Optional) Format string. By default "{0}: {1}" if showIDs = true or "{1}" otherwise. (use "{0}" as a placeholder for id and "{1}" for item value)
     nz (string) : (string) If val is na and nz is not na the value of nz param is returned instead.export method toS(matrix this,  string format = "", string nz = na) => str.tostring(this.toStringMx(format, nz))
ToStringAr█  OVERVIEW 
Contains to string conversion methods arrays of int/float/bool/string/line/label/box types
-  toS()  - method works like array.join() with more flexibility and
-  toStringAr()  - converts array to string on a per item basis and returns the resulting string  array
Conversion of each item to string is made using toS() function from moebius1977/ToS/1 library.
█  GENERAL DESCRIPTION OF LIBRARY FUNCTIONS 
All  toS(array)  methods have same parameters. The only difference will be in format parameter as explained below.
 method toS(this, index_from, index_to, separator, showIDs, format, truncate_left, size_limit, nz) 
  Like array.join() but with string length limit. Joins elements into readable string (length capped at 4000, truncating the end or beg)
  Parameters:
     this (array) : array to be converted to string
     index_from (int) : index_from (int) (Optional) Start from this id (starting from 0, in insertion order). If omitted - start from the first item.
     index_to (int) : index_to (int) (Optional) End with this pair (inclusive, in insertion order). If omitted - to last item.
     separator (string) : separator (string) (Optional) String to be inserted between pairs. Default: `", "`
     showIDs (bool) : showIDs (bool) (Optional) If true item's id is added in the form `id: value`.
     format (string) : format (string) (Optional) Format string fo toS(). If omitted default format is used depending in the type.
     truncate_left (bool) : truncate_left (bool) (Optional) Truncate from left or right. Default: false.
     size_limit (int) : size_limit (int) (Optional) Max output string length. Default: 4000.
     nz (string) : nz (string) (Optional) A string used to represent na (na values are substituted with this string).
 format  parameter depends on the type:
  For  toS(bool/int/float ...)  format parameter works in the same way as `str.format()` (i.e. you can use same format strings as with `str.format()` with `{0}` as a placeholder for the value) with some shorthand "format" options available:
--- number ---
- "" => "{0}"
- "number" => "{0}"
- "0" => "{0, number, 0 }"
- "0.0" => "{0, number, 0.0 }"
- "0.00" => "{0, number, 0.00 }"
- "0.000" => "{0, number, 0.000 }"
- "0.0000" => "{0, number, 0.0000 }"
- "0.00000" => "{0, number, 0.00000 }"
- "0.000000" => "{0, number, 0.000000 }"
- "0.0000000" => "{0, number, 0.0000000}"
--- date ---
- "...  ... " in any place is substituted with "{0, date, dd.MM.YY}" (e.g. " " results in "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}")
- "date" => "{0, date, dd.MM.YY}"
- "date : time" => "{0, date, dd.MM.YY} : {0, time, HH.mm.ss}"
- "dd.MM" => "{0, date, dd:MM}"
- "dd" => "{0, date, dd}"
--- time ---
- "...  ... " in any place is substituted with "{0, time, HH.mm.ss}" (e.g. " " results in "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}")
- "time" => "{0, time, HH:mm:ss}"
- "HH:mm" => "{0, time, HH:mm}"
- "mm:ss" => "{0, time, mm:ss}"
- "date time" => "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}"
- "date, time" => "{0, date, dd.MM.YY\}, {0, time, HH.mm.ss}"
- "date,time" => "{0, date, dd.MM.YY\},{0, time, HH.mm.ss}"
- "date time" => "{0, date, dd.MM.YY\} {0, time, HH.mm.ss}"
For toS(line ...):
     format (string) : (string) (Optional) Use `x1` as placeholder for `x1` and so on. E.g. default format is `"(x1, y1) - (x2, y2)"`.
For  toS(label ...) :
     format (string) : (string) (Optional) Use `x1` as placeholder for `x`, `y1 - for `y` and `txt` for label's text. E.g. default format is `(x1, y1): "txt"` if ptint_text is true and `(x1, y1)` if false.
For  toS(box ... ) :
     format (string) : (string) (Optional) Use `x1` as placeholder for `x`, `y1 - for `y` etc. E.g. default format is "(x1, y1) - (x2, y2)".
For  toS(color] ... ) :
     format (string) : (string) (Optional) Options are "HEX" (e.g. "#FFFFFF33") or "RGB" (e.g. "rgb(122,122,122,23)"). Default is "HEX".
All  toStringAr()  methods just convert each item to string using toS with same format options as described above.
  Parameters:
     arr (array) : Array to be converted to a string array.
     format (string) : Format string.
     nz (string) : Placeholder for na items.
█   FULL OF FUNCTIONS AND PARAMETERS 
Library   "ToStringAr" 
Contains toString/toS conversion methods for int/float/bool/string/line/label/box and arrays and matrices thereof. Also contains a string wraping function.
 method toS(this, index_from, index_to, separator, showIDs, format, truncate_left, size_limit, nz) 
  Namespace types: array
  Parameters:
     this (array) 
     index_from (int) 
     index_to (int) 
     separator (string) 
     showIDs (bool) 
     format (string) 
     truncate_left (bool) 
     size_limit (int) 
     nz (string) 
 method toS(this, index_from, index_to, separator, showIDs, format, truncate_left, size_limit, nz) 
  Namespace types: array
  Parameters:
     this (array) 
     index_from (int) 
     index_to (int) 
     separator (string) 
     showIDs (bool) 
     format (string) 
     truncate_left (bool) 
     size_limit (int) 
     nz (string) 
 method toS(this, index_from, index_to, separator, showIDs, format, truncate_left, size_limit, nz) 
  Namespace types: array
  Parameters:
     this (array) 
     index_from (int) 
     index_to (int) 
     separator (string) 
     showIDs (bool) 
     format (string) 
     truncate_left (bool) 
     size_limit (int) 
     nz (string) 
 method toS(this, index_from, index_to, separator, showIDs, format, truncate_left, size_limit, nz) 
  Namespace types: array
  Parameters:
     this (array) 
     index_from (int) 
     index_to (int) 
     separator (string) 
     showIDs (bool) 
     format (string) 
     truncate_left (bool) 
     size_limit (int) 
     nz (string) 
 method toS(this, index_from, index_to, separator, showIDs, format, truncate_left, size_limit, nz) 
  Namespace types: array
  Parameters:
     this (array) 
     index_from (int) 
     index_to (int) 
     separator (string) 
     showIDs (bool) 
     format (string) 
     truncate_left (bool) 
     size_limit (int) 
     nz (string) 
 method toS(this, index_from, index_to, separator, showIDs, format, truncate_left, size_limit, nz) 
  Namespace types: array
  Parameters:
     this (array) 
     index_from (int) 
     index_to (int) 
     separator (string) 
     showIDs (bool) 
     format (string) 
     truncate_left (bool) 
     size_limit (int) 
     nz (string) 
 method toS(this, index_from, index_to, separator, showIDs, format, truncate_left, size_limit, nz) 
  Namespace types: array
  Parameters:
     this (array) 
     index_from (int) 
     index_to (int) 
     separator (string) 
     showIDs (bool) 
     format (string) 
     truncate_left (bool) 
     size_limit (int) 
     nz (string) 
 method toS(this, index_from, index_to, separator, showIDs, format, truncate_left, size_limit, nz) 
  Namespace types: array
  Parameters:
     this (array) 
     index_from (int) 
     index_to (int) 
     separator (string) 
     showIDs (bool) 
     format (string) 
     truncate_left (bool) 
     size_limit (int) 
     nz (string) 
 method toStringAr(arr, format, nz) 
  Namespace types: array
  Parameters:
     arr (array) 
     format (string) 
     nz (string) 
 method toStringAr(arr, format, nz) 
  Namespace types: array
  Parameters:
     arr (array) 
     format (string) 
     nz (string) 
 method toStringAr(arr, format, nz) 
  Namespace types: array
  Parameters:
     arr (array) 
     format (string) 
     nz (string) 
 method toStringAr(arr, format, nz) 
  Namespace types: array
  Parameters:
     arr (array) 
     format (string) 
     nz (string) 
 method toStringAr(arr, format, nz) 
  Namespace types: array
  Parameters:
     arr (array) 
     format (string) 
     nz (string) 
 method toStringAr(arr, format, nz) 
  Namespace types: array
  Parameters:
     arr (array) 
     format (string) 
     nz (string) 
 method toStringAr(arr, format, nz) 
  Namespace types: array
  Parameters:
     arr (array) 
     format (string) 
     nz (string) 
 method toStringAr(arr, format, nz) 
  Namespace types: array
  Parameters:
     arr (array) 
     format (string) 
     nz (string)
mlivsLibrary   "mlivs" 
TODO: add library description here
 adx(high, low, adxlen, dilen) 
  TODO: add function description here
  Parameters:
     high (float) 
     low (float) 
     adxlen (simple int) 
     dilen (simple int) 
  Returns: TODO: add what function returns
 adxMA() 
 impulseMACD(lengthMA, lengthSignal) 
  Parameters:
     lengthMA (simple int) 
     lengthSignal (int)
BinaryInsertionSortLibrary   "BinaryInsertionSort" 
Library containing functions which can help create sorted array based on binary insertion sort.
This sorting will be quicker than array.sort function if the sorting needs to be done on every bar and the size of the array is comparatively big.
 method binary_search_basic(sortedArray, item, order) 
  binary_search_basic - finds the closest index of the value
  Namespace types: array
  Parameters:
     sortedArray (array) : array which is assumed to be sorted in the requested order
     item (float) : float item which needs to be searched in the sorted array
     order (int) : Sort order - positive number means ascending order whereas negative number represents descending order
  Returns: int index at which the item can be inserted into sorted array
 method binary_search_basic(sortedArray, item, order) 
  binary_search_basic - finds the closest index of the value
  Namespace types: array
  Parameters:
     sortedArray (array) : array which is assumed to be sorted in the requested order
     item (int) : int item which needs to be searched in the sorted array
     order (int) : Sort order - positive number means ascending order whereas negative number represents descending order
  Returns: int index at which the item can be inserted into sorted array
 method binary_insertion_sort(sortedArray, item, order) 
  binary insertion sort - inserts item into sorted array while maintaining sort order
  Namespace types: array
  Parameters:
     sortedArray (array) : array which is assumed to be sorted in the requested order
     item (float) : float item which needs to be inserted into sorted array
     order (int) : Sort order - positive number means ascending order whereas negative number represents descending order
  Returns: int index at which the item is inserted into sorted array
 method binary_insertion_sort(sortedArray, item, order) 
  binary insertion sort - inserts item into sorted array while maintaining sort order
  Namespace types: array
  Parameters:
     sortedArray (array) : array which is assumed to be sorted in the requested order
     item (int) : int item which needs to be inserted into sorted array
     order (int) : Sort order - positive number means ascending order whereas negative number represents descending order
  Returns: int index at which the item is inserted into sorted array
 update_sort_indices(sortIndices, newItemIndex) 
  adds the sort index of new item added to sorted array and also updates existing sort indices.
  Parameters:
     sortIndices (array) : array containing sort indices of an array.
     newItemIndex (int) : sort index of new item added to sorted array
  Returns: void
 get_array_of_series(item, order) 
  Converts series into array and sorted array.
  Parameters:
     item (float) : float series
     order (int) : Sort order - positive number means ascending order whereas negative number represents descending order
  Returns:  
 get_array_of_series(item, order) 
  Converts series into array and sorted array.
  Parameters:
     item (int) : int series
     order (int) : Sort order - positive number means ascending order whereas negative number represents descending order
  Returns:  
 get_sorted_arrays(item, order) 
  Converts series into array and sorted array. Also calculates the sort order of the value array
  Parameters:
     item (float) : float|int series
     order (int) : Sort order - positive number means ascending order whereas negative number represents descending order
  Returns:  
 get_sorted_arrays(item, order) 
  Converts series into array and sorted array. Also calculates the sort order of the value array
  Parameters:
     item (int) : int series
     order (int) : Sort order - positive number means ascending order whereas negative number represents descending order
  Returns: 
[ALGOA+] Markov Chains Library by @metacamaleoLibrary   "MarkovChains" 
    Markov Chains library by @metacamaleo. Created in 09/08/2024. 
This library provides tools to calculate and visualize Markov Chain-based transition matrices and probabilities. This library supports two primary algorithms: a rolling window Markov Chain and a conditional Markov Chain (which operates based on specified conditions). The key concepts used include Markov Chain states, transition matrices, and future state probabilities based on past market conditions or indicators.
Key functions:
- `mc_rw()`: Builds a transition matrix using a rolling window Markov Chain, calculating probabilities based on a fixed length of historical data.
- `mc_cond()`: Builds a conditional Markov Chain transition matrix, calculating probabilities based on the current market condition or indicator state.
Basically, you will just need to use the above functions on your script to default outputs and displays.
Exported UDTs include:
- s_map: An UDT variable used to store a map with dummy states, i.e., if possible states are bullish, bearish, and neutral, and current is bullish, it will be stored
  in a map with following keys and values: "bullish", 1; "bearish", 0; and "neutral", 0. You will only use it to customize your own script, otherwise, it´s only for internal use.
- mc_states: This UDT variable stores user inputs, calculations and MC outputs. As the above, you don´t need to use it, but you may get features to customize your own script.
For example, you may use mc.tm to get the transition matrix, or the prob map to customize the display. As you see, functions are all based on mc_states UDT. The s_map UDT is used within mc_states´s s array.
Optional exported functions include:
- `mc_table()`: Displays the transition matrix in a table format on the chart for easy visualization of the probabilities.
- `display_list()`: Displays a map (or array) of string and float/int values in a table format, used for showing transition counts or probabilities.
- `mc_prob()`: Calculates and displays probabilities for a given number of future bars based on the current state in the Markov Chain.
- `mc_all_states_prob()`: Calculates probabilities for all states for future bars, considering all possible transitions.
The above functions may be used to customize your outputs. Use the returned variable mc_states from mc_rw() and mc_cond() to display each of its matrix, maps or arrays using mc_table() (for matrices) and display_list() (for maps and arrays) if you desire to debug or track the calculation process.
See the examples in the end of this script.
Have good trading days! 
Best regards,
@metacamaleo
-----------------------------
  KEY FUNCTIONS  
 mc_rw(state, length, states, pred_length, show_table, show_prob, table_position, prob_position, font_size) 
  Builds the transition matrix for a rolling window Markov Chain.
  Parameters:
     state (string) : The current state of the market or system.
     length (int) : The rolling window size.
     states (array) : Array of strings representing the possible states in the Markov Chain.
     pred_length (int) : The number of bars to predict into the future.
     show_table (bool) : Boolean to show or hide the transition matrix table.
     show_prob (bool) : Boolean to show or hide the probability table.
     table_position (string) : Position of the transition matrix table on the chart.
     prob_position (string) : Position of the probability list on the chart.
     font_size (string) : Size of the table font.
  Returns: The transition matrix and probabilities for future states.
 mc_cond(state, condition, states, pred_length, show_table, show_prob, table_position, prob_position, font_size) 
  Builds the transition matrix for conditional Markov Chains.
  Parameters:
     state (string) : The current state of the market or system.
     condition (string) : A string representing the condition.
     states (array) : Array of strings representing the possible states in the Markov Chain.
     pred_length (int) : The number of bars to predict into the future.
     show_table (bool) : Boolean to show or hide the transition matrix table.
     show_prob (bool) : Boolean to show or hide the probability table.
     table_position (string) : Position of the transition matrix table on the chart.
     prob_position (string) : Position of the probability list on the chart.
     font_size (string) : Size of the table font.
  Returns: The transition matrix and probabilities for future states based on the HMM.
WavesLibrary   "Waves" 
Methods for elliot wave detection
 method delete(this) 
  deletes the subwave drawing
  Namespace types: Subwave
  Parameters:
     this (Subwave) : Subwave object to be deleted
  Returns: deleted subwave object
 method delete(this) 
  deletes the wave drawing and the corresponding subwaves
  Namespace types: Wave
  Parameters:
     this (Wave) : Wave object to be deleted
  Returns: deleted wave object
 method createWave(pivot, lineColor, waves, limit) 
  Create wave object
  Namespace types: zg.Pivot
  Parameters:
     pivot (Pivot type from Trendoscope/Zigzag/7) : pivot object where the wave needs to be created
     lineColor (color) : color of the wave to be drawn
     waves (array) : array of existing waves
     limit (int) : max number of waves to be shown in the chart
  Returns: wave object created
 method createSubWaves(wave, subwavePivots) 
  Create sub waves for the wave
  Namespace types: Wave
  Parameters:
     wave (Wave) 
     subwavePivots (array) : array of sub wave pivots
  Returns: wave object created
 method draw(subWave) 
  Draw subwave
  Namespace types: Subwave
  Parameters:
     subWave (Subwave) 
  Returns: subwsubWave object
 method draw(wave, limitSubwaves) 
  Draw Wave
  Namespace types: Wave
  Parameters:
     wave (Wave) : Wave object to be drawn
     limitSubwaves (bool) : limit the number of subwave combinations within the wave
  Returns: wave object
 method checkMotiveWave(prices) 
  based on the price array, check if there is motive wave and identify the type
  Namespace types: array
  Parameters:
     prices (array) : float array of prices
  Returns: WaveType representing the identified wave type. na otherwise
 method scanMotiveWave(pivot, lastPivot, existingWaves, allowedTypes) 
  Scan for motive wave
  Namespace types: zg.Pivot
  Parameters:
     pivot (Pivot type from Trendoscope/Zigzag/7) : Zigzag pivot that will be checked for motive wave
     lastPivot (Pivot type from Trendoscope/Zigzag/7) : previous Zigzag pivot
     existingWaves (array) : array of existing waves
     allowedTypes (array) : allowed Wave types to filter them
  Returns: array of subwave pivots
 SubwavePivots 
  SubwavePivots represents the sub pivots of the main wave
  Fields:
     waveType (series WaveType) : Type of the Wave
     indices (array) : Bar index values of sub waves
     subPivots (array type from Trendoscope/Zigzag/7) : sub pivot objects of the wave
 Subwave 
  Subwave represents the drawing of sub waves
  Fields:
     waves (array type from Trendoscope/Drawing/1) : array of sub wave lines
     points (array type from Trendoscope/Drawing/1) : Array of subwave pivot labels
     subwavePivots (SubwavePivots) : array of subwave pivots being drawn
 Wave 
  Wave object type
  Fields:
     pivot (Pivot type from Trendoscope/Zigzag/7) : starting point of the wave
     wave (Line type from Trendoscope/Drawing/1) : Line representing the wave
     waveLabel (Label type from Trendoscope/Drawing/1) : label containing wave details
     subWaves (array) : array of sub waves
DrawingLibrary   "Drawing" 
User Defined types and methods for basic drawing structure. Consolidated from the earlier libraries - DrawingTypes and DrawingMethods
 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.
 method init(this) 
  Namespace types: PolyLine
  Parameters:
     this (PolyLine) 
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts DrawingTypes/Point object to string representation
  Namespace types: chart.point
  Parameters:
     this (chart.point) : DrawingTypes/Point object
     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 (array) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of DrawingTypes/Point
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts DrawingTypes/LineProperties object to string representation
  Namespace types: LineProperties
  Parameters:
     this (LineProperties) : DrawingTypes/LineProperties object
     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 (array) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of DrawingTypes/LineProperties
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts DrawingTypes/Line object to string representation
  Namespace types: Line
  Parameters:
     this (Line) : DrawingTypes/Line object
     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 (array) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of DrawingTypes/Line
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts DrawingTypes/LabelProperties object to string representation
  Namespace types: LabelProperties
  Parameters:
     this (LabelProperties) : DrawingTypes/LabelProperties object
     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 (array) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of DrawingTypes/LabelProperties
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts DrawingTypes/Label object to string representation
  Namespace types: Label
  Parameters:
     this (Label) : DrawingTypes/Label object
     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 (array) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of DrawingTypes/Label
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts DrawingTypes/Linefill object to string representation
  Namespace types: Linefill
  Parameters:
     this (Linefill) : DrawingTypes/Linefill object
     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 (array) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of DrawingTypes/Linefill
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts DrawingTypes/BoxProperties object to string representation
  Namespace types: BoxProperties
  Parameters:
     this (BoxProperties) : DrawingTypes/BoxProperties object
     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 (array) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of DrawingTypes/BoxProperties
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts DrawingTypes/BoxText object to string representation
  Namespace types: BoxText
  Parameters:
     this (BoxText) : DrawingTypes/BoxText object
     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 (array) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of DrawingTypes/BoxText
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts DrawingTypes/Box object to string representation
  Namespace types: Box
  Parameters:
     this (Box) : DrawingTypes/Box object
     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 (array) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of DrawingTypes/Box
 method delete(this) 
  Deletes line from DrawingTypes/Line object
  Namespace types: Line
  Parameters:
     this (Line) : DrawingTypes/Line object
  Returns: Line object deleted
 method delete(this) 
  Deletes label from DrawingTypes/Label object
  Namespace types: Label
  Parameters:
     this (Label) : DrawingTypes/Label object
  Returns: Label object deleted
 method delete(this) 
  Deletes Linefill from DrawingTypes/Linefill object
  Namespace types: Linefill
  Parameters:
     this (Linefill) : DrawingTypes/Linefill object
  Returns: Linefill object deleted
 method delete(this) 
  Deletes box from DrawingTypes/Box object
  Namespace types: Box
  Parameters:
     this (Box) : DrawingTypes/Box object
  Returns: DrawingTypes/Box object deleted
 method delete(this) 
  Deletes lines from array of DrawingTypes/Line objects
  Namespace types: array
  Parameters:
     this (array) : Array of DrawingTypes/Line objects
  Returns: Array of DrawingTypes/Line objects
 method delete(this) 
  Deletes labels from array of DrawingTypes/Label objects
  Namespace types: array
  Parameters:
     this (array) : Array of DrawingTypes/Label objects
  Returns: Array of DrawingTypes/Label objects
 method delete(this) 
  Deletes linefill from array of DrawingTypes/Linefill objects
  Namespace types: array
  Parameters:
     this (array) : Array of DrawingTypes/Linefill objects
  Returns: Array of DrawingTypes/Linefill objects
 method delete(this) 
  Deletes boxes from array of DrawingTypes/Box objects
  Namespace types: array
  Parameters:
     this (array) : Array of DrawingTypes/Box objects
  Returns: Array of DrawingTypes/Box objects
 method clear(this) 
  clear items from array of DrawingTypes/Line while deleting underlying objects
  Namespace types: array
  Parameters:
     this (array) : array
  Returns: void
 method clear(this) 
  clear items from array of DrawingTypes/Label while deleting underlying objects
  Namespace types: array
  Parameters:
     this (array) : array
  Returns: void
 method clear(this) 
  clear items from array of DrawingTypes/Linefill while deleting underlying objects
  Namespace types: array
  Parameters:
     this (array) : array
  Returns: void
 method clear(this) 
  clear items from array of DrawingTypes/Box while deleting underlying objects
  Namespace types: array
  Parameters:
     this (array) : array
  Returns: void
 method draw(this) 
  Creates line from DrawingTypes/Line object
  Namespace types: Line
  Parameters:
     this (Line) : DrawingTypes/Line object
  Returns: line created from DrawingTypes/Line object
 method draw(this) 
  Creates lines from array of DrawingTypes/Line objects
  Namespace types: array
  Parameters:
     this (array) : Array of DrawingTypes/Line objects
  Returns: Array of DrawingTypes/Line objects
 method draw(this) 
  Creates label from DrawingTypes/Label object
  Namespace types: Label
  Parameters:
     this (Label) : DrawingTypes/Label object
  Returns: label created from DrawingTypes/Label object
 method draw(this) 
  Creates labels from array of DrawingTypes/Label objects
  Namespace types: array
  Parameters:
     this (array) : Array of DrawingTypes/Label objects
  Returns: Array of DrawingTypes/Label objects
 method draw(this) 
  Creates linefill object from DrawingTypes/Linefill
  Namespace types: Linefill
  Parameters:
     this (Linefill) : DrawingTypes/Linefill objects
  Returns: linefill object created
 method draw(this) 
  Creates linefill objects from array of DrawingTypes/Linefill objects
  Namespace types: array
  Parameters:
     this (array) : Array of DrawingTypes/Linefill objects
  Returns: Array of DrawingTypes/Linefill used for creating linefills
 method draw(this) 
  Creates box from DrawingTypes/Box object
  Namespace types: Box
  Parameters:
     this (Box) : DrawingTypes/Box object
  Returns: box created from DrawingTypes/Box object
 method draw(this) 
  Creates labels from array of DrawingTypes/Label objects
  Namespace types: array
  Parameters:
     this (array) : Array of DrawingTypes/Label objects
  Returns: Array of DrawingTypes/Label objects
 method createLabel(this, lblText, tooltip, properties) 
  Creates DrawingTypes/Label object from DrawingTypes/Point
  Namespace types: chart.point
  Parameters:
     this (chart.point) : DrawingTypes/Point object
     lblText (string) : Label text
     tooltip (string) : Tooltip text. Default is na
     properties (LabelProperties) : DrawingTypes/LabelProperties object. Default is na - meaning default values are used.
  Returns: DrawingTypes/Label object
 method createLine(this, other, properties) 
  Creates DrawingTypes/Line object from one DrawingTypes/Point to other
  Namespace types: chart.point
  Parameters:
     this (chart.point) : First DrawingTypes/Point object
     other (chart.point) : Second DrawingTypes/Point object
     properties (LineProperties) : DrawingTypes/LineProperties object. Default set to na - meaning default values are used.
  Returns: DrawingTypes/Line object
 method createLinefill(this, other, fillColor, transparency) 
  Creates DrawingTypes/Linefill object from DrawingTypes/Line object to other DrawingTypes/Line object
  Namespace types: Line
  Parameters:
     this (Line) : First DrawingTypes/Line object
     other (Line) : Other DrawingTypes/Line object
     fillColor (color) : fill color of linefill. Default is color.blue
     transparency (int) : fill transparency for linefill. Default is 80
  Returns: Array of DrawingTypes/Linefill object
 method createBox(this, other, properties, textProperties) 
  Creates DrawingTypes/Box object from one DrawingTypes/Point to other
  Namespace types: chart.point
  Parameters:
     this (chart.point) : First DrawingTypes/Point object
     other (chart.point) : Second DrawingTypes/Point object
     properties (BoxProperties) : DrawingTypes/BoxProperties object. Default set to na - meaning default values are used.
     textProperties (BoxText) : DrawingTypes/BoxText object. Default is na - meaning no text will be drawn
  Returns: DrawingTypes/Box object
 method createBox(this, properties, textProperties) 
  Creates DrawingTypes/Box object from DrawingTypes/Line as diagonal line
  Namespace types: Line
  Parameters:
     this (Line) : Diagonal DrawingTypes/PoLineint object
     properties (BoxProperties) : DrawingTypes/BoxProperties object. Default set to na - meaning default values are used.
     textProperties (BoxText) : DrawingTypes/BoxText object. Default is na - meaning no text will be drawn
  Returns: DrawingTypes/Box object
 LineProperties 
  Properties of line object
  Fields:
     xloc (series string) : X Reference - can be either xloc.bar_index or xloc.bar_time. Default is xloc.bar_index
     extend (series string) : Property which sets line to extend towards either right or left or both. Valid values are extend.right, extend.left, extend.both, extend.none. Default is extend.none
     color (series color) : Line color
     style (series string) : Line style, valid values are line.style_solid, line.style_dashed, line.style_dotted, line.style_arrow_left, line.style_arrow_right, line.style_arrow_both. Default is line.style_solid
     width (series int) : Line width. Default is 1
 Line 
  Line object created from points
  Fields:
     start (chart.point) : Starting point of the line
     end (chart.point) : Ending point of the line
     properties (LineProperties) : LineProperties object which defines the style of line
     object (series line) : Derived line object
 LabelProperties 
  Properties of label object
  Fields:
     xloc (series string) : X Reference - can be either xloc.bar_index or xloc.bar_time. Default is xloc.bar_index
     yloc (series string) : Y reference - can be yloc.price, yloc.abovebar, yloc.belowbar. Default is yloc.price
     color (series color) : Label fill color
     style (series string) : Label style as defined in Tradingview Documentation. Default is label.style_none
     textcolor (series color) : text color. Default is color.black
     size (series string) : Label text size. Default is size.normal. Other values are size.auto, size.tiny, size.small, size.normal, size.large, size.huge
     textalign (series string) : Label text alignment. Default if text.align_center. Other allowed values - text.align_right, text.align_left, text.align_top, text.align_bottom
     text_font_family (series string) : The font family of the text. Default value is font.family_default. Other available option is font.family_monospace
 Label 
  Label object
  Fields:
     point (chart.point) : Point where label is drawn
     lblText (series string) : label text
     tooltip (series string) : Tooltip text. Default is na
     properties (LabelProperties) : LabelProperties object
     object (series label) : Pine label object
 Linefill 
  Linefill object
  Fields:
     line1 (Line) : First line to create linefill
     line2 (Line) : Second line to create linefill
     fillColor (series color) : Fill color
     transparency (series int) : Fill transparency range from 0 to 100
     object (series linefill) : linefill object created from wrapper
 BoxProperties 
  BoxProperties object
  Fields:
     border_color (series color) : Box border color. Default is color.blue
     bgcolor (series color) : box background color
     border_width (series int) : Box border width. Default is 1
     border_style (series string) : Box border style. Default is line.style_solid
     extend (series string) : Extend property of box. default is extend.none
     xloc (series string) : defines if drawing needs to be done based on bar index or time. default is xloc.bar_index
 BoxText 
  Box Text properties.
  Fields:
     boxText (series string) : Text to be printed on the box
     text_size (series string) : Text size. Default is size.auto
     text_color (series color) : Box text color. Default is color.yellow.
     text_halign (series string) : horizontal align style - default is text.align_center
     text_valign (series string) : vertical align style - default is text.align_center
     text_wrap (series string) : text wrap style - default is text.wrap_auto
     text_font_family (series string) : Text font. Default is
 Box 
  Box object
  Fields:
     p1 (chart.point) : Diagonal point one
     p2 (chart.point) : Diagonal point two
     properties (BoxProperties) : Box properties
     textProperties (BoxText) : Box text properties
     object (series box) : Box object created
 PolyLineProperties 
  Fields:
     curved (series bool) 
     closed (series bool) 
     xloc (series string) 
     lineColor (series color) 
     fillColor (series color) 
     lineStyle (series string) 
     lineWidth (series int) 
 PolyLine 
  Fields:
     points (array) 
     properties (PolyLineProperties) 
     object (series polyline)
iteratorThe "Iterator" library is designed to provide a flexible way to work with sequences of values. This library offers a set of functions to create and manage iterators for various data types, including integers, floats, and more. Whether you need to generate an array of values with specific increments or iterate over elements in reverse order, this library has you covered.
 Key Features: 
 
 Array Creation:  Easily generate arrays of integers or floats with customizable steps, both inclusive and exclusive of the end values.
 Flexible Iteration:  Includes methods to iterate over arrays of different types, such as booleans, integers, floats, strings, colors, and drawing objects like lines and labels.
 Reverse Iteration:  Support for reverse iteration, giving you control over the order in which elements are processed.
 Automatic Loop Control:  One of the key advantages of this library is that when using the .iterate() method, it only loops over the array when there are values present. This means you don’t have to manually check if the array is populated before iterating, simplifying your code and reducing potential errors.
 Versatile Use Cases:  Ideal for scenarios where you need to loop over an array without worrying about empty arrays or checking conditions manually.
 
This library is particularly useful in cases where you need to perform operations on each element in an array, ensuring that your loops are efficient and free from unnecessary checks.
Library   "iterator" 
The "iterator" library provides a versatile and efficient set of functions for creating and managing iterators.
It allows you to generate arrays of integers or floats with customizable steps, both inclusive and exclusive of the end values.
The library also includes methods for iterating over various types, including booleans, integers, floats, strings, colors,
and drawing objects like lines and labels. With support for reverse iteration and flexible customization options.
 iterator(stop, start, step) 
  Creates an array of integers from start to stop with a specified step, excluding the stop value.
  Parameters:
     stop (int) : The end value of the iterator, exclusive.
     start (int) : The starting value of the iterator. Default is 0.
     step (int) : The increment value for each step in the iterator. Default is 1. Must be greater than 0.
  Returns: An array of integers incremented by the step value from start to stop. Will return and empty array if start = stop.
 iterator(stop, start, step) 
  Creates an array of floats from start to stop with a specified step, excluding the stop value.
  Parameters:
     stop (float) : The end value of the iterator, exclusive.
     start (float) : The starting value of the iterator. Default is 0.
     step (float) : The increment value for each step in the iterator. Default is 1. Must be greater than 0.
  Returns: An array of floats incremented by the step value from start to stop. Will return and empty array if start = stop.
 iterator_inclusive(stop, start, step) 
  Creates an array of integers from start to stop with a specified step, including the stop value.
  Parameters:
     stop (int) : The end value of the iterator, inclusive.
     start (int) : The starting value of the iterator. Default is 0.
     step (int) : The increment value for each step in the iterator. Default is 1. Must be greater than 0.
  Returns: An array of integers incremented by the step value from start to stop, including the stop value.
 iterator_inclusive(stop, start, step) 
  Creates an array of floats from start to stop with a specified step, including the stop value.
  Parameters:
     stop (float) : The end value of the iterator, inclusive.
     start (float) : The starting value of the iterator. Default is 0.
     step (float) : The increment value for each step in the iterator. Default is 1. Must be greater than 0.
  Returns: An array of floats incremented by the step value from start to stop, including the stop value.
 itr(stop, start, step) 
  Creates an array of integers from start to stop with a specified step, excluding the stop value.
  Parameters:
     stop (int) : The end value of the iterator, exclusive.
     start (int) : The starting value of the iterator. Default is 0.
     step (int) : The increment value for each step in the iterator. Default is 1. Must be greater than 0.
  Returns: An array of integers incremented by the step value from start to stop.
 itr(stop, start, step) 
  Creates an array of floats from start to stop with a specified step, excluding the stop value.
  Parameters:
     stop (float) : The end value of the iterator, exclusive.
     start (float) : The starting value of the iterator. Default is 0.
     step (float) : The increment value for each step in the iterator. Default is 1. Must be greater than 0.
  Returns: An array of floats incremented by the step value from start to stop.
 itr_in(stop, start, step) 
  Creates an array of integers from start to stop with a specified step, including the stop value.
  Parameters:
     stop (int) : The end value of the iterator, inclusive.
     start (int) : The starting value of the iterator. Default is 0.
     step (int) : The increment value for each step in the iterator. Default is 1. Must be greater than 0.
  Returns: An array of integers incremented by the step value from start to stop, including the stop value.
 itr_in(stop, start, step) 
  Creates an array of floats from start to stop with a specified step, including the stop value.
  Parameters:
     stop (float) : The end value of the iterator, inclusive.
     start (float) : The starting value of the iterator. Default is 0.
     step (float) : The increment value for each step in the iterator. Default is 1. Must be greater than 0.
  Returns: An array of floats incremented by the step value from start to stop, including the stop value.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
 method iterate(self, reverse) 
  Creates an iterator array for the indices of ana array, with an option to reverse the order.
  Namespace types: array
  Parameters:
     self (array) : The array to iterate over.
     reverse (bool) : A boolean flag indicating whether to reverse the iterator order. Default is false.
  Returns: An array of integers representing the indices of the array. The order can be reversed if specified.
SpectrumLibrary   "Spectrum" 
    This library includes spectrum analysis tools such as the Fast Fourier Transform (FFT).
      
 method toComplex(data, polar) 
  Creates an array of complex type objects from a float type array.
  Namespace types: array
  Parameters:
     data (array) : The float type array of input data.
     polar (bool) : Initialization coordinates; the default is false (cartesian).
  Returns: The complex type array of converted data.
 method sAdd(data, value, end, start, step) 
  Performs scalar addition of a given float type array and a simple float value.
  Namespace types: array
  Parameters:
     data (array) : The float type array of input data.
     value (float) : The simple float type value to be added.
     end (int) : The last index of the input array (exclusive) on which the operation is performed.
     start (int) : The first index of the input array (inclusive) on which the operation is performed; the default value is 0.
     step (int) : The step by which the function iterates over the input data array between the specified boundaries; the default value is 1.
  Returns: The modified input array.
 method sMult(data, value, end, start, step) 
  Performs scalar multiplication of a given float type array and a simple float value.
  Namespace types: array
  Parameters:
     data (array) : The float type array of input data.
     value (float) : The simple float type value to be added.
     end (int) : The last index of the input array (exclusive) on which the operation is performed.
     start (int) : The first index of the input array (inclusive) on which the operation is performed; the default value is 0.
     step (int) : The step by which the function iterates over the input data array between the specified boundaries; the default value is 1.
  Returns: The modified input array.
 method eMult(data, data02, end, start, step) 
  Performs elementwise multiplication of two given complex type arrays.
  Namespace types: array
  Parameters:
     data (array type from RezzaHmt/Complex/1) : the first complex type array of input data.
     data02 (array type from RezzaHmt/Complex/1) : The second complex type array of input data.
     end (int) : The last index of the input arrays (exclusive) on which the operation is performed.
     start (int) : The first index of the input arrays (inclusive) on which the operation is performed; the default value is 0.
     step (int) : The step by which the function iterates over the input data array between the specified boundaries; the default value is 1.
  Returns: The modified first input array.
 method eCon(data, end, start, step) 
  Performs elementwise conjugation on a given complex type array.
  Namespace types: array
  Parameters:
     data (array type from RezzaHmt/Complex/1) : The complex type array of input data.
     end (int) : The last index of the input array (exclusive) on which the operation is performed.
     start (int) : The first index of the input array (inclusive) on which the operation is performed; the default value is 0.
     step (int) : The step by which the function iterates over the input data array between the specified boundaries; the default value is 1.
  Returns: The modified input array.
 method zeros(length) 
  Creates a complex type array of zeros.
  Namespace types: series int, simple int, input int, const int
  Parameters:
     length (int) : The size of array to be created.
 method bitReverse(data) 
  Rearranges a complex type array based on the bit-reverse permutations of its size after zero-padding.
  Namespace types: array
  Parameters:
     data (array type from RezzaHmt/Complex/1) : The complex type array of input data.
  Returns: The modified input array.
 method R2FFT(data, inverse) 
  Calculates Fourier Transform of a time series using Cooley-Tukey Radix-2 Decimation in Time FFT algorithm, wikipedia.org
  Namespace types: array
  Parameters:
     data (array type from RezzaHmt/Complex/1) : The complex type array of input data.
     inverse (int) : Set to -1 for FFT and to 1 for iFFT.
  Returns: The modified input array containing the FFT result.
 method LBFFT(data, inverse) 
  Calculates Fourier Transform of a time series using Leo Bluestein's FFT algorithm, wikipedia.org This function is nearly 4 times slower than the R2FFT function in practice.
  Namespace types: array
  Parameters:
     data (array type from RezzaHmt/Complex/1) : The complex type array of input data.
     inverse (int) : Set to -1 for FFT and to 1 for iFFT.
  Returns: The modified input array containing the FFT result.
 method DFT(data, inverse) 
  This is the original DFT algorithm. It is not suggested to be used regularly.
  Namespace types: array
  Parameters:
     data (array type from RezzaHmt/Complex/1) : The complex type array of input data.
     inverse (int) : Set to -1 for DFT and to 1 for iDFT.
  Returns: The complex type array of DFT result.
COMET_Scanner_Library_FINALLibrary   "COMET_Scanner_Library" 
- A Trader's Edge (ATE)_Library was created to assist in constructing COM Scanners
 TickerIDs(_string) 
  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 COM Scanner.
  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 COM Scanner scripts:
assets = input.text_area(tIDs, title="TickerIDs (MUST READ TOOLTIP)", group=g2, tooltip="Accepts 40 TICKERID's
for each copy of the script on the chart.  *** MUST FORMAT THIS WAY ***  Each FULL tickerID
(ie 'Exchange:ticker') must be separated by A SINGLE BLANK SPACE for correct formatting. The blank space tells
the script where to break off the ticker to assign it to a variable to be used later in the script. So this input
will be a single string constructed from up to 40 tickerID's with a space between each tickerID
(ie. 'BINANCE:BTCUSDT BINANCE:SXPUSDT BINANCE:XRPUSDT').", display=display.none)
  Returns: Returns 40 output variables in the tuple (ie. between the ' ') with the separated TickerIDs,
 Locations(_firstLocation) 
  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:
     _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 variables for the locations for alert labels
 LabelSize(_barCnt, _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 COM 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.
     _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.
 InvalidTickerIDs(_close, _securityTickerid, _invalidArray, _tablePosition, _stackVertical) 
  Parameters:
     _close (float) 
     _securityTickerid (string) 
     _invalidArray (array) 
     _tablePosition (simple string) 
     _stackVertical (simple bool) 
 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.
COM_Scanner_LibraryLibrary   "COM_Scanner_Library" 
- A Trader's Edge (ATE)_Library was created to assist in constructing COM Scanners
 TickerIDs(_string) 
  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 COM Scanner.
  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 COM Scanner scripts:
assets = input.text_area(tIDs, title="TickerIDs (MUST READ TOOLTIP)", group=g2, tooltip="Accepts 40 TICKERID's
for each copy of the script on the chart.  *** MUST FORMAT THIS WAY ***  Each FULL tickerID
(ie 'Exchange:ticker') must be separated by A SINGLE BLANK SPACE for correct formatting. The blank space tells
the script where to break off the ticker to assign it to a variable to be used later in the script. So this input
will be a single string constructed from up to 40 tickerID's with a space between each tickerID
(ie. 'BINANCE:BTCUSDT BINANCE:SXPUSDT BINANCE:XRPUSDT').", display=display.none)
  Returns: Returns 40 output variables in the tuple (ie. between the ' ') with the separated TickerIDs,
 Locations(_firstLocation) 
  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:
     _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 variables for the locations for alert labels
 LabelSize(_barCnt, _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 COM 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.
     _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.
 InvalidTickerIDs(_close, _securityTickerid, _invalidArray, _tablePosition, _stackVertical) 
  Parameters:
     _close (float) 
     _securityTickerid (string) 
     _invalidArray (array) 
     _tablePosition (simple string) 
     _stackVertical (simple bool) 
 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.
GraphLibrary   "Graph" 
Library to collect data and draw scatterplot and heatmap as graph
 method init(this) 
  Initialise Quadrant Data
  Namespace types: Quadrant
  Parameters:
     this (Quadrant) : Quadrant object that needs to be initialised
  Returns: current Quadrant object
 method init(this) 
  Initialise Graph Data
  Namespace types: Graph
  Parameters:
     this (Graph) : Graph object that needs to be initialised with 4 Quadrants
  Returns: current Graph object
 method add(this, data) 
  Add coordinates to graph
  Namespace types: Graph
  Parameters:
     this (Graph) : Graph object
     data (Coordinate) : Coordinates containing x, y data
  Returns: current Graph object
 method calculate(this) 
  Calculation required for plotting the graph
  Namespace types: Graph
  Parameters:
     this (Graph) : Graph object
  Returns: current Graph object
 method paint(this) 
  Draw graph
  Namespace types: Graph
  Parameters:
     this (Graph) : Graph object
  Returns: current Graph object
 Coordinate 
  Coordinates of sample data
  Fields:
     xValue (series float) : x value of the sample data
     yValue (series float) : y value of the sample data
 Quadrant 
  Data belonging to particular quadrant
  Fields:
     coordinates (array) : Coordinates present in given quadrant
 GraphProperties 
  Properties of Graph that needs to be drawn
  Fields:
     rows (series int) : Number of rows (y values) in each quadrant
     columns (series int) : number of columns (x values) in each quadrant
     graphtype (series GraphType) : Type of graph - scatterplot or heatmap
     plotColor (series color) : color of plots or heatmap
     plotSize (series string) : size of cells in the table
     plotchar (series string) : Character to be printed for display of scatterplot
     outliers (series int) : Excude the outlier percent of data from calculating the min and max
     position (series string) : Table position
     bgColor (series color) : graph background color
 PlotRange 
  Range of a plot in terms of x and y values and the number of data points that fall within the Range
  Fields:
     minX (series float) : min range of X value
     maxX (series float) : max range of X value
     minY (series float) : min range of Y value
     maxY (series float) : max range of Y value
     count (series int) : number of samples in the range
 Graph 
  Graph data and properties
  Fields:
     properties (GraphProperties) : Graph Properties object associated
     quadrants (array) : Array containing 4 quadrant data
     plotRanges (matrix) : range and count for each cell
     xArray (array) : array of x values
     yArray (array) : arrray of y values
InsertionSortLibrary   "InsertionSort" 
Library of sorting algorithm for binary insertion sort and related methods
 method binary_insertion_sort(sortedArray, item, order) 
  binary insertion sort - inserts item into sorted array while maintaining sort order
  Namespace types: array
  Parameters:
     sortedArray (array) : array which is assumed to be sorted in the requested order
     item (float) : float|int item which needs to be inserted into sorted array
     order (series ORDER) : Sort order - positive number means ascending order whereas negative number represents descending order
  Returns: int index at which the item is inserted into sorted array
 method binary_insertion_sort(sortedArray, item, order) 
  Namespace types: array
  Parameters:
     sortedArray (array) 
     item (int) 
     order (series ORDER)
BinaryLibrary   "Binary" 
        This library includes functions to convert between decimal and binary numeral formats, and logical and arithmetic operations on binary numbers.
 method toBin(value) 
  Converts the provided boolean value into binary integers (0 or 1).
  Namespace types: series bool, simple bool, input bool, const bool
  Parameters:
     value (bool) : The boolean value to be converted.
  Returns: The converted value in binary integers.
 method dec2bin(value, iBits, fBits) 
  Converts a decimal number into its binary representation.
  Namespace types: series float, simple float, input float, const float
  Parameters:
     value (float) : The decimal number to be converted.
     iBits (int) : The number of binary digits allocated for the integer part.
     fBits (int) : The number of binary digits allocated for the fractional part.
  Returns: An array containing the binary digits for the integer part at the rightmost positions and the digits for the fractional part at the leftmost positions. The array indexes correspond to the bit positions.
 method bin2dec(value, iBits, fBits) 
  Converts a binary number into its decimal representation.
  Namespace types: array
  Parameters:
     value (array) : The binary number to be converted.
     iBits (int) : The number of binary digits allocated for the integer part.
     fBits (int) : The number of binary digits allocated for the fractional part.
  Returns: The converted value in decimal format.
 method lgcAnd(a, b) 
  Bitwise logical AND of two binary numbers. The result of ANDing two binary digits is 1 only if both digits are 1, otherwise, 0.
  Namespace types: array
  Parameters:
     a (array) : First binary number.
     b (array) : Second binary number.
  Returns: An array containing the logical AND of the inputs.
 method lgcOr(a, b) 
  Bitwise logical OR of two binary numbers. The result of ORing two binary digits is 0 only if both digits are 0, otherwise, 1.
  Namespace types: array
  Parameters:
     a (array) : First binary number.
     b (array) : Second binary number.
  Returns: An array containing the logical OR of the inputs.
 method lgcXor(a, b) 
  Bitwise logical XOR of two binary numbers. The result of XORing two binary digits is 1 only if ONE of the digits is 1, otherwise, 0.
  Namespace types: array
  Parameters:
     a (array) : First binary number.
     b (array) : Second binary number.
  Returns: An array containing the logical XOR of the inputs.
 method lgcNand(a, b) 
  Bitwise logical NAND of two binary numbers. The result of NANDing two binary digits is 0 only if both digits are 1, otherwise, 1.
  Namespace types: array
  Parameters:
     a (array) : First binary number.
     b (array) : Second binary number.
  Returns: An array containing the logical NAND of the inputs.
 method lgcNor(a, b) 
  Bitwise logical NOR of two binary numbers. The result of NORing two binary digits is 1 only if both digits are 0, otherwise, 0.
  Namespace types: array
  Parameters:
     a (array) : First binary number.
     b (array) : Second binary number.
  Returns: An array containing the logical NOR of the inputs.
 method lgcNot(a) 
  Bitwise logical NOT of a binary number. The result of NOTing a binary digit is 0 if the digit is 1, or vice versa.
  Namespace types: array
  Parameters:
     a (array) : A binary number.
  Returns: An array containing the logical NOT of the input.
 method lgc2sC(a) 
  2's complement of a binary number. The 2's complement of a binary number N with n digits is defined as 2^(n) - N.
  Namespace types: array
  Parameters:
     a (array) : A binary number.
  Returns: An array containing the 2's complement of the input.
 method shift(value, direction, newBit) 
  Shifts a binary number in the specified direction by one position.
  Namespace types: array
  Parameters:
     value (array) 
     direction (int) : The direction of the shift operation.
     newBit (int) : The bit to be inserted into the unoccupied slot.
  Returns: A tuple of the shifted binary number and the serial output of the shift operation.
 method multiShift(value, direction, newBits) 
  Shifts a binary number in the specified direction by multiple positions.
  Namespace types: array
  Parameters:
     value (array) 
     direction (int) : The direction of the shift operation.
     newBits (array) 
  Returns: A tuple of the shifted binary number and the serial output of the shift operation.
 method crclrShift(value, direction, count) 
  Circularly shifts a binary number in the specified direction by multiple positions. Each ejected bit is inserted from the opposite side.
  Namespace types: array
  Parameters:
     value (array) 
     direction (int) : The direction of the shift operation.
     count (int) : The number of positions to be shifted by.
  Returns: The shifted binary number.
 method arithmeticShift(value, direction, count) 
  Performs arithmetic shift on a binary number in the specified direction by multiple positions. Every new bit is 0 if the shift is leftward, otherwise, it equals the sign bit.
  Namespace types: array
  Parameters:
     value (array) 
     direction (int) : The direction of the shift operation.
     count (int) : The number of positions to be shifted by.
  Returns: The shifted binary number.
 method add(a, b, carry) 
  Performs arithmetic addition on two binary numbers.
  Namespace types: array
  Parameters:
     a (array) : First binary number.
     b (array) : Second binary number.
     carry (int) : The input carry of the operation.
  Returns: The result of the arithmetic addition of the inputs.
 method sub(a, b, carry) 
  Performs arithmetic subtraction on two binary numbers.
  Namespace types: array
  Parameters:
     a (array) : First binary number.
     b (array) : Second binary number. The number to be subtracted.
     carry (int) : The input carry of the operation.
  Returns: The result of the arithmetic subtraction of the input b from the input a.
TradingUtilsLibrary   "TradingUtils" 
Utility library for common trading functions
 calcVariation(price, threshold) 
  Calculates variation of a price based on a threshold
  Parameters:
     price (float) : (float) The price to be varied
     threshold (float) : (float) The threshold for the variation
  Returns: (float) The varied price
 sendAlert(action, symbol, orderType, quantity, message) 
  Sends an alert message in JSON format
  Parameters:
     action (string) : (string) The action to be taken (e.g., "BUY", "SELL")
     symbol (string) : (string) The trading symbol (e.g., "BTCUSDT")
     orderType (string) : (string) The order type (e.g., "MARKET")
     quantity (float) : (float) The quantity of the order
     message (string) : (string) The message to be included in the alert
 updateLine(condition, index, price, lineColor) 
  Updates or creates a line on the chart
  Parameters:
     condition (bool) : (bool) Condition to check if the line should be updated or created
     index (int) : (int) The current bar index
     price (float) : (float) The price value for the line
     lineColor (color) : (color) The color of the line
  Returns: (line) The updated or newly created line
JohtiLiquidityThis libraray will be provide the liquity points that's will be help to find exact point people going to take trades and it will the most important area 
MathTransformLibrary   "MathTransform" 
Auxiliary functions for transforming data using mathematical and statistical methods
 scaler_zscore(x, lookback_window) 
  Calculates Z-Score normalization of a series.
  Parameters:
     x (float) : : floating point series to normalize
     lookback_window (int) : : lookback period for calculating mean and standard deviation
  Returns: Z-Score normalized series
 scaler_min_max(x, lookback_window, min_val, max_val, empiric_min, empiric_max, empiric_mid) 
  Performs Min-Max scaling of a series within a given window, user-defined bounds, and optional midpoint
  Parameters:
     x (float) : : floating point series to transform
     lookback_window (int) : : int : optional lookback window size to consider for scaling.
     min_val (float) : : float : minimum value of the scaled range. Default is 0.0.
     max_val (float) : : float : maximum value of the scaled range. Default is 1.0.
     empiric_min (float) : : float : user-defined minimum value of the input data. This means that the output could exceed the `min_val` bound if there is data in `x` lesser than `empiric_min`. If na, it's calculated from `x` and `lookback_window`.
     empiric_max (float) : : float : user-defined maximum value of the input data. This means that the output could exceed the `max_val` bound if there is data in `x` greater than `empiric_max`. If na, it's calculated from `x` and `lookback_window`.
     empiric_mid (float) : : float : user-defined midpoint value of the input data. If na, it's calculated from `empiric_min` and `empiric_max`.
  Returns: rescaled series
 log(x, base) 
  Applies logarithmic transformation to a value, base can be user-defined.
  Parameters:
     x (float) : : floating point value to transform
     base (float) : : logarithmic base, must be greater than 0
  Returns: logarithm of the value to the given base, if x <= 0, returns logarithm of 1 to the given base
 exp(x, base) 
  Applies exponential transformation to a value, base can be user-defined.
  Parameters:
     x (float) : : floating point value to transform
     base (float) : : base of the exponentiation, must be greater than 0
  Returns: the result of raising the base to the power of the value
 power(x, exponent) 
  Applies power transformation to a value, exponent can be user-defined.
  Parameters:
     x (float) : : floating point value to transform
     exponent (float) : : exponent for the transformation
  Returns: the value raised to the given exponent, preserving the sign of the original value
 tanh(x, scale) 
  The hyperbolic tangent is the ratio of the hyperbolic sine and hyperbolic cosine. It limits an output to a range of −1 to 1.
  Parameters:
     x (float) : : floating point series
     scale (float) 
 sigmoid(x, scale, offset) 
  Applies the sigmoid function to a series.
  Parameters:
     x (float) : : floating point series to transform
     scale (float) : : scaling factor for the sigmoid function
     offset (float) : : offset for the sigmoid function
  Returns: transformed series using the sigmoid function
 sigmoid_double(x, scale, offset) 
  Applies a double sigmoid function to a series, handling positive and negative values differently.
  Parameters:
     x (float) : : floating point series to transform
     scale (float) : : scaling factor for the sigmoid function
     offset (float) : : offset for the sigmoid function
  Returns: transformed series using the double sigmoid function
 logistic_decay(a, b, c, t) 
  Calculates logistic decay based on given parameters.
  Parameters:
     a (float) : : parameter affecting the steepness of the curve
     b (float) : : parameter affecting the direction of the decay
     c (float) : : the upper bound of the function's output
     t (float) : : time variable
  Returns: value of the logistic decay function at time t
EC_2025_Q4_ENLibrary   "EC_2025_Q4_EN" 
 output2025() 
  Returns the list of events during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;;; ... 
Where:  is expressed as date + characteristics: YYYY,MM,DD,hh,mm,ss,x,y,z
x impact in numbers
y event name in numbers
z currency in numbers
 name2025() 
  Returns the list of event names during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;; ... 
Where:  is expressed as: index, name
index: related to event name y
name event: event name related to y text
 impact2025() 
  Returns the list of impact names during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;; ... 
Where:  is expressed as: index, impact
index: related to impact name x
impact: impact name related to x text
 currency2025() 
  Returns the list of currencies during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;; ... 
Where:  is expressed as: index, currency
index: related to currency name z
currency: currency name related to z text
EC_2025_Q3_ENLibrary   "EC_2025_Q3_EN" 
 output2025() 
  Returns the list of events during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;;; ... 
Where:  is expressed as date + characteristics: YYYY,MM,DD,hh,mm,ss,x,y,z
x impact in numbers
y event name in numbers
z currency in numbers
 name2025() 
  Returns the list of event names during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;; ... 
Where:  is expressed as: index, name
index: related to event name y
name event: event name related to y text
 impact2025() 
  Returns the list of impact names during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;; ... 
Where:  is expressed as: index, impact
index: related to impact name x
impact: impact name related to x text
 currency2025() 
  Returns the list of currencies during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;; ... 
Where:  is expressed as: index, currency
index: related to currency name z
currency: currency name related to z text
EC_2025_Q2_ENLibrary   "EC_2025_Q2_EN" 
 output2025() 
  Returns the list of events during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;;; ... 
Where:  is expressed as date + characteristics: YYYY,MM,DD,hh,mm,ss,x,y,z
x impact in numbers
y event name in numbers
z currency in numbers
 name2025() 
  Returns the list of event names during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;; ... 
Where:  is expressed as: index, name
index: related to event name y
name event: event name related to y text
 impact2025() 
  Returns the list of impact names during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;; ... 
Where:  is expressed as: index, impact
index: related to impact name x
impact: impact name related to x text
 currency2025() 
  Returns the list of currencies during the period.
  Returns: array: (week1,week2, ... week_n)
week_n= ;; ... 
Where:  is expressed as: index, currency
index: related to currency name z
currency: currency name related to z text






















