Curso de Programación. 9.1. Commodity Channel Index. Creación de un indicador.

Esta semana hablaremos del indicador Commodity Channel Index, otra herramienta para medir la fuerza de los impulsos. Además, plantearemos una estrategia que utilice dos de los métodos de análisis que ofrece éste indicador. Por último, hemos añadido un anexo donde les mostramos cómo diseñar un indicador que sirva como suplemento para ésta estrategia.

CCI (Commodity Channel Index)
El CCI es un indicador de fuerza creado por Donald Lambert y publicado en 1980. Éste indicador mide la variación que sufre el precio en relación con una media de periodo determinado (normalmente 14).

El cálculo de éste índice sigue la siguiente fórmula:



El resultado es una serie que oscila en torno a cero y que aporta la siguiente información:

1) Cuanto mayor es el valor del CCI, más alejado estará el precio por encima de los precios promedio.
2) Cuanto menor sea el valor del CCI, más alejado estará el precio de debajo de los precios promedio.

Como vemos, el estudio del CCI es muy similar al que se deriva de los indicadores de Momento.

Interpretación de señales
El CCI tiene, como norma general, tres posibles interpretaciones:

1) Como método para confirmar una tendencia.
2) Cómo método para buscar zonas de agotamiento (sobrecompra/sobreventa).
3) Como método para pronosticar nuevas tendencias mediante sus divergencias.

Los métodos 1 y 2 los vamos a ver a continuación en la estrategia propuesta, mientras que el método de divergencias, debido a su complejidad, no lo vamos a tratar en este apartado. No obstante, el estudio de las divergencias del CCI se trató en un artículo anterior de este blog. Si tienen interés en dicho artículo, pueden acceder desde el siguiente enlace:

Divergencias CCI

Estrategia Ruptura Bandas CCI
A continuación vamos a diseñar una estrategia basada en los dos primeros métodos de estudio del CCI.

Puesto que el indicador CCI que ofrece Visual Chart tiene el inconveniente de que no nos permite variar el periodo de la desviación estándar, vamos a usar como indicador de referencia el CCI Ultimate (CCIU). Esta versión del CCI sí que ofrece la posibilidad de trabajar con combinaciones de periodos diferentes. Pueden descargar dicho indicador desde el siguiente enlace:

CCI Ultimate

En cuanto a la estrategia, seguirá las siguientes condiciones:

Siguiendo el método para confirmar tendencias:

1) Cuando el CCIU sea mayor de +100 mantenemos posiciones largas.
2) Cuando el CCIU sea menor de -100 mantenemos posiciones cortas.

Siguiendo el método de ruptura de sobrecompra/sobreventa:
1) Si el CCIU retrocede desde +200 girar a cortos o liquidar.
2) Si el CCIU retrocede desde -200 girar a largos o liquidar.

Es decir, el sistema va a tener en cuenta tanto la señal a favor del movimiento como la señal de agotamiento del impulso, por tanto, será un sistema con negocios a corto plazo:


La estrategia va a permitir al inversor elegir entre girar la posición cuando detecte las señales de agotamiento o bien liquidar las posiciones abiertas. Para ello, añadiremos un parámetro que permita activar una u otra opción (parámetro GirarOSalir).

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

Código PDV



Código VBA

'¡¡ Parameters
Dim Contratos As Long '1
Dim PeriodoP As Integer '30
Dim PeriodoM As Integer '30
Dim MinMov As Double '0.015
Dim BandaCompra As Double '100
Dim BandaVenta As Double '-100
Dim UpperBand As Double '200
Dim LowerBand As Double '-200
Dim GirarOSalir As Integer '0
'Parameters !!
Dim CCIUData As DataIdentifier
Option Explicit
Public APP As SysUserApp
Implements System
Public Sub System_OnInitCalculate()
With APP
    CCIUData = .GetIndicatorIdentifier(CCIU, Data, PeriodoP, PeriodoM, MinMov, 0)
End With
End Sub
Public Sub System_OnCalculateBar(ByVal Bar As Long)
With APP
    Dim CCIact As Double
    Dim CCIant As Double
    Dim CruzaSobreC As Boolean
    Dim CruzaSobreV As Boolean
    CCIact = .GetIndicatorValue(CCIUData)
    CCIant = .GetIndicatorValue(CCIUData, 1, 1)
    If (CCIact > LowerBand And CCIant <= LowerBand) Then
        CruzaSobreV = True
    ElseIf (CCIact < UpperBand And CCIant >= UpperBand) Then
        CruzaSobreC = True
    End If
    If (CCIact > BandaCompra And CCIant <= BandaCompra) Then
        .Buy AtClose, Contratos
    ElseIf (CCIact < BandaVenta And CCIant >= BandaVenta) Then
        .Sell AtClose, Contratos
    End If
    If GirarOSalir = 1 Then
        If .GetMarketPosition = 1 And CruzaSobreC Then
            .ExitLong AtClose, Contratos
        End If
        If .GetMarketPosition = -1 And CruzaSobreV Then
            .ExitShort AtClose, Contratos
        End If
    Else
        If CruzaSobreC Then
            .Sell AtClose, Contratos
        ElseIf CruzaSobreV Then
            .Buy AtClose, Contratos
        End If
    End If
End With
End Sub

Anexo: Creación del indicador CCI 4 Bandas
Como hemos visto, ésta estrategia utiliza cuatro bandas como referencia para las condiciones de entrada y salida. Puesto que el indicador original no incluye la inserción de dichas bandas, vamos a mostrar un ejemplo de cómo crear un indicador que permita añadir las bandas de ruptura.

El indicador que vamos a diseñar estará hecho sobre la Plataforma Visual, ya que es el método más cómodo y sencillo de seguir. El proceso es muy similar al que usamos con los sistemas. Veamos a continuación los pasos a dar:

1) Accedemos al menú de Programación y seleccionamos Crear Indicador en PDV:



2) Elegimos un nombre para el indicador, por ejemplo, "CCI 4 Bandas". El nombre del código pondríamos por ejemplo "CCI4B". Hecho esto, pulsamos aceptar.

3) Desde el panel de diseño, lo primero que haremos será añadir el indicador Ultimate CCI. El proceso para añadir indicadores es el mismo que en el caso de los sistemas:



4) Seguidamente, añadimos como parámetros del indicador las cuatro bandas que queremos pintar:



5) Por último, pintaremos el valor devuelto por el indicador CCIU así como las cuatro bandas incluidas. Para poder pintar, debemos seleccionar la opción Valor Indicador:



Lo más importante que debemos tener en cuenta es que el número de línea tiene que ir incrementándose, porque si no, estaremos sobrescribiendo la información sobre la misma línea: El resultado debe ser un indicador que dibuje cinco líneas (la línea del CCIU y las cuatro líneas asociadas a las bandas):



6) Finalizamos el proceso pulsando el botón Compilar. Si aplicamos el indicador sobre el gráfico, veremos que efectivamente se muestra el indicador CCIU junto con las cuatro bandas:



Comentarios

Entradas populares de este blog

Trading Tools: Descarga de históricos para Visual Chart 6

KDJ - Indicador Stochastic %J

El indicador Relative Strength Mansfield with Index