commonThe "Pineify/common" library presents a specialized toolkit crafted to empower traders and script developers with state-of-the-art time manipulation functions on the TradingView platform. It is instead a foundational utility aimed at enriching your script's ability to process and interpret time-based data with unparalleled precision.
 Key Features 
 String Splitter: 
The 'str_split_into_two' function is a universal string handler that separates any given input into two distinct strings based on a specified delimiter. This function is especially useful in parsing time strings or any scenario where a string needs to be divided into logical parts efficiently.
Example:
 
  = str_split_into_two("a:b", ":")
// a = "a"
// b = "b"
 
 Time Parser: 
With 'time_to_hour_minute', users can effortlessly convert a time string into numerical hours and minutes. This function is pivotal for those who need to exact specific time series data or wish to schedule their trades down to the minute.
Example:
 
  = time_to_hour_minute("02:30")
// time_hour = 2
// time_minute = 30
 
 Unix Time Converter 
The 'time_range_to_unix_time' function transcends traditional boundaries by converting a given time range into Unix timestamp format. This integration of date, time, and timezone, accounts for a comprehensive approach, allowing scripts to make timed decisions, perform historical analyses, and account for international markets across different time zones.
Example:
 
// Support 'hhmm-hhmm' and 'hh:mm-hh:mm'
  = time_range_to_unix_time("09:30-12:00")
 
 Summary: 
Each function is meticulously designed to minimize complexity and maximize versatility. Whether you are a programmer seeking to streamline your code, or a trader requiring precise timing for your strategies, our library provides the logical framework that aligns with your needs.
The "Pineify/common" library is the bridge between high-level time concepts and actionable trading insights. It serves a multitude of purposes – from crafting elegant time-based triggers to dissecting complex string data. Embrace the power of precision with "Pineify/common" and elevate your TradingView scripting experience to new heights.
UTILS
JavaScript-style Debug ConsoleThis library provides a JavaScript-style debug console to Pine Coders. It supports the most commonly used utilities from the WHATWG Console Standard including the following:
 • console.log
 • console.debug
 • console.info
 • console.warn
 • console.error
 • console.assert
 • console.count
 • console.countReset
 • console.group
 • console.groupEnd
 • console.clear
In addition to the WHATWG standard, this library also supports the following methods:
 • console.show
 • console.hide
 FEATURES 
 • Follows the WHATWG Console Standard, which is widely adopted by all major JavaScript runtimes including browsers and Node.js.
 • Provides an out-of-box UI with pre-configured theming, ensuring a clean and professional-looking console.
 • Allows for easy UI customizations to fit your personal preferences.
 • Has extremely simple import and initialization, making it easy to integrate with your existing codebase.
 USAGE 
1. Import this library:
 
import algotraderdev/Console/1
 
2. Initialize the console object:
 
var console = Console.new()
// You can also specify optional params to customize the look & feel.
var console = Console.new(
  position = position.bottom_right,
  max_rows = 50,
  width = 0,
  text_size = size.normal,
  background_color = #000000CC,
  timestamp_color = #AAAAAA,
  info_message_color = #DDDDDD,
  debug_message_color = #AAAAAA,
  warn_message_color = #FFEB3B,
  error_message_color = #ff3c00)
 
3. Use the console object to debug your code. Here are some examples:
 
// Basic logging
console.log('hello world!') // prints 'hello world'
console.warn('warn') // prints 'warn' in yellow
console.error('error') // prints 'error' in red
console.clear() // clears the console
// Assertion
console.assert(a.isEmpty(), 'array should be empty') // prints 'assertion failed: array should be empty' if the array is not empty
// Counter
console.count('fooFunction') // prints 'fooFunction: 1'
console.count('fooFunction') // prints 'fooFunction: 2'
console.countReset('fooFunction') // resets the counter
console.count('fooFunction') // prints 'fooFunction: 1'
// Group
console.log('A')
console.group()
console.log('B')
console.group()
console.log('C')
console.log('D')
console.groupEnd()
console.log('E')
console.groupEnd()
console.log('F')
// prints
// A
//   B
//     C
//     D
//   E
// F
// Hide and show
console.hide()
console.show()
UtilsLibrary   "Utils" 
Utility functions. Mathematics, colors, and auxiliary algorithms.
 setTheme(vc, theme) 
  Set theme for levels (predefined colors).
  Parameters:
     vc : (valueColorSpectrum) Object to associate a color with a value, taking into account the previous value and its levels.
     theme : (int) Theme (predefined colors). 
0 = 'User defined'
1 = 'Spectrum Blue-Green-Red'
2 = 'Monokai'
3 = 'Green'
4 = 'Purple'
5 = 'Blue'
6 = 'Red'
  Returns: (void)
 setTheme(vc, colorLevel_Lv1, colorLevel_Lv1_Lv2, colorLevel_Lv2_Lv3, colorLevel_Lv3_Lv4, colorLevel_Lv4_Lv5, colorLevel_Lv5) 
  Set theme for levels (customized colors).
  Parameters:
     vc : (valueColorSpectrum) Object to associate a color with a value, taking into account the previous value and its levels
     colorLevel_Lv1 : (color) Color associeted with value when below Level 1.
     colorLevel_Lv1_Lv2 : (color) Color associeted with value when between Level 1 and 2.
     colorLevel_Lv2_Lv3 : (color) Color associeted with value when between Level 2 and 3.
     colorLevel_Lv3_Lv4 : (color) Color associeted with value when between Level 3 and 4.
     colorLevel_Lv4_Lv5 : (color) Color associeted with value when between Level 4 and 5.
     colorLevel_Lv5 : (color) Color associeted with value when above Level 5.
  Returns: (void)
 setCurrentColorValue(vc) 
  Set color to a current value, taking into account the previous value and its levels
  Parameters:
     vc : (valueColorSpectrum) Object to associate a color with a value, taking into account the previous value and its levels
  Returns: (void)
 setCurrentColorValue(vc, gradient) 
  Set color to a current value, taking into account the previous value.
  Parameters:
     vc : (valueColor) Object to associate a color with a value, taking into account the previous value
     gradient 
  Returns: (void)
 setCustomLevels(vc, level1, level2, level3, level4, level5) 
  Set boundaries for custom levels.
  Parameters:
     vc : (valueColorSpectrum) Object to associate a color with a value, taking into account the previous value and its levels
     level1 : (float) Boundary for level 1
     level2 : (float) Boundary for level 2
     level3 : (float) Boundary for level 3
     level4 : (float) Boundary for level 4 
     level5 : (float) Boundary for level 5
  Returns: (void)
 getPeriodicColor(originalColor, density) 
  Returns a periodic color. Useful for creating dotted lines for example.
  Parameters:
     originalColor : (color) Original color.
     density : (float) Density of color. Expression used in modulo to obtain the integer remainder.
If the remainder equals zero, the color appears, otherwise it remains hidden.
  Returns: (color) Periodic color.
 dinamicZone(source, sampleLength, pcntAbove, pcntBelow) 
  Get Dynamic Zones
  Parameters:
     source : (float) Source
     sampleLength : (int) Sample Length
     pcntAbove : (float) Calculates the top of the dynamic zone, considering that the maximum values are above x% of the sample
     pcntBelow : (float) Calculates the bottom of the dynamic zone, considering that the minimum values are below x% of the sample
  Returns:   A tuple with 3 series of values: (1) Upper Line of Dynamic Zone; 
(2) Lower Line of Dynamic Zone; (3) Center of Dynamic Zone (x = 50%)
 valueColorSpectrum 
  # Object to associate a color with a value, taking into account the previous value and its levels.
  Fields:
     currentValue 
     previousValue 
     level1 
     level2 
     level3 
     level4 
     level5 
     currentColorValue 
     colorLevel_Lv1 
     colorLevel_Lv1_Lv2 
     colorLevel_Lv2_Lv3 
     colorLevel_Lv3_Lv4 
     colorLevel_Lv4_Lv5 
     colorLevel_Lv5 
     theme 
 valueColor 
  # Object to associate a color with a value, taking into account the previous value
  Fields:
     currentValue 
     previousValue 
     currentColorValue 
     colorUp 
     colorDown
fast_utilsLibrary   "fast_utils" 
This library contains my favourite functions. Will be updated frequently
 count_int_digits() 
  Count int digits in number
  Returns: : number of int digits in number
 count_float_digits() 
  Count float digits in number
  Returns: : number of float digits in number
 stringify() 
  Convert values in array or matrix into string values
  Returns: : array or matrix of string values
 arrcompare() 
  Compare values in arrays
  Returns: : bool value
 arrdedup() 
  Remove duplicate values in array
  Returns: : array without duplicates
 ResInMins() 
  Converts current resolution in minutes
  Returns: : return float number of minuted
 MultOfRes(res, mult) 
  Convert current float TF in minutes to target string TF in "timeframe.period" format.
  Parameters:
     res : : current resolution in minutes
     mult : : Multiple of current TF to be calculated.
  Returns: : timeframe format string



