Home » Technical Analysis Functions » Understanding the ta.atr() Function in Pine Script

Understanding the ta.atr() Function in Pine Script

Photo of author
Published on

The ta.atr() function in Pine Script is a powerful tool for financial analysis, particularly in the realm of technical analysis. It calculates the Average True Range (ATR) of a financial instrument, providing insights into market volatility over a specified period. This article will delve into the syntax, usage, and application of the ta.atr() function, alongside a custom implementation to deepen your understanding of its mechanics.


The syntax for the ta.atr() function is straightforward:

ta.atr(length) → series float
  • length: A simple integer specifying the number of bars to look back to calculate the ATR.


  • length: This parameter defines the window size or the period over which the ATR is calculated. It’s a simple integer value that represents the number of bars back from the current bar.


Here’s a simple example to illustrate the usage of ta.atr() in Pine Script:


This code snippet plots the 14-period ATR of the current chart, providing a visual representation of market volatility.

Custom ATR Function

To further understand the inner workings, let’s break down a custom implementation named customATR:

indicator("Custom ATR")

customATR(length) =>
    customTrueRange = na(high[1]) ? high - low : math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
    // True range can also be calculated with ta.tr(true)
    ta.rma(customTrueRange, length)

Custom ATR Function
  • customTrueRange: This variable calculates the true range for the current bar. It considers three scenarios:
  • The difference between the current high and low.
  • The absolute difference between the current high and the previous close.
  • The absolute difference between the current low and the previous close. The maximum of these three values is considered the true range for the bar.
  • ta.rma(customTrueRange, length): This line calculates the Running Moving Average (RMA) of the true range over the specified length. The RMA smooths out the true range values, providing the ATR.


  • The function returns the average true range (ATR) as a series of float values, representing the market’s volatility over the specified period.


  • The ta.atr() function automatically handles na values within the series, ensuring that the calculation only considers non-na values. This feature is crucial for maintaining accuracy, especially in financial datasets where missing values can be common.

Key Features and Takeaways

  • Function Usability: The ta.atr() function is invaluable for traders and analysts seeking to understand market volatility. It’s used across various financial instruments and timeframes.
  • Syntax and Application: Understanding the syntax is straightforward, requiring only the length parameter. The function’s versatility is evident in both its direct usage and the potential for custom implementations.
  • Custom Implementation Insight: The custom customATR function illustrates the underlying calculation of the ATR, offering a deeper understanding of its components and encouraging further exploration into Pine Script’s capabilities.

The ATR is a staple in technical analysis, providing a dynamic view of market conditions. By mastering the ta.atr() function and exploring custom implementations, you can enhance your analytical toolkit in Pine Script, opening up new avenues for financial analysis and strategy development.

Leave a Comment