Home » Pinescript Syntax » Determining if a String is Empty in Pine Script

Determining if a String is Empty in Pine Script

Photo of author
Published on

In this tutorial, we dive into handling strings within Pine Script, particularly focusing on how to determine if a string is empty or not. Using a practical example, we’ll explore the process of setting up a custom indicator that utilizes string input from users to generate signals on a chart. 

Introduction to Pine Script

Pine Script is a domain-specific language for coding custom technical indicators and strategies on TradingView. It offers a wide array of functions that allow traders and developers to create tools tailored to their analytical needs.

Setting Up the Indicator

Code Overview

//@version=5
indicator(title="Check for Empty String Demo", overlay=true)

// Create a text input for the user's message
userMessage = input.string("", title="Your Message")

// Compute and display two Exponential Moving Averages
quickEMA = ta.ema(close, 20)
slowEMA = ta.ema(close, 50)

plot(quickEMA, color=color.orange, title="Quick EMA")
plot(slowEMA, color=color.teal, linewidth=2, title="Slow EMA")

// Label the chart when the user's message is not empty, and the quick
// EMA crosses the slow EMA, to signify a signal
if userMessage != "" and ta.cross(quickEMA, slowEMA)
    label.new(bar_index, high, userMessage, color=color.black,
              textcolor=color.white, size=size.large)
Overview

Detailed Explanation

Indicator Declaration

//@version=5
indicator(title="Check for Empty String Demo", overlay=true)
  • //@version=5: Specifies the Pine Script version used, ensuring compatibility and access to the latest features.
  • indicator(): Declares a new indicator script, with a custom title and an option to overlay it on the price chart.

Input from Users

userMessage = input.string("", title="Your Message")
  • input.string(): Creates a text input box for users to enter a message. Initially, it is set to an empty string, denoted by "".

Exponential Moving Averages Calculation

quickEMA = ta.ema(close, 20)
slowEMA = ta.ema(close, 50)
  • ta.ema(): Calculates the Exponential Moving Average of the closing prices over specified periods (20 for quickEMA and 50 for slowEMA).

Plotting EMAs on the Chart

plot(quickEMA, color=color.orange, title="Quick EMA")
plot(slowEMA, color=color.teal, linewidth=2, title="Slow EMA")
  • plot(): Draws the calculated EMAs on the chart with specified colors and titles.

Labeling the Signal

if userMessage != "" and ta.cross(quickEMA, slowEMA)
    label.new(bar_index, high, userMessage, color=color.black,
              textcolor=color.white, size=size.large)
  • Checks if userMessage is not empty (userMessage != "") and if quickEMA crosses slowEMA.
  • label.new(): Creates a new label on the chart at the crossing point to highlight the signal.

Key Features and Takeaways

  • String Handling: Pine Script allows for straightforward string manipulation, including checking for an empty string ("").
  • Custom User Inputs: input.string() facilitates interactive indicators where user input can dynamically affect the analysis.
  • Technical Analysis: Calculating and plotting EMAs are foundational for creating trading signals.
  • Conditional Logic: Combining string checks with technical conditions (like EMA crosses) enables complex trading strategies.

By understanding these components, you can extend this approach to develop more sophisticated indicators and strategies in Pine Script, tailored to specific analysis needs or trading criteria.

Leave a Comment