DrawOnLastBarOnly
DrawOnLastBarOnly i ProBuilder är en DEFPARAM-flagga som begränsar grafiska ritningar till den sista baren, vilket minskar kostnaden för omritning och håller diagrammet rent.
Syntax
DEFPARAM DrawOnLastBarOnly = trueParametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
DrawOnLastBarOnly | boolesk | false | När true, ritas grafiska objekt bara på den sista baren. Deklarerad med DEFPARAM i början av skriptet. |
Så fungerar det
DrawOnLastBarOnly är en DEFPARAM flagga som sätts en gång i början av en ProBuilder-indikator. När den är true, någon DRAW kommandot som följer ritar bara på diagrammets sista bar i stället för att upprepas på varje historisk bar. Det spelar roll eftersom ritinstruktioner som standard körs på varje bar, så en linje eller etikett som placeras utan flaggan ritas om tusentals gånger, vilket gör diagrammet långsammare och kan lämna överlappande objekt.
Den är väl lämpad för objekt som beskriver det aktuella tillståndet, såsom stöd- och motståndslinjer, pivoter eller en statusetikett. Den paras ofta med CalculateOnLastBars för att begränsa både beräkning och ritning. Eftersom ritningen sker på den sista baren fungerar koordinatuppslagningar över historiken ändå: loopen som hittar en swingpunkt körs på den sista baren och objektet ritas där.
Exempel
Exempel 1, En enda etikett på den sista baren (Indikator)
// Print "LastBar" once, at the current close
DEFPARAM DrawOnLastBarOnly = true
ONCE font = "Arial"
DRAWTEXT("LastBar", BarIndex, close) COLOURED(255, 0, 0)
RETURNTexten ritas endast på den aktuella baren istället för på varje bar i historiken.
Exempel 2, Linjer för senaste högsta och lägsta (Indikator)
// 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)
RETURNUtan flaggan skulle dessa två linjer ritas om på varje bar. Med den visas de en gång.
Exempel 3, En trendlinje byggd på den sista baren (Indikator)
// 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)
RETURNLoopen skannar historiken på den sista baren och den enda linjen ritas där.
Vanliga fel och fallgropar
- Endast en indikatorinställning.
DrawOnLastBarOnlygäller för ritningar i ProBuilder-indikatorer. Den har ingen betydelse i ProScreener, ProOrder eller ProBacktest. - Deklarera med DEFPARAM i början. Den måste sättas med
DEFPARAMföre ritkoden, inte mitt i skriptet. - Påverkar ritningar, inte beräkning. Den begränsar var objekt ritas, inte hur mycket som beräknas. Kombinera den med
CalculateOnLastBarsför att även minska beräkningen. - Historiska markeringar försvinner. Med flaggan påslagen ritas inte tidigare signaler. Om du vill ha en pil vid varje tidigare händelse, låt den vara avstängd och villkorsstyr varje ritning med sitt eget villkor.
Relaterade instruktioner
DRAWLINE, en ritning som gynnas av att begränsas till den sista baren.DRAWHLINE, en nivålinje som vanligtvis ritas en gång.DRAWVLINE, en vertikal markering som vanligtvis ritas en gång.DRAWTEXT, en etikett som vanligtvis ritas en gång.CalculateOnLastBars, begränsar beräkningen till de senaste barerna.IsLastBarUpdate, ett annat sätt att köra kod på den sista baren.ONCE, initierar ett värde en enda gång.BarIndex, ger koordinater till ritningarna.