Bli medlem idag
Grafik/probuilder

DRAWRECTANGLE

DRAWRECTANGLE i ProBuilder ritar en rektangel utifrån två motstående hörn angivna som barindex och pris, med en valfri COLOURED-kontur och FILLCOLOR-fyllning.

Syntax

probuilder
DRAWRECTANGLE(x1, y1, x2, y2) COLOURED(R, G, B, a)

Parametrar

NamnTypStandardBeskrivning
x1heltalobligatoriskX-koordinat för det första hörnet, normalt ett barindex.
y1prisobligatoriskY-koordinat för det första hörnet, ett pris eller beräknat värde.
x2heltalobligatoriskX-koordinat för det motstående hörnet.
y2prisobligatoriskY-koordinat för det motstående hörnet.
R, G, Bheltalplattformens standardValfritt COLOURED anger röd, grön och blå komponent, 0 till 255.
aheltal255Valfritt alfa (transparens) för konturen, 0 till 255.

Så fungerar det

DRAWRECTANGLE körs inne i en ProBuilder-indikator. Den ritar en rektangel vars två motsatta hörn är (x1, y1) och (x2, y2). X-koordinaterna är barindex på den horisontella axeln och y-koordinaterna är priser på den vertikala axeln, så rektangeln täcker ett intervall av både tid och pris. Detta passar för att markera konsolideringszoner, breakout-områden eller diagrammönster.

Den valfria COLOURED satsen anger konturens färg och transparens, och FILLCOLOR anger den inre fyllningen. Eftersom objektet ritas om på varje bar anger skript vanligtvis DEFPARAM DrawOnLastBarOnly = true.

Exempel

Exempel 1, Markera ett snävt intervall (Indikator)

probuilder
// Draw a red box around a 20-bar range if it stays inside a height limit
DEFPARAM DrawOnLastBarOnly = true
period = 20
boxheight = 20
hh = Highest[period](high)
ll = Lowest[period](low)
IF hh - ll <= boxheight * pointsize THEN
    FOR i = 0 TO period DO
        IF high[i] = hh THEN
            x2 = BarIndex[i]
        ENDIF
        IF low[i] = ll THEN
            x1 = BarIndex[i]
        ENDIF
    NEXT
    IF ABS(x2 - x1) >= period THEN
        DRAWRECTANGLE(x1, ll, x2, hh) COLOURED(255, 10, 10)
    ENDIF
ENDIF
RETURN

Rutan ritas bara när intervallet är tillräckligt snävt och extremvärdena ligger tillräckligt långt ifrån varandra.

Exempel 2, Rektangel med fylld insida (Indikator)

probuilder
// Green outline, purple fill, spanning the last five bars
DEFPARAM DrawOnLastBarOnly = true
DRAWRECTANGLE(BarIndex, close, BarIndex[5], close[5]) COLOURED(0, 200, 0) FILLCOLOR(255, 0, 255)
RETURN

FILLCOLOR skuggar insidan medan COLOURED sätter kantlinjen.

Exempel 3, Fast referenszon (Indikator)

probuilder
// A grey semi-transparent zone between two price levels
DEFPARAM DrawOnLastBarOnly = true
upper = Highest[50](high)
lower = upper - 30 * pointsize
DRAWRECTANGLE(BarIndex-50, lower, BarIndex, upper) COLOURED(128, 128, 128, 120)
RETURN

Ett enda anrop markerar ett fast band över de senaste 50 barerna.

Vanliga fel och fallgropar

  • Endast indikator. DRAWRECTANGLE har ingen effekt i ProScreener, ProOrder eller ProBacktest. Behåll den i en ProBuilder-indikator.
  • X är ett barindex. Att skicka in ett pris i x1 eller x2 placerar rutan fel horisontellt. Använd BarIndex eller förskjutningar från den.
  • Hörn, inte bredd och höjd. De fyra värdena är två motstående hörn, inte en position och en storlek.
  • Kostnad för omritning. Utan DrawOnLastBarOnly = true, ritas rektangeln på varje bar och gör diagrammet långsammare.
  • DRAWELLIPSE, ritar en ellips inuti samma typ av omskriven ruta.
  • DRAWTRIANGLE, ritar en form med tre hörn.
  • DRAWLINE, ritar en linje mellan två punkter.
  • COLOURED, ställer in konturens färg och transparens.
  • FILLCOLOR, ställer in den inre fyllningsfärgen.
  • DrawOnLastBarOnly, begränsar ritningen till den sista baren av prestandaskäl.
  • BarIndex, anger x-koordinaterna.
  • Highest, hittar en topp i en range att innesluta.