Home » Labels Functions » Understanding label.all Function in Pine Script

Understanding label.all Function in Pine Script

Photo of author
Published on

In this tutorial, we explore the label.all function in Pine Script, a powerful tool for managing labels on your trading charts. This function returns an array filled with all the current labels drawn by the script, allowing for efficient manipulation and control over label elements. Understanding how to use label.all can significantly enhance your script’s interactivity and user interface.

Introduction to label.all

The label.all function is part of Pine Script’s array functionalities, specifically designed for handling label objects. When invoked, it retrieves an array of label IDs representing all labels currently drawn by the script. This array is read-only, and its elements are ordered by the creation time of the labels, with index zero representing the ID of the oldest label on the chart.

Syntax and Type

  • Type: array<label>
  • Syntax: a_allLabels = label.all

Example: Deleting All Labels

To illustrate the use of label.all, let’s go through an example where we delete all labels drawn by a script. This is particularly useful for scripts that frequently update or change labels based on new data.

indicator("Manage Labels with label.all", overlay=true)
// Drawing a new label for demonstration
label.new(bar_index, close, text="Sample Label")
// Retrieving all labels drawn by the script
allLabelsArray = label.all
// Checking if there are any labels to delete
if array.size(allLabelsArray) > 0
    // Looping through the array of labels
    for i = 0 to array.size(allLabelsArray) - 1
        // Deleting each label
        label.delete(array.get(allLabelsArray, i))

Code Walkthrough

  1. Initialization: We start by defining the script with indicator and specifying its name.
  2. Drawing a Label: A demonstration label is created at the current bar’s close price with label.new.
  3. Retrieving Labels: label.all is used to get an array (allLabelsArray) of all labels drawn by the script.
  4. Deletion Logic: We check if allLabelsArray contains any labels. If it does, we iterate over the array, using array.size to determine the loop’s range. Within the loop, label.delete is called on each label, identified by array.get(allLabelsArray, i).

Key Features

  • Function Usability: label.all is a read-only array function that efficiently manages labels on charts by allowing bulk operations, such as deletion.
  • Syntax and Application: It simplifies script interactions with labels, making scripts cleaner and more manageable.
  • Array Read-Only Nature: The array returned is read-only, emphasizing that label.all is designed for retrieval and indirect modification (e.g., deletion) of labels rather than direct manipulation of the array’s contents.


  • label.all returns an array of label IDs, providing a snapshot of all labels currently drawn by the script.
  • This function is essential for scripts that need to manage labels dynamically, offering capabilities such as bulk deletion or modification.
  • The array is read-only, with index zero corresponding to the oldest label, ensuring scripts can interact with labels in a controlled and predictable manner.

By integrating label.all into your Pine Script strategies, you can achieve more dynamic and responsive charting solutions, enhancing both the functionality and the aesthetics of your trading scripts.

Leave a Comment