Home » Box Functions » Understanding the box.set_text_font_family() Function in Pine Script

Understanding the box.set_text_font_family() Function in Pine Script

Photo of author
Published on

In this article, we delve into the box.set_text_font_family() function in Pine Script, a powerful tool for customizing the appearance of text within box drawings on your trading charts. This function allows script developers to enhance the readability and visual appeal of their custom indicators and strategies by setting the font family for text displayed inside boxes.


The syntax of the box.set_text_font_family() function is straightforward:

box.set_text_font_family(id, text_font_family) → void


  • id (series box): This is the identifier for the box object whose text font family you want to set. It’s the box object you’ve previously created using box.new().
  • text_font_family (series string): This argument specifies the font family of the text inside the box. Pine Script currently supports two values:
  • font.family_default: The default font family used by TradingView charts.
  • font.family_monospace: A monospace (or fixed-width) font, where each character occupies the same amount of horizontal space.

Example Explained

Let’s dissect an example to better understand how to use the box.set_text_font_family() function:

indicator("Example of setting the box font")

if barstate.islastconfirmedhistory
    customBox = box.new(bar_index, open-ta.tr, bar_index-50, open-ta.tr*5, text="monospace")
    box.set_text_font_family(customBox, font.family_monospace)

Walkthrough of Code 

  1. Indicator Declaration: The script starts with declaring a version 5 indicator titled “Example of setting the box font”.
  2. Conditional Execution: The if statement checks if the current bar is the last confirmed historical bar. This is often done to ensure that certain operations are only performed once, avoiding unnecessary recalculations.
  3. Box Creation: Inside the if block, a box is created using box.new(). The box’s dimensions and position are determined by the current bar_index, the open price, and the true range (ta.tr). The box’s text is initially set to “monospace”.
    • customBox is the variable name for the box object. We’ve slightly modified the name from the provided my_box to maintain uniqueness while ensuring clarity.
    • The box extends from the current bar’s index to 50 bars back. Its vertical position is defined from open-ta.tr to open-ta.tr*5, creating a range that dynamically adjusts with market volatility.
  4. Setting the Font Family: The box.set_text_font_family() function is called with two arguments: the customBox object and font.family_monospace as the desired font family. This changes the box’s text font to monospace, enhancing its readability, especially when displaying numerical data or aligned text elements.

Key Features and Takeaways

  • Function Useability: box.set_text_font_family() enhances the visual customization of box objects by allowing the selection of different font families for the text inside the box.
  • Syntax and Application: It requires two arguments: the box object identifier and the desired font family. This function is a void type, meaning it does not return any value.
  • Practical Use Case: Ideal for developers who wish to improve the readability and aesthetic appeal of their indicators or strategies by utilizing different text styles within their box drawings.

By understanding and applying the box.set_text_font_family() function, Pine Script developers can create more engaging and user-friendly trading tools, leveraging the power of visual customization to convey information more effectively.

Leave a Comment