calcLibrary   "calc" 
Library for math functions. will expand over time.
 split(_sumTotal, _divideBy, _forceMinimum, _haltOnError) 
  Split a large number into integer sized chunks
  Parameters:
     _sumTotal : (int) Total numbert of items
     _divideBy : (int) Groups to make
     _forceMinimum : (bool) force minimum number 1/group
     _haltOnError : (bool) force error if too few groups
  Returns: int  array of items per group
Utilities
external_input_utilsLibrary   "external_input_utils" 
Collection of external input utilities for conversion and other hacky functions
 str_to_src(value)  str_to_src - Convert the string value to the coresponding source series. It can be used to limit the "input.source" choices provided to the end user.
The most interesting part is that it can be used to overcome the "one input.source call limitation" for external inputs to your script
  Parameters:
     value : - The string equivalent to the source to be converted
  Returns: series of the coresponding source
 eval_cond(input, operator, value, defval)  eval_cond - Evaluate the condition given an operator
  Parameters:
     input : - The input to be compared with. It can be an external input or a regular one
     operator : - The string operator that describe the coparison operation
     value : - The value to compare with the input. This can be a serries or a constant
     defval : - The boolean value to return when 'noop' is selected
  Returns: series of bool the result of the operation evaluation
[TEMPLATE] Code Block Comments█  OVERVIEW 
Here I present to the community at large a collection of code comment blocks that I think will be useful, especially for larger script projects bordering on 2,000 lines or above of code.
  
█  PLANNED FUTURE UPDATES 
 
    Work with the community to expand this template to be even more useful with the inclusion of useful global colour sets, variables, tooltips, groups, etc.
    better script thumbnail.
    full-screen table or label outlining the script's use-cases.
utilsLibrary   "utils" 
 ma_smooth(alg, src, len)  Calculates various moving averages
  Parameters:
     alg : Smoothing algorithm to use  
     src : Source data
     len : Length of moving average
arsenalLibrary   "arsenal" 
This library is a collection of weapons that will help us win the war against the market.
 isNewbar(res, timezone)  Checks if the res is in new bar at the current timeframe
  Parameters:
     res : - resolution of the bar to check if new
     timezone : - timezone of the resolution
  Returns: ch: - 1=true, 0=false
DiscordWebhookFunctionLibrary   "DiscordWebhookFunction" 
 discordMarkdown(_str, _italic, _bold, _code, _strike, _under)  Convert string to markdown formatting User can combine any function at the same time.
  Parameters:
     _str : String input
     _italic : Italic
     _bold : Bold
     _code : Code markdown
     _strike : Strikethrough
     _under : Underline
  Returns: string Markdown formatted string.
 discordWebhookJSON(_username, _avatarImgUrl, _contentText, _bodyTitle, _descText, _bodyUrl, _embedCol, _timestamp, _authorName, _authorUrl, _authorIconUrl, _footerText, _footerIconUrl, _thumbImgUrl, _imageUrl)  Convert data to JSON format for Discord Webhook Integration.
  Parameters:
     _username : Override bot (webhook) username string / name,
     _avatarImgUrl : Override bot (webhook) avatar by image URL,
     _contentText : Main content page message,
     _bodyTitle : Custom Webhook's embed message body title,
     _descText : Webhook's embed message body description,
     _bodyUrl : Webhook's embed body direct link URL,
     _embedCol : Webhook's embed color,
     _timestamp : Timestamp,
     _authorName : Webhook's embed author name / title,
     _authorUrl : Webhook's embed author direct link URL,
     _authorIconUrl : Webhook's embed author icon by image URL,
     _footerText : Webhook's embed footer text / title,
     _footerIconUrl : Webhook's embed footer icon by image URL,
     _thumbImgUrl : Webhook's embed thumbnail image URL,
     _imageUrl : Webhook's embed body image URL. 
  Returns: string Single-line JSON format
function: Array DownsamplingA low cost function to down sample a array.
specially useful for pattern recognition algorithms.
Multi-Timeframe Configuration DemoThis is a developer friendly solution to the current PineScript limitation of not being able to easily configure presets for multiple timeframes. 
If you're developing multi-timeframe strategies then you've no doubt done battle with built-in `input` function which only allows for a single default value. You've probably come up with all kinds of fancy workarounds, including messy hardcoding, and even gritting your teeth and patiently reentering all the necessary values each time you refresh the chart or change the timeframe. The last one is my personal favourite.
As you can see in the code below we have defined a `usePresets` condition which tells the script to use our preset configuration, otherwise the default `input` values will be used. If `usePresets` is false then we use our presets which are defined in a (fairly) easy to read condition chain with the help of some basic timeframe utility functions.
Obviously this is nothing groundbreaking, but its helped me clean up my scripts a bit, so hopefully it will help you too.








