Buongiorno,
ho un semplice indicatore che mi disegna massimo e minimo di periodo (settimana, mese, anno).
Vorrei limitarne la visualizzazione al solo periodo in corso (quindi l’anno in corso, il mese in corso, la settimana in corso) e non a tutte le barre presenti sul grafico (in pratica la stessa funzionalità disponibile sull’indicatore dei pivot points presente nella prorealtime, dove è possibile scegliere la visualizzazione limitata all’ultimo giorno o a tutto lo storico caricato).
Mi sapreste dire come fare? Grazie!
Basta che all’inizio, come prima riga del codice aggiungi:
DEFPARAM DrawOnLastBarOnly = TRUE
che, ad ogni nuova candela, CANCELLA quanto è stato disegnato precedentemente per fare in modo che solo quanto stampato dall’ULTIMA candela (quella in corso) sia visibile.
Quindi, ad ogni candela devi RIstampare quello che ti interessa.
Esempi della stampa di un punto VERDE ad ogni nuovo massimo:
// Vedi un SOLO rettangolo verde quando si verifica un nuovo massimo,
// ma sparisce appena la candela chiude
//
DEFPARAM DrawOnLastBarOnly = TRUE
Massimo = high
IF Massimo > Massimo[1] THEN
DrawText("■",BarIndex,high + range,dialog,bold,10) coloured(0,128,0,200)
ENDIF
RETURN
// Vedi un SOLO rettangolo verde quando si verifica un nuovo massimo
// che resta finché non viene fatto un nuovo massimo
//
DEFPARAM DrawOnLastBarOnly = TRUE
Massimo = high
IF Massimo > Massimo[1] THEN
Barra = BarIndex
PuntoStampa = high + range
ENDIF
DrawText("■",Barra,PuntoStampa,dialog,bold,10) coloured(0,128,0,200)
RETURN
Grazie Roberto, gentilissimo!
Solo un chiarimento: è possibile lo stesso risultato (in particolare il tuo secondo esempio) utilizzando il RETURN anziché il drawtext?
Purtroppo ho 2 broker con la PRT ma uno utilizza una versione molto vecchia che non ha ancora quei comandi.
Grazie infinite
In generale NO, dipende un pò da quali sono i dati restuituiti con RETURN.
Nel caso del mio secondo esempio si, però restano anche i vecchi, per i dati di RETURN la riga “DEFPARAM DrawOnLastBarOnly = TRUE” non funziona, non è possibile fare scomparire i dati precedenti, proprio perché sono DATI non OGGETTI:
// Vedi un puinto verde quando si verifica un nuovo massimo
// che NON scompare però. Restano sempre anche i vecchi
//
DEFPARAM DrawOnLastBarOnly = TRUE
t = 0
Massimo = high
IF Massimo > Massimo[1] THEN
PuntoStampa = high + range
t = 200
ENDIF
RETURN PuntoStampa coloured(0,128,0,t) style(Point,5)