Cómo pintar líneas verticales en el gráfico

A petición de varios de nuestros usuarios, esta semana vamos a explicar cómo poder dibujar sobre un gráfico líneas verticales que sigan un patrón determinado.

Para ello, será necesario diseñar un indicador que sea el encargado de estudiar el patrón y de dibujarlo.


Les facilitamos un indicador que pueden usar de referencia.

Éste indicador está disponible para Visual Chart 5. Pueden descargarlo desde el siguiente enlace:

Descargar Vertical Line

(Nota: si tienen dudas acerca de cómo instalar el indicador, pulsen aquí).



Configuración del indicador
1 .A la hora de aplicar éste indicador, debemos insertarlo seleccionando la opción
Insertar en Ventana = Con Escala de la Serie.

En realidad, al insertarlo, las líneas verticales no van a aparecer. Es necesario aplicar una serie de ajustes que pasamos a explicar:

2. Accedemos a las propiedades del indicador. Vamos a cambiar los siguientes campos:
Estilo = Barras.
Cotización. Color dependiente = Si.
Cotización.Pintar fondo = Si.


Una vez pulsemos el botón Aceptar, veremos que la representación del gráfico ha cambiado y ahora sí nos aparecen las líneas verticales.


Funcionamiento de las líneas verticales
En éste ejemplo, las líneas verticales aparecen cada 20 barras. Es decir, desde código hemos definido la regla de que se pinten una línea cada x barras (en este caso, 20).

Esto es posible llevarlo a cabo gracias al método App.SetBackgroundColor().

El método incluye dos parámetros: BarsAgo, con la cual definimos la barra cuyo fondo vamos a cambiar, y Color, donde se define el color de fondo que queremos usar.


Lo que hace el método es dibujar el fondo en el momento exacto que digamos. En nuestro ejemplo, si estamos en el momento exacto de salto (cada x barras), pintamos el fondo rojo. Si no lo cumple, lo pintamos blanco:

Public Sub Indicator_OnCalculateBar(ByVal Bar As Long)
With APP


Dim ccolor As Long
If (Bar > n + Steps) Then

ccolor = RGB(255, 0, 0)
n = Bar

Else
ccolor = RGB(255, 255, 255)
End If
.SetIndicatorValue .Close()
.SetBackgroundColor 0, ccolor
End With
End Sub

Supongamos otro ejemplo. Si lo quisiéramos por ejemplo es pintar una línea vertical con cada cambio de hora, cambiaríamos la regla y el resto del código lo mantendríamos igual.

Public Sub Indicator_OnCalculateBar(ByVal Bar As Long)
With APP


Dim ccolor As Long
If (.Time() Mod 100 = 0) Then
ccolor = RGB(255, 0, 0)
n = Bar
Else
ccolor = RGB(255, 255, 255)
End If
.SetIndicatorValue .Close()
.SetBackgroundColor 0, ccolor
End With
End Sub

Comentarios

Entradas populares de este blog

Como consultar el GAP % de un conjunto de valores

Bollinger Volatility Oscillator N

MANEJO DE PLANTILLAS. Eliminar plantilla de un gráfico activa