Home » Operators In Pinescript » Mastering the := Reassignment Operator in Pine Script

Mastering the := Reassignment Operator in Pine Script

Photo of author
Published on

Introduction to the := Operator

In Pine Script, the := the operator is crucial for reassigning values to existing variables. This feature is essential for creating dynamic and reactive scripts that adapt to changing market data. Understanding the use of the := operator is key to developing advanced trading strategies in Pine Script.

Role of the := Operator

  • Reassignment of Variables: The := operator allows the modification of a variable’s value after its initial declaration.
  • Mutable Variables: Variables that are reassigned using := are referred to as mutable variables.

Syntax and Usage of :=

Example of Variable Reassignment

indicator("", "", true)
var float pHi = na  // Variable declaration
pHi := nz(ta.pivothigh(5, 5), pHi)  // Variable reassignment

Understanding the Code

  1. Variable Declaration with var:
  • var float pHi = na: This line is declared pHi as a floating-point variable and initializes it na only on the first bar of the dataset.
  1. Reassignment of pHi:
  • pHi := nz(ta.pivothigh(5, 5), pHi): This line is reassigned pHi on each bar. It uses the ta.pivothigh function to find pivot highs, and the nz function to handle cases where no pivot is found.

Key Concepts

  • var Keyword: Used for declaring a variable with initialization on the first bar only.
  • nz Function: Helps in handling na values by providing an alternative value.
  • Pivot High Calculation: The ta.pivothigh(5, 5) function searches for pivot highs with specific criteria.

Use Case Example: Adaptive Moving Average

Example Code

indicator("Adaptive Moving Average", overlay=true)
var float ama = na  // Adaptive Moving Average initialization
alpha = 0.1  // Smoothing factor
ama := nz(ama[1] + alpha * (close - ama[1]), close)
plot(ama, title="AMA", color=color.red)
Reassignment Operator in Pine Script

Explanation of Each Line

  1. Script Initialization: //@version=5 sets the Pine Script version.
  2. Indicator Declaration: indicator("Adaptive Moving Average", overlay=true) creates a new indicator titled “Adaptive Moving Average” and overlays it on the price chart.
  3. AMA Initialization:
  • var float ama = na: Initializes ama as a floating-point variable with na on the first bar.
  1. Setting Smoothing Factor:
  • alpha = 0.1: Declares the smoothing factor alpha for the moving average.
  1. AMA Calculation:
  • ama := nz(ama[1] + alpha * (close - ama[1]), close): Recalculates ama on each bar. It ama is na, it starts with the current close price. Otherwise, it adapts based on the previous ama value and the current close price.
  1. Plotting AMA:
  • plot(ama, title="AMA", color=color.red): Plots the Adaptive Moving Average with a red color.

Key Takeaways

  • The := operator is vital for creating mutable variables in Pine Script.
  • It allows scripts to adapt to new data and conditions dynamically.
  • Correct use of := is essential for implementing sophisticated trading logic that responds to market changes.


The := reassignment operator in Pine Script is a powerful tool for updating variable values as new market data is processed. Its proper use enables the development of dynamic, adaptive trading indicators and strategies. By mastering this operator, you can enhance your Pine Script programming, creating scripts that accurately reflect and respond to the evolving trading environment. Remember, mutable variables are the key to adding flexibility and responsiveness to your trading scripts.

Leave a Comment