Word nu lid
Grafisch/probuilder

DrawOnLastBarOnly

DrawOnLastBarOnly is in ProBuilder een DEFPARAM-vlag die grafische tekeningen beperkt tot de laatste bar, wat de kosten van hertekenen verlaagt en de grafiek overzichtelijk houdt.

Syntaxis

probuilder
DEFPARAM DrawOnLastBarOnly = true

Parameters

NaamTypeStandaardBeschrijving
DrawOnLastBarOnlybooleanfalseWanneer true, worden grafische objecten alleen op de laatste bar getekend. Gedeclareerd met DEFPARAM bovenaan het script.

Hoe het werkt

DrawOnLastBarOnly is een DEFPARAM flag die eenmaal aan het begin van een ProBuilder-indicator wordt gezet. Wanneer die true, elke DRAW commando dat volgt alleen op de laatste bar van de grafiek tekent, in plaats van zich op elke historische bar te herhalen. Dat is van belang omdat tekeninstructies standaard op elke bar lopen, dus een lijn of label die zonder de flag wordt geplaatst, wordt duizenden keren opnieuw getekend, wat de grafiek vertraagt en overlappende objecten kan achterlaten.

Het is goed geschikt voor objecten die de huidige toestand beschrijven, zoals steun- en weerstandslijnen, pivots of een statuslabel. Het wordt vaak gecombineerd met CalculateOnLastBars om niet alleen het tekenen maar ook de berekening te beperken. Omdat het tekenen op de laatste bar gebeurt, werken coördinaatzoekopdrachten over de historie nog steeds: de loop die een swingpunt vindt loopt op de laatste bar en het object wordt daar getekend.

Voorbeelden

Voorbeeld 1, Een enkel label op de laatste bar (Indicator)

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

De tekst wordt alleen op de huidige bar getekend in plaats van op elke bar in de historie.

Voorbeeld 2, Lijnen voor de recente high en low (Indicator)

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

Zonder de flag zouden deze twee lijnen op elke bar opnieuw worden getekend. Met de flag verschijnen ze één keer.

Voorbeeld 3, Een trendlijn opgebouwd op de laatste bar (Indicator)

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

De loop doorloopt de historie op de laatste bar en de enkele lijn wordt daar getekend.

Veelvoorkomende fouten en valkuilen

  • Alleen een indicatorinstelling. DrawOnLastBarOnly geldt voor tekeningen in ProBuilder-indicatoren. Het heeft geen betekenis in ProScreener, ProOrder of ProBacktest.
  • Declareer met DEFPARAM bovenaan. Deze moet worden ingesteld met DEFPARAM voor de tekencode, niet midden in het script.
  • Beïnvloedt tekeningen, niet de berekening. Het beperkt waar objecten worden getekend, niet hoeveel er wordt berekend. Combineer het met CalculateOnLastBars om ook de berekening te beperken.
  • Markeringen in de historie verdwijnen. Met de vlag aan worden signalen uit het verleden niet getekend. Als je bij elke gebeurtenis uit het verleden een pijl wilt, laat hem dan uit en voorzie elke tekening van zijn eigen voorwaarde.
  • DRAWLINE, een tekening die profiteert van beperking tot de laatste bar.
  • DRAWHLINE, een niveaulijn die normaal één keer wordt getekend.
  • DRAWVLINE, een verticale markering die normaal één keer wordt getekend.
  • DRAWTEXT, een label dat normaal één keer wordt getekend.
  • CalculateOnLastBars, beperkt de berekening tot recente bars.
  • IsLastBarUpdate, een andere manier om code op de laatste bar uit te voeren.
  • ONCE, initialiseert een waarde één enkele keer.
  • BarIndex, levert coördinaten voor de tekeningen.