DrawOnLastBarOnly
DrawOnLastBarOnly en ProBuilder es un flag de DEFPARAM que limita los dibujos gráficos a la última barra, reduciendo el coste de redibujado y manteniendo el gráfico limpio.
Sintaxis
DEFPARAM DrawOnLastBarOnly = trueParámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
DrawOnLastBarOnly | booleano | false | Cuando true, los objetos gráficos se dibujan solo en el último bar. Declarado con DEFPARAM al principio del script. |
Cómo funciona
DrawOnLastBarOnly es un DEFPARAM flag que se establece una sola vez al inicio de un indicador de ProBuilder. Cuando está true, cualquier DRAW El comando que sigue dibuja solo en el último bar del gráfico, en lugar de repetirse en cada bar histórico. Esto importa porque, por defecto, las instrucciones de dibujo se ejecutan en cada bar, de modo que una línea o una etiqueta colocada sin el marcador se redibuja miles de veces, lo que ralentiza el gráfico y puede dejar objetos superpuestos.
Es muy adecuado para objetos que describen el estado actual, como líneas de soporte y resistencia, pivotes o una etiqueta de estado. A menudo se combina con CalculateOnLastBars para limitar el cálculo además del dibujo. Como el dibujo ocurre en el último bar, las búsquedas de coordenadas en el histórico siguen funcionando: el bucle que encuentra un punto de swing se ejecuta en el último bar y el objeto se dibuja ahí.
Ejemplos
Ejemplo 1, Una única etiqueta en la última barra (Indicador)
// Print "LastBar" once, at the current close
DEFPARAM DrawOnLastBarOnly = true
ONCE font = "Arial"
DRAWTEXT("LastBar", BarIndex, close) COLOURED(255, 0, 0)
RETURNEl texto se dibuja solo en la barra actual en lugar de en cada barra del historial.
Ejemplo 2, Líneas de máximo y mínimo recientes (Indicador)
// Draw the 15-bar high and low once
DEFPARAM DrawOnLastBarOnly = true
hh = Highest[15](high)
ll = Lowest[15](low)
DRAWHLINE(hh) COLOURED(0, 200, 0)
DRAWHLINE(ll) COLOURED(200, 0, 0)
RETURNSin el flag estas dos líneas se redibujarían en cada bar. Con él aparecen una sola vez.
Ejemplo 3, Una línea de tendencia construida en la última barra (Indicador)
// Find two lows across 20 bars and connect them, once
DEFPARAM DrawOnLastBarOnly = true
period = 20
y2 = Lowest[period](low)
FOR i = 0 TO period DO
IF low[i] = y2 THEN
x2 = BarIndex[i]
ELSIF low[i] < y2 THEN
y1 = low[i]
x1 = BarIndex[i]
ENDIF
NEXT
DRAWLINE(x1, y1, x2, y2) COLOURED(0, 120, 255)
RETURNEl bucle recorre el historial en la última barra y la única línea se dibuja allí.
Errores y trampas habituales
- Solo ajuste de indicador.
DrawOnLastBarOnlyse aplica a los dibujos de indicadores de ProBuilder. No tiene significado en ProScreener, ProOrder ni ProBacktest. - Decláralo con DEFPARAM al principio. Debe fijarse con
DEFPARAMantes del código de dibujo, no a mitad del script. - Afecta a los dibujos, no al cálculo. Limita dónde se dibujan los objetos, no cuánto se calcula. Combínalo con
CalculateOnLastBarspara reducir también el cálculo. - Los marcadores del historial desaparecen. Con el flag activado, las señales pasadas no se dibujan. Si quieres una flecha en cada evento pasado, déjalo desactivado y condiciona cada dibujo con su propia condición.
Instrucciones relacionadas
DRAWLINE, un dibujo que se beneficia de limitarse a la última barra.DRAWHLINE, una línea de nivel que normalmente se dibuja una sola vez.DRAWVLINE, un marcador vertical que normalmente se dibuja una sola vez.DRAWTEXT, una etiqueta que normalmente se dibuja una sola vez.CalculateOnLastBars, limita el cálculo a las barras recientes.IsLastBarUpdate, otra forma de ejecutar código en la última barra.ONCE, inicializa un valor una sola vez.BarIndex, proporciona coordenadas para los dibujos.