Home » Array Functions » array.abs Function in Pine Script

array.abs Function in Pine Script

Photo of author
Published on

Introduction to Array.abs Function in Pine Script

The array.abs function in Pine Script is a powerful tool for traders and developers looking to create effective and data-driven trading strategies. This article will provide a comprehensive overview of the array.abs function, including its usage, syntax, and real-world examples. By the end of this article, you’ll have a clear understanding of how to harness the power of the array.abs function in your own Pine Script trading strategies.

Understanding the Array.abs Function

Purpose and Use Cases

The array.abs function is used to compute the absolute values of the elements in a given array. This is particularly useful when working with price differences, oscillators, or any other trading indicators that involve both positive and negative values.

By converting negative values to positive ones, the array.abs function allows you to focus on the magnitude of the changes, rather than their direction. This can help you identify potential trading opportunities, such as significant price movements or trend reversals.

Syntax

The syntax for the array.abs function is as follows:

array.abs(id)

Where id is the input array containing the numeric elements that you want to calculate the absolute values for.

Real-world Examples

Let’s dive into some practical examples to see the array.abs function in action.

Example 1: Absolute Price Differences

In this example, we’ll use the array.abs function to calculate the absolute differences between consecutive closing prices.

//@version=5
indicator('Absolute Price Differences', overlay=true)

priceDiffArray = array.new_float(0)
for i = 1 to 5 by 1
    diff = close[i] - close[i - 1]
    absDiff = math.abs(diff)
    array.push(priceDiffArray, absDiff)
abdPriceDiff = array.abs(priceDiffArray)
label newLable = na
if barstate.islast
    newLable := label.new(x=bar_index, y=close, style=label.style_label_left, 
     color=#E6E6FA, textcolor=color.black, size=size.large, 
     text="Absolute Price Difference =  " + str.tostring(array.get(abdPriceDiff, 0)))
label.delete(newLable[1])

Let’s break down the code:

  • Line 1: This is a standard Pine Script directive that sets the version of the script.
  • Line 2: We define a new study called “Absolute Price Differences” and set the overlay to true, which means the plot will be displayed on the main chart.
  • Lines 4-8: We create a new float array called priceDiffArray and loop through the last five closing prices, calculating the difference between consecutive prices, and then the absolute value of that difference. We then push these absolute values onto the priceDiffArray.
  • Line 9 : We create a Variable abdPriceDiff and assign it the abosulute values of array by using the array.abs function
  • Line 11-14: We plot the most recent absolute price difference (the first element in the array) on the chart.

Example 2: Absolute Moving Average Oscillator

In this example, we’ll create an oscillator based on the difference between two moving averages and use the array.abs function to compute the absolute values of the oscillator.

//@version=5
indicator('Absolute Moving Average Oscillator', overlay=false)

shortTermMA = ta.sma(close, 9)
longTermMA = ta.sma(close, 21)

oscillator = shortTermMA - longTermMA
absOscillatorArray = array.new_float(0)

for i = 0 to 50 by 1
    array.push(absOscillatorArray, oscillator[i])

label newLable = na

newabsOscillatorArray = array.abs(absOscillatorArray)
if barstate.islast
    newLable := label.new(x=bar_index, y=close, style=label.style_label_left, 
     color=#E6E6FA, textcolor=color.black, size=size.large, 
     text="Absolute Price Difference =  " + str.tostring(array.get(newabsOscillatorArray, 0)))
label.delete(newLable[1])

Breaking down the code:

  • Line 1: As before, this line sets the version of the Pine Script.
  • Line 2: We define a new study called “Absolute Moving Average Oscillator” and set the overlay to false, which means the plot will be displayed in a separate pane below the main chart.
  • Lines 4-5: We calculate two simple moving averages (SMAs) with periods of 9 and 21, respectively.
  • Line 7: We create an oscillator by subtracting the long-term moving average from the short-term moving average.
  • Lines 8-11: We initialize a new float array called absOscillatorArray and loop through the last 51 oscillator values, computing their absolute values, and pushing these values onto the absOscillatorArray.
  • Line 13-19 : We plot the most recent absolute oscillator value (the first element in the array) on the chart.

These examples showcase the versatility of the array.abs function and how it can be used in various trading strategies. By understanding the array.abs function and how to apply it, you can create more effective and powerful trading strategies using Pine Script.

Conclusion

The array.abs function in Pine Script is a valuable tool for traders who want to create strategies that take into account the magnitude of price changes, regardless of their direction. This article provided a comprehensive overview of the array.abs function, including its purpose, use cases, syntax, and practical examples.

Now that you have a clear understanding of the array.abs function and its applications, you can incorporate it into your own Pine Script trading strategies to optimize your decision-making and identify potential opportunities in the market. With the right application of this function, you can create strategies that are more effective, data-driven, and better suited to your trading needs.

Leave a Comment