DrawOnLastBarOnly
DrawOnLastBarOnly in ProBuilder è un flag DEFPARAM che limita i disegni grafici all'ultima bar, riducendo il costo di ridisegno e mantenendo il grafico pulito.
Sintassi
DEFPARAM DrawOnLastBarOnly = trueParametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
DrawOnLastBarOnly | booleano | false | Quando true, gli oggetti grafici sono disegnati solo sull'ultimo bar. Dichiarati con DEFPARAM all'inizio dello script. |
Come funziona
DrawOnLastBarOnly è un DEFPARAM flag impostato una sola volta all'inizio di un indicatore ProBuilder. Quando è true, qualsiasi DRAW comando che segue disegna solo sull'ultimo bar del grafico, anziché ripetersi su ogni bar storico. Questo è importante perché per impostazione predefinita le istruzioni di disegno vengono eseguite su ogni bar, quindi una linea o un'etichetta posta senza il flag viene ridisegnata migliaia di volte, il che rallenta il grafico e può lasciare oggetti sovrapposti.
È adatta a oggetti che descrivono lo stato corrente, come linee di supporto e resistenza, pivot o un'etichetta di stato. Viene spesso abbinata a CalculateOnLastBars per limitare sia il calcolo sia il disegno. Poiché il disegno avviene sull'ultimo bar, le ricerche di coordinate nello storico funzionano ancora: il ciclo che individua un punto di swing viene eseguito sull'ultimo bar e l'oggetto viene disegnato lì.
Esempi
Esempio 1, Una singola etichetta sull'ultima bar (Indicatore)
// Print "LastBar" once, at the current close
DEFPARAM DrawOnLastBarOnly = true
ONCE font = "Arial"
DRAWTEXT("LastBar", BarIndex, close) COLOURED(255, 0, 0)
RETURNIl testo viene disegnato solo sulla bar corrente anziché su ogni bar dello storico.
Esempio 2, Linee del massimo e del minimo recenti (Indicatore)
// Draw the 15-bar high and low once
DEFPARAM DrawOnLastBarOnly = true
hh = Highest[15](high)
ll = Lowest[15](low)
DRAWHLINE(hh) COLOURED(0, 200, 0)
DRAWHLINE(ll) COLOURED(200, 0, 0)
RETURNSenza il flag queste due linee verrebbero ridisegnate a ogni bar. Con esso appaiono una sola volta.
Esempio 3, Una linea di trend costruita sull'ultima bar (Indicatore)
// Find two lows across 20 bars and connect them, once
DEFPARAM DrawOnLastBarOnly = true
period = 20
y2 = Lowest[period](low)
FOR i = 0 TO period DO
IF low[i] = y2 THEN
x2 = BarIndex[i]
ELSIF low[i] < y2 THEN
y1 = low[i]
x1 = BarIndex[i]
ENDIF
NEXT
DRAWLINE(x1, y1, x2, y2) COLOURED(0, 120, 255)
RETURNIl ciclo analizza lo storico sull'ultima bar e la singola linea viene disegnata lì.
Errori e insidie comuni
- Solo impostazione dell'indicatore.
DrawOnLastBarOnlysi applica ai disegni degli indicatori ProBuilder. Non ha alcun significato in ProScreener, ProOrder o ProBacktest. - Dichiaralo con DEFPARAM all'inizio. Deve essere impostato con
DEFPARAMprima del codice di disegno, non a metà script. - Riguarda i disegni, non il calcolo. Limita dove gli oggetti vengono disegnati, non quanto viene calcolato. Abbinalo a
CalculateOnLastBarsper ridurre anche il calcolo. - I marcatori storici scompaiono. Con il flag attivo, i segnali passati non vengono disegnati. Se vuoi una freccia a ogni evento passato, lascialo disattivato e condiziona ogni disegno con la propria condizione.
Istruzioni correlate
DRAWLINE, un disegno che trae vantaggio dall'essere limitato all'ultima bar.DRAWHLINE, una linea di livello normalmente disegnata una sola volta.DRAWVLINE, un marcatore verticale normalmente disegnato una sola volta.DRAWTEXT, un'etichetta normalmente disegnata una sola volta.CalculateOnLastBars, limita il calcolo alle bar recenti.IsLastBarUpdate, un altro modo per eseguire codice sull'ultima bar.ONCE, inizializza un valore una sola volta.BarIndex, fornisce le coordinate per i disegni.