Home » Technical Analysis Functions » Using the ta.crossover Function in Pine Script

Using the ta.crossover Function in Pine Script

Photo of author
Published on

One of the many powerful functions available in Pine Script is ta.crossover. This function is pivotal for traders and developers to determine when one series crosses over another. In this tutorial, we will explore the details of the ta.crossover function and delve into a unique use-case example.

Understanding ta.crossover

What is ta.crossover?

The ta.crossover function is used to determine when one data series (source1) crosses over another data series (source2). Specifically, this crossover is recognized when, on the current bar, the value of source1 is greater than source2, and on the previous bar, the value of source1 was less than or equal to source2.


ta.crossover(source1, source2) → series bool


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

Unique Use-Case: Spotting Moving Average Crossovers

One of the most common applications for the ta.crossover function in trading is to spot when a short-term moving average crosses over a long-term moving average, signaling potential bullish momentum.

Example Code:

indicator("Moving Average Crossover Example", overlay = true)

// Define moving averages
shortMA = ta.sma(close, 14)
longMA = ta.sma(close, 50)

// Use ta.crossover to identify bullish crossover
bullishCrossover = ta.crossover(shortMA, longMA)

// Plot moving averages
plot(shortMA, color=color.red, title="14-period SMA")
plot(longMA, color=color.blue, title="50-period SMA")

// Highlight bullish crossovers
plotshape(bullishCrossover, style=shape.labeldown, location=location.abovebar, color=color.green, size=size.normal, text="Bullish" , textcolor =  color.white)

ta.crossover Function in Pine Script

Code Explanation:

  1. //@version=5: This specifies the version of Pine Script being used. In our case, we are using version 5.
  2. indicator("Moving Average Crossover Example", overlay = true): This sets up the main function with the name “Moving Average Crossover Example” and ensures that our indicator is overlayed onto the price chart.
  3. shortMA = ta.sma(close, 14): We define the short-term moving average (SMA) with a period of 14.
  4. longMA = ta.sma(close, 50): Here, we define the long-term SMA with a period of 50.
  5. bullishCrossover = ta.crossover(shortMA, longMA): We use the ta.crossover function to identify when the short-term MA crosses over the long-term MA, signaling a bullish event.
  6. plot(shortMA, color=color.red, title="14-period SMA"): This line plots the 14-period SMA with a red color.
  7. plot(longMA, color=color.blue, title="50-period SMA"): This line plots the 50-period SMA in blue.
  8. plotshape(bullishCrossover, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, text="Bullish"): Whenever there’s a bullish crossover, we highlight this on the chart using a small green label below the bar.

Key Takeaway

The ta.crossover function is an indispensable tool in Pine Script, especially for traders keen on spotting shifts in momentum or trend direction. By understanding its mechanics and application, you can efficiently code trading strategies and indicators that capture pivotal market moments, such as the crossover of moving averages.


Pine Script offers a myriad of functions, but the power of the ta.crossover function stands out due to its applicability in various trading scenarios. Whether you’re looking to build sophisticated strategies or simple indicators, understanding this function will surely amplify your Pine Script programming capabilities. Happy coding!

Leave a Comment