FunctionZigZagMultipleMethodsLibrary   "FunctionZigZagMultipleMethods" 
ZigZag Multiple Methods.
 method(idx)  Helper methods enumeration.
  Parameters:
     idx : int, index of method, range 0 to 4.
  Returns: string
 function(method, value_x, value_y)  Multiple method ZigZag.
  Parameters:
     method : string, default='(MANUAL) Percent price move over X * Y', method for zigzag.
     value_x : float, x value in method.
     value_y : float, y value in method.
  Returns: tuple with:
zigzag float
direction
reverse_line float
realtimeofpivot int
Techindicator
MHCustomSpotTradingLibraryLibrary   "MHCustomSpotTradingLibrary" 
 HMA(float, float)  
  Parameters:
     float : _src price data
     float : _length Period 
  Returns: Hull Moving Average
 EHMA(float, float)  
  Parameters:
     float : _src price data
     float : _length Period 
  Returns: EHMA Moving Average
 THMA(float, float)  
  Parameters:
     float : _src price data
     float : _length Period 
  Returns: THMA Moving Average
 HullMode(string, float, float)  
  Parameters:
     string : modeSwitch Hull type
     float : _src price data
     float : _length Period 
  Returns: A Moving Average
 start_Dates(int, int, int)  
  Parameters:
     int : year
     int : month
     int : day
  Returns: Start Date
 stop_Dates(int, int, int)  
  Parameters:
     int : year
     int : month
     int : day
  Returns: Stop Date
 f_print(string, int, int)  
  Parameters:
     string : _text
     int : col
     int : row
  Returns: Nothing
 showStats()  
 greenCandle()  
 redCandle()  
 getDecimals()  
 truncate()  
 toWhole()  
 toPips()  
 getMA()  
 getEAP()  
 barsAboveMA()  
 barsBelowMA()  
 barsCrossedMA()  
 getPullbackBarCount()  
 getBodySize()  
 getTopWickSize()  
 getBottomWickSize()  
 getBodyPercent()  
 isHammer()  
 isStar()  
 isDoji()  
 isBullishEC()  
 isBearishEC()  
 timeFilter()  
 dateFilter()  
 dayFilter()  
 atrFilter()  
 fillCell()  
harmonicpatternsLibrary   "harmonicpatterns" 
harmonicpatterns: methods required for calculation of harmonic patterns. These are customised to be used in my scripts. But, also simple enough for others to make use of :)
 isGartleyPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isGartleyPattern: Checks for harmonic pattern Gartley
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Gartley. False otherwise.
 isBatPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isBatPattern: Checks for harmonic pattern Bat
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Bat. False otherwise.
 isButterflyPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isButterflyPattern: Checks for harmonic pattern Butterfly
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Butterfly. False otherwise.
 isCrabPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isCrabPattern: Checks for harmonic pattern Crab
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Crab. False otherwise.
 isDeepCrabPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isDeepCrabPattern: Checks for harmonic pattern DeepCrab
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is DeepCrab. False otherwise.
 isCypherPattern(xabRatio, axcRatio, xadRatio, err_min, err_max)  isCypherPattern: Checks for harmonic pattern Cypher
  Parameters:
     xabRatio : AB/XA
     axcRatio : XC/AX
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Cypher. False otherwise.
 isSharkPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isSharkPattern: Checks for harmonic pattern Shark
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Shark. False otherwise.
 isNenStarPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isNenStarPattern: Checks for harmonic pattern Nenstar
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Nenstar. False otherwise.
 isAntiNenStarPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isAntiNenStarPattern: Checks for harmonic pattern Anti NenStar
  Parameters:
     xabRatio : - AB/XA
     abcRatio : - BC/AB
     bcdRatio : - CD/BC
     xadRatio : - AD/XA
     err_min : - Minumum error threshold
     err_max : - Maximum error threshold
  Returns: True if the pattern is Anti NenStar. False otherwise.
 isAntiSharkPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isAntiSharkPattern: Checks for harmonic pattern Anti Shark
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Anti Shark. False otherwise.
 isAntiCypherPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isAntiCypherPattern: Checks for harmonic pattern Anti Cypher
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Anti Cypher. False otherwise.
 isAntiCrabPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isAntiCrabPattern: Checks for harmonic pattern Anti Crab
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Anti Crab. False otherwise.
 isAntiBatPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isAntiBatPattern: Checks for harmonic pattern Anti Bat
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Anti Bat. False otherwise.
 isAntiGartleyPattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isAntiGartleyPattern: Checks for harmonic pattern Anti Gartley
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Anti Gartley. False otherwise.
 isNavarro200Pattern(xabRatio, abcRatio, bcdRatio, xadRatio, err_min, err_max)  isNavarro200Pattern: Checks for harmonic pattern Navarro200
  Parameters:
     xabRatio : AB/XA
     abcRatio : BC/AB
     bcdRatio : CD/BC
     xadRatio : AD/XA
     err_min : Minumum error threshold
     err_max : Maximum error threshold
  Returns: True if the pattern is Navarro200. False otherwise.
 isHarmonicPattern(x, a, c, c, d, flags, errorPercent)  isHarmonicPattern: Checks for harmonic patterns
  Parameters:
     x : X coordinate value
     a : A coordinate value
     c : B coordinate value
     c : C coordinate value
     d : D coordinate value
     flags : flags to check patterns. Send empty array to enable all 
     errorPercent : Error threshold
  Returns:   Array of boolean values which says whether valid pattern exist and array of corresponding pattern names
ma_functionLibrary   "ma_function" 
TODO: This library is a package of various MAs.
 ma_function(name, source, length)  This function provides the MA specified in the argument.
  Parameters:
     name : MA's name
     source : Source value
     length : Look back periods
  Returns: Ma value
LocalLimitLibrary   "LocalLimit" 
Calculates the local upper or local lower limit for a given series.  Applying multiple passes produces what appears like support or resistance levels.
See  Local Limits  for more detail.
 upper(src)  Produces the recent local upper limit for a given series.
  Parameters:
     src : The source series to derive from.
 lower(src)  Produces the recent local lower limit for a given series.
  Parameters:
     src : The source series to derive from.
SgjoeLibraryLibrary   "SgjoeLibrary" 
Custom functions
 highest_when(float, float)  Permits a condition to be used with highest(high,condition)
  Parameters:
     float : _high_series The High for the condition 
     float : _when The condition such as close > high 
  Returns: The high(s) at the point(s) the condition was true
 lowest_when(float, float)  Permits a condition to be used with lowest(low,condition)
  Parameters:
     float : _low_series The Low for the condition 
     float : _when The condition such as close < low 
  Returns: The low(s) at the point(s) the condition was true
MomentumSignalsLibrary   "MomentumSignals" 
Contains utilities varying algorithms for detecting key changes in momentum.  Note: Momentum is not velocity and should be used in conjunction with other indicators.  A change in momentum does not mean a reversal of velocity or trend.
 simple(primary, secondary, len)  Compares two series for changes in momentum to derive signal values.
  Parameters:
     primary : The primary series (typically a moving average) to look for changes in momentum.
     secondary : The secondary series (typically derived moving average of the primary) to use as a comparison value.
     len : The number of bars to measure the change in momentum.
 filtered(primary, secondary, len, stdlen, stdMultiple)  Compares two series for changes in momentum to derive signal values. Uses statistics to filter out changes in momentum.
  Parameters:
     primary : The primary series (typically a moving average) to look for changes in momentum.
     secondary : The secondary series (typically derived moving average of the primary) to use as a comparison value.
     len : The number of bars to measure the change in momentum.
     stdlen : The number of bars to measure the change in momentum for filtering.
     stdMultiple : The multiple of the change in momentum to use before reversiing.
 special(primary, secondary, stdlen, stdMultiple)  Compares two series for changes in momentum to derive signal values. Uses statistics to filter out changes in momentum. Does not signal when likely overbought or oversold.
  Parameters:
     primary : The primary series (typically a moving average) to look for changes in momentum.
     secondary : The secondary series (typically derived moving average of the primary) to use as a comparison value.
     stdlen : The number of bars to measure the change in momentum for filtering.
     stdMultiple : The multiple of the change in momentum to use before reversiing.
MomentumLibrary   "Momentum" 
Contains utilities varying algorithms for measuring momentum.
 simple(fast, slow, src, fastType, slowType)  Derives momentum from two moving averages of different lengths.
  Parameters:
     fast : The length of the fast moving average.
     slow : The length of the slow moving average.
     src : The series to measure from. Default is 'close'.
     fastType : The type of moving average the fast should use. Values allowed are: SMA, EMA, WMA, VWMA and VAWMA.
     slowType : The type of moving average the slow should use. Values allowed are: SMA, EMA, WMA, VWMA and VAWMA.
 stochRSI(fast, fast, rsiLen, stochLen, src, kmode)  Returns the K and D values of a Stochastic RSI. Allows for different moving averages to produce the K value.
  Parameters:
     fast : The length to average the stochastic.
     fast : The length to smooth out K and produce D.
     rsiLen : The length of the RSI.
     stochLen : The length of stochastic.
     src : The series to measure from. Default is 'close'.
     kmode : The type of moving average to generate. Values allowed are: SMA, EMA, WMA, VWMA and VAWMA.
  Returns:  
 macd(fast, slow, signal, src, fastType, slowType, slowType)  Same as well-known MACD formula but allows for different moving averages types to be used.
  Parameters:
     fast : The length of the fast moving average.
     slow : The length of the slow moving average.
     signal : The length of average to applied to smooth out the signal.
     src : The series to measure from. Default is 'close'.
     fastType : The type of moving average the fast should use. Values allowed are: SMA, EMA, WMA, VWMA and VAWMA.
     slowType : The type of moving average the slow should use. Values allowed are: SMA, EMA, WMA, VWMA and VAWMA.
     slowType : The type of moving average the signal should use. Values allowed are: SMA, EMA, WMA, VWMA and VAWMA.
  Returns: 
VolatilityLibrary   "Volatility" 
Functions for determining if volatility (true range) is within or exceeds normal.
The "True Range" (ta.tr) is used for measuring volatility.
Values are normalized by the volume adjusted weighted moving average (VAWMA) to be more like percent moves than price.
 current(len)  Returns the current price adjusted volatitlity ratio.
  Parameters:
     len : Number of bars to get a volume adjusted weighted average price.
 normal(len, maxDeviation, level, gapDays, spec, res)  Returns the normal upper range of volatility. Compensates for overnight gaps within a regular session.
  Parameters:
     len : Number of bars to measure volatility.
     maxDeviation : The limit of volatility before considered an outlier.
     level : The amount of standard deviation after cleaning outliers to be considered within normal.
     gapDays : The number of days in the past to measure overnight gap volaility.
     spec : session.regular (default), session.extended or other time spec.
     res : The resolution (default = '1440').
 isNormal(len, maxDeviation, level, gapDays, spec, res)  Returns true if the volatility (true range) is within normal levels. Compensates for overnight gaps within a regular session.
  Parameters:
     len : Number of bars to measure volatility.
     maxDeviation : The limit of volatility before considered an outlier.
     level : The amount of standard deviation after cleaning outliers to be considered within normal.
     gapDays : The number of days in the past to measure overnight gap volaility.
     spec : session.regular (default), session.extended or other time spec.
     res : The resolution (default = '1440').
 severity(len, maxDeviation, level, gapDays, spec, res)  Returns ratio of the current value to the normal value. Compensates for overnight gaps within a regular session.
  Parameters:
     len : Number of bars to measure volatility.
     maxDeviation : The limit of volatility before considered an outlier.
     level : The amount of standard deviation after cleaning outliers to be considered within normal.
     gapDays : The number of days in the past to measure overnight gap volaility.
     spec : session.regular (default), session.extended or other time spec.
     res : The resolution (default = '1440').
LeoLibraryLibrary   "LeoLibrary" 
A collection of custom tools & utility functions commonly used with my scripts
 getDecimals()  Calculates how many decimals are on the quote price of the current market
  Returns: The current decimal places on the market quote price
 truncate(float, float)  Truncates (cuts) excess decimal places
  Parameters:
     float : _number The number to truncate
     float : _decimalPlaces (default=2) The number of decimal places to truncate to
  Returns: The given _number truncated to the given _decimalPlaces
 toWhole(float)  Converts pips into whole numbers
  Parameters:
     float : _number The pip number to convert into a whole number
  Returns: The converted number
 toPips(float)  Converts whole numbers back into pips
  Parameters:
     float : _number The whole number to convert into pips
  Returns: The converted number
 av_getPositionSize(float, float, float, float)  Calculates OANDA forex position size for AutoView based on the given parameters
  Parameters:
     float : _balance The account balance to use
     float : _risk The risk percentage amount (as a whole number - eg. 1 = 1% risk)
     float : _stopPoints The stop loss distance in POINTS (not pips)
     float : _conversionRate The conversion rate of our account balance currency
  Returns: The calculated position size (in units - only compatible with OANDA)
 getMA(int, string)  Gets a Moving Average based on type
  Parameters:
     int : _length The MA period
     string : _maType The type of MA
  Returns: A moving average with the given parameters
 getEAP(float)  Performs EAP stop loss size calculation (eg. ATR >= 20.0 and ATR < 30, returns 20)
  Parameters:
     float : _atr The given ATR to base the EAP SL calculation on
  Returns: The EAP SL converted ATR size
 barsAboveMA(int, float)  Counts how many candles are above the MA
  Parameters:
     int : _lookback The lookback period to look back over
     float : _ma The moving average to check
  Returns: The bar count of how many recent bars are above the MA
 barsBelowMA(int, float)  Counts how many candles are below the MA
  Parameters:
     int : _lookback The lookback period to look back over
     float : _ma The moving average to reference
  Returns: The bar count of how many recent bars are below the EMA
 barsCrossedMA(int, float)  Counts how many times the EMA was crossed recently
  Parameters:
     int : _lookback The lookback period to look back over
     float : _ma The moving average to reference
  Returns: The bar count of how many times price recently crossed the EMA
 getPullbackBarCount(int, int)  Counts how many green & red bars have printed recently (ie. pullback count)
  Parameters:
     int : _lookback The lookback period to look back over
     int : _direction The color of the bar to count (1 = Green, -1 = Red)
  Returns: The bar count of how many candles have retraced over the given lookback & direction
 getBodySize()  Gets the current candle's body size (in POINTS, divide by 10 to get pips)
  Returns: The current candle's body size in POINTS
 getTopWickSize()  Gets the current candle's top wick size (in POINTS, divide by 10 to get pips)
  Returns: The current candle's top wick size in POINTS
 getBottomWickSize()  Gets the current candle's bottom wick size (in POINTS, divide by 10 to get pips)
  Returns: The current candle's bottom wick size in POINTS
 getBodyPercent()  Gets the current candle's body size as a percentage of its entire size including its wicks
  Returns: The current candle's body size percentage
 isHammer(float, bool)  Checks if the current bar is a hammer candle based on the given parameters
  Parameters:
     float : _fib (default=0.382) The fib to base candle body on
     bool : _colorMatch (default=false) Does the candle need to be green? (true/false)
  Returns: A boolean - true if the current bar matches the requirements of a hammer candle
 isStar(float, bool)  Checks if the current bar is a shooting star candle based on the given parameters
  Parameters:
     float : _fib (default=0.382) The fib to base candle body on
     bool : _colorMatch (default=false) Does the candle need to be red? (true/false)
  Returns: A boolean - true if the current bar matches the requirements of a shooting star candle
 isDoji(float, bool)  Checks if the current bar is a doji candle based on the given parameters
  Parameters:
     float : _wickSize (default=2) The maximum top wick size compared to the bottom (and vice versa)
     bool : _bodySize (default=0.05) The maximum body size as a percentage compared to the entire candle size
  Returns: A boolean - true if the current bar matches the requirements of a doji candle
 isBullishEC(float, float, bool)  Checks if the current bar is a bullish engulfing candle
  Parameters:
     float : _allowance (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
     float : _rejectionWickSize (default=disabled) The maximum rejection wick size compared to the body as a percentage
     bool : _engulfWick (default=false) Does the engulfing candle require the wick to be engulfed as well?
  Returns: A boolean - true if the current bar matches the requirements of a bullish engulfing candle
 isBearishEC(float, float, bool)  Checks if the current bar is a bearish engulfing candle
  Parameters:
     float : _allowance (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
     float : _rejectionWickSize (default=disabled) The maximum rejection wick size compared to the body as a percentage
     bool : _engulfWick (default=false) Does the engulfing candle require the wick to be engulfed as well?
  Returns: A boolean - true if the current bar matches the requirements of a bearish engulfing candle
 timeFilter(string, bool)  Determines if the current price bar falls inside the specified session
  Parameters:
     string : _sess The session to check
     bool : _useFilter (default=false) Whether or not to actually use this filter
  Returns: A boolean - true if the current bar falls within the given time session
 dateFilter(int, int)  Determines if this bar's time falls within date filter range
  Parameters:
     int : _startTime The UNIX date timestamp to begin searching from
     int : _endTime the UNIX date timestamp to stop searching from
  Returns: A boolean - true if the current bar falls within the given dates
 dayFilter(bool, bool, bool, bool, bool, bool, bool)  Checks if the current bar's day is in the list of given days to analyze
  Parameters:
     bool : _monday Should the script analyze this day? (true/false)
     bool : _tuesday Should the script analyze this day? (true/false)
     bool : _wednesday Should the script analyze this day? (true/false)
     bool : _thursday Should the script analyze this day? (true/false)
     bool : _friday Should the script analyze this day? (true/false)
     bool : _saturday Should the script analyze this day? (true/false)
     bool : _sunday Should the script analyze this day? (true/false)
  Returns: A boolean - true if the current bar's day is one of the given days
 atrFilter(float, float)  Checks the current bar's size against the given ATR and max size
  Parameters:
     float : _atr (default=ATR 14 period) The given ATR to check
     float : _maxSize The maximum ATR multiplier of the current candle
  Returns: A boolean - true if the current bar's size is less than or equal to _atr x _maxSize
 fillCell(table, int, int, string, string, color, color)  This updates the given table's cell with the given values
  Parameters:
     table : _table The table ID to update
     int : _column The column to update
     int : _row The row to update
     string : _title The title of this cell
     string : _value The value of this cell
     color : _bgcolor The background color of this cell
     color : _txtcolor The text color of this cell
  Returns: A boolean - true if the current bar falls within the given dates
GenericTALibrary   "GenericTA" 
What is it?
The real generic library. Which means it is just covering most built-in indicators / functions, but with more parameters, so the user don't have to write more few lines to achieve something simple and replicative.
Development process?
Will tidy it up, and setting up  in later stage.
Welcome to inbox me to improve the library ------
If you are finding a similar thing. That's a good news. Because I am making it. 
PivotPointsDailyTraditionalLibrary   "PivotPointsDailyTraditional" 
Provides the traditional daily pivot values and a pivot vacinity function.
 P(level, daysPrior)  Returns the P value.
  Parameters:
     level : The level to caclulate.
     daysPrior : The number of days in the past to do the calculation.
 R(level, daysPrior)  Calculates the R value for a given pivot level.
  Parameters:
     level : The level to caclulate.
     daysPrior : The number of days in the past to do the calculation.
 S(level, daysPrior)  Calculates the S value for a given pivot level.
  Parameters:
     level : The level to caclulate.
     daysPrior : The number of days in the past to do the calculation.
 vacinity(value, daysPrior, maxLevel)  Returns a value representing where the provided value is in relation to each pivot level.
  Parameters:
     value : The value to compare against.
     daysPrior : The number of days in the past to do the calculation.
     maxLevel : The maximum number of pivot levels to include.
DailyLevelsLibrary   "DailyLevels" 
Functions for acquiring daily timeframe data by number of prior days.
 openD(daysPrior, spec, res)  Gets the open for the number of days prior.
  Parameters:
     daysPrior : Number of days back to get the open from.
     spec : session.regular (default), session.extended or other time spec.
     res : The resolution (default = '1440').
  Returns: The open for the number of days prior.
 highD(daysPrior, extraForward, spec, res)  Gets the highest value for the number of days prior.
  Parameters:
     daysPrior : Number of days back to get the high from.
     extraForward : Number of extra days forward to include.
     spec : session.regular (default), session.extended or other time spec.
     res : The resolution (default = '1440').
  Returns: The high for the number of days prior.
 lowD(daysPrior, extraForward, spec, res)  Gets the lowest value for the number of days prior.
  Parameters:
     daysPrior : Number of days back to get the low from.
     extraForward : Number of extra days forward to include.
     spec : session.regular (default), session.extended or other time spec.
     res : The resolution (default = '1440').
  Returns: The low for the number of days prior.
 closeD(daysPrior, spec, res)  Gets the close for the number of days prior.
  Parameters:
     daysPrior : Number of days back to get the open from.  0 produces the current close
     spec : session.regular (default), session.extended or other time spec.
     res : The resolution (default = '1440').
  Returns: The close for the number of days prior.
 hlc3D(daysPrior, extraForward, spec, res)  Gets the HLC3 value for the number of days prior.
  Parameters:
     daysPrior : Number of days back to get the HLC3 from.
     extraForward : Number of extra days forward to include.  Determines the closing value.
     spec : session.regular (default), session.extended or other time spec.
     res : The resolution (default = '1440').
  Returns: The HLC3 for the number of days prior.
pNRTRLibrary   "pNRTR" 
Provides functions for calculating Nick Rypock Trailing Reverse (NRTR) trend values with higher precision offsets for both low, and high points rather than the standard single offset.
 pnrtr(float low_offset = 0.2, float high_offset = 0.2, float value = close)  
 low_offset 
Offset used for nrtr low_point calculations. Default is 0.2.
 high_offset 
Offset used for nrtr high_point calculations. Default is 0.2.
 value 
Variable used for nrtr point calculations. Default is close.
customcandlesLibrary   "customcandles" 
customcandles: Contains methods which can send custom candlesticks based on the input
 macandles(maType, length, o, h, l, c)  macandles: Provides OHLC of moving average candles
  Parameters:
     maType : - Moving average Type. Can be sma, ema, hma, rma, wma, vwma, swma, linreg, median
     length : - Defaulted to 20. Can chose custom length
     o : - Optional different open source. By default is set to open
     h : - Optional different high source. By default is set to high
     l : - Optional different low source. By default is set to low
     c : - Optional different close source. By default is set to close
  Returns:  : Custom Moving Average based OHLC values
 hacandles()  hacandles: Provides Heikin Ashi OHLC values
  Returns:  : Custom Heikin Ashi OHLC values
 ocandles(type, length, shortLength, longLength, method, highlowLength, sticky, percentCandles)  macandles: Provides OHLC of moving average candles
  Parameters:
     type : - Oscillator Type. Can be cci, cmo, cog, mfi, roc, rsi, tsi, mfi
     length : - Defaulted to 14. Can chose custom length
     shortLength : - Used only for TSI. Default is 13
     longLength : - Used only for TSI. Default is 25
     method : - Valid values for method are : sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
     highlowLength : - length on which highlow of the oscillator is calculated
     sticky : - overbought, oversold levels won't change unless crossed
     percentCandles : - candles are generated based on percent with respect to high/low instead of actual oscillator values
  Returns:  : Custom Moving Average based OHLC values
lib_Indicators_DTLibrary   "lib_Indicators_DT" 
This library functions returns some Moving averages and indicators. 
Created it to feed  my indicator/strategy  "INDICATOR & CONDITIONS COMBINATOR FRAMEWORK v1  "  which I will publish it as soon as possible.
Credits: Library includes some public indicators, snippets from tradingview & @03.freeman's ("All MAs displayed") scripts.
(I hope, I dont break Tradingview's House Rules on Script Publishing)
 f_plotPrep(src_, src_, src_, src_)  Prepare Indicator Plot Type
  Parameters:
     src_ : Source
     src_ : plotingType_  "Original, Stochastic, Percent"
     src_ : stochlen_     Stochasting plottingtype length        
     src_ : plotSWMA_     Use SWMA for the output
  Returns: Return the prepared indicator
 f_funcPlot(string, float, simple, string, simple, bool)  f_funcPlot(string f, float src_, simple int length_, string plotingType_ = "Original", simple int stochlen_=50, bool plotSWMA=false)  Return selected indicator value with different parameters
  Parameters:
     string : f               indicator-> options= 
     float : src_            close,open.....
     simple : int    length_         indicator length
     string : plotingType     return param-> options= ['Original', 'Stochastic', 'PercentRank')
     simple : int    stochlen_       length for return Param
     bool : plotSWMA        Use SWMA on Plot
  Returns: float       
DrawIndicatorOnTheChartLibrary   "DrawIndicatorOnTheChart" 
this library is used to show an indicator (such RSI, CCI, MOM etc) on the main chart with indicator's horizontal lines in a window. Location of the window is calculated dynamically by last price movemements
 drawIndicator(indicatorName, indicator, indicatorcolor, period, indimax_, indimin_, levels, precision, xlocation)  draws the related indicator on the chart
  Parameters:
     indicatorName : is the indicator name as string such "RSI", "CCI" etc
     indicator : is the indicator you want to show, such rsi(close, 14), mom(close, 10) etc
     indicatorcolor : is the color of indicator line
     period : is the length of the window to show
     indimax_ : is the maximum value of the indicator, for example for RSI it's 100.0, if the indicator (such CCI, MOM etc) doesn't have maximum value then use "na"
     indimin_ : is the minimum value of the indicator, for example for RSI it's 0.0, if the indicator (such CCI, MOM etc)doesn't have maximum value then use "na"
     levels : is the levels of the array for the horizontal lines. for example if you want horizontal lines at 30.0, and 70.0 then use array.from(30.0, 70.0). if no horizontal lines then use array.from(na)
     precision : is the precision/number of decimals that is used to show indicator values, for example for RSI set it 2
     xlocation : is end location of the indicator window, for example if xlocation = 0 window is created on the index of the last bar/candle
  Returns: none
ZenLibraryLibrary   "ZenLibrary" 
A collection of custom tools & utility functions commonly used with my scripts.
 getDecimals()  Calculates how many decimals are on the quote price of the current market
  Returns: The current decimal places on the market quote price
 truncate(float, float)  Truncates (cuts) excess decimal places
  Parameters:
     float : _number The number to truncate
     float : _decimalPlaces (default=2) The number of decimal places to truncate to
  Returns: The given _number truncated to the given _decimalPlaces
 toWhole(float)  Converts pips into whole numbers
  Parameters:
     float : _number The pip number to convert into a whole number
  Returns: The converted number
 toPips(float)  Converts whole numbers back into pips
  Parameters:
     float : _number The whole number to convert into pips
  Returns: The converted number
 av_getPositionSize(float, float, float, float)  Calculates OANDA forex position size for AutoView based on the given parameters
  Parameters:
     float : _balance The account balance to use
     float : _risk The risk percentage amount (as a whole number - eg. 1 = 1% risk)
     float : _stopPoints The stop loss distance in POINTS (not pips)
     float : _conversionRate The conversion rate of our account balance currency
  Returns: The calculated position size (in units - only compatible with OANDA)
 getMA(int, string)  Gets a Moving Average based on type
  Parameters:
     int : _length The MA period
     string : _maType The type of MA
  Returns: A moving average with the given parameters
 getEAP(float)  Performs EAP stop loss size calculation (eg. ATR >= 20.0 and ATR < 30, returns 20)
  Parameters:
     float : _atr The given ATR to base the EAP SL calculation on
  Returns: The EAP SL converted ATR size
 barsAboveMA(int, float)  Counts how many candles are above the MA
  Parameters:
     int : _lookback The lookback period to look back over
     float : _ma The moving average to check
  Returns: The bar count of how many recent bars are above the MA
 barsBelowMA(int, float)  Counts how many candles are below the MA
  Parameters:
     int : _lookback The lookback period to look back over
     float : _ma The moving average to reference
  Returns: The bar count of how many recent bars are below the EMA
 barsCrossedMA(int, float)  Counts how many times the EMA was crossed recently
  Parameters:
     int : _lookback The lookback period to look back over
     float : _ma The moving average to reference
  Returns: The bar count of how many times price recently crossed the EMA
 getPullbackBarCount(int, int)  Counts how many green & red bars have printed recently (ie. pullback count)
  Parameters:
     int : _lookback The lookback period to look back over
     int : _direction The color of the bar to count (1 = Green, -1 = Red)
  Returns: The bar count of how many candles have retraced over the given lookback & direction
 getBodySize()  Gets the current candle's body size (in POINTS, divide by 10 to get pips)
  Returns: The current candle's body size in POINTS
 getTopWickSize()  Gets the current candle's top wick size (in POINTS, divide by 10 to get pips)
  Returns: The current candle's top wick size in POINTS
 getBottomWickSize()  Gets the current candle's bottom wick size (in POINTS, divide by 10 to get pips)
  Returns: The current candle's bottom wick size in POINTS
 getBodyPercent()  Gets the current candle's body size as a percentage of its entire size including its wicks
  Returns: The current candle's body size percentage
 isHammer(float, bool)  Checks if the current bar is a hammer candle based on the given parameters
  Parameters:
     float : _fib (default=0.382) The fib to base candle body on
     bool : _colorMatch (default=false) Does the candle need to be green? (true/false)
  Returns: A boolean - true if the current bar matches the requirements of a hammer candle
 isStar(float, bool)  Checks if the current bar is a shooting star candle based on the given parameters
  Parameters:
     float : _fib (default=0.382) The fib to base candle body on
     bool : _colorMatch (default=false) Does the candle need to be red? (true/false)
  Returns: A boolean - true if the current bar matches the requirements of a shooting star candle
 isDoji(float, bool)  Checks if the current bar is a doji candle based on the given parameters
  Parameters:
     float : _wickSize (default=2) The maximum top wick size compared to the bottom (and vice versa)
     bool : _bodySize (default=0.05) The maximum body size as a percentage compared to the entire candle size
  Returns: A boolean - true if the current bar matches the requirements of a doji candle
 isBullishEC(float, float, bool)  Checks if the current bar is a bullish engulfing candle
  Parameters:
     float : _allowance (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
     float : _rejectionWickSize (default=disabled) The maximum rejection wick size compared to the body as a percentage
     bool : _engulfWick (default=false) Does the engulfing candle require the wick to be engulfed as well?
  Returns: A boolean - true if the current bar matches the requirements of a bullish engulfing candle
 isBearishEC(float, float, bool)  Checks if the current bar is a bearish engulfing candle
  Parameters:
     float : _allowance (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
     float : _rejectionWickSize (default=disabled) The maximum rejection wick size compared to the body as a percentage
     bool : _engulfWick (default=false) Does the engulfing candle require the wick to be engulfed as well?
  Returns: A boolean - true if the current bar matches the requirements of a bearish engulfing candle
 timeFilter(string, bool)  Determines if the current price bar falls inside the specified session
  Parameters:
     string : _sess The session to check
     bool : _useFilter (default=false) Whether or not to actually use this filter
  Returns: A boolean - true if the current bar falls within the given time session
 dateFilter(int, int)  Determines if this bar's time falls within date filter range
  Parameters:
     int : _startTime The UNIX date timestamp to begin searching from
     int : _endTime the UNIX date timestamp to stop searching from
  Returns: A boolean - true if the current bar falls within the given dates
 dayFilter(bool, bool, bool, bool, bool, bool, bool)  Checks if the current bar's day is in the list of given days to analyze
  Parameters:
     bool : _monday Should the script analyze this day? (true/false)
     bool : _tuesday Should the script analyze this day? (true/false)
     bool : _wednesday Should the script analyze this day? (true/false)
     bool : _thursday Should the script analyze this day? (true/false)
     bool : _friday Should the script analyze this day? (true/false)
     bool : _saturday Should the script analyze this day? (true/false)
     bool : _sunday Should the script analyze this day? (true/false)
  Returns: A boolean - true if the current bar's day is one of the given days
 atrFilter(float, float)  Checks the current bar's size against the given ATR and max size
  Parameters:
     float : _atr (default=ATR 14 period) The given ATR to check
     float : _maxSize The maximum ATR multiplier of the current candle
  Returns: A boolean - true if the current bar's size is less than or equal to _atr x _maxSize
 fillCell(table, int, int, string, string, color, color)  This updates the given table's cell with the given values
  Parameters:
     table : _table The table ID to update
     int : _column The column to update
     int : _row The row to update
     string : _title The title of this cell
     string : _value The value of this cell
     color : _bgcolor The background color of this cell
     color : _txtcolor The text color of this cell
  Returns: A boolean - true if the current bar falls within the given dates
zigzagplusThis is same as existing  zigzag  library with respect to functionality. But, there is a small update with respect to how arrays are used internally. This also leads to issues with backward compatibility. Hence I decided to make this as new library instead of updating the older one.
 Below are the major changes: 
 
  Earlier version uses array.unshift for adding new elements and array.pop for removing old elements. But, since array.unshift is considerably slower than alternative method array.push. Hence, this library makes use of array.push method to achieve performance.
  While array.push increases the performance significantly, there is also an issue with removing as we no longer will be able to remove the element using pop which is again faster than shift (which need to shit all the elements by index). Hence, have removed the logic of removing elements for zigzag pivots after certain limit. Will think further about it once I find better alternative of handling it.
  These implementation change also mean that zigzag pivots received by calling method will be ordered in reverse direction. Latest pivots will be stored with higher array index whereas older pivots are stored with lower array index. This is also the reason why backward compatibility is not achievable with this code change.
 
Library   "zigzagplus" 
Library dedicated to zigzags and related indicators
 zigzag(length, useAlternativeSource, source, oscillatorSource, directionBias)  zigzag: Calculates zigzag pivots and generates an array
  Parameters:
     length : : Zigzag Length
     useAlternativeSource : : If set uses the source for genrating zigzag. Default is false
     source : : Alternative source used only if useAlternativeSource is set to true. Default is close
     oscillatorSource : : Oscillator source for calculating divergence
     directionBias : : Direction bias for calculating divergence
  Returns: zigzagpivots        : Array containing zigzag pivots
zigzagpivotbars     : Array containing zigzag pivot bars
zigzagpivotdirs     : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios   : Array containing zigzag retracement ratios for each pivot
zigzagoscillators   : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias     : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence    :   Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
newPivot            : Returns true if new pivot created
doublePivot         : Returns true if two new pivots are created on same bar (Happens in case of candles with long wicks and shorter zigzag lengths)
 drawzigzag(length, , source, linecolor, linewidth, linestyle, oscillatorSource, directionBias, showHighLow, showRatios, showDivergence)  drawzigzag: Calculates and draws zigzag pivots
  Parameters:
     length : : Zigzag Length
     : useAlternativeSource: If set uses the source for genrating zigzag. Default is false
     source : : Alternative source used only if useAlternativeSource is set to true. Default is close
     linecolor : : zigzag line color
     linewidth : : zigzag line width
     linestyle : : zigzag line style
     oscillatorSource : : Oscillator source for calculating divergence
     directionBias : : Direction bias for calculating divergence
     showHighLow : : show highlow label
     showRatios : : show retracement ratios
     showDivergence : : Show divergence on label (Only works if divergence data is available - that is if we pass valid oscillatorSource and directionBias input)
  Returns: zigzagpivots        : Array containing zigzag pivots
zigzagpivotbars     : Array containing zigzag pivot bars
zigzagpivotdirs     : Array containing zigzag pivot directions (Lower High : 1, Higher High : 2, Lower Low : -2 and Higher Low : -1)
zigzagpivotratios   : Array containing zigzag retracement ratios for each pivot
zigzagoscillators   : Array of oscillator values at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagoscillatordirs: Array of oscillator directions (HH, HL, LH, LL) at pivots. Will have valid values only if valid oscillatorSource is provided as per input.
zigzagtrendbias     : Array of trend bias at pivots. Will have valid value only if directionBias series is sent in input parameters
zigzagdivergence    :   Array of divergence sentiment at each pivot. Will have valid values only if oscillatorSource and directionBias inputs are provided
zigzaglines         : Returns array of zigzag lines
zigzaglabels        : Returns array of zigzag labels
[MX]Moving Average - LibraryLibrary   "MA_library" 
 OVERVIEW 
This library contains moving average functions that calculate values for which they do not exist by default in PineScript
 Functions 
 tema(source,length)  : Triple Exponencial Moving Average
 dema(source,length)  : Double Exponencial Moving Average
 wwma(source,length)  : Welles Wilder Moving Average
 gma(source,length)  : Geometric Moving Average
FunctionPolynomialRegressionLibrary   "FunctionPolynomialRegression" 
TODO:
 polyreg(sample_x, sample_y)  Method to return a polynomial regression channel using (X,Y) sample points.
  Parameters:
     sample_x : float array, sample data X points.
     sample_y : float array, sample data Y points.
  Returns: tuple with:
_predictions:   Array with adjusted Y values.
_max_dev:       Max deviation from the mean.
_min_dev:       Min deviation from the mean.
_stdev/_sizeX:  Average deviation from the mean.
 draw(sample_x, sample_y, extend, mid_color, mid_style, mid_width, std_color, std_style, std_width, max_color, max_style, max_width)  Method for drawing the Polynomial Regression into chart.
  Parameters:
     sample_x : float array, sample point X value.
     sample_y : float array, sample point Y value.
     extend : string, default=extend.none, extend lines.
     mid_color : color, default=color.blue, middle line color.
     mid_style : string, default=line.style_solid, middle line style.
     mid_width : int, default=2, middle line width.
     std_color : color, default=color.aqua, standard deviation line color.
     std_style : string, default=line.style_dashed, standard deviation line style.
     std_width : int, default=1, standard deviation line width.
     max_color : color, default=color.purple, max range line color.
     max_style : string, default=line.style_dotted, max line style.
     max_width : int, default=1, max line width.
  Returns: line array.
FunctionLinearRegressionLibrary   "FunctionLinearRegression" 
Method for Linear Regression using array sample points.
 linreg(sample_x, sample_y)  Performs Linear Regression over the provided sample points.
  Parameters:
     sample_x : float array, sample points X value.
     sample_y : float array, sample points Y value.
  Returns: tuple with:
_predictions:   Array with adjusted Y values.
_max_dev:       Max deviation from the mean.
_min_dev:       Min deviation from the mean.
_stdev/_sizeX:  Average deviation from the mean.
 draw(sample_x, sample_y, extend, mid_color, mid_style, mid_width, std_color, std_style, std_width, max_color, max_style, max_width)  Method for drawing the Linear Regression into chart.
  Parameters:
     sample_x : float array, sample point X value.
     sample_y : float array, sample point Y value.
     extend : string, default=extend.none, extend lines.
     mid_color : color, default=color.blue, middle line color.
     mid_style : string, default=line.style_solid, middle line style.
     mid_width : int, default=2, middle line width.
     std_color : color, default=color.aqua, standard deviation line color.
     std_style : string, default=line.style_dashed, standard deviation line style.
     std_width : int, default=1, standard deviation line width.
     max_color : color, default=color.purple, max range line color.
     max_style : string, default=line.style_dotted, max line style.
     max_width : int, default=1, max line width.
  Returns: line array.
raf_BollingerBandsSqueezyLibrary   "raf_BollingerBandsSqueezy" 
B Bands with some squeese indicating additions
 bbands_lines()  Calcs BB	Returns: the tree lines, upper, basis and lower
 bbands_fast_ma()  calcs the fast moving average, to be used to compare how prise is positioned against BB	Returns: the fast EMA line, and the difference between it and the BB basis line
 squeeze_bands_lines()  calcs the "squeeze" bands	Returns: the squeeze bands upper and lower lines






















