Home » Array Functions » array.sort Function in Pine Script

array.sort Function in Pine Script

Photo of author
Published on

One essential function when working with arrays is the array.sort function, which allows you to sort the elements within an array. In this tutorial, we will explore the array.sort function in detail, learn its syntax, and examine a unique use case with explanations for each line of code.

Understanding the array.sort Function

The array.sort function is used to sort the elements of an array in either ascending or descending order. It is often used when working with large data sets, such as stock prices, to perform calculations or analysis.

Arguments

The array.sort function takes two arguments:

  1. id: This is the identifier of the array you want to sort.
  2. order: This is the sort order. It can be either order.ascending (default) or order.descending.

Remarks

This function can be applied to arrays with float, integer, or string elements. The sorting will be done according to the data type of the elements in the array.

Syntax

The syntax for the array.sort function is as follows:

array.sort(id, order)

A Unique Use Case Example

Let’s examine a unique use case where we will use the array.sort function to sort an array of the highest stock prices in the last six bars in descending order. We will then display the sorted array as a label on the chart.

//@version=5
indicator('array.sort example' , overlay = true)
a = array.new_float(0, 0)
for i = 0 to 5 by 1
    array.push(a, high[i])
array.sort(a, order.descending)
if barstate.islast
    label.new(bar_index, close, str.tostring(a) , textcolor =  color.white , size = size.huge)

Code Explanation

Here’s an explanation of each line of code in the updated example using Pine Script version 5:

  1. //@version=5: This line indicates that we are using Pine Script version 5.
  2. indicator('array.sort example', overlay = true): This line defines a new indicator with the title “array.sort example” and sets the overlay parameter to true. This means that the indicator will be drawn on the main chart instead of a separate pane below the chart.
  3. a = array.new_float(0, 0): This line initializes a new float array a with an initial size of 0 and a default value of 0.
  4. for i = 0 to 5 by 1: This line starts a for loop that iterates from 0 to 5 with a step of 1.
  5. array.push(a, high[i]): This line pushes the highest price of the current bar (represented by high[i]) into the array a.
  6. array.sort(a, order.descending): This line sorts the array a in descending order.
  7. if barstate.islast: This line checks if the current bar is the last bar on the chart.
  8. label.new(bar_index, close, str.tostring(a), textcolor = color.white, size = size.huge): This line creates a new label at the current bar’s index and the closing price, displaying the sorted array a as a string. The text color of the label is set to white, and the text size is set to huge.

Key Takeaways

  • The array.sort function is used to sort the elements of an array in either ascending or descending order.
  • It takes two arguments: the array identifier and the sort order.
  • It can be applied to float, integer, or string arrays.
  • The function is useful for organizing data, making calculations, and performing analysis on large data sets.

Conclusion

In this tutorial, we covered the array.sort function in Pine Script, its syntax, and a unique use case example. We also provided a line-by-line explanation of the example code. The array.sort function is an essential tool when working with arrays in Pine Script, as it allows you to efficiently sort and organize data for further analysis or manipulation.

By mastering the array.sort function and other Pine Script functions, you can create more advanced custom studies, alerts, and strategies on the TradingView platform. We hope this tutorial has provided you with a solid understanding of the array.sort function and its applications. Now, you can confidently use it to enhance your Pine Script projects and take your trading analysis to new heights.

Leave a Comment