Home » Technical Analysis Functions » ta.range() Function in Pine Script

ta.range() Function in Pine Script

Photo of author
Published on

In this article, we delve into the workings of the ta.range() function in Pine Script, a powerful tool for technical analysis in trading scripts. This function calculates the range, which is the difference between the minimum and maximum values in a series of data.

Syntax and Overloads

The ta.range() function can be implemented in two ways:

  1. ta.range(source, length) → series int
  2. ta.range(source, length) → series float

These variations allow for flexibility depending on the nature of the data being analyzed.


  • source (series int): This is the series of values that the function will process. It can be any series of integer values, such as price data or indicator values.
  • length (series int): Represents the number of bars, or the length, over which the function will calculate the range. It determines the window size of the data set to be considered for each calculation.

Function Returns

The ta.range() function returns the difference between the minimum and maximum values in the specified series over the given length. This output can be a series of integer or float values, depending on the overload used.


  • Handling of ‘na’ Values: In the context of Pine Script, ‘na’ represents a missing or undefined value. The ta.range() function intelligently handles these ‘na’ values by ignoring them. It focuses only on the non-na values within the specified length.
  • Calculation Method: The function calculates the range by determining the minimum and maximum values within the specified window (length) of the data series and subtracting the minimum from the maximum.

Practical Example

Suppose we have a series of closing prices of a stock, and we want to calculate the range of these prices over a 14-day period. Here’s how we can use the ta.range() function:

indicator('Price Range Example', shorttitle='PRE')

// Sample data series (closing prices)
price_data = close

// Length for range calculation
length_period = 14

// Calculate range
price_range = ta.range(price_data, length_period)

// Plotting the range
plot(price_range, title='14-Day Price Range', color=color.new(color.red, 0))

range Function

In this example, price_range will hold the difference between the highest and lowest closing prices over each 14-day period.

Key Features and Takeaways

  • Function Usability: ta.range() is versatile and can be used with different types of data series.
  • Syntax: It offers two syntax overloads, accommodating both integer and float series.
  • Application: Ideal for analyzing volatility, detecting extremes, or identifying potential breakouts in price data.
  • Handling Missing Values: Efficiently ignores ‘na’ values, ensuring robust calculations.

By integrating ta.range() into your trading scripts, you can effectively measure the volatility and price fluctuation range of a given asset, enhancing your technical analysis capabilities.

Leave a Comment