Home » Table Functions » Understanding the table.set_border_color() Function in Pine Script

Understanding the table.set_border_color() Function in Pine Script

Photo of author
Published on

Let’s delve into the syntax, usage, and practical applications of able.set_border_color() Function  to elevate your Pine Script programming.


The syntax for the table.set_border_color() function is straightforward and consists of two arguments:

table.set_border_color(table_id, border_color) → void
  • table_id (series table): This is the identifier of the table object whose cell borders you wish to color. It is crucial as it specifies the target table for the color application.
  • border_color (series color): Specifies the color of the cell borders within the table. This argument is optional, and omitting it will result in the borders having no color, effectively making them transparent.

Arguments in Detail

  1. table_id: The table_id is obtained when you create a table using the table.new() function. It is a reference to the table object, and you will use this reference to apply various modifications, including setting border colors.
  2. border_color: Pine Script offers a flexible color specification, allowing you to use built-in color constants (e.g., color.red, color.blue), RGBA values (using the color.new() function), or even conditional coloring. The default behavior, when no color is specified, is to render the borders transparent, providing a seamless look between cells.

Practical Example

To better understand how to use the table.set_border_color() function, let’s create a simple table and apply a border color to it. In this example, we’ll create a table with multiple cells and set the border color to blue.

indicator("Expanded Colored Table", overlay=true)

// Creating a table with an initial setup
myExpandedTable = table.new(position = position.top_right,border_width = 1,frame_width = 1,frame_color = color.blue, columns = 4, rows = 3)

// Populating the table with data
table.cell(myExpandedTable, 0, 0, "Asset",text_color = color.white)
table.cell(myExpandedTable, 1, 0, "Price",text_color = color.white)
table.cell(myExpandedTable, 2, 0, "Change",text_color = color.white)
table.cell(myExpandedTable, 3, 0, "Volume",text_color = color.white)

// Adding data for the first asset
table.cell(myExpandedTable, 0, 1, "BTC",text_color = color.white)
table.cell(myExpandedTable, 1, 1, "43000",text_color = color.white)
table.cell(myExpandedTable, 2, 1, "+5%",text_color = color.white)
table.cell(myExpandedTable, 3, 1, "High",text_color = color.white)

// Adding data for the second asset
table.cell(myExpandedTable, 0, 2, "ETH",text_color = color.white)
table.cell(myExpandedTable, 1, 2, "3000",text_color = color.white)
table.cell(myExpandedTable, 2, 2, "+3%",text_color = color.white)
table.cell(myExpandedTable, 3, 2, "Medium",text_color = color.white)

// Setting the border color of the table's cells
table.set_border_color(myExpandedTable, color.blue)

Deep Dive into Code Explanation

  • Indicator Declaration:
    • //@version=5: Specifies the use of version 5 of Pine Script, ensuring compatibility with the latest features and syntax.
    • indicator("Expanded Colored Table", overlay=true): This line declares a new indicator titled “Expanded Colored Table” that will be overlaid on the main price chart.
  • Table Creation:
    • myExpandedTable = table.new(position = position.top_right, border_width = 1, frame_width = 1, frame_color = color.blue, columns = 4, rows = 3): A table named myExpandedTable is created with the following properties:
      • Placed at the top right of the chart (position.top_right).
      • Both the border and frame widths are set to 1.
      • The color of the frame is set to blue.
      • The table is configured to have 4 columns and 3 rows.
  • Populating Table Headers:
    • table.cell(myExpandedTable, column, row, "Header", text_color = color.white): These lines are used to fill the first row of the table (row 0) with headers (“Asset”, “Price”, “Change”, “Volume”) in each of the four columns. The text color for these headers is set to white for better visibility against the default or frame color.
  • Adding Data for Assets:
    • The code then populates the table with data for two assets, BTC and ETH, across the second and third rows. For each asset, the following details are provided in separate columns: the asset’s name, its price, the percentage change, and the trading volume category (“High” or “Medium”). Similar to the headers, the text color for all data cells is set to white to maintain consistency and readability.
  • Setting Border Color:
    • table.set_border_color(myExpandedTable, color.blue): This function call sets the color of the internal borders (excluding the outer frame) of the table cells to blue. This step is somewhat redundant in this specific example, as the frame color is already set to blue and the border color is being set to the same color. However, it demonstrates the ability to separately define the color of the cell borders within the table.

Key Features and Takeaways

  • Function Usability: table.set_border_color() is essential for customizing the look of your tables in Pine Script, allowing for clear cell separation.
  • Syntax: The function requires a table object identifier and an optional color argument, offering flexibility in design choices.
  • Application: Ideal for creating visually distinct tables in trading indicators or strategies that display data directly on the chart.

By understanding and utilizing the table.set_border_color() function, you can significantly improve the usability and aesthetics of your Pine Script tables, making your trading tools more effective and visually appealing.

Leave a Comment