Home » Technical Analysis Functions » ta.crossunder Function in Pine Script

ta.crossunder Function in Pine Script

Photo of author
Published on

Pine Script is a domain-specific language designed for coding custom technical analysis indicators, strategies, and alerts on TradingView. Among its many built-in functions, ta.crossunder is particularly useful for identifying moments when one data series crosses under another. In this blog post, we will delve into the specifics of ta.crossunder and examine how to effectively use it in different scenarios.

What is ta.crossunder?


The ta.crossunder function is used to detect when one data series (source1) crosses under another (source2).


The syntax is simple:

ta.crossunder(source1, source2) → series bool


  • source1 (series int/float): The first data series.
  • source2 (series int/float): The second data series.

The function returns a boolean series. A ‘true’ value indicates that source1 has crossed under source2 based on the bar’s data.

How Does ta.crossunder Work?

For ta.crossunder to return ‘true’, two conditions must be met:

  1. On the current bar, the value of source1 must be less than the value of source2.
  2. On the previous bar, the value of source1 must have been greater than or equal to the value of source2.

If both conditions are satisfied, the function will return ‘true’; otherwise, it will return ‘false’.

Example Use Case: Moving Average Crossover Strategy

To demonstrate the practical application of ta.crossunder, let’s create a unique script to identify when a fast moving average crosses under a slow moving average. This is a basic yet powerful trading strategy that signals a potential bearish trend.

indicator("Moving Average Crossunder Example", overlay=true)
fastLength = 5
slowLength = 14
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Detect crossunder
crossUnder = ta.crossunder(fastMA, slowMA)

// Plot moving averages
plot(fastMA, "Fast MA", color=color.blue)
plot(slowMA, "Slow MA", color=color.red)

// Signal crossunder with a red dot on the chart
plotshape(crossUnder, title="Crossunder Signal", location=location.belowbar, color=color.red, size=size.small)
ta.crossunder Function in Pine Script

Code Explanation:

  • We start by defining the fast and slow moving average lengths as fastLength and slowLength.
  • Then, we calculate the fast and slow moving averages using ta.sma (Simple Moving Average) and store them in fastMA and slowMA.
  • We then use ta.crossunder(fastMA, slowMA) to detect a crossunder event and store the result in crossUnder.
  • The two moving averages are plotted using the plot() function.
  • Finally, we use plotshape() to plot a small red dot below the bar whenever a crossunder is detected.

Key Takeaway

The ta.crossunder function is a valuable tool in Pine Script for identifying when one data series crosses under another, which can be critical for various trading strategies. By understanding its functionality and how to implement it in real-world scenarios, you can improve your trading indicators and strategies substantially.


Understanding ta.crossunder is essential for anyone looking to implement custom trading strategies in Pine Script. With its easy-to-understand syntax and versatile use-cases, this function provides traders and developers with a powerful way to detect specific market conditions. By taking the time to learn and understand how to use ta.crossunder, you’re taking a meaningful step toward creating more nuanced and effective trading strategies.

Leave a Comment