Come ti ho detto TIME è l’ora di chiusura della barra, mentre OPENTIME è quella di apertura.
Scegli te, se usi TIME indicando le 170000 farai riferimento alla chiusura della barra aperta alle 160000 (o 163000 sul 30 minuti), se invece usi OPENTIME (alla stessa ora) farai riferimento alla barra aperta alle 170000 (uguale sul 30 minuti).
In sostanza andava bene all’inizio, forse avevi interpretato male i dati visualizzati con GRAPH.
Se vuoi avere la possibilità di tornare indietro di più giorni devi usare un vettore (array) in modo da conservare tutti gli orari delle 173000 di ogni giorno:
ONCE $Prezzo1730[0] = 0
ONCE Elemento = 0
IF Time = 173000 THEN //Time è l'ora in cui una barra chiude
Elemento = Elemento + 1
$Prezzo1730[Elemento] = close
ENDIF
quindi se fai riferimento a:
$Prezzo1730[Elemento]
farai riferimento sempre all’ultimo, mentre per fare riferimento a quello precedente devi scrivere:
$Prezzo1730[Elemento - 1]
e per il 5o precedente:
$Prezzo1730[Elemento - 5]
e così via.
Grazie per la precisazione, proverò con calma gli array che mi sembrano meglio.
Un chiarimento: con gli array il prezzo fissato, es 17 di ieri, rimane fisso anche se lo utilizzo DOPO le 17 di oggi? (le altre formule, che operano per sostituzione, non andrebbero bene in quanto il prezzo di ieri delle 17 , cambierebbe oggi dopo le 17)
Si, ogni elemento resta invariato, a meno che tu non lo modifichi esplicitamente.
Stò provando le formule sugli array.
Per indicare (oggi, sabato 28) il prezzo di ieri (venerdi 27) alle 17 (che corrisponde al prezzo della chiusura della barra oraria delle 16) scrivo (vd sotto) e funziona (verificato con i graph)
ONCE $Prezzo1700[0] = 0
ONCE Elemento = 0
IF Time = 170000 THEN
Elemento = Elemento + 1
$Prezzo1700[Elemento-1] = close
ENDIF
che è uguale (verificato) alla formula:
IF Time = 170000 THEN // è il prezzo di ieri dato dalla chiusura della candela oraria delle 160000
PrezzoIeriOre17 = close
ENDIF
PERO’ non mi funziona con gli array (probabilmente sbaglio qualcosa se puoi controllare) se provo ad avere il prezzo delle 17000 dell’altro ieri (giovedi 26).
Mi ritorna sempre quello di ieri alle 17 = 15842.6, mentre dovrebbe essere 15782 (prezzo di chiusura della barra oraria delle 16 del giorno giovedi 26) .
La formula con gli array che non mi funziona per indicare il prezzo delle 17 di giovedi 26 è questa (ho solo cambiato “elemento” da -1 a -2):
ONCE $Prezzo1700[0] = 0
ONCE Elemento = 0
IF Time = 170000 THEN
Elemento = Elemento + 1
$Prezzo1700[Elemento-2] = close
ENDIF
Il prezzo di chiusura della barra oraria delle 160000 di giovedi 26 è 15782, si vede dal grafico ed anche da questa formula “classica” (verificata):
IF Time = 170000 THEN // è il prezzo dell'altro ieri dato dalla chiusura della candela oraria delle 160000
prezzoAltroIeri = prezzoIeri
prezzoIeri = close
ENDIF
graph prezzoAltroIeri coloured (0,0,0) //nero
Ho riprovato, ma confermo che questa formula degli array da -2 (compreso) in poi NON funziona, mentre se scrivo -1 mi riporta correttamente il valore di ieri.
ONCE $Prezzo1700[0] = 0
ONCE Elemento = 0
IF Time = 170000 THEN
Elemento = Elemento + 1
$Prezzo1700[Elemento-2] = close
ENDIF
Nella riga
$Prezzo1700[Elemento-1] = close
del post 176403, perché la usi? A che ti serve cambiare il giorno precedente mettendoci il CLOSE di oggi?
Perchè se tolgo close mi dà questo (vd immagine)
In ogni caso non funzionano nemmeno con close valori da -2, -3 …
No, il problema non è close, vorrei capire a cosa serve il -1.
Non sono esperto di array. So solo:
A) che questa formula funziona, individua il prezzo di ieri alle 17 (chiusura barra oraria delle 16)
ONCE $Prezzo1700[0] = 0
ONCE Elemento = 0
IF Time = 170000 THEN
Elemento = Elemento + 1
$Prezzo1700[Elemento-1] = close
ENDIF
B) se tolgo close non funziona più.
C) Non riesco ad ottenere il prezzo del close dell’altro ieri mettendo [Elemento -2] = close
D) In ogni caso posso sempre utilizzare la vecchia formula che funziona anche indietro di 5 candele
La risposta C è quello che volevo sapere.
Quando vuoi sapere il valore della chiusura del giorno prima è sufficiente usare $Prezzo1700[Elemento-1], senza asegnargli nessun valore, altrimenti lo cambi mettendoci il valore odierno.