Modificar el estilo de los indicadores (II)

En anteriores entradas, comentamos la posibilidad de modificar el diseño de los indicadores directamente desde el código Visual Basic.

Esta información nos puede servir para representar gráficamente la tendencia del mercado, de manera que con un cambio de color podamos distinguir con rapidez la dirección que están marcando los precios.

A continuación, vamos a ver un par de ejemplos nuevos en los cuales también nos apoyamos en el uso de estas funciones: El indicador supertrend_1 y el indicador Double Bollinger Bands. Pueden descargar dichos indicadores desde aquí:

Supertrend_1

Double Bollinger Bands

El indicador Supertrend_1

Este indicador se presenta como una variante del indicador SuperTrend que tienen disponible dentro de la biblioteca de indicadores.

El indicador sigue una estrategia bien sencilla: Partiendo del precio medio de cada barra, calcula los precios extremos de un canal siguiendo la siguiente fórmula:

1. Banda superior del canal = Precio Medio + (Coeficiente x ATR)
2. Banda inferior del canal = Precio Medio - (Coefciente x ATR)


Donde el valor del coeficiente será un valor especificado por el usuario, mientras que el ATR (Average True Range) dependerá de la longitud especificada igualmente por el usuario.

La ruptura del canal al alza, marca al indicador con tendencia alcista, de modo que a partir de ese instante colocará el soporte cuya ruptura implicaría el cambio de tendencia:



La ruptura del canal a la baja, marca al indicador con tendencia bajista, de modo que a partir de ese instante colocará la resistencia cuya ruptura implicaría el cambio de tendencia:



Si accedemos al código del indicador, podemos ver cómo especificamos si queremos determinar el color de la línea verde o rojo según la tendencia.

If Pos = ipBull Then
    .SetIndicatorValue Super, 1, 0, Pos
    .SetBarProperties 0, 1, ColorSuper, 2, lsSolid, irLineal
    'rellenar prev
    Prev(0).nl = 1
    Prev(0).Color = ColorSuper
    Prev(0).Value = Super
    Prev(0).Pos = Pos
    '--
    Prev(1).nl = 2
    Prev(1).Color = ElegirColor("NEGRO")
    Prev(1).Value = NullValue
    Prev(1).Pos = ipNeutral
    '--
    If ChangeOfTrend And SuperAnt <> 0 Then
        .SetIndicatorValue SuperAnt, 1, 1, Pos
        .SetBarProperties 1, 1, ColorSuper, 2, lsSolid, irLineal
    End If
ElseIf Pos = ipBear Then
    .SetIndicatorValue Super, 2, 0, Pos
    .SetBarProperties 0, 2, ColorSuper, 2, lsSolid, irLineal
    'rellenar prev
    Prev(0).nl = 2
    Prev(0).Color = ColorSuper
    Prev(0).Value = Super
    Prev(0).Pos = Pos
    '--
    Prev(1).nl = 1
    Prev(1).Color = ElegirColor("NEGRO")
    Prev(1).Value = NullValue
    Prev(1).Pos = ipNeutral
    '--
    If ChangeOfTrend And SuperAnt <> 0 Then
        .SetIndicatorValue SuperAnt, 2, 1, Pos
        .SetBarProperties 1, 2, ColorSuper, 2, lsSolid, irLineal
    End If End If

Cabe destacar que hacemos uso de los líneas para que el cambio de tendencia sea visualmente más efectivo, puesto que si pintáramos ambas señales con la misma línea, no podríamos ver con tanta claridad el salto al quedar todos los puntos de la línea unidos entre sí.

El indicador Double Bollinger Bands

La filosofía de este segundo indicador es la de, sencillamente, visualizar dos bandas de Bollinger dobles, usando la misma media de referencia pero con distintos coeficientes de amplitud.



Si accedemos al código, podemos ver cómo hemos añadido el formato directamente desde ahí, dándole un color más oscuro a las bandas de mayor amplitud y un color más claro a las de menor amplitud.

    .SetBarProperties 0, 1, ElegirColor("AMARILLO"), 3, lsSolid, irLineal
    .SetBarProperties 0, 2, ElegirColor("AZULC"), 2, lsDot, irDottedLine
    .SetBarProperties 0, 3, ElegirColor("AZULC"), 2, lsDot, irDottedLine
    .SetBarProperties 0, 4, ElegirColor("AZULO"), 2, lsSolid, irLineal
    .SetBarProperties 0, 5, ElegirColor("AZULO"), 2, lsSolid, irLineal

Además, a las de menor amplitud le hemos especificado que queremos pintar las líneas punteadas, para ello, hemos seleccionado la propiedad irDottedLine en el campo Representation.

La particularidad de este indicador respecto al anterior, es que hemos usado la función SetBackgroundColor.

Esta función nos va a permitir cambiar el color del fondo de pantalla de la n-ésima barra. Partiendo de esto, hemos diseñado una serie de reglas según las cuales pintaremos el fondo de pantalla de un color u otro, de modo que podamos vislumbrar rápidamente el sentimiento del mercado.

Si accedemos al código, podremos ver cómo han quedado diseñadas dichas reglas:

    'Cuarto. Definimos el fondo de pantalla de distinto color según la tendencia
    'Si la situación es alcista, el fondo de pantalla será verde claro.
    If .Close > BollSup1 And .Close < BollSup2 Then
        .SetBackgroundColor 0, ElegirColor("VERDEC")
    'Si la situación es de sobrecompra, el fondo de pantalla será verde oscuro.
    ElseIf .Close >= BollSup2 Then
        .SetBackgroundColor 0, ElegirColor("VERDEO")
    'Si la situación es bajista, el fondo de pantalla será rojo.
    ElseIf .Close < BollInf1 And .Close > BollInf2 Then
        .SetBackgroundColor 0, ElegirColor("ROJO")
    'Si la situación es de sobreventa, el fondo de pantalla será burdeos.
    ElseIf .Close <= BollInf2 Then
        .SetBackgroundColor 0, ElegirColor("BURDEOS")
    'Si la situación es de congestión, el fondo de pantalla será gris.
    Else
        .SetBackgroundColor 0, ElegirColor("GRIS")
    End If


El efecto de utilizar esta función no aparece reflejado inicialmente, puesto que es una característica que hay que activar desde las propiedades del indicador.

Si accedemos a las propiedades del mismo una vez está insertado, y cambiamos las siguientes propiedades:
1. Cotización.Color = Si
2. Cotización.Pintar fondo de ventana = Si.

Permitiremos el cambio de color del fondo de ventana, obteniendo el siguiente resultado:



Comentarios

Entradas populares de este blog

Como consultar el GAP % de un conjunto de valores

Bollinger Volatility Oscillator N

Estudio de las divergencias en el RSI