Buongiorno, vorrei fare una ricerca di una caratteristica della barra precedente (es: Open) su tutte le barre precedenti. Quindi l’indicatore mi fornirà un “1”(comunque qualcosa) su ciascuna barra che soddisfa la caratteristica ricercata. Mi sembra un ciclo for su tutte le barre ma non so come fare.
Potreste aiutarmi?
Grazie
Il numero della barra corrente è restituito da BARINDEX, che inizia da 0 e va…. fino a che il grafico non si chiude (rispettando il numero di unità predisposto sul grafico).
Detto questo è sufficiente partire dal valore 0 (che corrisponde alla barra corrente), fino a BARINDEX che fungerà da indice della prima barra in assoluto, in quanto se la barra attuale è, ad esempio, la numero 1380, l’indice [0] corrisponderà ad essa, mentre l’indice [1380] corrisponderà alla barra 0 che è la prima:
FOR i = 0 TO BarIndex //va a ritroseo, ma puoi anche scrivere: BarIndex DOWNTO 0
IF close[i]..... THEN
ENDIF
NEXT
Grazie Roberto,
stavo facendo però una prova con un indicatore di test sul DAX:
once chiusura=15201//DCLOSE(1)
for i=0 to barindex
if (close[i]>chiusura*0.999) and (close[i]<chiusura*1.001) then
a=i
break
endif
next
return a
con questo codice però riesco ad avere un qualcosa di simile ma è troppo scalettata. Se provi vedrai che l’indicatore va a zero quando la condizione è vera Non c’è un modo per avere sulla timeline dell’indicatore un semplice valore tipo 1 che mi faccia vedere facilmente la barra relativa?
Non so se è questo che desideri, devi metterlo sul prezzo (non sotto):
once chiusura=15201//DCLOSE(1)
a=0
for i=0 to barindex
if (close[i]>chiusura*0.999) and (close[i]<chiusura*1.001) then
a=i
if a[1] then
a = 0 //azzerare il segnale quando ce ne sono due consecutivi.
endif
if a then
//drawtext("☺",BarIndex, high + average[20,0](range)) coloured(0,128,0,155)
//drawtext("•",BarIndex, high + average[20,0](range)) coloured(0,128,0,155)
drawtext("♢",BarIndex, high + average[20,0](range)) coloured(0,128,0,155)
endif
break
endif
next
return// a