Únete hoy
Gráficos/probuilder

DRAWRAY

DRAWRAY en ProBuilder dibuja una semirrecta que parte de un punto y se extiende infinitamente a través de un segundo punto, con un color COLOURED opcional. Sintaxis y ejemplos.

Sintaxis

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

Parámetros

NombreTipoPor defectoDescripción
x1enteroobligatorioCoordenada X del punto inicial, normalmente un índice de bar.
y1precioobligatorioCoordenada Y del punto inicial, un precio o un valor calculado.
x2enteroobligatorioCoordenada X de un segundo punto que define la dirección.
y2precioobligatorioCoordenada Y del segundo punto.
R, G, Benterovalor por defecto de la plataformaOpcional COLOURED componentes rojo, verde y azul, de 0 a 255.
aentero255Alfa opcional (transparencia), de 0 totalmente transparente a 255 totalmente opaco.

Cómo funciona

DRAWRAY se ejecuta dentro de un indicador ProBuilder. Dibuja una semirrecta que empieza en (x1, y1) y pasa por (x2, y2), y luego continúa más allá de ese segundo punto sin detenerse. La dirección depende del orden de los pares: si (x1, y1) está a la derecha de (x2, y2), la semirrecta se extiende hacia la izquierda, y viceversa.

Esto distingue DRAWRAY desde DRAWLINE y DRAWSEGMENT, que terminan en sus dos puntos. Como con otros objetos de dibujo, los scripts definen DEFPARAM DrawOnLastBarOnly = true así la semirrecta se dibuja una sola vez. La COLOURED cláusula es opcional.

Ejemplos

Ejemplo 1, Una única línea de tendencia proyectada (Indicador)

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 semirrecta empieza 40 bars atrás y continúa más allá del bar actual, proyectando la pendiente hacia adelante.

Ejemplo 2, Semirrectas desde los extremos del periodo (Indicador)

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

Proteger el cálculo con IsLastBarUpdate ejecuta el bucle una sola vez. Cada rayo se ancla en un extremo del periodo y se proyecta a través del bar actual.

Ejemplo 3, Semirrecta horizontal como nivel abierto (Indicador)

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

Como ambos valores de y son iguales, la semirrecta es horizontal y se extiende a la derecha del punto de inicio.

Errores y trampas habituales

  • Solo en indicadores. DRAWRAY no tiene efecto en ProScreener, ProOrder ni ProBacktest. Resérvalo para un indicador de ProBuilder.
  • La dirección depende del orden de los puntos. Intercambiar los dos puntos invierte la dirección en la que se extiende la semirrecta. Comprueba qué par es el ancla.
  • X es un índice de bar. Pasar un precio a x1 o x2 coloca mal el rayo. Usa BarIndex o desplazamientos desde él.
  • Alternativas delimitadas. Para una línea que termina en ambos puntos, usa DRAWLINE o DRAWSEGMENT en su lugar.