Curso de Programación. 13.1. El Canal de Keltner

Siguiendo con el estudio de indicadores de análisis técnico, en el presente artículo nos centraremos en el indicador conocido como Keltner Channel o Canal de Keltner. Veremos las particularidades del mismo, las aplicaciones se le pueden dar y por último, veremos el diseño de un sistema basado en el canal.

Antes de empezar, les facilitamos una nueva versión del indicador para Visual Chart que será la que tomaremos de referencia para el presente artículo. Pueden descargar dicha versión desde el siguiente enlace:

Descargar indicador Keltner 02

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

Definición del Canal de Keltner
El canal de Keltner es un indicador de seguimiento de tendencia formado por tres líneas:

1. Una línea central representada por una media móvil exponencial.
2. Dos bandas superior e inferior, que vienen a ser las desviaciones de la línea central en función del valor del indicador ATR (Average True Range).

Como decimos, este indicador marca la tendencia dominante en función de la inclinación del canal.

También se considera una señal de detección de cambio de tendencia la ruptura de los niveles superior e inferior de dicho canal.

Además de esto, el canal puede usarse como un medidor de la volatilidad, de modo que cuanto mayor sea la amplitud del mismo, mayor será el aumento de la volatilidad en el momento determinado.

El canal de Keltner debe su nombre a Chester Keltner, quien desarrolló las primeras versiones del indicador. Posteriormente, sería mejorado por Linda Bradford, cambiando el tipo de media a aplicar de una media simple a una media exponencial y aplicándole una desviación en función de un ATR(10). Esta configuración es la que encontramos en la versión Keltner 02 que pueden encontrar en el archivo de descarga.

El cálculo de ambas bandas del canal se obtiene según el siguiente criterio:

Banda Superior = EMA20 + (2 x ATR10)
Banda Inferior = EMA20 - (2 x ATR10)

En la siguiente imagen podemos ver cómo queda representado el indicador sobre un gráfico:




Comparativa con Bandas de Bollinger
Como ya habrán podido observar, el canal de Keltner guarda muchas similitudes con una de las herramientas de tendencia y volatilidad más utilizada: las bandas de Bollinger. Los puntos en común entre ambas herramientas serían los siguientes:

1) Tanto el canal de Keltner como las bandas de Bollinger contemplan el mismo tipo de interpretación de señales.
2) En ambos casos, la representación incluye tres líneas: Una central (media móvil de referencia) y otras dos que marcan los extremos del canal.
3) En ambos casos, son indicadores cuya representación se aplica directamente sobre el precio.

En cuanto a las diferencias, la principal sería que el indicador Keltner usa como media móvil de referencia una media exponencial, mientras que las bandas de Bollinger, por defecto, utilizan una media simple.

Por último, y quizás el punto más diferenciador entre ambos indicadores, al usar el canal de Keltner el ATR como generador de la desviación de las bandas, queda representado de una forma más suavizada que las bandas de Bollinger, de manera que en los momentos de mayor volatilidad, los extremos del canal no se alejan del precio tanto con las bandas de Bollinger, tal y como podemos ver en la siguiente imagen:



Estrategia Ruptura del Canal
Una vez visto el funcionamiento del canal de Keltner, vamos a diseñar dos sistemas que utilicen las reglas de trading típicas aplicadas a esta clase de indicadores.

Comenzaremos por una estrategia de seguimiento de tendencia tradicional, basada en la ruptura de los canales. Las reglas de trading serían las siguientes:

1) Cuando el precio rompa el canal por arriba, tomar posiciones largas.
2) Cuando el precio rompa el canal por abajo, tomar posiciones cortas.

Además, vamos a recoger ganancias si se alcanza un 0.2% de beneficios.

Por último, y como es de costumbre, añadiremos un horario de operativa entre las 9:00 y las 19:00.

El diseño del sistema quedaría de la siguiente forma:

Código PDV


Código VBA

(NOTA: Recuerden que el código aquí expuesto sólo incluye los métodos OnCalculateBar() y OnInitCalculate(). Tengan esto en cuenta a la hora de copiar el sistema).

'¡¡ Parameters
Dim Contratos As Long '1
Dim HoraIni As Integer '900
Dim HoraFin As Integer '1900
Dim EMA_Period As Integer '20
Dim ATR_Period As Integer '10
Dim Constant As Double '2
Dim PctGananancia As Double '2
'Parameters !!
Dim keltnerdata As DataIdentifier
Option Explicit
Public APP As SysUserApp
Implements System
Public Sub System_OnInitCalculate()
With APP
    keltnerdata = .GII(KELTNER02, Data, EMA_Period, ATR_Period, Constant)
End With
End Sub
Public Sub System_OnCalculateBar(ByVal Bar As Long)
With APP
    If (.Time >= HoraIni And .Time < HoraFin) Then
        Dim keltnersup As Double
        Dim keltnerinf As Double
     
        keltnerinf = .GetIndicatorValue(keltnerdata, 0, 1)
        keltnersup = .GetIndicatorValue(keltnerdata, 0, 3)
     
        'entradas
        If (.GetMarketPosition <> 1 And .Close() < keltnersup) Then
            .Buy AtStop, Contratos, keltnersup
        End If
        If (.GetMarketPosition <> -1 And .Close() > keltnerinf) Then
            .Sell AtStop, Contratos, keltnerinf
        End If
        'salidas
        If (.GetMarketPosition = 1) Then
            'salida largos
            If (PctGananancia <> 0) Then
                .ExitLong AtLimit, Contratos, .GetEntryPrice() * (1 + PctGananancia / 100)
            End If
        ElseIf (.GetMarketPosition = -1) Then
            'salida cortos
            If (PctGananancia <> 0) Then
                .ExitShort AtLimit, Contratos, .GetEntryPrice() * (1 - PctGananancia / 100)
            End If
        End If
    Else
        If (.GetMarketPosition = 1) Then
            .ExitLong AtClose, Contratos
        ElseIf (.GetMarketPosition = -1) Then
            .ExitShort AtClose, Contratos
        End If
    End If
End With
End Sub

Comentarios

Entradas populares de este blog

Como consultar el GAP % de un conjunto de valores

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

Estudio de las divergencias en el RSI