Home » Mathemtical Functions » Understanding the math.sin() Function in Pine Script

Understanding the math.sin() Function in Pine Script

Photo of author
Published on

In this article, we’ll dive deep into how to use the math.sin() function effectively in your Pine Script programs.

Syntax and Overloads

Pine Script provides a versatile implementation of the math.sin() function, accommodating different data types and contexts. It can return a constant float, input float, simple float, or series float based on the type of angle provided. Here’s an overview of its syntax:

math.sin(angle) → const float
math.sin(angle) → input float
math.sin(angle) → simple float
math.sin(angle) → series float


  • angle (const int/float): This is the angle in radians for which you want to calculate the sine. Pine Script allows this argument to be a constant, input, simple, or series float/int, offering flexibility in handling both static and dynamic angles within your script.


  • The function returns the sine of the specified angle. Depending on the context in which it’s used, the return type can vary, offering compatibility with different data structures in Pine Script.

Example Usage

Let’s explore how math.sin() can be applied in a practical scenario. Consider a script where we want to plot the sine wave of the market’s closing prices. We’ll first convert the closing prices into an angle (in radians) and then calculate its sine.

indicator("Sine Wave Example", overlay=true)

// Convert closing price to radians for the sine calculation
priceRadians = close * 0.01

// Calculate the sine of the converted price
sineWave = math.sin(priceRadians)

// Plot the sine wave on the chart
plot(sineWave, title="Sine Wave")


  • Indicator Declaration: The script starts with the indicator function, declaring the custom indicator’s name as “Sine Wave Example”. The overlay=true parameter specifies that this indicator should be plotted directly on top of the price chart, overlaying the price data.
  • Price Conversion to Radians: It calculates priceRadians by multiplying the closing price (close) by 0.01. This step converts the closing price into a value in radians, suitable for trigonometric calculations. The multiplication by 0.01 is a simplistic way to scale the price down to a range that’s more appropriate for the sine function, as the sine function’s input is expected to be in radians.
  • Sine Wave Calculation: The script then calculates the sine of priceRadians using the math.sin function. This calculation generates the sine wave values based on the modified closing price data. The sine function oscillates between -1 and 1, producing a wave-like pattern that will be plotted on the chart.
  • Plotting the Sine Wave: Finally, the plot function is called to draw the sine wave on the chart, with the title “Sine Wave”. This will visually represent the sine wave calculation results based on the price data, allowing traders or analysts to observe potential cyclic patterns or oscillations in the market prices.

Key Features and Takeaways

  • Function Versatility: math.sin() can handle angles in various forms, making it a versatile tool for trigonometric calculations.
  • Syntax Flexibility: The function supports angles as constants, inputs, simples, and series, accommodating different scripting needs.
  • Application: It’s used in complex technical analysis scripts, such as calculating oscillators or modeling wave patterns.
  • Practicality: This example demonstrates converting price data into a trigonometric function, showcasing the practical application of math.sin() in financial analysis.

Understanding and applying the math.sin() function opens up a wide range of possibilities for technical analysis and algorithmic trading strategies in Pine Script.

Leave a Comment