Jetzt beitreten
Grafisch/probuilder

DRAWRAY

DRAWRAY in ProBuilder zeichnet einen Strahl, der an einem Punkt beginnt und unendlich durch einen zweiten Punkt verläuft, mit optionaler COLOURED-Farbe. Syntax und Beispiele.

Syntax

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

Parameter

NameTypStandardBeschreibung
x1GanzzahlerforderlichX-Koordinate des Startpunkts, normalerweise ein Bar-Index.
y1KurserforderlichY-Koordinate des Startpunkts, ein Kurs oder ein berechneter Wert.
x2GanzzahlerforderlichX-Koordinate eines zweiten Punktes, der die Richtung festlegt.
y2KurserforderlichY-Koordinate des zweiten Punkts.
R, G, BGanzzahlPlattformstandardOptional COLOURED Rot-, Grün- und Blauanteile, 0 bis 255.
aGanzzahl255Optionaler Alphawert (Transparenz), 0 vollständig transparent bis 255 vollständig deckend.

So funktioniert es

DRAWRAY läuft innerhalb eines ProBuilder-Indikators. Es zeichnet eine Halblinie mit Startpunkt bei (x1, y1) und verläuft durch (x2, y2), und läuft dann über diesen zweiten Punkt hinaus weiter, ohne zu stoppen. Die Richtung hängt von der Reihenfolge der Paare ab: wenn (x1, y1) liegt rechts von (x2, y2), verläuft der Strahl nach links, und umgekehrt.

Das unterscheidet DRAWRAY von DRAWLINE und DRAWSEGMENT, die an ihren beiden Punkten enden. Wie bei anderen Zeichenobjekten legen Skripte DEFPARAM DrawOnLastBarOnly = true damit der Strahl nur einmal gezeichnet wird. Die COLOURED -Klausel ist optional.

Beispiele

Beispiel 1, Eine einzelne projizierte Trendlinie (Indikator)

probuilder
// Ray from a swing low projected forward through the current low
DEFPARAM DrawOnLastBarOnly = true
DRAWRAY(BarIndex-40, low[40], BarIndex, low) COLOURED(0, 120, 255)
RETURN

Der Strahl beginnt 40 Bars zurück und verläuft über den aktuellen Bar hinaus und projiziert so die Steigung nach vorne.

Beispiel 2, Strahlen von den Extremwerten einer Periode (Indikator)

probuilder
// Two red rays built from the highest high and lowest low over a period
DEFPARAM DrawOnLastBarOnly = true
period = 70
IF IsLastBarUpdate THEN
    y2 = Lowest[period](low)
    yy2 = Highest[period](high)
    FOR i = 0 TO period DO
        IF low[i] = y2 THEN
            x2 = BarIndex[i]
        ENDIF
        IF high[i] = yy2 THEN
            xx2 = BarIndex[i]
        ENDIF
    NEXT
    x1 = BarIndex
    y1 = low
    xx1 = BarIndex
    yy1 = high
    DRAWRAY(x1, y1, x2, y2) COLOURED(255, 10, 10)
    DRAWRAY(xx1, yy1, xx2, yy2) COLOURED(255, 10, 10)
ENDIF
RETURN

Die Absicherung der Berechnung mit IsLastBarUpdate führt die Schleife nur einmal aus. Jeder Strahl ist an einem Periodenextrem verankert und wird durch den aktuellen Bar projiziert.

Beispiel 3, Horizontaler Strahl als offenes Niveau (Indikator)

probuilder
// A grey ray at a fixed price extending to the right
DEFPARAM DrawOnLastBarOnly = true
DRAWRAY(BarIndex-10, close[10], BarIndex, close[10]) COLOURED(128, 128, 128)
RETURN

Da beide y-Werte gleich sind, ist der Strahl horizontal und verläuft nach rechts vom Startpunkt.

Häufige Fehler und Stolperfallen

  • Nur Indikator. DRAWRAY hat keine Wirkung in ProScreener, ProOrder oder ProBacktest. Behalten Sie es in einem ProBuilder Indikator.
  • Die Richtung hängt von der Reihenfolge der Punkte ab. Das Vertauschen der beiden Punkte kehrt die Richtung um, in die der Strahl verläuft. Prüfen Sie, welches Paar der Anker ist.
  • X ist ein Bar-Index. Die Übergabe eines Preises an x1 oder x2 platziert den Strahl falsch. Verwenden Sie BarIndex oder Abstände davon.
  • Begrenzte Alternativen. Für eine Linie, die an beiden Punkten endet, verwenden Sie DRAWLINE oder DRAWSEGMENT stattdessen.
  • DRAWLINE, eine Linie, die durch ihre zwei Punkte begrenzt ist.
  • DRAWSEGMENT, ein Segment zwischen zwei Punkten.
  • DRAWHLINE, eine horizontale Linie auf einem Kurs.
  • DRAWVLINE, eine vertikale Linie an einem Bar-Index.
  • COLOURED, legt Farbe und Transparenz fest.
  • DrawOnLastBarOnly, beschränkt das Zeichnen aus Performancegründen auf den letzten Bar.
  • IsLastBarUpdate, führt einen Block einmal auf dem letzten Bar aus.
  • BarIndex, liefert die x-Koordinaten.