Vector2DrawTriangleLibrary   "Vector2DrawTriangle" 
Functions to draw a triangle and manipulate its properties.
 new(a, b, c, xloc, bg_color, line_color, line_style, line_width) 
  Draws a triangle with background fill using line prototype.
  Parameters:
     a : v2     . Vector2 object, in the form `(x, y)`.
     b : v2     . Vector2 object, in the form `(x, y)`.
     c : v2     . Vector2 object, in the form `(x, y)`.
     xloc : string . Type of axis unit, bar_index or time.
     bg_color : color  . Color of the background.
     line_color : color  . Color of the line.
     line_style : string . Style of the line.
     line_width : int    . Width of the line.
  Returns: Triangle object.
 copy(this) 
  Copy a existing triangle object.
  Parameters:
     this : Triangle . Source triangle.
  Returns: Triangle.
 set_position_a(this, x, y) 
  Set the position of corner `a` (modifies source triangle).
  Parameters:
     this : Triangle . Source triangle.
     x : int      . Value at the x axis.
     y : float    . Value at the y axis.
  Returns: Source Triangle.
 set_position_a(this, position) 
  Set the position of corner `a` (modifies source triangle).
  Parameters:
     this : Triangle . Source triangle.
     position : Vector2  . New position.
  Returns: Source Triangle.
 set_position_b(this, x, y) 
  Set the position of corner `b` (modifies source triangle).
  Parameters:
     this : Triangle . Source triangle.
     x : int      . Value at the x axis.
     y : float    . Value at the y axis.
  Returns: Source Triangle.
 set_position_b(this, position) 
  Set the position of corner `b` (modifies source triangle).
  Parameters:
     this : Triangle . Source triangle.
     position : Vector2  . New position.
  Returns: Source Triangle.
 set_position_c(this, x, y) 
  Set the position of corner `c` (modifies source triangle).
  Parameters:
     this : Triangle . Source triangle.
     x : int      . Value at the x axis.
     y : float    . Value at the y axis.
  Returns: Source Triangle.
 set_position_c(this, position) 
  Set the position of corner `c` (modifies source triangle).
  Parameters:
     this : Triangle . Source triangle.
     position : Vector2  . New position.
  Returns: Source Triangle.
 set_style(this, bg_color, line_color, line_style, line_width) 
  Update triangle style options (modifies Source triangle).
  Parameters:
     this : Triangle . Source triangle.
     bg_color : color    . Color of the background.
     line_color : color    . Color of the line.
     line_style : string   . Style of the line.
     line_width : int      . Width of the line.
  Returns: Source Triangle.
 set_bg_color(this, bg_color) 
  Update triangle style options (modifies Source triangle).
  Parameters:
     this : Triangle . Source triangle.
     bg_color : color    . Color of the background.
  Returns: Source Triangle.
 set_line_color(this, line_color) 
  Update triangle style options (modifies Source triangle).
  Parameters:
     this : Triangle . Source triangle.
     line_color : color    . Color of the line.
  Returns: Source Triangle.
 set_line_style(this, line_style) 
  Update triangle style options (modifies Source triangle).
  Parameters:
     this : Triangle . Source triangle.
     line_style : string   . Style of the line.
  Returns: Source Triangle.
 set_line_width(this, line_width) 
  Update triangle style options (modifies Source triangle).
  Parameters:
     this : Triangle . Source triangle.
     line_width : int      . Width of the line.
  Returns: Source Triangle.
 move(this, x, y) 
  Move triangle by provided amount (modifies source triangle).
  Parameters:
     this : Triangle . Source triangle.
     x : float    . Amount to move the vertices of the triangle in the x axis.
     y : float    . Amount to move the vertices of the triangle in the y axis.
  Returns: Source Triangle.
 move(this, amount) 
  Move triangle by provided amount (modifies source triangle).
  Parameters:
     this : Triangle . Source triangle.
     amount : Vector2  . Amount to move the vertices of the triangle in the x and y axis.
  Returns: Source Triangle.
 rotate_around(this, center, angle) 
  Rotate source triangle around a center (modifies source triangle).
  Parameters:
     this : Triangle . Source triangle.
     center : Vector2  . Center coordinates of the rotation.
     angle : float    . Value of angle in degrees.
  Returns: Source Triangle.
 rotate_around(this, center_x, center_y, angle) 
  Rotate source triangle around a center (modifies source triangle).
  Parameters:
     this : Triangle . Source triangle.
     center_x : int      . Center coordinates of the rotation.
     center_y : float    . Center coordinates of the rotation.
     angle : float    . Value of angle in degrees.
  Returns: Source Triangle.
Display
CommonTypesDrawingLibrary   "CommonTypesDrawing" 
Provides a common library source for common types of used graphical drawing structures.
Includes: `Triangle, Quad, Polygon`
 Triangle 
  Representation of a triangle using lines and linefill.
  Fields:
     ab : Edge of point a to b.
     bc : Edge of point b to c.
     ca : Edge of point c to a.
     fill : Fill of the object.
     solid : Check if polygon should have a fill.
 Quad 
  Representation of a quadrilateral using lines and linefill.
  Fields:
     ab : Edge of point a to b.
     bc : Edge of point b to c.
     cd : Edge of point c to d.
     da : Edge of point d to a.
     fill : Fill of the object.
     solid : Check if polygon should have a fill.
 Polygon 
  Representation of a polygon using lines and linefill.
  Fields:
     edges : List of edges in the polygon.
     fills : Fills of the object.
     closed : Check if polygon line should connect last vertice to first.
     solid : Check if polygon should have a fill.
Vector2DrawLineLibrary   "Vector2DrawLine" 
Extends line type with methods for Vector2 and Segment2.
 new(origin, target, xloc, extend, color, style, width) 
  Draws a line using Segment type to hold its coordinate properties..
  Parameters:
     origin : Vector2 . Origin vector of the line.
     target : Vector2 . Target vector of the line.
     xloc : string
     extend : string
     color : color
     style : string
     width : int
  Returns: line object
 new(segment, xloc, extend, color, style, width) 
  Draws a line using Segment type to hold its coordinate properties..
  Parameters:
     segment : Segment2 . Segment with positional coordinates.
     xloc : string
     extend : string
     color : color
     style : string
     width : int
  Returns: line object
 rotate_around(this, center, angle) 
  Instance method to rotate line around center vector (modifies input line).
  Parameters:
     this : line    . Line object.
     center : Vector2 . Center of rotation.
     angle : float   . Rotation angle in degrees.
  Returns: line. Rotated line object.
Sub-Super Script and Roman numerals LibraryLibrary   "Sub_Super_Script_and_RomanNumerals_Library" 
Library to transform numbers into Roman numerals / Super-Sub script / check if value is alpha or number
 isnumber(input) 
  check to see if value is a number
  Parameters:
     input : (string/float/int) value to check
  Returns: (na) if value is NOT a number and input (string/float/int) if value is a number
 isalpha(input) 
  check a string if it is alpha(doesnt contain numbers)
  Parameters:
     input 
  Returns: (string) if string input does NOT contain numbers, return (na) if input string contains numbers
 super(num) 
  convert a string's numbers from normal print to super-script  
  Parameters:
     num : (string/int/float) input value to transform
  Returns: string of input with numbers converted to super-script
 sub(num) 
  convert a string's numbers from normal print to sub-script  
  Parameters:
     num : (string/int/float) input value to transform
  Returns: string of input with numbers converted to sub-script
 roman(num, trunc) 
  convert a string of numbers, float, or int
  Parameters:
     num : (string) input number to transform
     trunc : (bool | false) true to truncate float value, false to show roman numerals with decimals (XX.VI) 
  Returns: string of roman numerals representing the input (num)
PositionLibrary   "Position" 
Allows for simulating trades within an indicator.
 newTrade(size, price, timestamp) 
  Creates a new trade object.
  Parameters:
     size : The size of the trade (number of shares or contracts).
     price : The price at which the trade took place.
     timestamp : The timestamp of the trade. Defaults to the current time.
  Returns: A new trade object.
 start(size, price, timestamp) 
  Starts a new position.
  Parameters:
     size : The size of the position (number of shares or contracts).
     price : The price at which the position was started.
     timestamp : The timestamp of the start of the position. Defaults to the current time.
  Returns: A new position object.
 trade(pos, size, price, timestamp) 
  Modifies an existing position.
  Parameters:
     pos : The position to be modified.
     size : The size of the trade (number of shares or contracts).
     price : The price at which the trade took place.
     timestamp : The timestamp of the trade. Defaults to the current time.
  Returns: The modified position object.
 exit(pos, price, timestamp) 
  Closes a position by trading the entire position size at a given price and timestamp.
  Parameters:
     pos : The position being closed.
     price : The price at which the position is being closed.
     timestamp : The timestamp of the trade, defaults to the current time.
  Returns: The updated position after the trade.
 unrealized(pos, price) 
  Calculates the unrealized gain or loss for a given position and price.
  Parameters:
     pos : The position for which to calculate unrealized gain/loss.
     price : The current market price.
  Returns: The calculated unrealized gain or loss.
 Trade 
  Represents a single trade.
  Fields:
     size : Size of the trade in units.
     price : Price of the trade in currency.
     value : Total value of the trade in currency units.
     time : Timestamp of the trade.
 Position 
  Represents a single position.
  Fields:
     size : Size of the position in units.
     price : Average price of the position in currency.
     value : Total value of the position in currency units.
     start : Timestamp of the first trade that opened the position.
     net : Realized gains and losses of the position in currency units.
     history : Array of trades that make up the position.
theme_presetsStyle Made Easy with 175 Reversable light/dark themes
Built on to of my theme engine, so any tools built with one
will work with the other.
 getTheme(_input) 
  Get a theme by name. (see lib for copy/paste list)
  Parameters:
     _input : string Name of Theme to use.
 apathy() 
  Theme preset -> "Apathy"
  Returns: Theme object
 apprentice() 
  Theme preset -> "Apprentice"
  Returns: Theme object
 ashes() 
  Theme preset -> "Ashes"
  Returns: Theme object
 atelier_cave() 
  Theme preset -> "Atelier Cave"
  Returns: Theme object
 atelier_dune() 
  Theme preset -> "Atelier Dune"
  Returns: Theme object
 atelier_estuary() 
  Theme preset -> "Atelier Estuary"
  Returns: Theme object
 atelier_forest() 
  Theme preset -> "Atelier Forest"
  Returns: Theme object
 atelier_heath() 
  Theme preset -> "Atelier Heath"
  Returns: Theme object
 atelier_lakeside() 
  Theme preset -> "Atelier Lakeside"
  Returns: Theme object
 atelier_plateau() 
  Theme preset -> "Atelier Plateau"
  Returns: Theme object
 atelier_savanna() 
  Theme preset -> "Atelier Savanna"
  Returns: Theme object
 atelier_seaside() 
  Theme preset -> "Atelier Seaside"
  Returns: Theme object
 atelier_sulphurpool() 
  Theme preset -> "Atelier Sulphurpool"
  Returns: Theme object
 atlas() 
  Theme preset -> "Atlas"
  Returns: Theme object
 ayu() 
  Theme preset -> "Ayu"
  Returns: Theme object
 ayu_mirage() 
  Theme preset -> "Ayu Mirage"
  Returns: Theme object
 bespin() 
  Theme preset -> "Bespin"
  Returns: Theme object
 black_metal() 
  Theme preset -> "Black Metal"
  Returns: Theme object
 black_metal_bathory() 
  Theme preset -> "Black Metal (bathory)"
  Returns: Theme object
 black_metal_burzum() 
  Theme preset -> "Black Metal (burzum)"
  Returns: Theme object
 black_metal_funeral() 
  Theme preset -> "Black Metal (dark Funeral)"
  Returns: Theme object
 black_metal_gorgoroth() 
  Theme preset -> "Black Metal (gorgoroth)"
  Returns: Theme object
 black_metal_immortal() 
  Theme preset -> "Black Metal (immortal)"
  Returns: Theme object
 black_metal_khold() 
  Theme preset -> "Black Metal (khold)"
  Returns: Theme object
 black_metal_marduk() 
  Theme preset -> "Black Metal (marduk)"
  Returns: Theme object
 black_metal_mayhem() 
  Theme preset -> "Black Metal (mayhem)"
  Returns: Theme object
 black_metal_nile() 
  Theme preset -> "Black Metal (nile)"
  Returns: Theme object
 black_metal_venom() 
  Theme preset -> "Black Metal (venom)"
  Returns: Theme object
 blue_forest() 
  Theme preset -> "Blue Forest"
  Returns: Theme object
 blueish() 
  Theme preset -> "Blueish"
  Returns: Theme object
 brewer() 
  Theme preset -> "Brewer"
  Returns: Theme object
 bright() 
  Theme preset -> "Bright"
  Returns: Theme object
 brogrammer() 
  Theme preset -> "Brogrammer"
  Returns: Theme object
 brush_trees() 
  Theme preset -> "Brush Trees"
  Returns: Theme object
 catppuccin() 
  Theme preset -> "Catppuccin"
  Returns: Theme object
 chalk() 
  Theme preset -> "Chalk"
  Returns: Theme object
 circus() 
  Theme preset -> "Circus"
  Returns: Theme object
 classic() 
  Theme preset -> "Classic"
  Returns: Theme object
 clrs() 
  Theme preset -> "Colors"
  Returns: Theme object
 codeschool() 
  Theme preset -> "Codeschool"
  Returns: Theme object
 cupcake() 
  Theme preset -> "Cupcake"
  Returns: Theme object
 cupertino() 
  Theme preset -> "Cupertino"
  Returns: Theme object
 da_one_black() 
  Theme preset -> "Da One Black"
  Returns: Theme object
 da_one_gray() 
  Theme preset -> "Da One Gray"
  Returns: Theme object
 da_one_ocean() 
  Theme preset -> "Da One Ocean"
  Returns: Theme object
 da_one_paper() 
  Theme preset -> "Da One Paper"
  Returns: Theme object
 da_one_sea() 
  Theme preset -> "Da One Sea"
  Returns: Theme object
 da_one_white() 
  Theme preset -> "Da One White"
  Returns: Theme object
 danqing() 
  Theme preset -> "Danqing"
  Returns: Theme object
 darcula() 
  Theme preset -> "Darcula"
  Returns: Theme object
 dark_violet() 
  Theme preset -> "Dark Violet"
  Returns: Theme object
 darkmoss() 
  Theme preset -> "Darkmoss"
  Returns: Theme object
 darktooth() 
  Theme preset -> "Darktooth"
  Returns: Theme object
 decaf() 
  Theme preset -> "Decaf"
  Returns: Theme object
 dirtysea() 
  Theme preset -> "Dirtysea"
  Returns: Theme object
 dracula() 
  Theme preset -> "Dracula"
  Returns: Theme object
 edge() 
  Theme preset -> "Edge"
  Returns: Theme object
 eighties() 
  Theme preset -> "Eighties"
  Returns: Theme object
 embers() 
  Theme preset -> "Embers"
  Returns: Theme object
 emil() 
  Theme preset -> "Emil"
  Returns: Theme object
 equilibrium() 
  Theme preset -> "Equilibrium"
  Returns: Theme object
 equilibrium_gray() 
  Theme preset -> "Equilibrium Gray"
  Returns: Theme object
 espresso() 
  Theme preset -> "Espresso"
  Returns: Theme object
 eva() 
  Theme preset -> "Eva"
  Returns: Theme object
 everforest() 
  Theme preset -> "Everforest"
  Returns: Theme object
 flat() 
  Theme preset -> "Flat"
  Returns: Theme object
 framer() 
  Theme preset -> "Framer"
  Returns: Theme object
 fruit_soda() 
  Theme preset -> "Fruit Soda"
  Returns: Theme object
 gigavolt() 
  Theme preset -> "Gigavolt"
  Returns: Theme object
 github() 
  Theme preset -> "Github"
  Returns: Theme object
 google() 
  Theme preset -> "Google"
  Returns: Theme object
 gotham() 
  Theme preset -> "Gotham"
  Returns: Theme object
 grayscale() 
  Theme preset -> "Grayscale"
  Returns: Theme object
 green_screen() 
  Theme preset -> "Green Screen"
  Returns: Theme object
 gruber() 
  Theme preset -> "Gruber"
  Returns: Theme object
 gruvbox_hard() 
  Theme preset -> "Gruvbox Dark, Hard"
  Returns: Theme object
 gruvbox_medium() 
  Theme preset -> "Gruvbox Dark, Medium"
  Returns: Theme object
 gruvbox_pale() 
  Theme preset -> "Gruvbox Dark, Pale"
  Returns: Theme object
 gruvbox_soft() 
  Theme preset -> "Gruvbox Dark, Soft"
  Returns: Theme object
 gruvbox_material_hard() 
  Theme preset -> "Gruvbox Material Dark, Hard"
  Returns: Theme object
 gruvbox_material_medium() 
  Theme preset -> "Gruvbox Material Dark, Medium"
  Returns: Theme object
 gruvbox_material_soft() 
  Theme preset -> "Gruvbox Material Dark, Soft"
  Returns: Theme object
 hardcore() 
  Theme preset -> "Hardcore"
  Returns: Theme object
 harmonic16() 
  Theme preset -> "Harmonic16"
  Returns: Theme object
 heetch() 
  Theme preset -> "Heetch"
  Returns: Theme object
 helios() 
  Theme preset -> "Helios"
  Returns: Theme object
 hopscotch() 
  Theme preset -> "Hopscotch"
  Returns: Theme object
 horizon() 
  Theme preset -> "Horizon"
  Returns: Theme object
 horizon_terminal() 
  Theme preset -> "Horizon Terminal"
  Returns: Theme object
 humanoid() 
  Theme preset -> "Humanoid"
  Returns: Theme object
 ia() 
  Theme preset -> "Ia"
  Returns: Theme object
 icy() 
  Theme preset -> "Icy"
  Returns: Theme object
 ir_black() 
  Theme preset -> "Ir Black"
  Returns: Theme object
 isotope() 
  Theme preset -> "Isotope"
  Returns: Theme object
 kanagawa() 
  Theme preset -> "Kanagawa"
  Returns: Theme object
 katy() 
  Theme preset -> "Katy"
  Returns: Theme object
 kimber() 
  Theme preset -> "Kimber"
  Returns: Theme object
 lime() 
  Theme preset -> "Lime"
  Returns: Theme object
 london_tube() 
  Theme preset -> "London Tube"
  Returns: Theme object
 macintosh() 
  Theme preset -> "Macintosh"
  Returns: Theme object
 marrakesh() 
  Theme preset -> "Marrakesh"
  Returns: Theme object
 materia() 
  Theme preset -> "Materia"
  Returns: Theme object
 material() 
  Theme preset -> "Material"
  Returns: Theme object
 materialdarker() 
  Theme preset -> "Material Darker"
  Returns: Theme object
 material_palenight() 
  Theme preset -> "Material Palenight"
  Returns: Theme object
 material_vivid() 
  Theme preset -> "Material Vivid"
  Returns: Theme object
 mellow_purple() 
  Theme preset -> "Mellow Purple"
  Returns: Theme object
 mocha() 
  Theme preset -> "Mocha"
  Returns: Theme object
 monokai() 
  Theme preset -> "Monokai"
  Returns: Theme object
 Nebula() 
  Theme preset -> "Nebula"
  Returns: Theme object
 nord() 
  Theme preset -> "Nord"
  Returns: Theme object
 nova() 
  Theme preset -> "Nova"
  Returns: Theme object
 ocean() 
  Theme preset -> "Ocean"
  Returns: Theme object
 oceanicnext() 
  Theme preset -> "Oceanicnext"
  Returns: Theme object
 onedark() 
  Theme preset -> "Onedark"
  Returns: Theme object
 outrun() 
  Theme preset -> "Outrun"
  Returns: Theme object
 pandora() 
  Theme preset -> "Pandora"
  Returns: Theme object
 papercolor() 
  Theme preset -> "Papercolor"
  Returns: Theme object
 paraiso() 
  Theme preset -> "Paraiso"
  Returns: Theme object
 pasque() 
  Theme preset -> "Pasque"
  Returns: Theme object
 phd() 
  Theme preset -> "Phd"
  Returns: Theme object
 pico() 
  Theme preset -> "Pico"
  Returns: Theme object
 pinky() 
  Theme preset -> "Pinky"
  Returns: Theme object
 pop() 
  Theme preset -> "Pop"
  Returns: Theme object
 porple() 
  Theme preset -> "Porple"
  Returns: Theme object
 primer() 
  Theme preset -> "Primer"
  Returns: Theme object
 purpledream() 
  Theme preset -> "Purpledream"
  Returns: Theme object
 qualia() 
  Theme preset -> "Qualia"
  Returns: Theme object
 railscasts() 
  Theme preset -> "Railscasts"
  Returns: Theme object
 rebecca() 
  Theme preset -> "Rebecca"
  Returns: Theme object
 rose_pine() 
  Theme preset -> "Rosé Pine"
  Returns: Theme object
 rose_pine_dawn() 
  Theme preset -> "Rosé Pine Dawn"
  Returns: Theme object
 rose_pine_moon() 
  Theme preset -> "Rosé Pine Moon"
  Returns: Theme object
 sagelight() 
  Theme preset -> "Sagelight"
  Returns: Theme object
 sakura() 
  Theme preset -> "Sakura"
  Returns: Theme object
 sandcastle() 
  Theme preset -> "Sandcastle"
  Returns: Theme object
 seti_ui() 
  Theme preset -> "Seti Ui"
  Returns: Theme object
 shades_of_purple() 
  Theme preset -> "Shades Of Purple"
  Returns: Theme object
 shadesmear() 
  Theme preset -> "Shadesmear"
  Returns: Theme object
 shapeshifter() 
  Theme preset -> "Shapeshifter"
  Returns: Theme object
 silk() 
  Theme preset -> "Silk"
  Returns: Theme object
 snazzy() 
  Theme preset -> "Snazzy"
  Returns: Theme object
 solar_flare() 
  Theme preset -> "Solar Flare"
  Returns: Theme object
 solarized() 
  Theme preset -> "Solarized"
  Returns: Theme object
 spaceduck() 
  Theme preset -> "Spaceduck"
  Returns: Theme object
 spacemacs() 
  Theme preset -> "Spacemacs"
  Returns: Theme object
 stella() 
  Theme preset -> "Stella"
  Returns: Theme object
 still_alive() 
  Theme preset -> "Still Alive"
  Returns: Theme object
 summercamp() 
  Theme preset -> "Summercamp"
  Returns: Theme object
 summerfruit() 
  Theme preset -> "Summerfruit"
  Returns: Theme object
 synth_midnight_terminal() 
  Theme preset -> "Synth Midnight Terminal"
  Returns: Theme object
 tango() 
  Theme preset -> "Tango"
  Returns: Theme object
 tender() 
  Theme preset -> "Tender"
  Returns: Theme object
 tokyo_city() 
  Theme preset -> "Tokyo City"
  Returns: Theme object
 tokyo_city_terminal() 
  Theme preset -> "Tokyo City Terminal"
  Returns: Theme object
 tokyo_night() 
  Theme preset -> "Tokyo Night"
  Returns: Theme object
 tokyo_night_storm() 
  Theme preset -> "Tokyo Night Storm"
  Returns: Theme object
 tokyo_night_terminal() 
  Theme preset -> "Tokyo Night Terminal"
  Returns: Theme object
 tokyo_night_terminal_storm() 
  Theme preset -> "Tokyo Night Terminal Storm"
  Returns: Theme object
 tokyodark() 
  Theme preset -> "Tokyodark"
  Returns: Theme object
 tokyodark_terminal() 
  Theme preset -> "Tokyodark Terminal"
  Returns: Theme object
 tomorrow() 
  Theme preset -> "Tomorrow"
  Returns: Theme object
 tomorrow_night() 
  Theme preset -> "Tomorrow Night"
  Returns: Theme object
 tomorrow_night_eighties() 
  Theme preset -> "Tomorrow Night Eighties"
  Returns: Theme object
 twilight() 
  Theme preset -> "Twilight"
  Returns: Theme object
 unikitty() 
  Theme preset -> "Unikitty"
  Returns: Theme object
 unikitty_reversible() 
  Theme preset -> "Unikitty Reversible"
  Returns: Theme object
 uwunicorn() 
  Theme preset -> "Uwunicorn"
  Returns: Theme object
 vice() 
  Theme preset -> "Vice"
  Returns: Theme object
 vulcan() 
  Theme preset -> "Vulcan"
  Returns: Theme object
 windows_10() 
  Theme preset -> "Windows 10"
  Returns: Theme object
 windows_95() 
  Theme preset -> "Windows 95"
  Returns: Theme object
 windows_high_contrast() 
  Theme preset -> "Windows High Contrast"
  Returns: Theme object
 windows_nt() 
  Theme preset -> "Windows Nt"
  Returns: Theme object
 woodland() 
  Theme preset -> "Woodland"
  Returns: Theme object
 xcode_dusk() 
  Theme preset -> "Xcode Dusk"
  Returns: Theme object
Motion▮ FEATURES 
 
  Now as library version :) 
  String-based transition-effects
  Performance optimization. Reduced memory consumption up to >90% by kicking the output to the "stdout".
  Use marquee- or loader-effect on any possible string location.
 
Example: UI Price-Ticker 
----------------------------------------------------------------------------
Library   "Motion" 
 _getStringMono(_len, _str, _sep) 
  Parameters:
     _len 
     _str 
     _sep 
 marquee(this, _extern, _ws, _subLen, _subStart) 
  Parameters:
     this 
     _extern 
     _ws 
     _subLen 
     _subStart 
 transition(this, _subLen, _subStart) 
  Parameters:
     this 
     _subLen 
     _subStart 
 hold(this) 
  Parameters:
     this 
 keyframe 
  keyframe A keyframe object.
  Fields:
     seq 
     intv 
     step 
     length 
     update_no 
     frame_no 
     ltr 
     hold
PatternLibrary   "Pattern" 
Pattern object definitions and functions. Easily draw and keep track of patterns, legs, and points.
 Supported pattern types (as of Version 1):
 	Type             Leg validation         # legs
 	"xabcd"         Direction                3 or 4 (point D not required)
	"zigzag"         Direction                >= 2
	"free"            None                      >= 2
 erase_label(this) 
  Delete the point label
  Parameters:
     this : Point
  Returns: Void
 draw_label(this, position, clr, transp, txt_clr, txt, tooltip, size) 
  Draw the point label
  Parameters:
     this : Point
     position 
     clr 
     transp 
     txt_clr 
     txt 
     tooltip 
     size 
  Returns: line
 leg_init(a, b, prev, next, line) 
  Initialize a pattern leg
  Parameters:
     a : Point A (required)
     b : Point B (required)
     prev : Previous leg
     next : Next leg
     line : Line
  Returns: New instance of leg object
 erase(this) 
  Delete the pattern leg
  Parameters:
     this : Leg
  Returns: Void
 erase(this) 
  Parameters:
     this 
 draw(this, clr, style, transp, width) 
  Draw the pattern leg
  Parameters:
     this : Leg
     clr : Color
     style : Style ("solid", "dotted", "dashed", "arrowleft", "arrowright")
     transp : Transparency
     width : Width
  Returns: line
 draw(this, clr, style, transp, width) 
  Parameters:
     this 
     clr 
     style 
     transp 
     width 
 leg_getLineTerms(this) 
  Get the slope and y-intercept of a leg
  Parameters:
     this : Leg
  Returns:  
 leg_getPrice(this, index) 
  Get the price (Y) at a given bar index (X) within the leg
  Parameters:
     this : Leg
     index : Bar index
  Returns: Price (float)
 pattern_init(legs, tp, name, subType, pid) 
  Initialize a pattern object from a given set of legs
  Parameters:
     legs : Array of pattern legs (required)
     tp : Pattern type ("zigzag", "xabcd", or "free". dft = "free")
     name : Pattern name
     subType : Pattern subtype
     pid : Pattern Identifier string
  Returns: New instance of pattern object, if one was successfully created
 pattern_init(points, tp, name, subType, pid) 
  Initialize a pattern object from a given set of points
  Parameters:
     points 
     tp : Pattern type ("zigzag", "xabcd", or "free". dft = "free")
     name : Pattern name
     subType : Pattern subtype
     pid : Pattern Identifier string
  Returns: New instance of pattern object, if one was successfully created
 point 
  A point on the chart (x,y)
  Fields:
     x : 				Bar index (x coordinate)
     y 
     label 
 leg 
  A pattern leg (point A to point B)
  Fields:
     a : 				Point A
     b 
     deltaX 
     deltaY 
     prev 
     next 
     retrace 
     line 
 pattern 
  A pattern (set of at least 2 connected legs)
  Fields:
     legs 
     type 
     subType 
     name 
     pid
SignalBuilderSignalBuilder 
Utility for building a collection of signal values.  Provides a default view for displaying signals.
 
  Simplified API for aggregating signal values.
  Flexible for use with indicators and strategies.
 
See the demo section for an example.
TableBuilderTableBuilder  is a library designed to make it easier to create tables in PineScript.
It allows you to more flexibly define the structure of a table before actually building it.
Features:
 
 Style inheritance: styles are inherited from Table, to Column, to Row, and then Cell.
 Columns are useful for propagating/reusing style but they are not required.
 Add rows with different numbers of cells. The resultant number of columns in the table will be determined by the max number of cells vs the number of defined columns.
 Auto text color: Instead of having to set the font color for every cell, the color is automatically determined by the luminosity of the background color.
 
See the 'Demo' section of the code for an example.
Obj_XABCD_HarmonicLibrary   "Obj_XABCD_Harmonic" 
Harmonic XABCD Pattern object and associated methods. Easily validate, draw, and get information about harmonic patterns. See example code at the end of the script for details.
 init_params(pct_error, pct_asym, types, w_e, w_p, w_d) 
  Create a harmonic parameters object (used by xabcd_harmonic object for pattern validation and scoring).
  Parameters:
     pct_error : Allowed % error of leg retracement ratio versus the defined harmonic ratio 
     pct_asym : Allowed leg length/period asymmetry % (a leg is considered invalid if it is this % longer or shorter than the average length of the other legs)
     types : Array of pattern types to validate (1=Gartley, 2=Bat, 3=Butterfly, 4=Crab, 5=Shark, 6=Cypher)
     w_e : Weight of ratio % error (used in score calculation, dft = 1)
     w_p : Weight of PRZ confluence (used in score calculation, dft = 1)
     w_d : Weight of Point D / PRZ confluence (used in score calculation, dft = 1)
  Returns: harmonic_params object instance. It is recommended to store and reuse this object for multiple xabcd_harmonic objects rather than creating new params objects unnecessarily.
 init(xX, xY, aX, aY, bX, bY, cX, cY, dX, dY, params, tp, p) 
  Initialize an xabcd_harmonic object instance. 
       If the pattern is valid, an xabcd_harmonic object instance is returned. If you want to specify your
       own validation and scoring parameters, you can do so by passing a harmonic_params object (params).
       Or, if you prefer to do your own validation, you can explicitly pass the harmonic pattern type (tp)
       and validation will be skipped. You can also pass in an existing xabcd_harmonic instance if you wish
       to re-initialize it (e.g. for re-validation and/or re-scoring).
  Parameters:
     xX : Point X bar index
     xY : Point X price/level
     aX : Point A bar index
     aY : Point A price/level
     bX : Point B bar index
     bY : Point B price/level
     cX : Point C bar index
     cY : Point C price/level
     dX : Point D bar index
     dY : Point D price/level
     params : harmonic_params used to validate and score the pattern. Validation will be skipped if a type (tp) is explicitly passed in.
     tp : Pattern type
     p : xabcd_harmonic object instance to initialize (optional, for re-validation/re-scoring)
  Returns: xabcd_harmonic object instance if a valid harmonic, else na
 get_name(p) 
  Get the pattern name
  Parameters:
     p : Instance of xabcd_harmonic object
  Returns: Pattern name (string)
 get_symbol(p) 
  Get the pattern symbol
  Parameters:
     p : Instance of xabcd_harmonic object
  Returns: Pattern symbol (1 byte string)
 get_pid(p) 
  Get the Pattern ID. Patterns of the same type with the same coordinates will have the same Pattern ID.
  Parameters:
     p : Instance of xabcd_harmonic object
  Returns: Pattern ID (string)
 set_target(p, target, target_lvl, calc_target) 
  Set value for a target. Use the calc_target parameter to automatically calculate the target for a specific harmonic ratio.
  Parameters:
     p : Instance of xabcd_harmonic object
     target : Target (1 or 2)
     target_lvl : Target price/level (required if calc_target is not specified)
     calc_target : Target to auto calculate (required if target is not specified)
                 Options:  
  Returns: Target price/level (float)
 erase_pattern(p) 
  Erase the pattern
  Parameters:
     p : Instance of xabcd_harmonic object
  Returns: p
 draw_pattern(p) 
  Draw the pattern
  Parameters:
     p : Instance of xabcd_harmonic object
  Returns: Pattern lines 
 
 erase_label(p) 
  Erase the pattern label
  Parameters:
     p : Instance of xabcd_harmonic object
  Returns: p
 draw_label(p, txt, tooltip, clr, txt_clr) 
  Draw the pattern label. Default text is the pattern name.
  Parameters:
     p : Instance of xabcd_harmonic object
     txt : Label text
     tooltip : Tooltip text
     clr : Label color
     txt_clr : Text color
  Returns: Label
 harmonic_params 
  Validation and scoring parameters for a Harmonic Pattern object (xabcd_harmonic)
  Fields:
     pct_error : 		Allowed % error of leg retracement ratio versus the defined harmonic ratio 
     pct_asym 
     types 
     w_e 
     w_p 
     w_d 
 xabcd_harmonic 
  Harmonic Pattern object
  Fields:
     bull : 			Bullish pattern flag 
     tp 
     xX 
     xY 
     aX 
     aY 
     bX 
     bY 
     cX 
     cY 
     dX 
     dY 
     r_xb 
     re_xb 
     r_ac 
     re_ac 
     r_bd 
     re_bd 
     r_xd 
     re_xd 
     score 
     score_eAvg 
     score_prz 
     score_eD 
     prz_bN 
     prz_bF 
     prz_xN 
     prz_xF 
     t1Hit : 		Target 1 flag
     t1 
     t2Hit 
     t2 
     sHit : 			Stop flag
     stop : 			Stop level
     entry : 		Entry level
     eHit 
     eX 
     eY 
     pLines 
     pLabel 
     pid 
     params
WelcomeUDT█  OVERVIEW 
This is a simplest example of   user-defined types (UDT) or objects , which simplify as alternative to hello world.
 █  CREDITS 
 Tradingview 
 █  USAGE 
These are the types used during initializations, commonly variables.
 
export type Settings
	int     bar
	float   price
	string  phrase
	...
 
Example of library function to print out label.
 
export printLabel(Settings setup) =>
	if setup.variable
		var label lab = na
		label.delete(lab)
		lab := label.new(setup.bar, setup.price, setup.phrase, color = setup.bg)
	else
		label.new(setup.bar, setup.price, setup.phrase, color = setup.bg)
 
Usage of types
 Settings setup = Settings.new(bar_index , priceInput, phraseInput, colorInput, variableInput) 
Alternative way to write types
 
Settings setup = Settings.new(
   bar      = bar_index ,
   price    = priceInput,
   phrase   = phraseInput,
   variable = variableInput)
 
Usage of types into custom function / library function.
 printLabel(setup) 
 printLabel(Settings) 
  Print out label
  Parameters:
     Settings : types
  Returns: Label object
 Settings 
  Initialize type values
  Fields:
     bar : X position for label
     price : Y position for label
     phrase : Text for label
     bg : Color for label
     variable : Boolean for enable new line and delete line
Dynamic Array Table (versatile display methods)Library   "datTable" 
Dynamic Array Table.... Configurable Shape/Size Table from Arrays
Allows for any data in any size combination of arrays to join together
with: 
 
  all possible orientations!
  filling all cells contiguously and/or flipping at boundaries
  vertical or horizontal rotation
  x/y axis direction swapping
  all types array inputs for data.
 
please notify of any bugs. thanks
 init(_posit) 
  Get Table (otional gapping cells)
  Parameters:
     _posit : String or Int (1-9 3x3 grid L to R) 
  Returns: Table
 coords() 
  Req'd coords Seperate for VARIP table,  non-varip coords 
 add 
  Add arrays to display table. coords reset each calc
  uses displaytable object, string titles, and color optional array, and second line optional data array.
CSMlibraryLibrary   "CSMlibrary" 
TODO: Contains functions to simplify my scripts.  Using code snippets in reference manual and elsewhere .....
 CSMplot()
base16Library   "base16" 
Base16 Syntax Theme Collection. dark/light Pairs placed into 2 matched groups.
included is tool for assembling your own themes, as well as all themes String names
to create your own Input menus / add to your own theme matrix, and theme selectors
 addToMatrix(_mtx, _title, _choices, _theme) 
  To create a theme matrix with string index, use a color matrix global
add theme name to string array of theme titles
and last input a theme from above, or create your own theme arrays.
  Parameters:
     _mtx : (color    )  matrix for storage
     _title : (string   )  Name of theme being added
     _choices : (string  )  name index
     _theme : (color   )  colors being added
  Returns: void
 addToMatrix(_mtx, _theme) 
  Add theme to color matrix Non-indexed
  Parameters:
     _mtx : (color    )  matrix for storage
     _theme : (color   )  colors being added
 dark() 
  Dark Themne Selection (With light Equivalent in same location)
  Returns: Color matrix of dark themes
 light() 
  light Themne Selection (With dark Equivalent in same location)
  Returns: Color matrix of light themes
 selectTheme(_mtx, _themes, _theme) 
  Get a Theme By Name
  Parameters:
     _mtx : (Matrix color) Name of Theme
     _themes : (Array string) Array with Names of Themes
     _theme : (string      ) Name of Theme to select
 selectTheme(_mtx, _theme) 
  Get a Theme By Number
  Parameters:
     _mtx : (Matrix color) Name of Theme
     _theme : (int      ) Number of Theme to select
///  all themes included:
 
  3024
  apathy
  apprentice
  ashes
  atelier_cave_light
  atelier_cave
  atelier_dune_light
  atelier_dune
  atelier_estuary_light
  atelier_estuary
  atelier_forest_light
  atelier_forest
  atelier_heath_light
  atelier_heath
  atelier_lakeside_light
  atelier_lakeside
  atelier_plateau_light
  atelier_plateau
  atelier_savanna_light
  atelier_savanna
  atelier_seaside_light
  atelier_seaside
  atelier_sulphurpool_light
  atelier_sulphurpool
  atlas
  ayu_dark
  ayu_light
  ayu_mirage
  bespin
  black_metal_bathory
  black_metal_burzum
  black_metal_dark_funeral
  black_metal_gorgoroth
  black_metal_immortal
  black_metal_khold
  black_metal_marduk
  black_metal_mayhem
  black_metal_nile
  black_metal_venom
  black_metal
  blue_forest
  blueish
  brewer
  bright
  brogrammer
  brush_trees_dark
  brush_trees
  catppuccin
  chalk
  circus
  classic_dark
  classic_light
  codeschool
  clrs
  cupcake
  cupertino
  da_one_black
  da_one_gray
  da_one_ocean
  da_one_paper
  da_one_sea
  da_one_white
  danqing_light
  danqing
  darcula
  darkmoss
  darktooth
  dark_violet
  decaf
  default_dark
  default_light
  dirtysea
  dracula
  edge_dark
  edge_light
  eighties
  embers
  emil
  equilibrium_dark
  equilibrium_gray_dark
  equilibrium_gray_light
  equilibrium_light
  espresso
  eva_dim
  eva
  everforest
  flat
  framer
  fruit_soda
  gigavolt
  github
  google_dark
  google_light
  gotham
  grayscale_dark
  grayscale_light
  green_screen
  gruber
  gruvbox_dark_hard
  gruvbox_dark_medium
  gruvbox_dark_pale
  gruvbox_dark_soft
  gruvbox_light_hard
  gruvbox_light_medium
  gruvbox_light_soft
  gruvbox_material_dark_hard
  gruvbox_material_dark_medium
  gruvbox_material_dark_soft
  gruvbox_material_light_hard
  gruvbox_material_light_medium
  gruvbox_material_light_soft
  hardcore
  harmonic16_dark
  harmonic16_light
  heetch_light
  heetch_dark
  helios
  hopscotch
  horizon_dark
  horizon_light
  horizon_terminal_dark
  horizon_terminal_light
  humanoid_dark
  humanoid_light
  ia_dark
  ia_light
  icy_dark
  ir_black
  isotope
  kanagawa
  katy
  kimber
  lime
  macintosh
  marrakesh
  materia
  material_darker
  material_lighter
  material_palenight
  material_vivid
  material
  mellow_purple
  mexico_light
  mocha
  monokai
  Nebula
  nord
  nova
  ocean
  oceanicnext
  one_light
  onedark
  outrun_dark
  pandora
  papercolor_dark
  papercolor_light
  paraiso
  pasque
  phd
  pico
  pinky
  pop
  porple
  primer_dark_dimmed
  primer_dark
  primer_light
  purpledream
  qualia
  railscasts
  rebecca
  rose_pine_dawn
  rose_pine_moon
  rose_pine
  sagelight
  sakura
  sandcastle
  seti_ui
  shades_of_purple
  shadesmear_dark
  shadesmear_light
  shapeshifter
  silk_dark
  silk_light
  snazzy
  solar_flare_light
  solar_flare
  solarized_dark
  solarized_light
  spaceduck
  spacemacs
  stella
  still_alive
  summercamp
  summerfruit_dark
  summerfruit_light
  synth_midnight_terminal_dark
  synth_midnight_terminal_light
  tango
  tender
  tokyo_city_dark
  tokyo_city_light
  tokyo_city_terminal_dark
  tokyo_city_terminal_light
  tokyo_night_dark
  tokyo_night_light
  tokyo_night_storm
  tokyo_night_terminal_dark
  tokyo_night_terminal_light
  tokyo_night_terminal_storm
  tokyodark_terminal
  tokyodark
  tomorrow_night_eighties
  tomorrow_night
  tomorrow
  london_tube
  twilight
  unikitty_dark
  unikitty_light
  unikitty_reversible
  uwunicorn
  vice
  vulcan
  windows_10_light
  windows_10
  windows_95_light
  windows_95
  windows_high_contrast_light
  windows_high_contrast
  windows_nt_light
  windows_nt
  woodland
  xcode_dusk
  zenburn
fontLibrary   "font" 
Unicode Characters Replacement function for strings.
 uni(_str, _number) 
  Unicode Font Substitutee
  Parameters:
     _str : Input Strinbg
     _number : Font by Int input
 uni(_str, _number) 
  Unicode Font Substitutee
  Parameters:
     _str : Input Strinbg
     _number : Font by Name input
Time_FilterLibrary   "Time_Filter" 
Time filters for trading strategies.
 f_isInWeekDay(_timeZone, _byWeekDay, _byMon, _byTue, _byWed, _byThu, _byFri, _bySat, _bySun) 
  f_isInWeekDay - Filter by week day or by time delimited session.
  Parameters:
     _timeZone : - Time zone to use when filter allowed trading by days of the week.
     _byWeekDay : - Filter allowed trading time by days of the week.
     _byMon : - Is Monday a trading day?
     _byTue : - Is Tuesday a trading day?
     _byWed : - Is Wednesday a trading day?
     _byThu : - Is Thursday a trading day?
     _byFri : - Is Friday a trading day?
     _bySat : - Is Saturday a trading day?
     _bySun : - Is Sunday a trading day?
  Returns: series of bool whether or not the time is inside the current day.
 f_isInSession(_timeZone, _bySession_1, _timeSession_1, _bySession_2, _timeSession_2) 
  f_isInSession - Is the current time with in the allowed trading session time.
  Parameters:
     _timeZone : - Time zone to use when filter allowed trading by days of the week.
     _bySession_1 : - Filter allowed trading time with in hours defined in _timeSession_1
     _timeSession_1 : - Hours with in trading is allowed.
     _bySession_2 : - Filter allowed trading time with in hours defined in _timeSession_2
     _timeSession_2 : - Hours with in trading is allowed.
  Returns: series of bool whether or not the time is inside selected session.
 f_isTradingAllowed(_timeZone, _byWeekDay, _byMon, _byTue, _byWed, _byThu, _byFri, _bySat, _bySun, _bySession_1, _timeSession_1, _bySession_2, _timeSession_2) 
  f_isTradingAllowed - Is the current time with in the allowed.
  Parameters:
     _timeZone : - Time zone to use when filter allowed trading by days of the week.
     _byWeekDay : - Filter allowed trading time by days of the week.
     _byMon : - Is Monday a trading day?
     _byTue : - Is Tuesday a trading day?
     _byWed : - Is Wednesday a trading day?
     _byThu : - Is Thursday a trading day?
     _byFri : - Is Friday a trading day?
     _bySat : - Is Saturday a trading day?
     _bySun : - Is Sunday a trading day?
     _bySession_1 : - Filter allowed trading time with in hours defined in _timeSession_1
     _timeSession_1 : - Hours with in trading is allowed.
     _bySession_2 : - Filter allowed trading time with in hours defined in _timeSession_2
     _timeSession_2 : - Hours with in trading is allowed.
  Returns: series of bool whether or not trading is allowed at the current time.
inChart - LibLibrary   "inChart" 
determine if price value is between chart high + x% and low - x% on the visible chart.
 inChart()
DiscordLibraryLibrary   "DiscordLibrary" 
 BoldString() 
  Bold String in Discord Function
 ItalicizeString() 
  Italicize String in Discord Function
 StrikeThroughString() 
  Strikethrough a String in Discord Function
 UnderlineString() 
  Underline a String in Discord Function
 SpoilerString() 
  When you send the text, it will be shown as a black block, and only by clicking on it will you be able to see what is written below, in a way, unveiling the text or giving spoilers
 HighlightString() 
  Highlight String Function
 BoxedString() 
  Put String in a Box Function
 NonEmbeddedURLString() 
  Format URL String so that it is not an embedded Image but just the Link
 InvisibleString() 
  Send Inivisible Text
 FormatTimePeriodForDiscord() 
 GetDiscordEmbedJSON() 
  Generate discord embed JSON
 GetDiscordTextJSON() 
  Formats Content Only JSON Message
 Truncate() 
  Custom function to truncate (cut) excess decimal places
 FormatDiscordMessage() 
  format Content message
 FormatCoin() 
  Format Ticker Symbol
UtilitiesLibrary   "Utilities" 
General utilities
 print_series(s, skip_na, position, show_index, from_index, to_index) 
  Print series values
  Parameters:
     s : Series (string)
     skip_na : Flag to skip na values (optional bool, dft = false)
     position : Position to print the Table (optional string, dft = position.bottom_center)
     show_index : Flag to show series indices (optional bool, dft = true)
     from_index : First index to print (optional int, dft = 0)
     to_index : Last index to print (optional int, dft = last_bar_index)
  Returns: Table object, if series was printed
 print(v, position, at_index) 
  Print value
  Parameters:
     v : Value (string)
     position : Position to print the Table (optional string, dft = position.bottom_center)
     at_index : Index at which to print (optional int, dft = last_bar_index)
  Returns: Table object, if value was printed
HSV and HSL gradient Tools ( Built-in Drop-in replacement )Library   "hsvColor" 
HSV and HSL Gradient Tool Alternatives and helpers. Demo'd is built-in in the middle with HSL/HSV gradients on top/bottom
TODO:  Solve for #000000 issue
 rgbhsv(_col) 
  RGB Color to HSV Values
  Parameters:
     _col : Color input (#abc012 or color.name or color.rgb(0,0,0,0))
  Returns:   values
 rgbhsv(_r, _g, _b, _t) 
  RGB Color to HSV Values
  Parameters:
     _r : Red    0 - 255
     _g : Green  0 - 255
     _b : Blue   0 - 255
     _t : Transp 0 - 100
  Returns:   values
 hsv(_h, _s, _v, _a) 
  HSV colors, Auto fix if past boundaries
  Parameters:
     _h : Hue Input (-360 - 360) or further
     _s : Saturation 0.- 1.
     _v : Value      0.- 1.
     _a : Alpha      0.- 1.
  Returns: Color output
 hue(_col) 
  returns 0-359 hue on color wheel
  Parameters:
     _col : 
  Returns: 360 degree hue value
 hsv_gradient(signal, _startVal, _endVal, _startCol, _endCol) 
  Color Gradient Replacement Function for HSV calculated Gradents
  Parameters:
     signal : Control signal
     _startVal : start color limit
     _endVal : end   color limit
     _startCol : start color
     _endCol : end   color
  Returns: HSV calculated gradient
 hsl_gradient(signal, _startVal, _endVal, _startCol, _endCol) 
  Color Gradient Replacement Function for HSV calculated Gradents
  Parameters:
     signal : Control signal
     _startVal : start color limit
     _endVal : end   color limit
     _startCol : start color
     _endCol : end   color
  Returns: HSV calculated gradient
Tosch Market Sessions (US/GB/JP)Library   "Tosch Market Sessions" 
Returns if the NYSE, London SE, Tokyo SE are open
 @function Returns if the NYSE (US), London SE (GB), Tokyo SE (JP) are open
 @returns 
 bus, bgb, bjp - bool:  true if the corresponding exchange is open
 count              - int:   count of how many exchanges are open at the moment
 ccolor             - color: color that indicates the number of open exchanges
                           0 => color.black
                           1 => color.blue
                           2 => color.orange
                           3 => color.white






















