Aprendiendo a diseñar un sistema comercial basado en CCI

Mohamed Abdelmaaboud | 21 junio, 2022

Introducción

Hoy veremos un nuevo artículo de nuestra serie dedicada al diseño de sistemas comerciales basados en estrategias simples usando los indicadores técnicos más utilizados. Esta vez analizaremos el indicador del Índice del Canal de Mercaderías (CCI). Como siempre, intentaremos explicar los fundamentos del tema para ayudarlo a usted a comprender la idea y su uso. En última instancia, esto podrá ofrecerle información y nuevas ideas que podrá utilizar en su trading.

En este artículo, diseñaremos un sistema comercial basado en CCI. Temas a analizar:

Comenzaremos dando información detallada sobre Commodity Channel Index (CCI), qué mide y cómo podemos calcularlo. Cuando entendamos los fundamentos de lo que estamos haciendo, podremos usar las herramientas de manera más eficiente y encontrar más ideas al respecto. Esto es lo que vamos a ver en el tema "Definición de CCI". Luego, trabajaremos en una estrategia simple que se podrá usar con CCI durante diferentes tendencias o condiciones del mercado; esto es lo que aprenderemos en la parte "Estrategia de CCI". A continuación, aprenderemos cómo podemos diseñar un sistema comercial basado en esta estrategia planificando lo que necesitamos diseñar y lo que queremos que haga la computadora: esa será la parte "Modelo de sistema comercial de CCI". Después, aprenderemos cómo diseñar lo que planeamos según el modelo del sistema comercial, en la parte "Sistema comercial de CCI".

En este artículo, usaremos la plataforma comercial MetaTrader 5 y el editor MetaQuotes Language Editor. Podrá descargar MetaTrader 5 desde este enlace:https://www.metatrader5.com/es/download

Una vez que descargue e instale MetaTrader 5, verá el terminal como en la siguiente imagen:

Terminal MT5

Luego, podrá abrir el editor MetaQuotes Language presionando F4 mientras el terminal comercial está abierto o seleccionando el menú Herramientas en el terminal y luego clicando en MetaQuotes Language Editor:

 Abriendo MQL

O bien presionando el botón IDE en la barra de herramientas de MetaTrader 5:

Botón IDE de MT5

Aquí debemos mencionar las ventajas de la programación en el trading, ya que podrían ayudarnos a ser disciplinados. La disciplina es un factor importante para nuestro éxito comercial, porque las emociones pueden resultar perjudiciales para el comercio: las decisiones correctas deben tomarse según un plan comercial ganador, pero la mayoría de los tráders no pueden tomar la decisión correcta por miedo, codicia u otras emociones.

Las funciones programáticas nos vienen muy bien, ya que podemos programar nuestro plan comercial según nuestras condiciones y luego ejecutarlo. El programa hará lo que necesitemos ciñéndose a nuestras reglas sin involucrar emociones que puedan afectar nuestro trading, lo cual significará que la programación nos ayudará a ser disciplinados. Aquí es donde MQL5 resulta útil, pues nos ayuda a programar nuestras condiciones y planes comerciales de forma que puedan ejecutarse automáticamente en el terminal comercial. Estos programas pueden ser desde muy simples hasta muy complejos, dependiendo de nuestro plan comercial.

Descargo de responsabilidad: El contenido de este artículo tiene fines exclusivamente educativos. Por consiguiente, usted se hará responsable de cualquier acción que realice según el contenido de este artículo, ya que el presente artículo no garantiza ningún tipo de resultado.

Ahora, ya estamos listos para comenzar a construir un nuevo bloque en nuestro aprendizaje. Bien, comencemos... 


Definición de CCI

En esta parte, veremos el indicador Commodity Channel Index (CCI) con más detalle: qué mide, cómo se calcula y cómo usarlo. 

El indicador CCI, creado por Donald Lambert, es un indicador de impulso que mide el precio actual en relación con el precio promedio de un periodo temporal determinado. Cuando Lambert creó este indicador, el objetivo inicial era medir los movimientos cíclicos de las materias primas, pero también puede medir otros instrumentos financieros. El CCI se puede usar para detectar la fuerza de la tendencia y sus reversiones, y este es un resultado normal según su naturaleza como indicador de impulso.

Según el cálculo del CCI y lo que mide, cuando el CCI es alto, significará que los precios están muy por encima de su promedio y viceversa, cuando el CCI es bajo, significará que los precios están muy por debajo de su promedio.

El CCI se calcula con los siguientes pasos:

TP = (High + Low + Close)/3

SMA de TP = Suma de TP/n

Desviación media = Suma de Abs(TP-SMA)/n

CCI = (TP-SMA de TP)/(0,015*desviación media)

Ahora, vamos a tomar un ejemplo para aplicar este cálculo:

Supongamos que tenemos los siguientes datos para un instrumento durante un periodo de 14 días:

Días High Low Close
1 100 90 110
2 130 100 120
3 140 110 130
4 130 100 120
5 120 95 110
6 140 120 130
7 160 130 150
8 170 150 160
9 155 130 140
10 140 120 130
11 160 140 150
12   180 160 170
13   190 170 190
14   200 180 210

Así es como podemos calcular el CCI usando estos datos:

TP = (High + Low + Close)/3

Bien, después de calcular el precio típico, veremos lo siguiente:

Ejemplo CCI1

SMA de TP = Suma de TP/n

El resultado será el siguiente:

Ejemplo CCI2

Abs (TP-SMA)

Aquí lo tenemos:

Ejemplo CCI3

Desviación media = Suma de Abs (TP-SMA)/n

Ejemplo CCI4

CCI = (TP-SMA de TP)/(0,015*Desviación media)

CCI = (196,67-141,19)/(0,015*22,86)

CCI = 55,48/0,3429

CCI = 161,80

En la actualidad, no necesitamos calcular los indicadores manualmente porque MetaTrader 5 ofrece indicadores integrados listos para usar. Podemos usarlos directamente seleccionando el indicador CCI en la plataforma como se muestra en la siguiente imagen:

Insertar CCI

Después de seleccionar CCI, aparecerá la siguiente ventana:

 Ventana de CCI

La ventana anterior del indicador muestra sus parámetros:

Después de indicar todos los parámetros, presionamos Ok y el indicador aparecerá en el gráfico:

Indicador CCI en el gráfico

CCI es un oscilador que fluctúa alrededor y entre 100 y -100


Estrategia de CCI

En esta parte, hablaremos sobre dos estrategias simples que se pueden usar con CCI. Una de las estrategias se puede usar según la tendencia o dirección del mercado (tendencia alcista, tendencia bajista y lateral). La otra supone el cruce simple entre el valor CCI con cero y 100 o -100. Antes de hablar sobre estas estrategias, deberemos mencionar que hay muchas estrategias que se pueden usar con CCI. Deberemos probar cada estrategia nosotros mismos en una cuenta demo para ver si resulta útil o no en nuestras operaciones antes de usarla en una cuenta real.

Entonces, las estrategias serán las siguientes.

Primera estrategia: Uso de CCI según la tendencia del mercado

La tendencia alcista es la dirección del mercado durante la cual los precios crean mínimos y máximos más altos, lo que significa que existe un control por parte de los compradores a medida que los precios suben. En esta condición de mercado, podemos usar CCI como proveedor de señales para generar una señal de compra cuando la línea de CCI supere el nivel 100. Así, CCI > 100. Entonces podremos usar otra herramienta efectiva como la acción del precio, por ejemplo, para obtener beneficios.

CCI > 100 = buy

La señal de Take Profit se puede usar desde otra herramienta que puede resultar más útil, como la acción del precio al romper por debajo del mínimo anterior

La tendencia bajista es la tendencia opuesta a la tendencia alcista: los precios crean máximos más bajos y mínimos más bajos, lo cual significa que los vendedores tienen el control y los precios bajan. En dicho mercado, CCI también se puede usar para generar señales: aparecerá una señal en corto cuando la línea CCI se rompa por debajo del nivel -100. La acción del precio se puede usar para obtener beneficios.

CCI < -100 = short

La señal de take profit se puede tomar de otra herramienta que pueda resultar más útil, como la acción del precio al romper por encima del máximo anterior

Durante los movimientos laterales, podemos encontrar que existe un equilibrio entre compradores y vendedores, por lo que nadie prevalece visualmente en el mercado. Se trata de cualquier situación salvo las tendencias alcista y bajista.

Durante el movimiento lateral, podemos usar CCI para generar señales. Cuando la línea de CCI se rompa por debajo del nivel -100, será una señal de compra y cuando la línea de CCI se rompa por encima de 100, será una señal de take profit. O bien cuando la línea CCI supere los 100, será una señal corta y cuando la línea CCI supere los -100, será una señal de take profit.

CCI < -100 = buy
CCI > 100 = take profit
CCI > 100 = short

CCI < -100 = take profit

Segunda estrategia: Señales de cruce de cero:

En este artículo, podemos usar CCI de una manera diferente, ya que podemos entrar en el mercado según el cruce con el nivel cero y tomar las ganancias según el cruce con los valores 100 y -100 según nuestro tipo de posición (compra o en corto).

Mire el valor de CCI en vivo hasta el nivel cero. Cuando el valor de CCI supere el nivel cero, nos dará una señal de compra y podremos obtener las ganancias cuando el valor de CCI supere el nivel 100.

CCI > 0 = Buy
CCI > 100 = take profit 

Mire el valor de CCI en vivo hasta el nivel cero. Cuando el valor de CCI caiga por debajo del nivel cero, recibiremos una señal corta y podremos obtener ganancias cuando el valor de CCI caiga por debajo de -100.

CCI < 0 = Buy
CCI < 100 = take profit 

Plan de sistema comercial de CCI

Ahora, llegamos a la parte más interesante de este artículo, pues necesitamos programar las estrategias mencionadas para automatizar las señales al aplicar el CCI manualmente.

Bien, ahora necesitamos codificar estas estrategias e informar a la computadora sobre qué hacer según lo que necesitemos exactamente. Comenzaremos diseñando paso a paso un plan para ello.

Primera estrategia: Uso de CCI según la tendencia del mercado:

Necesitamos que el programa compruebe el valor de CCI en cada tick y haga algo según el valor de CCI.

Si el CCI es superior a 100, indicará la necesidad de comprar y si no, no indicará nada.

Plan de tendencia alcista de CCI

Comprobamos el valor de CCI en cada tick y realizamos una acción según este valor.

Si el valor de CCI es inferior a -100, se nos ofrecerá una señal corta y, si no, no se indicará nada.

Plan de tendencia bajista de CCI

Durante los movimientos laterales, necesitaremos que el programa compruebe el valor de CCI y luego haga algo según esto.

Si el valor de CCI es inferior a -100, recibiremos una señal de compra, o bien una señal de take profit. Si el CCI no es inferior a -100, comprobamos si el CCI es superior a -100 e inferior a 100; no hacemos nada (esperamos). Si tampoco hay CCI allí, verificamos si el CCI está por encima de 100. Damos una señal corta y luego comprobamos si el CCI está por debajo de -100; damos una señal de take profit, y si no, verificamos si el valor de CCI está por debajo de 100 y por encima de -100; no hacemos nada (esperamos).

Plan lateral de CCI

Segunda estrategia: Señales de cruce de cero:

Verificamos cada valor CCI del tick y el nivel cero. Cuando el valor de CCI es superior a cero, generamos una señal de compra en el gráfico, y cuando el valor de CCI supera el nivel 100, mostramos una señal de take profit en el gráfico.

Estrategia CCI de cruce del cero - plan de compra

Verificamos cada valor CCI del tick y el nivel cero y cuando el valor CCI esté por debajo del nivel cero, mostraremos una señal corta en el gráfico; cuando el valor CCI esté por debajo de -100, ofreceremos una señal de take profit.

Estrategia CCI de cruce del cero - plan en corto

Sistema comercial de CCI

Ahora, necesitaremos escribir la estrategia mencionada en forma de código para que la computadora haga lo que necesitamos.

Primero, necesitamos codificar un programa simple que muestre en el gráfico los valores de CCI. La programación contendrá los siguientes pasos:

  1. Creación de una matriz de precios.
  2. Clasificación de la matriz de precios a partir de los datos actuales.
  3. Definición de las propiedades de CCI.
  4. Clasificación de los resultados.
  5. Obtención del valor de los datos actuales.
  6. Dibujado de los valores de CCI y muestra de dichos valores en el gráfico.

A continuación, mostraremos cómo codificar los pasos anteriores para crear un programa que permita a la computadora mostrar los valores de CCI en el gráfico de forma automática:

//+------------------------------------------------------------------+
//|                                            Simple CCI System.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //Creating an array of prices
   double ArrayOfPrices[];
   
   //Sorting price array from current data
   ArraySetAsSeries(ArrayOfPrices,true);
   
   //CCI properties Definition
   int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
   
   //Storing results
   CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
   
   //Getting value of current data
   double CCIValue = (ArrayOfPrices[0]);
   
   //Charting CCI values
   Comment ("CCI Value = ",CCIValue);
  }
//+------------------------------------------------------------------+

Después de eso, podremos encontrar este programa (Simple CCI System) en el Navegador, seleccionarlo y ejecutarlo en la plataforma comercial:

Navegador CCI actualizado

El programa (Simple CCI System) se puede abrir clicando dos veces o arrastrándolo y soltándolo en el gráfico. Después de ello, se abrirá la siguiente ventana:

Ventana de Ventana de Simple CCI System

Después de habilitar la opción "Permitir Trading Algorítmico" y presionar ok, el programa (EA) Simple CCI System se adjuntará al gráfico y el valor de CCI se visualizará en el mismo:

Adjuntando Simple CCI System 

Ahora, vamos a aprender a codificar las dos estrategias mencionadas:

CCI > 100 = buy


Se deberán realizar los siguientes pasos:

  1. Creación de una matriz para los precios.
  2. Clasificación de la matriz de precios a partir de los datos actuales.
  3. Definición de las propiedades de CCI.
  4. Clasificación de los resultados.
  5. Obtención del valor de los datos actuales.
  6. Condición del establecimiento de las señales de CCI durante una tendencia alcista.

Aquí podemos ver cómo codificar estos pasos:

//+------------------------------------------------------------------+
//|                                         Uptrend CCI Strategy.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //Creating an array of prices
   double ArrayOfPrices[];
   
   //Sorting price array from current data
   ArraySetAsSeries(ArrayOfPrices,true);
   
   //CCI properties Definition
   int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
   
   //Storing results
   CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
   
   //Getting value of current data
   double CCIValue = (ArrayOfPrices[0]);
   
   //CCI signals for uptrend
   if(CCIValue> 100)
   Comment ("UPTREND CCI - BUY SIGNAL ");
   
  }
//+------------------------------------------------------------------+

Después de eso, encontraremos este programa de estrategia alcista de CCI en el Navegador:

Navegador de estrategia de tendencia alcista CCI

Volvemos a abrir este programa de estrategia alcista de CCI haciendo doble clic o arrastrándolo y soltándolo en el gráfico. Se abrirá la siguiente ventana:

Ventana de estrategia de tendencia alcista CCI

Después de habilitar "Permitir Trading Algorítmico" y presionar Aceptar, el programa (EA) - Estrategia de tendencia alcista CCI se adjuntará al gráfico:

Adjuntar estrategia de tendencia alcista CCI

Las señales de la estrategia alcista CCI se mostrarán según esta estrategia:

Estrategia de tendencia alcista CCI - Señal de compra

CCI < -100 = short

Vamos a codificar los siguientes pasos:

  1. Creación de una matriz para los precios.
  2. Clasificación de la matriz de precios a partir de los datos actuales.
  3. Definición de las propiedades de CCI.
  4. Clasificación de los resultados.
  5. Obtención del valor de los datos actuales.
  6. Condición de establecimiento de señales de CCI durante la tendencia bajista.

A continuación, mostramos el código del programa que se puede iniciar en la plataforma comercial, y ejecutar automáticamente lo que necesitemos:

//+------------------------------------------------------------------+
//|                                       Downtrend CCI Strategy.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //Creating an array of prices
   double ArrayOfPrices[];
   
   //Sorting price array from current data
   ArraySetAsSeries(ArrayOfPrices,true);
   
   //CCI properties Definition
   int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
   
   //Storing results
   CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
   
   //Getting value of current data
   double CCIValue = (ArrayOfPrices[0]);
   
   //CCI signals
   if(CCIValue< -100)
   Comment ("DOWNTREND CCI - SHORT SIGNAL ");
  }
//+------------------------------------------------------------------+

Echemos un vistazo a este programa Estrategia de tendencia bajista CCI en el Navegador:

Navegador de estrategia de tendencia bajista CCI

Abrimos este programa Estrategia de tendencia bajista CCI haciendo doble clic o arrastrándolo y soltándolo en el gráfico. Se abrirá la siguiente ventana:

Ventana de estrategia de tendencia bajista CCI

Habilitamos "Permitir Trading Algorítmico" y presionamos Aceptar; el programa (EA) - Estrategia de tendencia bajista CCI se adjuntará al gráfico:

Adjuntar estrategia de tendencia bajista CCI

Las señales del programa de estrategia de tendencia bajista CCI aparecerán según esta estrategia igual que en la siguiente imagen:

Estrategia de tendencia bajista CCI - Señal corta

CCI < -100 = buy

CCI > 100 = take profit

Pasos:

  1. Creación de una matriz para los precios.
  2. Clasificación de la matriz de precios a partir de los datos actuales.
  3. Definición de las propiedades de CCI.
  4. Clasificación de los resultados.
  5. Obtención del valor de los datos actuales.
  6. Condición de establecimiento de la señal de compra de CCI durante el movimiento lateral.

Vamos a codificar estos pasos para crear un programa que pueda hacer lo que necesitamos:

//+------------------------------------------------------------------+
//|                                  Sideways CCI Strategy - Buy.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //Creating an array of prices
   double ArrayOfPrices[];
   
   //Sorting price array from current data
   ArraySetAsSeries(ArrayOfPrices,true);
   
   //CCI properties Definition
   int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
   
   //Storing results
   CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
   
   //Getting value of current data
   double CCIValue = (ArrayOfPrices[0]);
   
   //CCI signals
   if(CCIValue< -100)
   Comment ("SIDEWAYS CCI - BUY SIGNAL ");
   
   if(CCIValue> 100)
   Comment ("SIDEWAYS CCI - TAKE PROFIT");
  }
//+------------------------------------------------------------------+

Veamos este programa Estrategia lateral CCI - Compra, en el Navegador:

 Navegador de estrategia lateral CCI - Compra

Lo abrimos haciendo doble clic o arrastrándolo y soltándolo. Se abrirá la siguiente ventana:


Ventana de estrategia lateral CCI - Compra

Habilitamos "Permitir el Trading Algorítmico" y presionamos Aceptar, el programa (EA) - Estrategia lateral CCI- Compra se adjuntará al gráfico:

Adjuntar estrategia lateral CCI - Compra

Así, podremos encontrar las señales que aparezcan según esta Estrategia lateral CCI - Compra:

Estrategia lateral CCI - Compra

La señal de take profit será en CCI > 100 = take profit. Ejemplo:

Estrategia lateral CCI - Compra - TP

    • Para las señales cortas:

CCI > 100 = short

CCI < -100 = take profit

Vamos a codificar esto usando los siguientes pasos:

  1. Creación de una matriz para los precios.
  2. Clasificación de la matriz de precios a partir de los datos actuales.
  3. Definición de las propiedades de CCI.
  4. Clasificación de los resultados.
  5. Obtención del valor de los datos actuales.
  6. Condición de establecimiento de la señal CCI corta durante el movimiento lateral.

Lo siguiente será codificar estos pasos para crear el programa Estrategia lateral CCI - Short:

//+------------------------------------------------------------------+
//|                                Sideways CCI Strategy - Short.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //Creating an array of prices
   double ArrayOfPrices[];
   
   //Sorting price array from current data
   ArraySetAsSeries(ArrayOfPrices,true);
   
   //CCI properties Definition
   int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
   
   //Storing results
   CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
   
   //Getting value of current data
   double CCIValue = (ArrayOfPrices[0]);
   
   //CCI signals
   if(CCIValue> 100)
   Comment ("SIDEWAYS CCI - SHORT SIGNAL ");
   
   if(CCIValue< -100)
   Comment ("SIDEWAYS CCI - TAKE PROFIT");
  }
//+------------------------------------------------------------------+

Después de ello, el programa Estrategia lateral CCI - Short se podrá encontrar en el Navegador:

Navegador de Estrategia lateral CCI - Short

Abrimos la Estrategia lateral CCI - Short clicando dos veces o arrastrando y soltando en el gráfico. Se abrirá la siguiente ventana:

Ventana de estrategia lateral CCI - short

Después de habilitar "Permitir el trading algorítmico" y presionar ok, el programa (EA) - Estrategia lateral CCI - Short se adjuntará al gráfico y se verá así:

Adjuntar estrategia lateral CCI - Short

Las señales aparecerán según la Estrategia lateral CCI - Short:

Lateral CCI - Short

El take profit se da cuando CCI <-100 = take profit:

Lateral CCI - Short - TP

CCI > 0 = Buy
CCI > 100 = take profit 

Vamos a codificar esto usando los siguientes pasos:

  1. Creación de una matriz para los precios.
  2. Clasificación de la matriz de precios a partir de los datos actuales.
  3. Definición de las propiedades de CCI.
  4. Clasificación de los resultados.
  5. Obtención del valor de los datos actuales.
  6. Condición de establecimiento para el valor CCI y el cruce del nivel cero.

Pasos para crear el programa Estrategia de cruce del nivel cero de CCI - Compra:

//+------------------------------------------------------------------+
//|                            Zero crossover CCI Strategy - Buy.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //Creating an array of prices
   double ArrayOfPrices[];
   
   //Sorting price array from current data
   ArraySetAsSeries(ArrayOfPrices,true);
   
   //CCI properties Definition
   int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
   
   //Storing results
   CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
  
   //Getting value of current data
   double CCIValue = (ArrayOfPrices[0]);
   
   //CCI signals
   if(CCIValue > 0)
   Comment ("Zero crossover CCI - BUY SIGNAL ");
   
   if(CCIValue > 100)
   Comment ("Zero crossover CCI - TAKE PROFIT");
  }
//+------------------------------------------------------------------+

Veamos el programa Estrategia de cruce del nivel cero de CCI - Compraen el Navegador:

Navegador de la estrategia de cruce del nivel cero de CCI - Compra

Abrimos este programa haciendo doble clic o arrastrando y soltando en el gráfico. Se abrirá la siguiente ventana:

Estrategia de cruce del nivel cero de CCI - Ventana de compra


Después de habilitar "Permitir el Trading Algorítmico" y presionar Aceptar, el programa (EA) - Estrategia de cruce del nivel cero de CCI - Compra se adjuntará al gráfico:

Adjuntar estrategia de cruce del nivel cero de CCI - Compra

Las señales aparecerán según la estrategia de cruce del nivel cero de CCI - Compra:

Estrategia de cruce del nivel cero de CCI - Compra

El take profit se dará cuando CCI > 100 = take profit y la siguiente imagen es un ejemplo de ello:

Estrategia de cruce del nivel cero de CCI - Compra - TP

CCI < 0 = Buy
CCI < -100 = take profit 

Vamos a codificar esto usando los siguientes pasos:

  1. Creación de una matriz para los precios.
  2. Clasificación de la matriz de precios a partir de los datos actuales.
  3. Definición de las propiedades de CCI.
  4. Clasificación de los resultados.
  5. Obtención del valor de los datos actuales.
  6. Condición de establecimiento para el valor CCI y el cruce del nivel cero.

Pasos para codificar el programa Estrategia de cruce del nivel cero de CCI - Short:

//+------------------------------------------------------------------+
//|                          Zero crossover CCI Strategy - Short.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //Creating an array of prices
   double ArrayOfPrices[];
   
   //Sorting price array from current data
   ArraySetAsSeries(ArrayOfPrices,true);
   
   //CCI properties Definition
   int CCIDef = iCCI(_Symbol,_Period,14,PRICE_CLOSE);
   
   //Storing results
   CopyBuffer(CCIDef,0,0,3,ArrayOfPrices);
   
   //Getting value of current data
   double CCIValue = (ArrayOfPrices[0]);
   
   //CCI signals
   if(CCIValue < 0)
   Comment ("Zero crossover CCI - SHORT SIGNAL ");
   
   if(CCIValue < -100)
   Comment ("Zero crossover CCI - TAKE PROFIT");
  }
//+------------------------------------------------------------------+

Después de eso, podemos ver este programa Estrategia de cruce del nivel cero de CCI - Shorten el Navegador:

Navegador de estrategia de cruce del nivel cero de CCI

Abrimos este programa estrategia de cruce del nivel cero de CCI - Short haciendo doble clic en él o arrastrándolo y soltándolo en el gráfico. Se abrirá la siguiente ventana:

Estrategia de cruce del nivel cero de CCI - Ventana de short

Después de habilitar "Permitir trading algorítmico" y presionar Aceptar, el programa (EA) - Estrategia de cruce del nivel cero de CCI - Short se adjuntará al gráfico:

Estrategia de cruce del nivel cero de CCI - Conexión corta

Las señales aparecerán según la Estrategia de cruce del nivel cero de CCI - Short:

Estrategia de cruce del nivel cero de CCI - Short

El take profit se dará cuando CCI < -100 = take profit y la siguiente imagen es un ejemplo de ello:

Estrategia de cruce del nivel cero de CCI - Short - TP

Conclusión

El indicador Commodities Channel Index (CCI) es otra herramienta que podemos usar en nuestro trading para obtener mejores resultados después de probar cada estrategia de CCI y optimizarla si resulta rentable tras las pruebas. Este artículo puede considerarse una introducción a una nueva herramienta comercial que podemos usar según nuestro plan y estilo de negociación. 

En este artículo, hemos visto qué es el indicador CCI, qué muestra y qué mide, y también cómo podemos calcularlo. Asimismo, hemos visto un ejemplo que nos permite profundizar en nuestros conocimientos sobre esta herramienta, lo cual puede abrirnos los ojos a más conocimientos y a nuevas ideas.

Después, hemos visto estrategias simples que CCI puede usar durante diferentes condiciones de mercado (tendencia alcista, bajista y lateral) y una estrategia de cruce del nivel cero. Como hemos mencionado, CCI puede usar muchas estrategias: podemos explorar más este tema para saber cuál de ellas resulta útil para nuestro comercio; no obstante, si nos familiarizamos con sus conceptos básicos, su uso resultará más efectivo.

Además, hemos aprendido a diseñar un modelo para esta estrategia que puede resultar útil para escribir un programa propio con el que diseñar un sistema comercial basado en CCI. Luego, hemos visto cómo codificar esta estrategia con MQL5 y cómo adjuntar y ejecutar este sistema comercial en nuestra plataforma comercial Meta Trader 5 para generar señales automáticamente. También hemos analizado cómo podemos generar señales en nuestros gráficos.

Ahora, el lector necesita asegurarse de probar cualquier estrategia nueva antes de usarla en vivo en su cuenta real. Esperamos que encuentre este artículo útil, y que su trading usando la información obtenida (o ideas propias asociadas a ella) pueda reportarle éxitos comerciales.