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
DRAWRAY(x1, y1, x2, y2) COLOURED(R, G, B, a)Parámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
x1 | entero | obligatorio | Coordenada X del punto inicial, normalmente un índice de bar. |
y1 | precio | obligatorio | Coordenada Y del punto inicial, un precio o un valor calculado. |
x2 | entero | obligatorio | Coordenada X de un segundo punto que define la dirección. |
y2 | precio | obligatorio | Coordenada Y del segundo punto. |
R, G, B | entero | valor por defecto de la plataforma | Opcional COLOURED componentes rojo, verde y azul, de 0 a 255. |
a | entero | 255 | Alfa 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)
// 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)
RETURNLa 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)
// 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
RETURNProteger 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)
// 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)
RETURNComo 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.
DRAWRAYno 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
x1ox2coloca mal el rayo. UsaBarIndexo desplazamientos desde él. - Alternativas delimitadas. Para una línea que termina en ambos puntos, usa
DRAWLINEoDRAWSEGMENTen su lugar.
Instrucciones relacionadas
DRAWLINE, una línea delimitada por sus dos puntos.DRAWSEGMENT, un segmento entre dos puntos.DRAWHLINE, una línea horizontal en un solo precio.DRAWVLINE, una línea vertical en un índice de bar.COLOURED, define el color y la transparencia.DrawOnLastBarOnly, limita el dibujo al último bar por rendimiento.IsLastBarUpdate, ejecuta un bloque una sola vez en el último bar.BarIndex, aporta las coordenadas x.