Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //---------------------------------------------- Inizio Codice 36 Spiegazione Array ----------------------------------------------//
- // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
- // © Maurizio-Ciullo
- //@version=5
- indicator("36 Spiegazione Array", overlay=false)
- //https://www.youtube.com/watch?v=i3ulFZjZVpY
- // ----------------SPIEGAZIONE GENERALE ARRAY IN PINESCRIPT----------------
- // Array in pinescript sono ad una sola dimensione. L'indice parte de 0.
- // Tutti gli elementi di un array devono essere dello stesso tipo: int/float/bool etc... e fanno parte di una serie.
- // Gli array hanno un ID di riferiento, vale a dire il nome della variabile dove sono assegnati.
- // Gli array possono essere usati in tutte le funzioni o nel codice dove una serie di dati è prevista.
- // Il numero di elementi può essere modificato con un iterazione su ogni barra nel nostro script.
- // Il numero di elementi massimi in un array sono 100.000.
- // ----------------SPIEGAZIONI FUNZIONI ARRAY.----------------
- // Array.get() serve a ottenere i valori di un elemtnto in un array.
- // Array.set() serve per cambiare i valori di un array.
- // Array.from() serve a inserire i valori in un array.
- // Array.size() serve a ottenere il numero degli elementi in un array
- // array.new_float() serve a specificare la size il valore float di un array, il valore può essere un nostro valore o anche la close/open etc... .
- //--------------------------------------CREARE/MODIFICARE/CONOSCRERE LUNGHEZZA/CONOSCERE VALORE DI UN ARRAY---------------------------------------//
- // //plotshape(barstate.islast) // barstate.islast indica se è l'ultima barra dela grafico, in una live chart è sempre vera
- // //plot(bar_index) // bar_index rappresenta tutto l'indice del grafico
- //float[] priceArray = array.from(0.1, 2.5, 5.0) // Creazione di un array float
- // //Creo un etichetta sul grafico, overlay deve essere false.
- // if barstate.islast serve altrimenti mi crea della label ad ogni barra dell'indice
- // if barstate.islast
- // label.new(bar_index, 0, "Array Size Is: " + str.tostring(array.size(priceArray))) // Mi ritorna la lunghezza "size" dell'array
- // label.new(bar_index, 0, "First Value: " + str.tostring(array.get(priceArray, 0))) // Mi ritorna il valore dell'elemento 0 dell'array, ATTENZIONE a non richiedere valori fuori dall'indice
- // array.set(priceArray, 0, 10.0) // Cambio il valore dell'elemento 0 dell'array a 10.0 "RICORDARSI DI INSERIRE VALORI FLOAT !!!"
- // label.new(bar_index, 0, "Array Size Is: " + str.tostring(array.size(priceArray)) + "\nFirst Value: " + str.tostring(array.get(priceArray, 0))) // Mi ritorna la lunghiezza "size" ed il valore dell'elemento 0 dell'array
- // // Posso anche inserire la close nell'array da ... a... e poi devo ricordarmi di plottare anche la seconda close con la label.
- // float[] priceArray1 = array.from(close, close[1])
- // if barstate.islast
- // label.new(bar_index, 0, "Array Size Is: " + str.tostring(array.size(priceArray1)) + "\nFirst Value: " + str.tostring(array.get(priceArray1, 0)) + "\nSecond Value: " + str.tostring(array.get(priceArray1, 1))) // Mi ritorna la lunghiezza "size" ed il valore dell'elemento 0 dell'array
- //--------------------------------------CREARE ARRAY FLOAT LUNGHEZZA PREDEFINITA VALORI PREDEFINITI-----------------------------------------------//
- //float[] priceArray = array.new_float(10, 10.0) // Size 5 Valore 10.0. In altre parole avremo: (10.0, 10.0, 10.0, 10.0, 10.0)
- //if barstate.islast
- // label.new(bar_index, 0, "Array Size Is: " + str.tostring(array.size(priceArray))) // Mi ritorna la lunghezza "size" dell'array
- // label.new(bar_index, 0, "First Value: " + str.tostring(array.get(priceArray, 0))) // Mi ritorna il valore dell'elemento 0 dell'array, ATTENZIONE a non richiedere valori fuori dall'indice
- // array.set(priceArray, 3, 20.0) // Cambio il valore dell'elemento 3 dell'array a 20.0 "RICORDARSI DI INSERIRE VALORI FLOAT !!!" Tutti gli altri elementi sono rimasti uguali
- // label.new(bar_index, 0, "Array Size Is: " + str.tostring(array.size(priceArray)) + "\nFirst Value: " + str.tostring(array.get(priceArray, 0))) // Mi ritorna la lunghiezza "size" ed il valore dell'elemento 0 dell'array
- //--------------------------------------ARRAY CHE SI AGGIORNANO AD OGNI CANDELA-----------------------------------------------//
- // // Se creo una variabile numerica e poi la incremento di 1, la variabile incrementata rimarra 1 dallìinizio alla fine dell'indice.
- // a = 1
- // a := a + 1 // oppure a += 1 è uguale
- // plot(a)
- // // Per far aggiornare il conteggio ad ogni candela devo usare var prima della variabile
- // var a = 1
- // a := a + 1 // oppure a += 1 è uguale
- // plot(a)
- // // Posso fare la stessa cosa con array.push per far aggiornare i valori ad ogni indice di barra,
- // // in questo caso prendo il prezzo di chiusura della prima candela
- // var countArray = array.new_float(0)
- // array.push(countArray, close)
- // label.new(bar_index, 0, "Array Size Is: " + str.tostring(array.size(countArray)) + "\nFirst Value: " + str.tostring(array.get(countArray, 0))) // Mi ritorna la lunghezza "size" ed il valore dell'elemento 0 dell'array
- //--------------------------------------INSERIRE L'INDICE IN UNA LABEL-----------------------------------------------//
- // // Partendo dal codice sopra, nella label vado a farmi ritornare l'indice in formato stringa.
- // var countArray = array.new_float(0)
- // array.push(countArray, close)
- // if barstate.islast
- // label.new(bar_index, 0, "Array Size Is: " + str.tostring(array.size(countArray)) + "\nBar Count: " + str.tostring(bar_index)) // Mi ritorna la lunghezza "size" e l'indice di barra
- // // Quando mettiamo a schermo la label c'è un numero di differenza con l'indice perchè l'array conta la posizione 0 come valore di 1na posizione.
- //--------------------------------------FARSI RITORNARE L'INDICE DELL'ULTIMA BARRA CON -1 SULL'INDICE-----------------------------------------------//
- // // Per farsi ritornare il prezzo dell'ultima candela dell'indice devo creare una variabile dove dentro contengo la size dell'array
- // // e con -1 prendo l'ultimo elemento dell'array.
- // // In teoria sarebbe la stessa cosa fare come segue: ...str.tostring(array.get(countArray ,array.size(countArray -1)...
- // // ma mi da errore perchè al posto di: array.size(countArray -1, vuole un int e non un float.
- // // quindi sono obbligato a creare la variabile size = array.size(countArray) e poi nella label mettere -1
- // var countArray = array.new_float(0)
- // array.push(countArray, close)
- // if barstate.islast
- // size = array.size(countArray)
- // label.new(bar_index, 0, "Array Size Is: " + str.tostring(array.size(countArray)) + "\nLast Value: " + str.tostring(array.get(countArray, size -1))) // Mi ritorna la lunghezza "size" ed il valore dell'elemento 0 dell'array
- //------------------------------------------------------------CICLARE UN ARRAY--------------------------------------------------------------------//
- // float[] priceArray = array.new_float(10, 10.0)
- // array.set(priceArray, 0, 5.0) // Cambio il primo elemento da 10.0 a 5.0
- // lab = ""
- // for i = 0 to array.size(priceArray) - 1
- // lab := lab + str.tostring(array.get(priceArray, i)) + " "
- // l = label.new(bar_index, close, lab)
- // label.delete(l[1])
- // Prossima Lezione: https://www.youtube.com/watch?v=kbW7XO-2LnY
- //---------------------------------------------- Fine Codice 36 Spiegazione Array ----------------------------------------------//
Add Comment
Please, Sign In to add comment