Jetzt beitreten
Grafisch/probuilder

DrawOnLastBarOnly

DrawOnLastBarOnly ist in ProBuilder ein DEFPARAM-Flag, das grafische Zeichnungen auf den letzten Bar beschränkt, was den Aufwand für das Neuzeichnen senkt und den Chart übersichtlich hält.

Syntax

probuilder
DEFPARAM DrawOnLastBarOnly = true

Parameter

NameTypStandardBeschreibung
DrawOnLastBarOnlyBooleanfalseWenn true, werden grafische Objekte nur auf dem letzten Bar gezeichnet. Deklariert mit DEFPARAM am Anfang des Skripts.

So funktioniert es

DrawOnLastBarOnly ist ein DEFPARAM Flag, das einmal am Anfang eines ProBuilder-Indikators gesetzt wird. Wenn es true, jede DRAW Befehl, der folgt, zeichnet nur auf dem letzten Bar des Charts, statt sich auf jedem historischen Bar zu wiederholen. Das ist wichtig, weil Zeichenbefehle standardmäßig auf jedem Bar laufen, sodass eine Linie oder ein Label ohne das Flag tausende Male neu gezeichnet wird, was den Chart verlangsamt und überlappende Objekte hinterlassen kann.

Es eignet sich gut für Objekte, die den aktuellen Zustand beschreiben, etwa Unterstützungs- und Widerstandslinien, Pivots oder eine Statusbeschriftung. Es wird oft kombiniert mit CalculateOnLastBars um nicht nur das Zeichnen, sondern auch die Berechnung zu begrenzen. Da das Zeichnen auf dem letzten Bar geschieht, funktionieren Koordinatenabfragen über die Historie weiterhin: die Schleife, die einen Swing-Punkt findet, läuft auf dem letzten Bar, und dort wird das Objekt gezeichnet.

Beispiele

Beispiel 1, Eine einzelne Beschriftung auf dem letzten Bar (Indikator)

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

Der Text wird nur auf dem aktuellen Bar gezeichnet und nicht auf jedem Bar der Historie.

Beispiel 2, Linien für aktuelles Hoch und Tief (Indikator)

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

Ohne das Flag würden diese beiden Linien auf jedem Bar neu gezeichnet. Mit dem Flag erscheinen sie einmal.

Beispiel 3, Eine Trendlinie, die auf dem letzten Bar aufgebaut wird (Indikator)

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

Die Schleife durchsucht die Historie auf dem letzten Bar, und dort wird die einzelne Linie gezeichnet.

Häufige Fehler und Stolperfallen

  • Nur eine Indikator-Einstellung. DrawOnLastBarOnly gilt für Zeichnungen in ProBuilder-Indikatoren. Es hat keine Bedeutung in ProScreener, ProOrder oder ProBacktest.
  • Mit DEFPARAM am Anfang deklarieren. Es muss gesetzt werden mit DEFPARAM vor dem Zeichencode, nicht mitten im Skript.
  • Betrifft Zeichnungen, nicht die Berechnung. Es begrenzt, wo Objekte gezeichnet werden, nicht wie viel berechnet wird. Kombinieren Sie es mit CalculateOnLastBars um auch die Berechnung zu reduzieren.
  • Markierungen in der Historie verschwinden. Ist das Flag aktiv, werden vergangene Signale nicht gezeichnet. Wenn Sie an jedem vergangenen Ereignis einen Pfeil wollen, lassen Sie es aus und steuern Sie jede Zeichnung mit ihrer eigenen Bedingung.
  • DRAWLINE, eine Zeichnung, die davon profitiert, auf den letzten Bar beschränkt zu werden.
  • DRAWHLINE, eine Niveaulinie, die normalerweise einmal gezeichnet wird.
  • DRAWVLINE, eine vertikale Markierung, die normalerweise einmal gezeichnet wird.
  • DRAWTEXT, eine Beschriftung, die normalerweise einmal gezeichnet wird.
  • CalculateOnLastBars, begrenzt die Berechnung auf die letzten Bars.
  • IsLastBarUpdate, eine weitere Möglichkeit, Code auf dem letzten Bar auszuführen.
  • ONCE, initialisiert einen Wert ein einziges Mal.
  • BarIndex, liefert Koordinaten für die Zeichnungen.