Home » Operators In Pinescript » Arithmetic Operators in Pine Script:

Arithmetic Operators in Pine Script:

Photo of author
Published on

Introduction to Arithmetic Operators in Pine Script

Pine Script, the scripting language for TradingView charts, provides a variety of operators to perform arithmetic calculations. These operators are essential tools for any trader or developer looking to create customized indicators or strategies. In this tutorial, we will delve into the five arithmetic operators available in Pine Script:

  • + for addition and string concatenation
  • - for subtraction
  • * for multiplication
  • / for division
  • % for modulo (remainder after division)

These operators can be binary (requiring two operands) or unary (operating on a single operand). Understanding how to use these operators effectively is crucial for manipulating data and creating complex trading algorithms.

Binary and Unary Operators

  • Binary operators: Operate on two values (e.g., 1 + 2).
  • Unary operators: Operate on a single value (e.g., -1).

Data Type Considerations

  • Floats and Integers: If any operand is a float, the result is a float. If all operands are integers, the result is an integer.
  • na values: If any operand is na, the result is also na.
  • String Concatenation: The + operator combines strings (e.g., "EUR" + "USD""EURUSD").

Modulo Operator

The % operator computes the remainder of division, rounding down the quotient to the lowest value. Here’s an illustrative example:

indicator("Modulo function")
modulo(series int a, series int b) =>
    a - b * math.floor(nz(a/b))
plot(modulo(-1, 100))

Unique Use Case Example: Moving Average Price Difference

Example Code

indicator("Moving Average Price Difference", overlay=true)
length = input(14, "MA Length")
maPrice = ta.sma(close, length)
priceDifference = close - maPrice
plot(priceDifference, "Price Difference")
Arithmetic Operators in Pine Script


  1. Script Initialization: //@version=5 specifies the version of Pine Script being used.
  2. Indicator Declaration: indicator("Moving Average Price Difference", overlay=true) declares a new indicator with the title and specifies that it should be drawn over the price chart.
  3. Input for MA Length: length = input(14, "MA Length") creates an input for the user to define the moving average length, defaulting to 14 periods.
  4. Calculating Moving Average: maPrice = ta.sma(close, length) computes the simple moving average (SMA) of the closing prices.
  5. Price Difference Calculation: priceDifference = close - maPrice calculates the difference between the current close price and the moving average.
  6. Plotting the Result: plot(priceDifference, "Price Difference") plots the calculated difference on the chart.

Key Takeaways

  • Arithmetic operators in Pine Script are versatile tools for data manipulation.
  • Understanding the type of data (integer, float, string) and handling na values is crucial.
  • The % operator is unique in its approach to calculating the modulo.
  • Real-world examples, like calculating the price difference from a moving average, demonstrate the practical application of these operators.


Arithmetic operators in Pine Script are fundamental for developing effective trading strategies and indicators. By understanding and applying these operators, you can enhance your technical analysis and potentially uncover new insights in the financial markets. Remember to consider data types and the specific behavior of each operator to achieve accurate results in your scripts.

Leave a Comment