martes, 4 de noviembre de 2008

Indicadores con VBA

La programación de indicadores en VisualChart 5 incluye algunas nuevas funciones para personalizar los colores, tipos de representación... de los indicadores en cada barra. Además, incluye algunas funciones extra que pueden ser útiles para avisar de algún evento concreto.

En este artículo voy a mostrar solo una pequeña parte de las novedades que se incluyen. La imaginación de cada uno puede darles muy diversas utilidades.

He utilizado el indicador Keltner que incluye VisualChart para generar un nuevo indicador Keltner2 similar pero con una visualización distinta. El funcionamiento de este indicador puede consultarse en Internet. Supongamos que, para nuestra operativa, nos interesa remarcar las zonas donde el cierre del valor excede a las bandas superior o inferior.


Public Sub Indicator_OnCalculateBar(ByVal Bar As Long)
With APP
Avg = .GetIndicatorValue(AvSimpleData)
AvgTrRang = .GetIndicatorValue(AvTrueRangeData)
UpperKeltner = Avg + AvgTrRang * Constant
Lowerkeltner = Avg + AvgTrRang * -Constant
.SetIndicatorValue Lowerkeltner
.SetIndicatorValue Avg, 2
.SetIndicatorValue UpperKeltner, 3

.SetBarColor 0, 2, RGB(0, 0, 0)
.SetBarColor 0, 3, RGB(0, 0, 255)

If .GetIndicatorValue(Data) < Lowerkeltner Then
.SetBarWidth 0, 1, 3
.SetBarColor 0, 1, RGB(255, 0, 0)
.SetWndBackgroundColor RGB(255, 150, 150)
ElseIf .GetIndicatorValue(Data) > UpperKeltner Then
.SetBarWidth 0, 3, 3
.SetBarColor 0, 3, RGB(0, 0, 255)
.SetWndBackgroundColor RGB(0, 150, 255)
Else
.SetWndBackgroundColor RGB(255, 255, 255)
End If

End With
End Sub

En color azul se muestra el código que he agregado. En él, compruebo si el cierre del valor excede alguna de las bandas. Si es así, pinto el indicador con mayor grosor en esas barras además de cambiarle el color.

La función SetWndBackGroundColor es muy interesante. Cambia el color de toda la ventana en la que esté el indicador. En el ejemplo anterior, cuando se excede el valor de la banda inferior se pinta toda la ventana del indicador de color rojo pálido mientras que si se excede la banda superior, se hace de azul pálido. En otro caso, se mantiene el color blanco.

Si disponemos de tiempo real, podemos ver como cambia el color de fondo de la ventana del indicador cuando ocurre alguno de los dos casos contemplados. Es algo bastante llamativo por lo que se puede utilizar como una alerta visual que nos indica que debemos, por ejemplo, abrir o cerrar alguna posición.





En el video se puede apreciar, en la primera página, el indicador original; En la segunda, la modificación realizada en una ventana aparte y, para ver mejor las zonas en las que el cierre excede las bandas, el indicador original en la ventana del gráfico. Para quien lo desconozca y le resulte algo novedoso (aunque se trata de algo presente en VisualChart 4), he utilizado el cuadrado de color para cambiar rápidamente de gráfico desde la tabla (simplemente haciendo doble click en la descripción).

Además de lo aquí mencionado, se pueden hacer más cambios visuales en los indicadores desde VBA. Se pueden poner en representación de histograma determinadas barras, dibujar punteadas las partes poco relevantes del indicador... y algunas cosas que no he sabido hacer funcionar (por desconocimiento o por mal funcionamiento de la versión de prueba).

lunes, 3 de noviembre de 2008

Indicadores en VisualChart 5

No he encontrado ningún tipo de información sobre los indicadores de la versión 5 de VisualChart pero investigando y con ayuda de alguna consulta al servicio de atención al cliente he recopilado alguna información relacionada con los indicadores. Lo expongo aquí y en el siguiente artículo. Es probable que la ayuda de VisualChart, cuando esté disponible, amplie considerablemente todo esto.

Con un gráfico abierto, pulsamos el botón de insertar indicador y aparece la siguiente ventana:

Escribimos o seleccionamos un indicador de la lista. En la parte inferior podemos apreciar las opciones típicas de los indicadores de VisualChart 4 y debajo, agrupada en "Estilo" algunas opciones referentes al aspecto del indicador. Si pulsamos en el signo "+" que hay a la izquierda de "Estilo" veremos las propiedades que contiene:


Para cada línea del indicador podemos configurar el tipo de representación, su grosor, sus colores alcista/bajista/neutro y, en la representación de histograma, como queremos que se forme el mismo (se puede elegir cualquier línea incluso si no es una banda). También podemos elegir todos estos valores usando una plantilla (la primera opción de "Estilos"):


Cuando insertamos el indicador, este aparece tal como lo hemos configurado. Una vez insertado, podemos modificar cualquier cosa en las propiedades:


Hay una opción "Cotización" muy similar a lo que se puede configurar para una línea de un indicador que permite indicar como queremos que se vea el valor asociado al indicador. Así, en el gráfico, podemos ver sus colores alterados en función del indicador.

La última opción en "Estilo" es la de "Guardar como plantilla". Si pulsamos este botón, podemos guardar la configuración en un fichero para cargarla después en cualquier indicador (desde la opción "Plantilla" que hay al principio de "Estilo"). No se porque, pero no siempre se muestran mis plantillas (será algún problema que todavía no está corregido).

Tener plantillas por indicador tiene la ventaja de que permite que cada indicador tenga una plantilla distinta (las plantillas que conocemos de VisualChart 4 se aplican a toda la ventana). Desde VisualChart, seria muy interesante poder hacer como se hace con las plantillas antiguas: asociar una plantilla con un indicador para que siempre se abra con el aspecto previamente guardado.

En el siguiente artículo os expondré unas funciones nuevas que hay en el entorno VBA que permiten hacer cosas muy interesantes. Cuando termine de investigarlas pondré todo lo que haya aprendido en un artículo. Hasta entonces, comentar que se puede personalizar el aspecto de cada barra de cada línea del indicador. Esto podemos usarlo para que algunas barras sueltas, tendencias... se pinten de forma que resalten del resto.

Seguidores