Bli medlem idag
Grafik/probuilder

DRAWRAY

DRAWRAY i ProBuilder ritar en stråle som startar i en punkt och sträcker sig oändligt genom en andra punkt, med en valfri COLOURED-färg. Syntax och exempel.

Syntax

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

Parametrar

NamnTypStandardBeskrivning
x1heltalobligatoriskX-koordinaten för startpunkten, normalt ett barindex.
y1prisobligatoriskY-koordinaten för startpunkten, ett pris eller beräknat värde.
x2heltalobligatoriskX-koordinat för en andra punkt som anger riktningen.
y2prisobligatoriskY-koordinaten för den andra punkten.
R, G, Bheltalplattformens standardValfritt COLOURED röd, grön och blå komponent, 0 till 255.
aheltal255Valfri alfa (transparens), 0 helt transparent till 255 helt opak.

Så fungerar det

DRAWRAY körs inuti en ProBuilder-indikator. Den ritar en halvlinje som börjar vid (x1, y1) och passerar genom (x2, y2), och fortsätter sedan förbi den andra punkten utan att stanna. Riktningen beror på parens ordning: om (x1, y1) är till höger om (x2, y2), sträcker sig strålen åt vänster, och omvänt.

Detta skiljer DRAWRAY från DRAWLINE och DRAWSEGMENT, som slutar vid sina två punkter. Som med andra ritobjekt sätter skript DEFPARAM DrawOnLastBarOnly = true så att strålen ritas en gång. Den COLOURED satsen är valfri.

Exempel

Exempel 1, En enda projicerad trendlinje (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

Strålen startar 40 barer tillbaka och fortsätter förbi den aktuella baren och projicerar lutningen framåt.

Exempel 2, Strålar från periodens extremvärden (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

Att skydda beräkningen med IsLastBarUpdate kör loopen bara en gång. Varje stråle ankras vid ett periodextremvärde och projiceras genom den aktuella baren.

Exempel 3, Horisontell stråle som en öppen nivå (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

Eftersom båda y-värdena är lika är strålen horisontell och sträcker sig till höger om startpunkten.

Vanliga fel och fallgropar

  • Endast indikator. DRAWRAY har ingen effekt i ProScreener, ProOrder eller ProBacktest. Behåll den i en ProBuilder-indikator.
  • Riktningen beror på punkternas ordning. Att byta plats på de två punkterna vänder riktningen som strålen sträcker sig i. Kontrollera vilket par som är ankaret.
  • X är ett barindex. Att skicka in ett pris i x1 eller x2 placerar strålen fel. Använd BarIndex eller förskjutningar från den.
  • Avgränsade alternativ. För en linje som slutar vid båda punkterna, använd DRAWLINE eller DRAWSEGMENT istället.