Jetzt beitreten
Grafisch/probuilder

DRAWRECTANGLE

DRAWRECTANGLE in ProBuilder zeichnet ein Rechteck aus zwei gegenüberliegenden Ecken, angegeben als Bar-Index und Kurs, mit optionaler COLOURED-Umrisslinie und FILLCOLOR-Füllung.

Syntax

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

Parameter

NameTypStandardBeschreibung
x1GanzzahlerforderlichX-Koordinate der ersten Ecke, normalerweise ein Bar-Index.
y1KurserforderlichY-Koordinate der ersten Ecke, ein Kurs oder berechneter Wert.
x2GanzzahlerforderlichX-Koordinate der gegenüberliegenden Ecke.
y2KurserforderlichY-Koordinate der gegenüberliegenden Ecke.
R, G, BGanzzahlPlattformstandardOptional COLOURED umreißen die Rot-, Grün- und Blaukomponenten, 0 bis 255.
aGanzzahl255Optionales Alpha (Transparenz) der Umrisslinie, 0 bis 255.

So funktioniert es

DRAWRECTANGLE läuft innerhalb eines ProBuilder Indikators. Es zeichnet ein Rechteck, dessen zwei gegenüberliegende Ecken (x1, y1) und (x2, y2). Die x-Koordinaten sind Bar-Indizes auf der horizontalen Achse und die y-Koordinaten Kurse auf der vertikalen Achse, sodass das Rechteck einen Bereich aus Zeit und Kurs aufspannt. Das eignet sich zum Markieren von Konsolidierungszonen, Breakout-Bereichen oder Chartmustern.

Der optionale COLOURED Klausel setzt Farbe und Transparenz der Umrandung, und die FILLCOLOR legt die Innenfüllung fest. Da das Objekt auf jeder Bar neu gezeichnet wird, setzen Skripte üblicherweise DEFPARAM DrawOnLastBarOnly = true.

Beispiele

Beispiel 1, Eine enge Range hervorheben (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

Der Kasten wird nur gezeichnet, wenn die Range eng genug ist und die Extremwerte weit genug auseinander liegen.

Beispiel 2, Rechteck mit gefüllter Innenfläche (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 schattiert das Innere, während COLOURED setzt den Rahmen.

Beispiel 3, Feste Referenzzone (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

Ein einzelner Aufruf markiert ein festes Band über die letzten 50 Bars.

Häufige Fehler und Stolperfallen

  • Nur Indikator. DRAWRECTANGLE hat keine Wirkung in ProScreener, ProOrder oder ProBacktest. Behalten Sie es in einem ProBuilder Indikator.
  • X ist ein Bar-Index. Die Übergabe eines Preises an x1 oder x2 positioniert das Kästchen horizontal falsch. Verwenden Sie BarIndex oder Abstände davon.
  • Ecken, nicht Breite und Höhe. Die vier Werte sind zwei gegenüberliegende Ecken, nicht eine Position und eine Größe.
  • Kosten des Neuzeichnens. Ohne DrawOnLastBarOnly = true, wird das Rechteck auf jedem Bar gezeichnet und bremst den Chart.
  • DRAWELLIPSE, zeichnet eine Ellipse innerhalb derselben Art von Begrenzungsrahmen.
  • DRAWTRIANGLE, zeichnet eine Form mit drei Eckpunkten.
  • DRAWLINE, zeichnet eine Linie zwischen zwei Punkten.
  • COLOURED, legt Umrissfarbe und Transparenz fest.
  • FILLCOLOR, legt die Füllfarbe im Inneren fest.
  • DrawOnLastBarOnly, beschränkt das Zeichnen aus Performancegründen auf den letzten Bar.
  • BarIndex, liefert die x-Koordinaten.
  • Highest, findet die Oberseite einer Range zum Einschließen.