Iscriviti ora
Grafica/probuilder

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

probuilder
DEFPARAM DrawOnLastBarOnly = true

Parametri

NomeTipoPredefinitoDescrizione
DrawOnLastBarOnlybooleanofalseQuando 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)

probuilder
// Print "LastBar" once, at the current close
DEFPARAM DrawOnLastBarOnly = true
ONCE font = "Arial"
DRAWTEXT("LastBar", BarIndex, close) COLOURED(255, 0, 0)
RETURN

Il testo viene disegnato solo sulla bar corrente anziché su ogni bar dello storico.

Esempio 2, Linee del massimo e del minimo recenti (Indicatore)

probuilder
// 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)
RETURN

Senza 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)

probuilder
// 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)
RETURN

Il ciclo analizza lo storico sull'ultima bar e la singola linea viene disegnata lì.

Errori e insidie comuni

  • Solo impostazione dell'indicatore. DrawOnLastBarOnly si applica ai disegni degli indicatori ProBuilder. Non ha alcun significato in ProScreener, ProOrder o ProBacktest.
  • Dichiaralo con DEFPARAM all'inizio. Deve essere impostato con DEFPARAM prima 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 CalculateOnLastBars per 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.
  • 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.