PINE LIBRARY

historicalrange

Library "historicalrange"
Library provices a method to calculate historical percentile range of series.

hpercentrank(source) calculates historical percentrank of the source
  Parameters:
    source: Source for which historical percentrank needs to be calculated. Source should be ranging between 0-100. If using a source which can beyond 0-100, use short term percentrank to baseline them.
  Returns: pArray - percentrank array which contains how many instances of source occurred at different levels.
upperPercentile - percentile based on higher value
lowerPercentile - percentile based on lower value
median - median value of the source
max - max value of the source

distancefromath(source) returns stats on historical distance from ath in terms of percentage
  Parameters:
    source: for which stats are calculated
  Returns: percentile and related historical stats regarding distance from ath

distancefromma(maType, length, source) returns stats on historical distance from moving average in terms of percentage
  Parameters:
    maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
    length: Moving Average Length
    source: for which stats are calculated
  Returns: percentile and related historical stats regarding distance from ath

bpercentb(source, maType, length, multiplier, sticky) returns percentrank and stats on historical bpercentb levels
  Parameters:
    source: Moving Average Source
    maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
    length: Moving Average Length
    multiplier: Standard Deviation multiplier
    sticky: - sticky boundaries which will only change when value is outside boundary.
  Returns: percentile and related historical stats regarding Bollinger Percent B

kpercentk(source, maType, length, multiplier, useTrueRange, sticky) returns percentrank and stats on historical kpercentk levels
  Parameters:
    source: Moving Average Source
    maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
    length: Moving Average Length
    multiplier: Standard Deviation multiplier
    useTrueRange: - if set to false, uses high-low.
    sticky: - sticky boundaries which will only change when value is outside boundary.
  Returns: percentile and related historical stats regarding Keltener Percent K

dpercentd(useAlternateSource, alternateSource, length, sticky) returns percentrank and stats on historical dpercentd levels
  Parameters:
    useAlternateSource: - Custom source is used only if useAlternateSource is set to true
    alternateSource: - Custom source
    length: - donchian channel length
    sticky: - sticky boundaries which will only change when value is outside boundary.
  Returns: percentile and related historical stats regarding Donchian Percent D

oscillator(type, length, shortLength, longLength, source, highSource, lowSource, method, highlowLength, sticky) oscillator - returns Choice of oscillator with custom overbought/oversold range
  Parameters:
    type: - oscillator type. Valid values : cci, cmo, cog, mfi, roc, rsi, stoch, tsi, wpr
    length: - Oscillator length - not used for TSI
    shortLength: - shortLength only used for TSI
    longLength: - longLength only used for TSI
    source: - custom source if required
    highSource: - custom high source for stochastic oscillator
    lowSource: - custom low source for stochastic oscillator
    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
  Returns: percentile and related historical stats regarding oscillator
hewhomustnotbenamedMATHstatisticstechindicatortrendoscope

Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House rules.

Disclaimer