Library "enhanced_ta"
Collection of all custom and enhanced TA indicators

ma(source, maType, length) returns custom moving averages
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma , ema , hma , rma, wma , vwma , swma , highlow
  • length: Moving Average Length
Returns: moving average for the given type and length

bb(source, maType, length, multiplier) returns Bollinger band for custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma , ema , hma , rma, wma , vwma , swma , highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
Returns: Bollinger band with custom moving average for given source, length and multiplier

bbw(source, maType, length, multiplier) returns Bollinger bandwidth for custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma , ema , hma , rma, wma , vwma , swma , highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
Returns: Bollinger Bandwidth for custom moving average for given source, length and multiplier

bpercentb(source, maType, length, multiplier) returns Bollinger Percent B for custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma , ema , hma , rma, wma , vwma , swma , highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
Returns: Bollinger Percent B for custom moving average for given source, length and multiplier

kc(source, maType, length, multiplier) returns Keltner Channel for custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma , ema , hma , rma, wma , vwma , swma , highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
Returns: Keltner Channel for custom moving average for given souce, length and multiplier

kcw(source, maType, length, multiplier) returns Keltner Channel Width with custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma , ema , hma , rma, wma , vwma , swma , highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
Returns: Keltner Channel Width for custom moving average

kpercentk(source, maType, length, multiplier) returns Keltner Channel Percent K Width with custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma , ema , hma , rma, wma , vwma , swma , highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
Returns: Keltner Percent K for given moving average, source, length and multiplier

dc(source, useCustomSource, length) returns Custom Donchian Channel
Parameters:
  • source: - Custom source
  • useCustomSource: - Custom source is used only if useCustomSource is set to true
  • length: - donchian channel length
Returns: Donchian channel

oscillatorRange(source, method, highlowLength, rangeLength) returns Custom overbought/oversold areas for an oscillator input
Parameters:
  • source: - Osillator source such as RSI , COG etc.
  • method: - Valid values for method are : sma , ema , hma , rma, wma , vwma , swma , highlow
  • highlowLength: - length on which highlow of the oscillator is calculated
  • rangeLength: - length used for calculating oversold/overbought range - usually same as oscillator length
Returns: Dynamic overbought and oversold range for oscillator input
Release Notes: Library "enhanced_ta"
Collection of all custom and enhanced TA indicators

ma(source, maType, length) returns custom moving averages
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow
  • length: Moving Average Length
Returns: moving average for the given type and length

bb(source, maType, length, multiplier, sticky) returns Bollinger band for custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
  • sticky: - sticky boundaries which will only change when value is outside boundary.
Returns: Bollinger band with custom moving average for given source, length and multiplier

bbw(source, maType, length, multiplier, sticky) returns Bollinger bandwidth for custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
  • sticky: - sticky boundaries which will only change when value is outside boundary.
Returns: Bollinger Bandwidth for custom moving average for given source, length and multiplier

bpercentb(source, maType, length, multiplier, sticky) returns Bollinger Percent B for custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
  • sticky: - sticky boundaries which will only change when value is outside boundary.
Returns: Bollinger Percent B for custom moving average for given source, length and multiplier

kc(source, maType, length, multiplier, sticky) returns Keltner Channel for custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
  • sticky: - sticky boundaries which will only change when value is outside boundary.
Returns: Keltner Channel for custom moving average for given souce, length and multiplier

kcw(source, maType, length, multiplier, sticky) returns Keltner Channel Width with custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
  • sticky: - sticky boundaries which will only change when value is outside boundary.
Returns: Keltner Channel Width for custom moving average

kpercentk(source, maType, length, multiplier, sticky) returns Keltner Channel Percent K Width with custom moving average
Parameters:
  • source: Moving Average Source
  • maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow
  • length: Moving Average Length
  • multiplier: Standard Deviation multiplier
  • sticky: - sticky boundaries which will only change when value is outside boundary.
Returns: Keltner Percent K for given moving average, source, length and multiplier

dc(length, useAlternateSource, alternateSource, sticky) returns Custom Donchian Channel
Parameters:
  • length: - donchian channel length
  • useAlternateSource: - Custom source is used only if useAlternateSource is set to true
  • alternateSource: - Custom source
  • sticky: - sticky boundaries which will only change when value is outside boundary.
Returns: Donchian channel

dcw(length, useAlternateSource, alternateSource, sticky) returns Donchian Channel Width
Parameters:
  • length: - donchian channel length
  • useAlternateSource: - Custom source is used only if useAlternateSource is set to true
  • alternateSource: - Custom source
  • sticky: - sticky boundaries which will only change when value is outside boundary.
Returns: Donchian channel width

dpercentd(useAlternateSource, alternateSource, length, sticky) returns Donchian Channel Percent of price
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: Donchian channel Percent D

oscillatorRange(source, method, highlowLength, rangeLength, sticky) returns Custom overbought/oversold areas for an oscillator input
Parameters:
  • source: - Osillator source such as RSI, COG etc.
  • method: - Valid values for method are : sma, ema, hma, rma, wma, vwma, swma, highlow
  • highlowLength: - length on which highlow of the oscillator is calculated
  • rangeLength: - length used for calculating oversold/overbought range - usually same as oscillator length
  • sticky: - overbought, oversold levels won't change unless crossed
Returns: Dynamic overbought and oversold range for oscillator input
Release Notes: Library "enhanced_ta"
Updated indicators

atr(maType, length) returns ATR with custom moving average
Parameters:
  • maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
  • length: Moving Average Length
Returns: ATR for the given moving average type and length

atrpercent(maType, length) returns ATR as percentage of close price
Parameters:
  • maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
  • length: Moving Average Length
Returns: ATR as percentage of close price for the given moving average type and length

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: Oscillator value along with dynamic overbought and oversold range for oscillator input
Release Notes: Minor corrections
Release Notes: Added Usage examples
Release Notes: Update chart with examples
Release Notes: Convert multiplier to float from simple float to allow variable values
Release Notes: multibands(bandType, source, maType, length, useTrueRange, sticky, numberOfBands, multiplierStart, multiplierStep) multibands - returns Choice of oscillator with custom overbought/oversold range
  Parameters:
    bandType: - Band type - can be either bb or kc
    source: - custom source if required
    maType: Moving Average Type : Can be sma, ema, hma, rma, wma, vwma, swma, highlow, linreg, median
    length: - Oscillator length - not used for TSI
    useTrueRange: - if set to false, uses high-low.
    sticky: - for sticky borders which only change upon source crossover/crossunder
    numberOfBands: - Number of bands to generate
    multiplierStart: - Starting ATR or Standard deviation multiplier for first band
    multiplierStep: - Incremental value for multiplier for each band
  Returns: array of band values sorted in ascending order
Release Notes: v9

Added mfi to oscillator sources for oscillator method
Release Notes: v10

Reverted last change as mfi was already there :(

Please PM me if you need access to any invite only scripts.

Join tradingview: https://www.tradingview.com/gopro/?share_your_love=sudh
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 use it freely. Cheers to the author!

Want to use this library?

Copy text to clipboard and paste it in your script.