Home » Drawing On Charts » Understanding the linefill.set_color() Function in Pine Script

Understanding the linefill.set_color() Function in Pine Script

Photo of author
Published on

In this tutorial, we’ll delve into the linefill.set_color() function in Pine Script, a powerful tool for customizing the appearance of your charts on the TradingView platform. Pine Script is a domain-specific language for coding custom technical indicators and strategies, offering a wide range of functions to modify and display data in various visual formats.

Syntax Overview

linefill.set_color(id, newColor) → void


  • id (series linefill): This argument represents the linefill object whose color you intend to modify. A linefill object in Pine Script is typically used to fill the area between two lines on a chart, enhancing visual analysis.
  • newColor (series color): Specifies the new color for the linefill object. Pine Script provides a wide range of color options, enabling users to choose according to their preferences or to signify specific market conditions.


To better understand the linefill.set_color() function, let’s walk through a practical example where we’ll modify the color of a linefill object based on certain conditions.

indicator("Dynamic Line Fill Color", overlay=true)

// Define two simple moving averages
fastMA = ta.sma(close, 9)
slowMA = ta.sma(close, 21)

// Create a linefill between the two moving averages
fillId = fill(line.new(bar_index[9], fastMA, bar_index, fastMA, width=2), line.new(bar_index[9], slowMA, bar_index, slowMA, width=2))

// Define a condition to change the linefill color
colorCondition = close > open

// Update the linefill color based on the condition
linefill.set_color(fillId, colorCondition ? color.new(color.green, 90) : color.new(color.red, 90))

Detailed Explanation and Example

Walkthrough of the Code

  1. Define Moving Averages: We calculate two simple moving averages (SMAs) with different periods (9 for the fastMA and 21 for the slowMA) to track short-term and long-term price movements.
  2. Create a Linefill: A linefill object is created between the two moving average lines using the fill() function. This visually represents the convergence or divergence of the moving averages.
  3. Conditional Color Change: We define a condition (colorCondition) that checks whether the closing price is higher than the opening price. This condition is used to dynamically set the color of the linefill object.
  4. Apply New Color: The linefill.set_color() function is used to update the color of the linefill object based on the defined condition. The ternary operator (? :) is used to select the appropriate color.

Key Features and Takeaways

  • Dynamic Visualization: The linefill.set_color() function allows for dynamic changes in chart visualizations, making it easier to highlight significant market trends or conditions.
  • Customization: Offers extensive customization options for chart appearances, enabling traders and analysts to tailor visual representations according to their analysis needs.
  • Conditional Formatting: By combining the function with conditional statements, users can create highly informative and interactive charts that respond to real-time data changes.

In conclusion, the linefill.set_color() function is a versatile tool in Pine Script for enhancing the visual analysis of charts. By understanding and utilizing this function, you can create more dynamic and informative chart visualizations that aid in better decision-making.

Leave a Comment