Iscriviti ora
Grafica/probuilder

DRAWRAY

DRAWRAY in ProBuilder disegna una semiretta che parte da un punto e si estende all'infinito attraverso un secondo punto, con un colore COLOURED opzionale. Sintassi ed esempi.

Sintassi

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

Parametri

NomeTipoPredefinitoDescrizione
x1interoobbligatorioCoordinata X del punto iniziale, normalmente un indice di bar.
y1prezzoobbligatorioCoordinata Y del punto iniziale, un prezzo o un valore calcolato.
x2interoobbligatorioCoordinata X di un secondo punto che definisce la direzione.
y2prezzoobbligatorioCoordinata Y del secondo punto.
R, G, Binteropredefinito della piattaformaOpzionale COLOURED componenti rosso, verde e blu, da 0 a 255.
aintero255Alpha opzionale (trasparenza), da 0 completamente trasparente a 255 completamente opaco.

Come funziona

DRAWRAY funziona all'interno di un indicatore ProBuilder. Disegna una semiretta che parte da (x1, y1) e passa attraverso (x2, y2), poi continua oltre quel secondo punto senza fermarsi. La direzione dipende dall'ordine delle coppie: se (x1, y1) è a destra di (x2, y2), la semiretta si estende verso sinistra, e viceversa.

Questo distingue DRAWRAY da DRAWLINE e DRAWSEGMENT, che terminano ai loro due punti. Come per gli altri oggetti di disegno, gli script impostano DEFPARAM DrawOnLastBarOnly = true così la semiretta viene disegnata una sola volta. Il COLOURED clausola è opzionale.

Esempi

Esempio 1, Una singola linea di tendenza proiettata (Indicatore)

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

La semiretta parte 40 bar indietro e continua oltre il bar corrente, proiettando l'inclinazione in avanti.

Esempio 2, Semirette dagli estremi del periodo (Indicatore)

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

Proteggere il calcolo con IsLastBarUpdate esegue il ciclo una sola volta. Ogni raggio è ancorato a un estremo del periodo e proiettato attraverso la bar corrente.

Esempio 3, Semiretta orizzontale come livello aperto (Indicatore)

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

Poiché i due valori y sono uguali, la semiretta è orizzontale e si estende a destra del punto di partenza.

Errori e insidie comuni

  • Solo indicatori. DRAWRAY non ha effetto in ProScreener, ProOrder o ProBacktest. Mantienilo in un indicatore ProBuilder.
  • La direzione dipende dall'ordine dei punti. Scambiare i due punti inverte la direzione in cui si estende la semiretta. Verifica quale coppia è l'ancora.
  • X è un indice di bar. Passare un prezzo a x1 o x2 posiziona male la semiretta. Usa BarIndex o scostamenti da esso.
  • Alternative delimitate. Per una linea che termina a entrambi i punti, usa DRAWLINE o DRAWSEGMENT invece.