Home » Drawing On Charts » Understanding the line.get_x2() Function in Pine Script

Understanding the line.get_x2() Function in Pine Script

Photo of author
Published on

In this article, we will explore the line.get_x2() function in detail, covering its syntax, arguments, and practical applications.

Syntax Overview

The syntax for the line.get_x2() function is straightforward:

line.get_x2(id) → series int
  • id (series line): This is the line object from which you want to retrieve the x-coordinate of the second point.

The function returns a series of integers, which can either be a UNIX timestamp (in milliseconds) or a bar index, depending on the last xloc value set for the line object.

Arguments Explained

  • Line Object (id): The id argument is a reference to the line object whose second point’s x-coordinate you wish to obtain. In Pine Script, a line object is typically created using the line.new() function and manipulated through various other line functions.

Function Returns

The return value of line.get_x2() is a series of integers that represent either:

  • UNIX Timestamp: If the line’s xloc value was set to xloc.bar_time, the function returns the UNIX timestamp (in milliseconds) of the second point. This is particularly useful for time-specific calculations or when working with historical data.
  • Bar Index: If the line’s xloc value was set to xloc.bar_index, the function returns the bar index of the second point. This is useful for indexing and positional references within a chart.

Practical Application

Let’s consider a practical example where we want to use the line.get_x2() function to dynamically adjust the length of a trend line based on recent price action.

Example Code:

indicator("Dynamic Trend Line Adjustment", overlay=true)

// Create a line object (for demonstration purposes)
var line myTrendLine = na

if (bar_index == 10)
    myTrendLine := line.new(x1=bar_index[10], y1=close[10], x2=bar_index, y2=close, width=2, color=color.red)

// Adjust the second point of the line to the current bar if certain conditions are met
if (bar_index > 10 and close > close[1])
    line.set_xy2(id=myTrendLine, x=bar_index, y=close)

// Retrieve and display the x-coordinate of the second point of the line
label.new(x=bar_index, y=high, text=str.tostring(line.get_x2(myTrendLine)), style=label.style_label_down)


  • We initiate a dynamic trend line (myTrendLine) and set it to not-a-number (na) initially.
  • When the bar_index equals 10, we create a new line starting from the 10th bar to the current bar, with the line’s y-coordinates set to the closing prices of the respective bars.
  • If the bar_index is greater than 10 and the current close price is higher than the previous close, we adjust the second point of the line (line.set_xy2) to the current bar’s index and close price.
  • Finally, we use line.get_x2() to retrieve the x-coordinate of the second point of the line and display it using a label.

Key Features and Takeaways

  • Function Usability: line.get_x2() is invaluable for scripts that require dynamic manipulation of line objects, especially in strategies that adjust graphical elements based on real-time data.
  • Syntax and Application: The function’s syntax is straightforward, requiring only the line object’s ID as an argument. Its application spans across various trading strategies, from trend line adjustments to custom indicator development.
  • UNIX Timestamp vs. Bar Index: The function’s return type depends on the xloc setting of the line, offering flexibility in both time-based and index-based manipulations.

By understanding and utilizing the line.get_x2() function, Pine Script developers can enhance their trading strategies and technical analysis tools with dynamic graphical elements, making their scripts more interactive and responsive to market changes.

Leave a Comment