Home » Mathemtical Functions » Understanding matrix.avg() Function in Pine Script

Understanding matrix.avg() Function in Pine Script

Photo of author
Published on

This article provides an in-depth tutorial on how to use the matrix.avg() function, including syntax, arguments, and practical examples.

Syntax & Overloads

The matrix.avg() function is available in two overloads, allowing for flexibility depending on the type of data stored within the matrix:

  • matrix.avg(id) → series float
  • matrix.avg(id) → series int


  • id (matrix<int/float>): This is the matrix object from which the average value of all elements will be calculated.

Example: Calculating the Average Value of a Matrix

Let’s go through a practical example to see how matrix.avg() can be applied:

indicator("`matrix.avg()` Demo")

// Initialize a 2x2 matrix with 'na' values.
var mat = matrix.new<float>(2, 2, na)
// Populate the matrix with numerical values.
matrix.set(mat, 0, 0, 1)
matrix.set(mat, 0, 1, 2)
matrix.set(mat, 1, 0, 3)
matrix.set(mat, 1, 1, 4)

// Calculate the average value of the matrix.
var avgValue = matrix.avg(mat)

plot(avgValue, 'Matrix Average Value')
Average Value of a Matrix

Detailed Walkthrough

  • var mat = matrix.new<float>(2, 2, na): Initializes a new 2×2 matrix with all elements set to ‘na’ (not available). The use of var ensures that the matrix is only created once and retains its values between chart updates.
  • matrix.set(mat, 0, 0, 1): Sets the value of the element at the first row and first column to 1, and similarly for other elements.
  • var avgValue = matrix.avg(mat): Calculates the average value of all the elements within the matrix mat. Since mat contains the numbers 1, 2, 3, and 4, the average value computed will be (1+2+3+4)/4 = 2.5.

Key Features

  • Function Usability: matrix.avg() simplifies the process of calculating the mean value of elements in a matrix, which can be particularly useful in financial data analysis, such as calculating average prices over multiple time frames or instruments.
  • Syntax: The function’s syntax is straightforward, requiring only the matrix ID as an argument, making it easily integrable into various trading strategies and indicators.
  • Application: This function can be applied in a wide range of scenarios, from simple mathematical operations to complex financial models that require the manipulation and analysis of multi-dimensional data.

Summary of Takeaways

  • matrix.avg() is used to calculate the average value of all elements in a given matrix in Pine Script.
  • It supports matrices of both integer and float types.
  • This function is essential for operations that require aggregation or summary statistics of data stored in matrices.
  • Practical application includes calculating average values from complex datasets, facilitating sophisticated analysis and strategy development in trading.

Leave a Comment