StyleLibraryLibrary   "StyleLibrary" 
A small library of Pine Script functions that return built-in style variables.
 method sizeStyle(size) 
  Takes a `string` that returns the corresponding built-in size style variable.
  Namespace types: series string, simple string, input string, const string
  Parameters:
     size (string) : A `string` representing a built-in size style: `"Tiny"`, `"Small"`, `"Normal"`, `"Large"`,
`"Huge"`, `"Auto"`.
  Returns: The respective built-in size style variable.
 method sizeStyle(size) 
  Takes a `sizeStyle` that returns the corresponding built-in size style variable.
  Namespace types: series sizeStyle
  Parameters:
     size (series sizeStyle) : A `sizeStyle` representing a built-in size style variable.
  Returns: The respective built-in size style variable.
 method lineStyle(style) 
  Takes a `string` that returns the corresponding built-in line style variable.
  Namespace types: series string, simple string, input string, const string
  Parameters:
     style (string) : A `string` representing a built-in line style: `"Dashed"`, `"Dotted"`, `"Solid"`.
  Returns: The respective built-in line style variable.
 method lineStyle(style) 
  Takes a `lineStyle` that returns the corresponding built-in line style variable.
  Namespace types: series lineStyle
  Parameters:
     style (series lineStyle) : A `lineStyle` representing a built-in line style variable.
  Returns: The respective built-in line style variable.
 method labelStyle(style) 
  Takes a `string` that returns the corresponding built-in label style variable.
  Namespace types: series string, simple string, input string, const string
  Parameters:
     style (string) : A `string` representing a built-in label style:
`"Arrow Down"`, `"Arrow Up"`, `"Circle"`, `"Cross"`, `"Diamond"`, `"Flag"`,
`"Label Center"`, `"Label Down"`, `"Label Left"`, `"Label Lower Left"`,
`"Label Lower Right"`, `"Label Right"`, `"Label Up"`, `"Label Upper Left"`,
`"Label Upper Right"`, `"None"`, `"Square"`, `"Text Outline"`, `"Triangle Down"`,
`"Triangle Up"`, `"XCross"`.
  Returns: The respective built-in label style variable.
 method labelStyle(style) 
  Takes a `labelStyle` that returns the corresponding built-in label style variable.
  Namespace types: series labelStyle
  Parameters:
     style (series labelStyle) : A `labelStyle` representing a built-in label style variable.
  Returns: The respective built-in label style variable.
 method fontStyle(font) 
  Takes a `string` that returns the corresponding built-in font style variable.
  Namespace types: series string, simple string, input string, const string
  Parameters:
     font (string) : A `string` representing a built-in font style: `"Default"`, `"Monospace"`.
  Returns: The respective built-in font style variable.
 method positionStyle(position) 
  Takes a `string` that returns the corresponding built-in position style variable.
  Namespace types: series string, simple string, input string, const string
  Parameters:
     position (string) : A `string` representing a built-in position style:
`"Bottom Center", `"Bottom Left", `"Bottom Right", `"Middle Center", `"Middle Left",
`"Middle Right", `"Top Center", `"Top Left", `"Top Right".
  Returns: The respective built-in position style variable.
 method displayStyle(display) 
  Takes a `simple string` that returns the corresponding built-in display style variable.
  Namespace types: simple string, input string, const string
  Parameters:
     display (simple string) : A `simple string` representing a built-in display style: `"All"`, `"Data Window"`,
`"None"`, `"Pane"`, `"Price Scale"`, `"Status Line"`.
  Returns: The respective built-in display style variable.
Label
DeleteArrayType█ OVERVIEW
Here are common functions usually delete drawing once array of drawing is recall.
Method is used as in pine script version 5 instead of custom function.
It is an upgrade from  DeleteArrayObject , which may not support overload parameter in future.
Library   "DeleteArrayType" 
TODO: Delete array type especially for drawings
 method deleteLabel(id) 
  TODO: Delete array
  Namespace types: array
  Parameters:
     id (array) 
  Returns: TODO: label.delete()
 method deleteLine(id) 
  TODO: Delete array
  Namespace types: array
  Parameters:
     id (array) 
  Returns: TODO: line.delete()
 method deleteLineFill(id) 
  TODO: Delete array
  Namespace types: array
  Parameters:
     id (array) 
  Returns: TODO: linefill.delete()
 method deletePolyLine(id) 
  TODO: Delete array
  Namespace types: array
  Parameters:
     id (array) 
  Returns: TODO: polyline.delete()
 method deleteBox(id) 
  TODO: Delete array
  Namespace types: array
  Parameters:
     id (array) 
  Returns: TODO: box.delete()
 method deleteTable(id) 
  TODO: Delete array
  Namespace types: array
  Parameters:
     id (array) 
  Returns: TODO: table.delete()
ObjectHelpersLibrary   "ObjectHelpers" 
Line | Box | Label | Linefill -- Maker, Setter, Getter Library
TODO: add table functionality
 set(object) 
  set all params for `line`, `box`, `label`, `linefill` objects with 1 function
***
## Overloaded
***
```
method set(line Line, int x1=na, float y1=na, int x2=na, float y2=na,string xloc=na,string extend=na,color color=na,string style=na,int width=na,bool update=na) => line
```
### Params 
- **Line** `line` - line object | `required`
- **x1** `int` - value to set x1
- **y1** `float` - value to set y1
- **x2** `int` - value to set x2
- **y2** `float` - value to set y2
- **xloc** `int` - value to set xloc
- **yloc** `int` - value to set yloc
- **extend** `string` - value to set extend
- **color** `color` - value to set color
- **style** `string` - value to set style
- **width** `int` - value to set width
- **update** `bool` - value to set update
***
```
method set(box Box,int left=na,float top=na,int right=na, float bottom=na,color bgcolor=na,color border_color=na,string border_style=na,int border_width=na,string extend=na,string txt=na,color text_color=na,string text_font_family=na,string text_halign=na,string text_valign=na,string text_wrap=na,bool update=false) => box
```
### Params 
- **Box** `box` - box object
- **left** `int` - value to set left
- **top** `float` - value to set top
- **right** `int` - value to set right
- **bottom** `float` - value to set bottom
- **bgcolor** `color` - value to set bgcolor
- **border_color** `color` - value to set border_color
- **border_style** `string` - value to set border_style
- **border_width** `int` - value to set border_width
- **extend** `string` - value to set extend
- **txt** `string` - value to set _text
- **text_color** `color` - value to set text_color
- **text_font_family** `string` - value to set text_font_family
- **text_halign** `string` - value to set text_halign
- **text_valign** `string` - value to set text_valign
- **text_wrap** `string` - value to set text_wrap
- **update** `bool` - value to set update
***
```
method set(label Label,int x=na,float y=na, string txt=na,string xloc=na,color color=na,color textcolor=na,string size=na,string style=na,string textalign=na,string tooltip=na,string text_font_family=na,bool update=false) => label
```
### Paramas 
- **Label** `label` - label object
- **x** `int` - value to set x
- **y** `float` - value to set y
- **txt** `string` - value to set text add`"+++"` to the _text striing to have the current label text concatenated to the location of the "+++")
- **textcolor** `color` - value to set textcolor
- **size** `string` - value to set size
- **style** `string` - value to set style (use "flip" ,as the style to have label flip to top or bottom of bar depending on if open > close and vice versa)
- **text_font_family** `string` - value to set text_font_family
- **textalign** `string` - value to set textalign
- **tooltip** `string` - value to set tooltip
- **update** `bool` - update label to next bar
***
```
method set(linefill Linefill=na,line line1=na,line line2=na,color color=na) => linefill
```
### Params 
- **linefill** `linefill` - linefill object
- **line1** `line` - line object
- **line2** `line` - line object
- **color** `color` - color
  Parameters:
     object (obj) 
  Returns: `line`, `box`, `label`, `linefill`
 method set(Line, x1, y1, x2, y2, xloc, extend, color, style, width, update) 
  set the location params of a line with 1 function auto detects time or bar_index for xloc param
  Namespace types: series line
  Parameters:
     Line (line) : `line` - line object | `required`
     x1 (int) : `int` - value to set x1
     y1 (float) : `float` - value to set y1
     x2 (int) : `int` - value to set x2
     y2 (float) : `float` - value to set y2
     xloc (string) : `int` - value to set xloc
     extend (string) : `string` - value to set extend
     color (color) : `color` - value to set color
     style (string) : `string` - value to set style
     width (int) : `int` - value to set width
     update (bool) : `bool` - value to set update
  Returns: `line`
 method set(Box, left, top, right, bottom, bgcolor, border_color, border_style, border_width, extend, txt, text_color, text_font_family, text_halign, text_valign, text_wrap, update) 
  set the location params of a box with 1 function
  Namespace types: series box
  Parameters:
     Box (box) : `box` - box object | `required`
     left (int) : `int` - value to set left
     top (float) : `float` - value to set top
     right (int) : `int` - value to set right
     bottom (float) : `float` - value to set bottom
     bgcolor (color) : `color` - value to set bgcolor
     border_color (color) : `color` - value to set border_color
     border_style (string) : `string` - value to set border_style
     border_width (int) : `int` - value to set border_width
     extend (string) : `string` - value to set extend
     txt (string) : `string` - value to set _text
     text_color (color) : `color` - value to set text_color
     text_font_family (string) : `string` - value to set text_font_family
     text_halign (string) : `string` - value to set text_halign
     text_valign (string) : `string` - value to set text_valign
     text_wrap (string) : `string` - value to set text_wrap
     update (bool) : `bool` - value to set update
  Returns: `box`
 method set(Label, x, y, txt, xloc, color, textcolor, size, style, textalign, tooltip, text_font_family, update) 
  set the location params of a label with 1 function auto detects time or bar_index for xloc param
  Namespace types: series label
  Parameters:
     Label (label) : `label` | `required`
     x (int) : `int` - value to set x
     y (float) : `float` - value to set y
     txt (string) : `string` - value to set text add`"+++"` to the _text striing to have the current label text concatenated to the location of the "+++")
     xloc (string) 
     color (color) 
     textcolor (color) : `color` - value to set textcolor
     size (string) : `string` - value to set size
     style (string) : `string` - value to set style (use "flip" ,as the style to have label flip to top or bottom of bar depending on if open > close and vice versa)
     textalign (string) : `string` - value to set textalign
     tooltip (string) : `string` - value to set tooltip
     text_font_family (string) : `string` - value to set text_font_family
     update (bool) : `bool` - update label to next bar
  Returns: `label`
 method set(Linefill, line1, line2, color) 
  change the 1 or 2 of the lines in a linefill object
  Namespace types: series linefill
  Parameters:
     Linefill (linefill) 
     line1 (line) : `line` - line object
     line2 (line) : `line` - line object
     color (color) : `color` - color
  Returns: `linefill`
 get(object) 
  get all of the location variables for `line`, `box`, `label` objects or the line objects from a `linefill`
***
## Overloaded
***
```
method get(line Line) =>  
```
### Params 
- **Line** `line` - line object | `required`
***
```
method get(box Box) =>  
```
### Params 
- **Box** `box` - box object | `required`
***
```
method get(label Label) =>  
```
### Paramas 
- **Label** `label` - label object | `required`
***
```
method get(linefill Linefill) =>  
```
### Params 
- **Linefill** `linefill` - linefill object | `required`
  Parameters:
     object (obj) 
  Returns: ` `
 method get(Line) 
  Gets the location paramaters of a Line
  Namespace types: series line
  Parameters:
     Line (line) : `line` - line object 
  Returns:  
 method get(Box) 
  Gets the location paramaters of a Box
  Namespace types: series box
  Parameters:
     Box (box) : `box` - box object 
  Returns:  
 method get(Label) 
  Gets the `x`, `y`, `text` of a Label
  Namespace types: series label
  Parameters:
     Label (label) : `label` - label object 
  Returns:  
 method get(Linefill) 
  Gets `line 1`, `line 2` from a Linefill
  Namespace types: series linefill
  Parameters:
     Linefill (linefill) : `linefill` - linefill object
  Returns:  
 method set_x(Line, x1, x2) 
  set the `x1`, `x2` of a line
***
### Params
- **Line** `line` - line object | `required`
- **x1** `int` - value to set x1 | `required`
- **x2** `int` - value to set x2 | `required`
  Namespace types: series line
  Parameters:
     Line (line) : `line` - line object
     x1 (int) : `int` - value to set x1
     x2 (int) : `int` - value to set x2
  Returns: `line`
 method set_y(Line, y1, y2) 
  set `y1`, `y2` of a line
***
### Params
- **Line** `line` - line object | `required`
- **y1** `float` - value to set y1 | `required`
- **y2** `float` - value to set y2 | `required`
  Namespace types: series line
  Parameters:
     Line (line) : `line` - line object
     y1 (float) : `float` - value to set y1
     y2 (float) : `float` - value to set y2
  Returns: `line`
 method Line(x1, y1, x2, y2, extend, color, style, width) 
  Similar to `line.new()` but can detect time or bar_index for xloc param and has defaults for all params but `x1`, `y1`, `x2`, `y2`
***
### Params
- **x1** `int` - value to set 
- **y1** `float` - value to set 
- **x2** `int` - value to set 
- **y2** `float` - value to set 
- **extend** `string` - extend value to set line 
- **color** `color` - color to set line 
- **style** `string` - style to set line 
- **width** `int` - width to set line
  Namespace types: series int, simple int, input int, const int
  Parameters:
     x1 (int) : `int` - value to set 
     y1 (float) : `float` - value to set 
     x2 (int) : `int` - value to set  
     y2 (float) : `float` - value to set 
     extend (string) : `string` - extend value to set line 
     color (color) : `color` - color to set line 
     style (string) : `string` - style to set line 
     width (int) : `int` - width to set line 
  Returns: `line`
 method Box(left, top, right, bottom, extend, border_color, bgcolor, text_color, border_width, border_style, txt, text_halign, text_valign, text_size, text_wrap) 
  similar to box.new() with the but can detect xloc param and has defaults for everything but location params
***
### Params
- **left** `int` - value to set 
- **top** `float` - value to set 
- **right** `int` - value to set 
- **bottom** `float` - value to set 
- **extend** `string` - extend value to set box 
- **border_color** `color` - color to set border 
- **bgcolor** `color` - color to set background
- **text_color** `color` - color to set text 
- **border_width** `int` - width to set border 
- **border_style** `string` - style to set border 
- **txt** `string` - text to set
- **text_halign** `string` - horizontal alignment to set text 
- **text_valign** `string` - vertical alignment to set text 
- **text_size** `string` - size to set text 
- **text_wrap** `string` - wrap to set text
  Namespace types: series int, simple int, input int, const int
  Parameters:
     left (int) : `int` - value to set 
     top (float) : `float` - value to set 
     right (int) : `int` - value to set 
     bottom (float) : `float` - value to set 
     extend (string) : `string` - extend value to set box 
     border_color (color) : `color` - color to set border 
     bgcolor (color) : `color` - color to set background
     text_color (color) : `color` - color to set text 
     border_width (int) : `int` - width to set border 
     border_style (string) : `string` - style to set border 
     txt (string) : `string` - text to set
     text_halign (string) : `string` - horizontal alignment to set text 
     text_valign (string) : `string` - vertical alignment to set text 
     text_size (string) : `string` - size to set text 
     text_wrap (string) : `string` - wrap to set text 
  Returns: `box`
 method Label(txt, x, y, yloc, color, textcolor, style, size, textalign, text_font_family, tooltip) 
  Similar to label.new() but can detect time or bar_index for xloc param and has defaults for all params but x, y, txt, tooltip   
***
### Params
- **txt** `string` - string to set
- **x** `int` - value to set
- **y** `float` - value to set
- **yloc** `string` - y location to set 
- **color** `color` - label color to set
- **textcolor** `color` - text color to set
- **style** `string` - style to set
- **size** `string` - size to set
- **textalign** `string` - text alignment to set
- **text_font_family** `string` - font family to set
- **tooltip** `string` - tooltip to set
  Namespace types: series string, simple string, input string, const string
  Parameters:
     txt (string) : `string` - string to set
     x (int) : `int` - value to set
     y (float) : `float` - value to set
     yloc (string) : `string` - y location to set
     color (color) : `color` - label color to set
     textcolor (color) : `color` - text color to set
     style (string) : `string` - style to set
     size (string) : `string` - size to set
     textalign (string) : `string` - text alignment to set
     text_font_family (string) : `string` - font family to set
     tooltip (string) : `string` - tooltip to set
  Returns: `label`
 obj 
  Fields:
     obj (series__string)
DeleteArrayObject█ OVERVIEW 
Delete array object according to array size such as label, line, linefill, box and table.
 █ CREDITS 
 HeWhoMustNotBeNamed
ObjectStackLibrary   "ObjectStack" 
 init()  
 push()  
 push()  
 push()  
 push()  
 push()  
 nextIndex()  
 nextIndex()  
 nextIndex()  
 nextIndex()  
 nextIndex()  
 delete()  
 delete()  
 delete()  
 delete()  
 delete()  
 cleanOldest()  
 cleanOldest()  
 cleanOldest()  
 cleanOldest()  
 cleanOldest()  
LabelHelperLibrary   "LabelHelper" 
Utility for managing active labels on the chart.
 add(level, txt, labelColor, textColor)  For displaying a lable at the last bar.
  Parameters:
     level : The value to display the label at.
     txt : The text to show on the label.
     labelColor : The color of the label.
     textColor : The text color of the label.
  Returns: The label being managed.
LabelsLibrary   "Labels" 
Functions to create labels, from simple to complex.
 labelSimple()  
Creates a label each time a condition is true. All label parameters can be customised.
 
   _condition  The condition which must evaluate true for the label to be printed.
   _x   The x location.
   _y  The y location.
   _text  The text to print on the label.
   _color  The colour of the label.
   _textColor  The colour of the text.
   _style  The style of the label.
   _yloc  The y location type.
 
 Returns 
An unnamed label object with the supplied characteristics. To give it a name, assign the output of the function to a label variable, as in the example below.
 labelLast()  
Creates a label each time a condition is true. All label parameters can be customised. + Option to keep only the most recent label. + Option to display the label a configurable number of bars ahead.
 
   _offset   How many bars ahead to draw the label. 
   _keepLast   If true (the default), keeps only the most recent label. If false, prints labels up to the TradingView limit. 
   _condition  The condition which must evaluate true for the label to be printed.
   _y  The y location.
   _text  The text to print on the label.
   _color  The colour of the label.
   _textColor  The colour of the text.
   _style  The style of the label.
   _yloc  The y location type.
 
 Returns  A named label object with the supplied characteristics.
 labelTextAndFloat()  
Creates a label each time a condition is true. All label parameters can be customised. Option to keep only the most recent label. Option to display the label a configurable number of bars ahead; otherwise the x location is fixed at the bar time. + Prints (optional) text and a floating-point number on the next line.
 
   _offset  How many bars ahead to draw the label.
   _float   The floating-point number that you want to display on the label. 
   _keepLast  If true (the default), keeps only the most recent label. If false, prints labels up to the TradingView limit.
   _condition  The condition which must evaluate true for the label to be printed.
   _y  The y location.
   _text  The text to print on the label.
   _color  The colour of the label.
   _textColor  The colour of the text.
   _style  The style of the label.
   _yloc  The y location type.
 
 Returns  A named label object with the supplied characteristics.
 labelTextAndFloatSigFig()  
Creates a label each time a condition is true. All label parameters can be customised. Option to keep only the most recent label. Option to display the label a configurable number of bars ahead; otherwise the x location is fixed at the bar time. Prints (optional) text and a floating-point number on the next line + to a given number of significant figures.
 
   _offset  How many bars ahead to draw the label.
   _sigNumFig   The number of significant figures to display the floating-point number to. 
   _float  The floating-point number that you want to display on the label.
   _keepLast  If true (the default), keeps only the most recent label. If false, prints labels up to the TradingView limit.
   _condition  The condition which must evaluate true for the label to be printed.
   _y  The y location.
   _text  The text to print on the label.
   _color  The colour of the label.
   _textColor  The colour of the text.
   _style  The style of the label.
   _yloc  The y location type.
 
 Returns  A named label object with the supplied characteristics.
 labelTextAndFloatDecimals()  
Creates a label each time a condition is true. All label parameters can be customised. Option to keep only the most recent label. Option to display the label a configurable number of bars ahead. Prints (optional) text and a floating-point number on the next line + to a given number of decimal places.
 
   _offset  How many bars ahead to draw the label.
   _decimals   The number of decimal places to display the floating-point number to. 
   _float  The floating-point number that you want to display on the label.
   _keepLast  If true (the default), keeps only the most recent label. If false, prints labels up to the TradingView limit.
   _condition  The condition which must evaluate true for the label to be printed.
   _y  The y location.
   _text  The text to print on the label.
   _color  The colour of the label.
   _textColor  The colour of the text.
   _style  The style of the label.
   _yloc  The y location type.
 
 Returns  A named label object with the supplied characteristics.
SignalProcessingClusteringKMeansLibrary   "SignalProcessingClusteringKMeans" 
K-Means Clustering Method.
 nearest(point_x, point_y, centers_x, centers_y)  finds the nearest center to a point and returns its distance and center index.
	Parameters:
 	 point_x : float, x coordinate of point.
	 point_y : float, y coordinate of point.
	 centers_x : float array, x coordinates of cluster centers.
	 centers_y : float array, y coordinates of cluster centers.
@ returns tuple of int, float. 
 bisection_search(samples, value)  Bissection Search
	Parameters:
 	 samples : float array, weights to compare.
	 value : float array, weights to compare. 
	Returns: int.
 label_points(points_x, points_y, centers_x, centers_y)  labels each point index with cluster index and distance.
	Parameters:
 	 points_x : float array, x coordinates of points.
	 points_y : float array, y coordinates of points.
	 centers_x : float array, x coordinates of points.
	 centers_y : float array, y coordinates of points. 
	Returns: tuple with int array, float array.
 kpp(points_x, points_y, n_clusters)  K-Means++ Clustering adapted from Andy Allinger.
	Parameters:
 	 points_x : float array, x coordinates of the points.
	 points_y : float array, y coordinates of the points.
	 n_clusters : int, number of clusters. 
	Returns: tuple with 2 arrays, float array, int array.







