[go: up one dir, main page]

0% found this document useful (0 votes)
20 views3 pages

Advanced Arrays

Pine script array besic tutorials

Uploaded by

Esaro Logics
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views3 pages

Advanced Arrays

Pine script array besic tutorials

Uploaded by

Esaro Logics
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

//@version=5

indicator("Advanced Array Tutorial", overlay=false)

// 1. Array Declaration and Initialization


//@variable Arrays with different types
var float[] floatArray = array.new_float(5, 0.0) // Initialize float array of
size 5
var int[] intArray = array.new_int(3, 0) // Initialize int array of size
3
var bool[] boolArray = array.new_bool(2, false) // Initialize boolean array of
size 2
var string[] stringArray = array.new_string(2, "") // Initialize string array of
size 2

// 2. Dynamic Array Operations


//@variable Dynamic array for storing prices
var float[] priceHistory = array.new_float(0) // Empty array with dynamic
size
if array.size(priceHistory) > 20 // Limit array size to 20
array.shift(priceHistory) // Remove oldest element
array.push(priceHistory, close) // Add current close price

// 3. Array Manipulation Functions


updateArrays() =>
// Set values
array.set(floatArray, 0, high) // Set first element to
current high
array.set(floatArray, 1, low) // Set second element to
current low

// Get values
firstElement = array.get(floatArray, 0) // Get first element

// Insert value at specific position


array.insert(intArray, 1, 42) // Insert 42 at position 1

// Remove element at specific position


array.remove(intArray, 0) // Remove first element

// Copy array
float[] arrayCopy = array.copy(floatArray) // Create a copy of floatArray

// 4. Array Mathematical Operations


calculateArrayStats() =>
float arraySum = array.sum(floatArray) // Sum of all elements
float arrayMax = array.max(floatArray) // Maximum value
float arrayMin = array.min(floatArray) // Minimum value
float arrayAvg = array.avg(floatArray) // Average value
int arraySize = array.size(floatArray) // Array size

[arraySum, arrayMax, arrayMin, arrayAvg, arraySize]

// 5. Array Sorting and Searching


sortAndSearch() =>
array.sort(floatArray, order.ascending) // Sort array in ascending
order
int indexOfValue = array.indexof(floatArray, high) // Find index of high value
bool containsValue = array.includes(floatArray, low) // Check if array contains
low value
// 6. Advanced Array Processing
processArray() =>
// Slice array (get subset of array)
float[] slicedArray = array.slice(floatArray, 1, 3)

// Join arrays
array.concat(floatArray, slicedArray)

// Reverse array
array.reverse(floatArray)

// 7. Example: Moving Window Calculation


var float[] windowPrices = array.new_float(5, 0.0) // 5-period window
updateWindow() =>
array.shift(windowPrices) // Remove oldest price
array.push(windowPrices, close) // Add new price
array.avg(windowPrices) // Calculate average

// 8. Example: Custom Technical Indicator using Arrays


customIndicator() =>
var float[] highs = array.new_float(0)
var float[] lows = array.new_float(0)

// Maintain last 10 periods


if array.size(highs) > 10
array.shift(highs)
array.shift(lows)

array.push(highs, high)
array.push(lows, low)

highestHigh = array.max(highs)
lowestLow = array.min(lows)

[highestHigh, lowestLow]

// Execute calculations
[arraySum, arrayMax, arrayMin, arrayAvg, arraySize] = calculateArrayStats()
[highestHigh, lowestLow] = customIndicator()
windowAvg = updateWindow()

// Plot results
plot(windowAvg, "Window Average", color=color.blue)
plot(highestHigh, "Highest High", color=color.green)
plot(lowestLow, "Lowest Low", color=color.red)

// Add table to display array statistics


var table statsTable = table.new(position.top_right, 5, 2)
if barstate.islast
table.cell(statsTable, 0, 0, "Array Sum", bgcolor=color.gray)
table.cell(statsTable, 0, 1, str.tostring(arraySum), bgcolor=color.gray)
table.cell(statsTable, 1, 0, "Array Max", bgcolor=color.gray)
table.cell(statsTable, 1, 1, str.tostring(arrayMax), bgcolor=color.gray)
table.cell(statsTable, 2, 0, "Array Min", bgcolor=color.gray)
table.cell(statsTable, 2, 1, str.tostring(arrayMin), bgcolor=color.gray)
table.cell(statsTable, 3, 0, "Array Avg", bgcolor=color.gray)
table.cell(statsTable, 3, 1, str.tostring(arrayAvg), bgcolor=color.gray)
table.cell(statsTable, 4, 0, "Array Size", bgcolor=color.gray)
table.cell(statsTable, 4, 1, str.tostring(arraySize), bgcolor=color.gray)

You might also like