Aprendiendo a diseñar un sistema de trading con Envelopes

17 mayo 2022, 13:37
Mohamed Abdelmaaboud
0
372

Introducción

En el artículo anterior, hablamos sobre uno de los indicadores más populares, las Bandas de Bollinger, que nos permite comerciar con bandas. El artículo está disponible en el siguiente enlace: Aprendiendo a diseñar un sistema de trading con las Bandas de Bollinger

Como ya se mencionó en dicho artículo sobre las Bandas de Bollinger, el concepto comercial de las bandas contiene una variedad de métodos existentes que podemos usar. Cada método posee un enfoque diferente según su cálculo y su estrategia, pero lo más común es el concepto que implica el comercio con las bandas.

Ahora, compartiremos otro método dentro del concepto de comercio con bandas: el indicador Envelopes. El indicador está representado por dos bandas que rodean el precio y su media móvil. En este artículo, analizaremos algunos detalles más, incluidos los siguientes temas:

Basándonos en estos temas, intentaremos analizar el indicador de forma que podamos entenderlo en profundidad. La información debería ayudar a desarrollar una mejor estrategia (o plan) comercial para generar mejores resultados. Entonces, apoyándonos en el tema de la definición de Envelopes, compartiremos con ustedes más detalles sobre el concepto de dicho indicador. Así, analizaremos su sistema de cálculo para una mejor comprensión del concepto. Luego, intentaremos desarrollar estrategias que mejorarán nuestros resultados comerciales.

En la parte Estrategia de Envelopes, compartiremos con el lector algunas estrategias básicas favorables que nos servirán como ejemplos de uso, descubriéndonos más estrategias para obtener resultados mucho mejores. Luego, en la sección "Plan de sistema de estrategia comercial con Envelopes", un tema muy interesante, analizaremos un modelo que nos permitirá crear un sistema comercial usando estrategias con el indicador Envelopes. Más adelante, en la parte "Sistema comercial de Envelopes", veremos distintos diseños de un sistema comercial basado en las estrategias del indicador Envelopes en el lenguaje MQL5, que podremos usar en MetaTrader 5.

Esperamos que este artículo resulte útil al lector, y que encuentre además algunas ideas que lo ayuden a desarrollar su propio sistema comercial o a mejorar sus resultados comerciales.

¡Importante!Todos los códigos de este artículo están escritos en MQL5 y se pueden ejecutar en MetaTrader 5. Por lo tanto, deberá tener MetaTrader 5 para ejecutar las aplicaciones. Si aún no tiene el terminal MetaTrader 5, podrá descargarlo siguiendo el siguiente enlace: https://www.metatrader5.com/es/download

Después de descargarlo, la siguiente imagen mostrará la ventana de MetaTrader 5:

Plataforma MT5

La siguiente imagen muestra cómo podemos abrir el MetaQuotes Language Editor (MetaEditor) y escribir códigos:

Abriendo el Metaeditor 1

Otro método para abrirlo:

Abriendo el Metaeditor 2

También podrá presionar F4 mientras la ventana de MetaTrader 5 se encuentre abierta.

Luego se abrirá la siguiente ventana:

Ventana del Metaeditor

Aquí se explica cómo abrir un archivo nuevo:

Ventana del Metaeditor


Metaeditor - Nuevo archivo


  1. Abrir un nuevo archivo para escribir un asesor experto
  2. Abrir un nuevo archivo para escribir un indicador personalizado
  3. Abrir un nuevo archivo para escribir un script

Para obtener más información, podrá leer el artículo: Aprenda por qué y cómo diseñar su sistema de trading algorítmico

Descargo de responsabilidad: el contenido de este artículo tiene exclusivamente fines educativos. Por lo tanto, usted asumirá la responsibilidad de cualquier acción realizada basada en el contenido del presente artículo, pues este no garantiza en forma alguna ningún tipo de resultados.

Ahora, vamos a comenzar a estudiar el indicador Envelopes para ver cómo puede resultar beneficioso para nuestro comercio.


Definición de Envelopes

El indicador Envelopes es un método de comercio con bandas y, como ya hemos mencionado, existen muchos métodos para operar con estas, como las bandas de Bollinger, los canales, Envelopes y otros.

En pocas palabras, podemos decir que el indicador Envelopes supone dos bandas que rodean la media móvil en un cierto porcentaje fijo, y normalmente rodean los precios. Estos bandas se pueden usar para filtrar los movimientos de tendencia y en el comercio durante el movimiento lateral.

A veces, durante las tendencias, nos enfrentamos a algunos movimientos en la dirección opuesta, como falsas rupturas o sierras. Dichos movimientos pueden generar una señal falsa, después de la cual la situación regresará a su escenario opuesto. Por ejemplo, si los precios cruzan la media móvil hacia arriba, esto sirve como señal de un movimiento alcista. Luego giran y cruzan la media móvil hacia abajo, es decir, lo opuesto al anterior cruce ascendente. Por cierto, podrá leer más sobre las medias móviles, su uso y la creación de sistemas comerciales basados en las mismas en el artículo: Cómo desarrollar sistemas basados ​​en medias móviles

MA cruza una falsa ruptura

En la figura anterior, después de que el precio cruza la media móvil desde arriba, esta gira y vuelve a subir.

A veces también tenemos movimientos laterales y hay un equilibrio entre compradores y vendedores o no hay una tendencia obvia y necesitamos beneficiarnos de este movimiento.

En estos casos, el indicador Envelopes puede resultar útil, ya que actuar como un filtro para los movimientos durante las tendencias. Si el precio cruza la media móvil desde arriba, esperamos que el precio cruce la banda superior del indicador Envelopes.

MA cruza sin bandas


Como podemos ver en la figura anterior para el mismo movimiento que mencionamos antes, el precio ha cruzado la media móvil de arriba pero no ha cruzado la banda superior del indicador Envelopes. Por lo tanto, no podemos actuar según este cruce, solo entonces descubrimos que los precios han bajado nuevamente.

Aquí necesitamos mencionar algo interesante sobre el análisis técnico, ya que tiene muchos métodos y estrategias que se pueden combinar de forma que podamos generar mejores resultados.

Como hemos mencionado anteriormente, Envelopes supone dos bandas que rodean los precios, por lo que las bandas más anchas brindarán menores probabilidades de ser tocadas, mientras que las bandas estrechas ofrecerán mayores probabilidades de ser tocadas.

Ahora bien, ¿cómo podemos calcular el indicador Envelopes? Los bandas de Envelopes se establecen en un cierto porcentaje de la media móvil. Este porcentaje depende de la acción del precio, el marco temporal y la estrategia del usuario.

Para calcular Envelopes, debemos:

  1. Calcular la media móvil
  2. El % de Envelopes = la media móvil * %
  3. La banda superior de Envelopes = media móvil + el % determinado de media móvil
  4. La banda inferior de Envelopes = media móvil - el % determinado de la media móvil

Veamos un ejemplo de cómo hacerlo.

Si disponemos de los siguientes datos para los precios de 14 días:

Ejemplo de cálculo

Cálculo de Env

  • Calculamos el % de Envelopes según nuestras preferencias

Cálculo de Env 2

  • Calculamos la banda superior de Envelopes

Cálculo de Env 3

  • Calculamos la banda inferior de Envelopes

Cálculo de Env 4

Este cálculo se realizará en cada tick, luego los valores de la banda superior se dibujarán por encima de los precios y los valores de la banda inferior se dibujarán por debajo de los precios.

Pero hoy no lo haremos manualmente, ya que tenemos todo calculado e integrado en la plataforma; lo único que debemos hacer es seleccionarlo para que se dibuje en nuestro gráfico. Las siguientes imágenes muestran cómo hacerlo:

Inserto del indicador


Inserto del indicador 1


Parámetro del indicador


La figura anterior muestra los parámetros de Envelopes para:

  1. Establecer el periodo de la media móvil.
  2. El % de Envelopes.
  3. El tipo de precio (cierre, precio mediano, precio típico, etc.)
  4. El valor que se cambiará para Envelopes en el gráfico.
  5. El tipo de media móvil.
  6. El color de la banda superior de Envelopes
  7. El estilo de línea de banda superior de Envelopes.
  8. El color de la banda inferior de Envelopes.
  9. El estilo de línea de la banda inferior de Envelopes.

Después de determinar todos los parámetros, el indicador aparecerá en el gráfico tal como se muestra en la siguiente imagen:

Indicador en el gráfico



Estrategia de Envelopes

En esta parte, compartiremos algunas de las estrategias de Envelopes. Estas estrategias se utilizan según la condición del mercado o la dirección del mismo.

Como todos sabemos, en el mercado hay una tendencia alcista, una tendencia bajista y movimientos laterales. Según la dirección específica del mercado, utilizaremos una estrategia específica que nos permitirá beneficiarnos de este movimiento del mercado.

Para ello, podemos combinar Envelopes con otras herramientas y crear una estrategia basada en esta combinación. Los resultados de un uso combinado de este tipo pueden ser mejores que el uso de una sola herramienta. Por consiguiente, podemos combinar el indicador Envelopes con otra herramienta como el patrón de acción del precio, por ejemplo, tomando una señal del indicador Envelopes y usando otra señal o la señal de confirmación de un patrón de precios. De forma opcional, podemos usar otro indicador de análisis técnico. Creo que, dentro del comercio basado en el análisis técnico, este es un enfoque increíble que permite combinar más de un concepto y obtener resultados con los que mejorar nuestras decisiones.

Según eso, dividiremos nuestras estrategias en aquellas que se pueden usar durante los movimientos de tendencia y aquellas que se pueden usar durante los movimientos laterales. 

    Durante los mercados de tendencia
      • Estrategia 1: tendencia alcista

        Durante los mercados de tendencia alcista, los precios se mueven en la tendencia alcista haciendo mínimos más altos y máximos más altos. Ahora, necesitamos saber cómo actuarán los precios y el indicador Envelopes durante la tendencia alcista.

        Como este indicador supone un porcentaje de la media móvil que es una media para un periodo de precios, durante la tendencia alcista los precios se moverán por encima de la banda superior del indicador Envelopes. Entonces, nuestra estrategia aquí durante la tendencia alcista será la siguiente:

        Obtendremos la señal de compra cuando los precios crucen la banda superior de Envelopes hacia arriba, luego se aplicará un take profit cuando los precios crucen la banda inferior de Envelopes hacia abajo.

        • Precios > Banda Superior = comprar
        • Precios < Banda inferior = take profit

        Estrategia 1 - Tendencia alcista

        • Estrategia 2: Tendencia bajista

        Durante los mercados con tendencia bajista, los precios se mueven en la tendencia bajista haciendo máximos y mínimos más bajos. Ahora, necesitamos saber cómo actuarán los precios y el indicador Envelopes durante la tendencia bajista.

        Durante la tendencia bajista, los precios se moverán por debajo de la banda inferior del indicador Envelopes. Entonces, nuestra estrategia aquí durante la tendencia bajista será la siguiente:

        Obtendremos una señal corta cuando los precios crucen la banda inferior del indicador Envelopes hacia abajo, luego se aplicará un take profit cuando los precios crucen la banda superior del indicador Envelopes hacia arriba.

        • Precios < Banda inferior = corto
        • Precios > Banda superior = take profit

        Estrategia 2 - tendencia bajista


        • Estrategia 3: Movimiento lateral:

        Durante los mercados de movimiento lateral, los precios se mueven en algunas de las formaciones laterales haciendo los mismos máximos y mínimos. O bien existe un equilibrio entre compradores y vendedores sin que una parte controle a la otra y esta de forma simple oscila entre dos niveles. Esto muestra el equilibrio. Eso sí, lo mencionado no significa que no haya otras formas para los movimientos laterales, pero es bueno saber que el movimiento lateral supone cualquier movimiento o forma, excepto la tendencia alcista y la tendencia bajista. Ahora, necesitamos saber cómo actuarán los precios y el indicador Envelopes durante los movimientos laterales.

        Durante los movimientos laterales, los precios se moverán entre la banda inferior y la banda superior del indicador Envelopes. Entonces, nuestra estrategia aquí durante el movimiento lateral será la siguiente:

        Obtendremos una señal de compra cuando los precios toquen la banda inferior de Envelopes, luego se aplicará un take profit cuando los precios toquen la banda superior de Envelopes. Obtendremos una señal corta cuando los precios toquen la banda superior de Envelopes, luego se aplicará un take profit cuando los precios toquen la banda inferior de Envelopes.

        • Precios = Banda inferior = comprar
        • Precios = Banda superior = take profit
        • Precios = Banda superior = corto
        • Precios = Banda inferior = take Profit

        Estrategia 3 - Movimiento lateral

        Debemos tener en cuenta que estas estrategias solo se ofrecen aquí para ayudarnos a comprender cómo se puede usar el indicador. Este proceso requiere mejoras y un mayor desarrollo para su uso adecuado. Asegúrese de probar siempre a fondo cada estrategia que lea o aprenda. Nunca las use sin ponerlas antes a prueba y verificar sus resultados, especialmente si las estrategias si han construido con fines educativos.


        Plan de sistema de estrategia comercial con Envelopes

        En esta parte, diseñaremos las estrategias mencionadas como un modelo para determinar qué queremos hacer exactamente y qué queremos que haga el programa. Vamos a ello.

          Durante los mercados de tendencia
            • Estrategia 1: tendencia alcista
                • Precios > Banda Superior = comprar
                • Precios < Banda inferior = take profit

              Entonces, el plan para esta estrategia será como sigue:

              Plan de estrategia de tendencia alcista


                • Estrategia 2: Tendencia bajista:
                    • Precios < Banda inferior = corto
                    • Precios > Banda superior = take profit

                  Entonces, el plan para esta estrategia será como sigue:

                  Plan de estrategia con tendencia bajista

                    Durante el movimiento lateral,
                      • Estrategia 3: Movimiento lateral:
                          • Precios = Banda inferior = comprar
                          • Precios = Banda superior = take profit
                          • Precios = Banda superior = corto
                          • Precios = Banda inferior = take Profit
                        Entonces, el plan para esta estrategia será como sigue:

                        Plan de estrategia con movimiento lateral



                        Sistema comercial de Envelopes

                        En esta parte, veremos cómo, usando MQL5, podemos codificar estas estrategias en forma de programas EA (Expert Advisors). Esto nos puede ayudar a mejorar nuestro trading e identificar señales de forma automática y sencilla. Ahora, veremos cómo codificar un asesor Envelopes básico y le daremos instrucciones a nuestro programa para comentar los valores superior e inferior del indicador Envelopes en el gráfico.

                        Vamos a diseñar un programa que nos permita ver los valores de las bandas superior e inferior de Envelopes como comentarios en el gráfico:

                        //+------------------------------------------------------------------+
                        //|                                          Simple Envelopes EA.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"
                        
                        //+------------------------------------------------------------------+
                        //| Expert tick function                                             |
                        //+------------------------------------------------------------------+
                        void OnTick()
                          {
                           //Creating an array for price info
                           MqlRates PriceInfo[];
                           
                           //Sorting it from current data to old data
                           ArraySetAsSeries(PriceInfo, true);
                           
                           //Copy prices data to array
                           int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo);
                           
                           //Creating two arrays for prices of upper and lower band
                           double UpperBandArray[];
                           double LowerBandArray[];
                           
                           //Identify Envelopes indicator
                           int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.100);
                           
                           //Copying prices data to arrays
                           CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray);
                           CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray);
                           
                           //Calculation for the current data
                           double UpperBandValue=NormalizeDouble(UpperBandArray[0],6);
                           double LowerBandValue=NormalizeDouble(LowerBandArray[0],6);
                           
                           //Comments on the chart with values of Band of Envelopes
                           Comment("Envelopes Upper Band =",UpperBandValue,"\n" "Envelopes Lower Band =",LowerBandValue,"\n");
                           
                          }
                        //+------------------------------------------------------------------+
                        

                        El código en MetaTrader 5 se puede ejecutar como se muestra en las siguientes imágenes:

                        Envelopes básicos, Inserto de EA

                        Arrastre y suelte el archivo en el gráfico o clique dos veces en el archivo, luego se ejecutará el código y se abrirá la siguiente ventana.

                        1

                        Después de eso, el programa aparecerá en el gráfico:

                        11

                        Después de ejecutar el código en el terminal comercial MetaTrader 5, veremos el siguiente gráfico y las señales en él:

                        Asesor de Envelopes Básicos


                        Tenemos dos bandas del indicador Envelopes, la banda inferior y la banda superior, y podemos ver sus valores en el gráfico.

                        Ahora, codificaremos las tres estrategias mencionadas: la estrategia uno consiste en comprar y usar take profit durante la tendencia alcista; la estrategia dos consiste en comerciar en corto y usar take profit durante la tendencia bajista; la estrategia tres, a su vez, consiste en comprar durante el movimiento lateral y en la banda inferior, y usar take profit en la banda superior, luego comerciar en corto en la banda superior y usar take profit en la banda inferior. 

                          Durante los mercados de tendencia
                            • Estrategia 1: tendencia alcista:
                                • Precios > Banda Superior = comprar
                                • Precios < Banda inferior = take profit

                              El siguiente código sirve para diseñar el programa que ejecuta esta estrategia:

                              //+------------------------------------------------------------------+
                              //|                                   Envelopes uptrend 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"
                              
                              //+------------------------------------------------------------------+
                              //| Expert tick function                                             |
                              //+------------------------------------------------------------------+
                              void OnTick()
                                {
                                 //Creating an array for price info
                                 MqlRates PriceInfo[];
                                 
                                 //Sorting it from current data to old data
                                 ArraySetAsSeries(PriceInfo, true);
                                 
                                 //Copy prices data to array
                                 int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo);
                                 
                                 //Creating two arrays for prices of upper and lower band
                                 double UpperBandArray[];
                                 double LowerBandArray[];
                                 
                                 //Identify Envelopes indicator
                                 int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.100);
                                 
                                 //Copying prices data to arrays
                                 CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray);
                                 CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray);
                                 
                                 //Calculation for the current data
                                 double UpperBandValue=NormalizeDouble(UpperBandArray[0],6);
                                 double LowerBandValue=NormalizeDouble(LowerBandArray[0],6);
                                 
                                 //Comment Buy signal on the chart or no signal
                                 if (PriceInfo[0].close > UpperBandValue)
                                 Comment("Envelopes Buy Signal");
                                 
                                 if (PriceInfo[0].close < LowerBandValue)
                                 Comment("Envelopes Take Profit or Stop Loss");
                                 
                                }
                              //+------------------------------------------------------------------+
                              

                              El código de MetaTrader se puede ejecutar como se muestra en las siguientes imágenes:

                              Inserto de estrategia de tendencia alcista de Envelopes


                              Arrastre y suelte el archivo en el gráfico o clique dos veces en el archivo, luego se ejecutará el código y se abrirá la siguiente ventana.

                              2

                              Después de eso, el programa se adjunta al gráfico:

                              22

                              Después de ejecutar el código en el terminal comercial MetaTrader 5, veremos el siguiente gráfico y las señales en él:

                              Estrategia de tendencia alcista de Envelopes - Señal de compra

                              Como podemos ver en el gráfico anterior, el programa nos da ofrece una señal de compra cuando los precios cruzan por encima de la banda superior durante la tendencia alcista.

                              Estrategia de tendencia bajista de Envelopes - Take Profit

                              Como podemos ver en el gráfico anterior, el programa nos ofrece una señal de take profit cuando los precios cruzan por debajo de la banda inferior.

                                • Estrategia 2: Tendencia bajista
                                    • Precios < Banda inferior = corto
                                    • Precios > Banda superior = take profit

                                  El siguiente código sirve para diseñar el programa que ejecuta esta estrategia:

                                  //+------------------------------------------------------------------+
                                  //|                                 Envelopes Downtrend 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"
                                  
                                  //+------------------------------------------------------------------+
                                  //| Expert tick function                                             |
                                  //+------------------------------------------------------------------+
                                  void OnTick()
                                    {
                                     //Creating an array for price info
                                     MqlRates PriceInfo[];
                                     
                                     //Sorting it from current data to old data
                                     ArraySetAsSeries(PriceInfo, true);
                                     
                                     //Copy prices data to array
                                     int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo);
                                     
                                     //Creating two arrays for prices of upper and lower band
                                     double UpperBandArray[];
                                     double LowerBandArray[];
                                     
                                     //Identify Envelopes indicator
                                     int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.100);
                                     
                                     //Copying prices data to arrays
                                     CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray);
                                     CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray);
                                     
                                     //Calculation for the current data
                                     double UpperBandValue=NormalizeDouble(UpperBandArray[0],6);
                                     double LowerBandValue=NormalizeDouble(LowerBandArray[0],6);
                                     
                                     //Comment Buy signal on the chart or no signal
                                     if (PriceInfo[0].close < LowerBandValue)
                                     Comment("Envelopes Short Signal");
                                     
                                     if (PriceInfo[0].close > UpperBandValue)
                                     Comment("Envelopes Take Profit or Stop Loss");
                                     
                                    }
                                  //+------------------------------------------------------------------+

                                  Podemos ejecutar el código de MetaTrader 5 como se ve en las siguientes imágenes:

                                  Inserto de estrategia de tendencia bajista de Envelopes


                                  Arrastre y suelte el archivo en el gráfico o clique dos veces en el archivo, luego se ejecutará el código y se abrirá la siguiente ventana.

                                  3

                                  Después de ello, veremos el programa adjunto al gráfico:

                                  33

                                  Estrategia de tendencia bajista de Envelopes - Señal de transacción corta

                                  Como podemos ver en el gráfico anterior, el programa nos ofrece una señal para la apertura de una transacción corta cuando los precios cruzan por debajo de la banda inferior durante la tendencia bajista.

                                  Estrategia de tendencia bajista de Envelopes - Take Profit

                                  Como podemos ver en el gráfico anterior, el programa nos ofrece una señal de take profit cuando los precios cruzan por encima de la banda superior durante la tendencia bajista.

                                    • Estrategia 3: Movimiento lateral
                                  • Precios = Banda inferior = comprar
                                  • Precios = Banda superior = take profit
                                  El siguiente código sirve para diseñar el programa que ejecuta esta estrategia:
                                  //+------------------------------------------------------------------+
                                  //|                              Envelopes Sideways Buy 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"
                                  
                                  //+------------------------------------------------------------------+
                                  //| Expert tick function                                             |
                                  //+------------------------------------------------------------------+
                                  void OnTick()
                                    {
                                     //Creating an array for price info
                                     MqlRates PriceInfo[];
                                     
                                     //Sorting it from current data to old data
                                     ArraySetAsSeries(PriceInfo, true);
                                     
                                     //Copy prices data to array
                                     int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo);
                                     
                                     //Creating two arrays for prices of upper and lower band
                                     double UpperBandArray[];
                                     double LowerBandArray[];
                                     
                                     //Identify Envelopes indicator
                                     int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.150);
                                     
                                     //Copying prices data to arrays
                                     CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray);
                                     CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray);
                                     
                                     //Calculation for the current data
                                     double UpperBandValue=NormalizeDouble(UpperBandArray[0],6);
                                     double LowerBandValue=NormalizeDouble(LowerBandArray[0],6);
                                     
                                     //Comment Buy signal on the chart or no signal
                                     if (PriceInfo[0].close <= LowerBandValue)
                                     Comment("Envelopes Buy Signal");
                                     
                                     if (PriceInfo[0].close >= UpperBandValue)
                                     Comment("Envelopes Take Profit");
                                     
                                     if (PriceInfo[0].close > LowerBandValue
                                     &&  PriceInfo[0].close < UpperBandValue)
                                     Comment("No Signal"); 
                                    }
                                  //+------------------------------------------------------------------+
                                  
                                  El código en MetaTrader 5 se puede ejecutar como se muestra en las siguientes imágenes:

                                  Inserto de estrategia de venta con movimiento lateral de Envelopes


                                  Arrastre y suelte el archivo en el gráfico o clique dos veces en el archivo, luego se ejecutará el código y se abrirá la siguiente ventana.

                                  4

                                  Después de eso, el programa aparecerá en el gráfico:

                                  44

                                  Estrategia de compra con movimiento lateral de Envelopes - Sin señal

                                  Después de ejecutar el código en el terminal comercial MetaTrader 5, veremos el siguiente gráfico y las señales en él:

                                  Estrategia de compra con movimiento lateral de Envelopes - Señal de compra

                                  Como podemos ver en el gráfico anterior, el programa nos ofrece una señal de compra cuando los precios tocan la banda inferior durante el movimiento lateral.


                                  Estrategia de compra con movimiento lateral de Envelopes - Take Profit

                                  Como podemos ver en el gráfico anterior, el programa nos ofrece una señal de Take Profit cuando los precios tocan la banda superior durante el movimiento lateral.

                                  • Precios = Banda superior = corto
                                  • Precios = Banda inferior = take Profit

                                  El siguiente código sirve para diseñar el programa que ejecuta esta estrategia:

                                  //+------------------------------------------------------------------+
                                  //|                            Envelopes Sideways Short 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"
                                  
                                  //+------------------------------------------------------------------+
                                  //| Expert tick function                                             |
                                  //+------------------------------------------------------------------+
                                  void OnTick()
                                    {
                                     //Creating an array for price info
                                     MqlRates PriceInfo[];
                                     
                                     //Sorting it from current data to old data
                                     ArraySetAsSeries(PriceInfo, true);
                                     
                                     //Copy prices data to array
                                     int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo);
                                     
                                     //Creating two arrays for prices of upper and lower band
                                     double UpperBandArray[];
                                     double LowerBandArray[];
                                     
                                     //Identify Envelopes indicator
                                     int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.150);
                                     
                                     //Copying prices data to arrays
                                     CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray);
                                     CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray);
                                     
                                     //Calculation for the current data
                                     double UpperBandValue=NormalizeDouble(UpperBandArray[0],6);
                                     double LowerBandValue=NormalizeDouble(LowerBandArray[0],6);
                                     
                                     //Comment Buy signal on the chart or no signal
                                     if (PriceInfo[0].close >= UpperBandValue)
                                     Comment("Envelopes Short Signal");
                                     
                                     if (PriceInfo[0].close <= LowerBandValue)
                                     Comment("Envelopes Take Profit");
                                    
                                     if (PriceInfo[0].close > LowerBandValue
                                     &&  PriceInfo[0].close < UpperBandValue)
                                     Comment("No Signal"); 
                                     
                                    }
                                  //+------------------------------------------------------------------+
                                  
                                  El código en MetaTrader 5 se puede ejecutar como se muestra en las siguientes imágenes:

                                  Inserto de estrategia de venta con movimiento lateral de Envelopes


                                  Arrastre y suelte el archivo en el gráfico o clique dos veces en el archivo, luego se ejecutará el código y se abrirá la siguiente ventana.

                                  5

                                  Después de eso, el programa aparecerá en el gráfico:

                                  55

                                  Estrategia de venta con movimiento lateral de Envelopes - Sin señal

                                  Como podemos ver en el gráfico anterior, el programa nos ofrece Sin señal cuando los precios se mueven entre la banda superior y la banda inferior durante el movimiento lateral.


                                  Estrategia de venta con movimiento lateral de Envelopes - Señal de venta

                                  Como podemos ver en el gráfico anterior, el programa nos ofrece una señal de transacción corta cuando los precios tocan la banda superior durante el movimiento lateral.

                                  Estrategia de venta con movimiento lateral de Envelopes - Take Profit

                                  Como podemos ver en el gráfico anterior, el programa nos ofrece una señal de Take Profit cuando los precios tocan la banda inferior durante el movimiento lateral.


                                  Conclusión

                                  En este artículo, hemos analizado el concepto de bandas comerciales usando el indicador Envelopes. También hemos visto los beneficios de las bandas comerciales y las formas en que se puede usar el indicador Envelopes durante las tendencias y durante los movimientos laterales.

                                  También hemos visto cómo se calcula Envelopes, mostrando a la vez que el interior de lo que estamos usando siempre es bueno. Envelopes es uno de los indicadores que pueden ofrecernos nuevos conocimientos e ideas sobre la mejora de nuestros resultados y decisiones comerciales.

                                  Asimismo, hemos analizado una estrategia simple que permite utilizar el indicador en diferentes condiciones de mercado: tanto con tendencia alcista y bajista, como con movimiento lateral. También hemos visto cómo podemos diseñar un modelo de sistema comercial que nos ayude a comprender la situación del mercado, y también hemos considerado cómo codificar fácilmente las estrategias estudiadas.

                                  Además, el artículo presenta un código en MQL5 relacionado con la implementación de las estrategias basadas en Envelopes. Querríamos mencionar de nuevo que el objetivo principal de este artículo es enseñar cómo la codificación puede resultar útil en el comercio y cómo esta puede ayudarnos a comerciar de manera fácil y efectiva.

                                  Recomendamos al lector que escriba sus propios códigos y los ejecute para mejorar su comprensión del tema. Esperamos que este artículo le resulte útil para ampliar sus conocimientos y mejorar su trading.


                                  Traducción del inglés realizada por MetaQuotes Software Corp.
                                  Artículo original: https://www.mql5.com/en/articles/10478

                                  Desarrollando un EA comercial desde cero (Parte 09): Un salto conceptual (II) Desarrollando un EA comercial desde cero (Parte 09): Un salto conceptual (II)
                                  Colocación del Chart Trade en una ventana flotante. En el artículo anterior creamos el sistema base para utilizar templates dentro de una ventana flotante.
                                  Desarrollando un EA comercial desde cero (Parte 08): Un salto conceptual (I) Desarrollando un EA comercial desde cero (Parte 08): Un salto conceptual (I)
                                  ¿Cómo implementar una nueva funcionalidad de la forma más sencilla posible? Aquí daremos un paso atrás y luego daremos dos pasos adelante.
                                  Desarrollando un EA comercial desde cero (Parte 10): Acceso a los indicadores personalizados Desarrollando un EA comercial desde cero (Parte 10): Acceso a los indicadores personalizados
                                  ¿Cómo acceder a los indicadores personalizados directamente en el EA? A un EA comercial solo se le sacará partido realmente si se puede usar indicadores personalizados en él, de lo contrario, será solo un conjunto de códigos e instrucciones.
                                  Desarrollando un EA comercial desde cero (Parte 07): Adición de el Volume At Price (I) Desarrollando un EA comercial desde cero (Parte 07): Adición de el Volume At Price (I)
                                  Este es uno de los indicadores más poderosos que existen. Para aquellos que operan y tratan de tener un cierto grado de asertividad, no pueden dejar de tener este indicador en su gráfico, aunque es más utilizado por aquellos que operan observando el flujo («tape reading») también puede ser utilizado por aquellos que utilizan sólo la acción del precio.