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

Understanding the math.asin() Function in Pine Script

Photo of author
Published on

This tutorial will delve into the math.asin() function, exploring its syntax, overloads, and practical applications in trading scripts.

Syntax and Overloads

The math.asin() function in Pine Script is designed to compute the arcsine of a given number, essentially performing the inverse operation of the sine function. It can handle various types of inputs and return values in different contexts, making it a versatile tool for script developers. Here’s a breakdown of its syntax and overloads:

  • math.asin(angle) → const float
  • math.asin(angle) → input float
  • math.asin(angle) → simple float
  • math.asin(angle) → series float


  • angle (const int/float): This is the value, in radians, for which the arcsine is calculated. It’s important to note that the function expects the angle argument to be within the range of [-1, 1] to return a valid result.


The function returns the arcsine of the provided value. The returned angle is in the range [-π/2, π/2] radians, corresponding to [-90°, 90°]. If the input value is outside the range [-1, 1], the function returns na, indicating an error or undefined result.

Practical Example: Calculating Angle from Ratio

To illustrate the use of math.asin() in a practical context, consider a scenario where you’re calculating the angle of elevation or depression based on the vertical and horizontal distances in a trading chart. This can be particularly useful in market geometry or when analyzing the slope of trend lines.

indicator("Arcsine Example", overlay=true)

// Simulated ratio value (e.g., vertical distance / horizontal distance)
ratioVal = input.float(0.5, "Ratio Value", minval=-1, maxval=1)

// Calculating the arcsine of the ratio
angleInRadians = math.asin(ratioVal)

// Converting radians to degrees for better readability
angleInDegrees = angleInRadians * 180 / math.pi

// Plotting the result
plot(angleInDegrees, "Angle in Degrees", color=color.red)

Walkthrough of Code

  1. Define the Script Version and Indicator Properties: The script begins with //@version=5, specifying it uses version 5 of Pine Script. It then declares a new indicator named “Arcsine Example” with overlay=true, indicating the indicator will be plotted on the main chart area.
  2. Input for Ratio Value: The code uses input.float() to create a user input field labeled “Ratio Value”. This allows the user to input a float value between -1 and 1, inclusive. This represents the ratio (e.g., vertical distance divided by horizontal distance) for which the arc sine will be calculated.
  3. Calculate Arc Sine: The variable angleInRadians is assigned the result of math.asin(ratioVal). This calculates the arc sine (inverse sine) of the user-defined ratio, returning an angle in radians.
  4. Convert Radians to Degrees: Since angles are more commonly understood in degrees, the script converts the result from radians to degrees. The calculation angleInDegrees = angleInRadians * 180 / math.pi uses the mathematical relationship between radians and degrees to perform this conversion.
  5. Plotting the Result: Finally, the script uses the plot() function to display the calculated angle in degrees on the chart. The plot is labeled “Angle in Degrees” and is colored red for visibility.

Key Takeaways

  • The math.asin() function calculates the arcsine of a given value, which is the inverse operation of the sine function.
  • It accepts inputs in the range [-1, 1] and returns angles in radians within [-π/2, π/2].
  • The function supports various input types, including constants, inputs, simple floats, and series floats, making it flexible for different use cases.
  • Practical applications include calculating angles from ratios, which can be useful in market geometry analysis and trend line slope calculations.

By integrating math.asin() into your Pine Script strategies, you can enhance your technical analysis with precise trigonometric calculations, enabling more sophisticated market analysis techniques.

Leave a Comment