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
DEFPARAM DrawOnLastBarOnly = trueParameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
DrawOnLastBarOnly | boolean | false | Wanneer 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)
// Print "LastBar" once, at the current close
DEFPARAM DrawOnLastBarOnly = true
ONCE font = "Arial"
DRAWTEXT("LastBar", BarIndex, close) COLOURED(255, 0, 0)
RETURNDe 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)
// 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)
RETURNZonder 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)
// 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)
RETURNDe loop doorloopt de historie op de laatste bar en de enkele lijn wordt daar getekend.
Veelvoorkomende fouten en valkuilen
- Alleen een indicatorinstelling.
DrawOnLastBarOnlygeldt voor tekeningen in ProBuilder-indicatoren. Het heeft geen betekenis in ProScreener, ProOrder of ProBacktest. - Declareer met DEFPARAM bovenaan. Deze moet worden ingesteld met
DEFPARAMvoor 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
CalculateOnLastBarsom 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.
Gerelateerde instructies
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.