TradingView

ta

TradingView Updated   
Library "ta"


█ OVERVIEW

This library holds technical ​analysis functions calculating values for which no Pine built-in exists.


Look first. Then leap.



█ FUNCTIONS

cagr(entryTime, entryPrice, exitTime, exitPrice)
It calculates the "Compound Annual Growth Rate" between two points in time. The ​CAGR is a notional, annualized growth rate that assumes all profits are reinvested. It only takes into account the prices of the two end points — not drawdowns, so it does not calculate risk. It can be used as a yardstick to compare the performance of two instruments. Because it annualizes values, the function requires a minimum of one day between the two end points (annualizing returns over smaller periods of times doesn't produce very meaningful figures).
  Parameters:
    entryTime: The starting timestamp.
    entryPrice: The starting point's price.
    exitTime: The ending timestamp.
    exitPrice: The ending point's price.
  Returns: ​CAGR in % (50 is 50%). Returns `na` if there is not >=1D between `entryTime` and `exitTime`, or until the two time points have not been reached by the script.



█ v2, Mar. 8, 2022


Added functions `allTimeHigh()` and `allTimeLow()` to find the highest or lowest value of a source from the first historical bar to the current bar. These functions will not look ahead; they will only return new highs/lows on the bar where they occur.

allTimeHigh(​src)
Tracks the highest value of `src` from the first historical bar to the current bar.
  Parameters:
    src: (series int/float) Series to track. Optional. The default is `high`.
  Returns: (float) The highest value tracked.

allTimeLow(​src)
Tracks the lowest value of `src` from the first historical bar to the current bar.
  Parameters:
    src: (series int/float) Series to track. Optional. The default is `low`.
  Returns: (float) The lowest value tracked.



█ v3, Sept. 27, 2022


​ema2(​src, length)
  An alternate ​ema function to the `ta.​ema()` built-in, which allows a "series float" length argument.
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (series int/float) Number of bars (length).
  Returns: (float) The exponentially ​weighted moving average of the `​src`.

d​ema(​src, length)
  Calculates the value of the ​Double Exponential ​Moving Average (D​ema).
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (simple int) Number of bars (length).
  Returns: (float) The double exponentially ​weighted moving average of the `​src`.

d​ema2(​src, length)
  An alternate ​Double Exponential ​Moving Average (D​ema) function to `d​ema()`, which allows a "series float" length argument.
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (series int/float) Number of bars (length).
  Returns: (float) The double exponentially ​weighted moving average of the `​src`.

t​ema(​src, length)
  Calculates the value of the ​Triple Exponential ​Moving Average (T​ema).
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (simple int) Number of bars (length).
  Returns: (float) The triple exponentially ​weighted moving average of the `​src`.

t​ema2(​src, length)
  An alternate ​Triple Exponential ​Moving Average (T​ema) function to `t​ema()`, which allows a "series float" length argument.
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (series int/float) Number of bars (length).
  Returns: (float) The triple exponentially ​weighted moving average of the `​src`.

trima(​src, length)
  Calculates the value of the Triangular ​Moving Average (TRIMA).
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (simple int) Number of bars (length).
  Returns: (float) The triangular moving average of the `​src`.

trima2(​src, length)
  An alternate Triangular ​Moving Average (TRIMA) function to `trima()`, which allows a "series int" length argument.
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (series int) Number of bars (length).
  Returns: (float) The triangular moving average of the `​src`.

t3(​src, length, alpha)
  Calculates the value of the Tilson ​Moving Average (T3).
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (simple int) Number of bars (length).
    alpha: (simple float) ​Volume factor. Affects the responsiveness.
  Returns: (float) The tilson moving average of the `​src`.

t3Alt(​src, length, alpha)
  An alternate Tilson ​Moving Average (T3) function to `t3()`, which allows a "series int" length argument.
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (series int/float) Number of bars (length).
    alpha: (simple float) ​Volume factor. Affects the responsiveness.
  Returns: (float) The tilson moving average of the `​src`.

​frama(​src, length)
  The ​Fractal Adaptive ​Moving Average (​frama), developed by John ​Ehlers, is an ​adaptive moving average that dynamically adjusts its lookback period based on ​fractal geometry.
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (series int) Number of bars (length).
  Returns: (float) The ​fractal ​adaptive moving average of the `​src`.

​donchian(length)
  Calculates the center point of a ​donchian Channel of the `high` and `low` over the specified `length`.
  Parameters:
    length: (series int) Number of bars (length).
  Returns: (float) The mid-point of a ​donchian Channel.

ichimoku(conLength, baseLength, senkouLength)
  Calculates values of the ​Ichimoku Cloud strategy, such as tenkan, kijun, senkouSpan1, senkouSpan2, and chikou. NOTE: offsets forward or backward can be accomplished using the `offset` argument in `plot()`.
  Parameters:
    conLength: (series int) Length for the Conve​rsion Line (Tenkan). The default is 9 periods, which returns the mid-point of the 9 period ​donchian Channel.
    baseLength: (series int) Length for the Base Line (Kijun-sen). The default is 26 periods, which returns the mid-point of the 26 period ​donchian Channel.
    senkouLength: (series int) Length for the Senkou Span 2 (Leading Span B). The default is 52 periods, which returns the mid-point of the 52 period ​donchian Channel.
  Returns: () A tuple of the Tenkan, Kijun, Senkou Span 1, Senkou Span 2, and Chikou Span values. NOTE: by default, the senkouSpan1 and senkouSpan2 values should be plotted 26 periods in the future, and the Chikou Span plotted 26 days in the past.

stochFull(periodK, smoothK, periodD)
  Calculates the %K and %D values of the Full ​Stochastic indicator.
  Parameters:
    periodK: (simple int) Length used for ​stochastic calculation. (number of bars back).
    smoothK: (simple int) Length used for smoothing of the %K value (number of bars back).
    periodD: (simple int) Length used for smoothing of the %D value (number of bars back).
  Returns: () A tuple of the slow %K and the %D moving average values.

stoch​rsi(​length​Rsi, periodK, smoothK, periodD, ​src)
  Calculates the %K and %D values of the ​Stochastic ​RSI indicator.
  Parameters:
    ​length​Rsi: (simple int) Length used for ​RSI calculation (number of bars back).
    periodK: (simple int) Length used for ​stochastic calculation (number of bars back).
    smoothK: (simple int) Length used for smoothing of the %K value (number of bars back).
    periodD: (simple int) Length used for smoothing of the %D value (number of bars back).
    ​src: (series int/float) Series of values to process. Optional. The default is `close`.
  Returns: () A tuple of the slow %K and the %D moving average values.

dm(length)
  Calculates the value of the D​emarker™ indicator.
  Parameters:
    length: (simple int) Number of bars (length).
  Returns: (float) The ​Oscillator value.

uo(fastLen, midLen, slowLen)
  Calculates the value of the Ultimate ​Oscillator.
  Parameters:
    fastLen: (simple int) Number of bars for the fast smoothing average (length).
    midLen: (simple int) Number of bars for the middle smoothing average (length).
    slowLen: (simple int) Number of bars for the slow smoothing average (length).
  Returns: (float) The ​Oscillator value.

kvo(fastLen, slowLen, trigLen)
  Calculates the values of the ​Klinger ​Volume ​Oscillator.
  Parameters:
    fastLen: (simple int) Number of bars for the fast smoothing average (length).
    slowLen: (simple int) Number of bars for the slow smoothing average (length).
    trigLen: (simple int) Number of bars for the trigger smoothing average (length).
  Returns: () A tuple of the KVO value, and the trigger value.

vhf(​src, length)
  Calculates the value of the Vertical Horizontal ​filter.
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (simple int) Number of bars (length).
  Returns: (float) The ​Oscillator value.

stc(​src, fast, slow, cycle, d1, d2)
  Calculates the value of the ​​Schaff Trend Cycle indicator.
  Parameters:
    ​src: (series int/float) Series of values to process.
    fast: (simple int) Number of bars for the fast ​MACD value (length).
    slow: (simple int) Number of bars for the slow ​MACD value (length).
    cycle: (simple int) Number of bars for the ​stochastic value (length).
    d1: (simple int) Number of bars for the smoothing of the initial %D value (length).
    d2: (simple int) Number of bars for the smoothing of the final %D value (length).
  Returns: (float) The ​Oscillator value.

vi(length)
  Calculates the values of the ​Vortex Indicator.
  Parameters:
    length: (simple int) Number of bars (length).
  Returns: () A tuple of the viPlus and viMinus values.

rwi(length)
  Calculates the values of the ​Random Walk Index.
  Parameters:
    length: (simple int) Number of bars (length).
  Returns: () A tuple of the rwiHigh and rwiLow values.

vzo(length)
  Calculates the value of the ​Volume Zone ​Oscillator.
  Parameters:
    length: (simple int) Number of bars (length).
  Returns: (float) The ​Oscillator value.

pzo(length)
  Calculates the value of the Price Zone ​Oscillator.
  Parameters:
    length: (simple int) Number of bars (length).
  Returns: (float) The ​Oscillator value.

szo(​src, length)
  Calculates the value of the Sentiment Zone ​Oscillator.
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (simple int) Number of bars (length).
  Returns: (float) The ​Oscillator value.

wpo(length)
  Calculates the value of the Wave Period ​Oscillator.
  Parameters:
    length: (simple int) Number of bars (length).
  Returns: (float) The ​Oscillator value.

coppock(​src, longLength, shortLength, smoothLength)
  Calculates the value of the Coppock Curve indicator.
  Parameters:
    ​src: (series int/float) Series of values to process.
    longLength: (simple int) Number of bars for the fast ​ROC value (length).
    shortLength: (simple int) Number of bars for the slow ​ROC value (length).
    smoothLength: (simple int) Number of bars for the weigted moving average value (length).
  Returns: (float) The ​Oscillator value.

​trix(​src, length, signalLength, exponential)
  Calculates the values of the ​trix indicator.
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (simple int) Number of bars for smoothing (length).
    signalLength: (simple int) Number of bars for smoothing the signal line (length).
    exponential: (simple bool) Condition to determine whether exponential or simple smoothing is used. Optional. The default is `true` (exponential smoothing).
  Returns: () A tuple of the ​trix value, the signal value, and the histogram.

aroon(length)
  Calculates the values of the ​Aroon indicator.
  Parameters:
    length: (simple int) Number of bars (length).
  Returns: () A tuple of the Aroon-Up and Aroon-Down values.

eom(length, ​div)
  Calculates the value of the ​ease of Movement indicator.
  Parameters:
    length: (simple int) Number of bars (length).
    ​div: (simple int) ​divisor used for normalzing values. Optional. The default is 10000.
  Returns: (float) The ​Oscillator value.

ft(​src, length)
  Calculates the value of the Fisher ​transform indicator.
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (simple int) Number of bars (length).
  Returns: (float) The ​Oscillator value.

ift(​src)
  Calculates the value of the Inverse Fisher ​transform indicator.
  Parameters:
    ​src: (series int/float) Series of values to process.
  Returns: (float) The ​Oscillator value.

ht(​src)
  Calculates the value of the Hilbert ​transform indicator.
  Parameters:
    ​src: (series int/float) Series of values to process.
  Returns: (float) The ​Oscillator value.

supertrend(factor, atrPeriod, wicks)
  Calculates the values of the Supertrend indicator with the ability to take candle wicks into account, rather than only the closing price.
  Parameters:
    factor: (series int/float) Multiplier for the ATR value.
    atrPeriod: (simple int) Number of bars for ATR calculation (length).
    wicks: (simple bool) Condition to determine whether to take candle wicks into account when reve​rsing trend, or to use the close price. Optional. Default is false.
  Returns: (float, int) A tuple of the superTrend value and trend direction.

​rms(​src, length)
  Calculates the root mean square of the `​src` over the `length`.
  Parameters:
    ​src: (series int/float) Series of values to process.
    length: (simple int) Number of bars (length).
  Returns: (float) The ​rms value.

williams​Fractal(period)
  Detects Williams ​Fractals.
  Parameters:
    period: (series int) Number of bars (length).
  Returns: () A tuple of an up ​fractal and down ​fractal. Variables are true when detected.


Release Notes:
A myriad of new technical ​analysis functions have been added. The original release documentation has been edited with the new functions under the "v3" section.

Credit goes to @everget for large portions of the updated code. Thank you for your valuable contributions.
Release Notes:
v4

Updated `aroon()` calculation to match the built-in indicator values.
Release Notes:
v5

The ​Ultimate Oscillator function has been fixed to correctly return `na` on early bars before a value is rendered. In addition, a function for the ​Awesome Oscillator has been implemented:


ao(src, shortLength, longLength)
  Calculates the value of the ​Awesome Oscillator.
  Parameters:
    src
    shortLength: (series int) Number of bars for the fast moving average (length).
    longLength: (series int) Number of bars for the slow moving average (length).
  Returns: (float) The oscillator value.

Get $30 worth of TradingView Coins for you and a friend: www.tradingview.com/share-your-love/

Read more about the new tools and features we're building for you: www.tradingview.com/blog/en/
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

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.