English Русский 中文 Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Aprendiendo a diseñar un sistema de trading con las Bandas de Bollinger

Aprendiendo a diseñar un sistema de trading con las Bandas de Bollinger

MetaTrader 5Trading | 28 abril 2022, 15:45
1 555 12
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introducción

En el mundo del trading, existen muchas herramientas y métodos que podemos usar a nuestro favor para conseguir nuestros objetivos. Estas herramientas se pueden utilizar según las condiciones del mercado o según el estado del este. 

Uno de dichos métodos son las bandas de trading. El concepto principal de las bandas de trading consiste en comerciar entre dos bandas comprando y vendiendo para obtener beneficios de las bandas determinadas. Una de estas herramientas es el indicador de Bandas de Bollinger. Este indicador es uno de los más populares y utilizados en el mundo del análisis técnico y el trading.

En este artículo, compartiremos información sobre las Bandas de Bollinger para entender mejor qué son, cómo las calculamos y cómo podemos usarlas a nuestro favor. Después, el lector podrá usar dicha información de la forma que prefiera, según su estrategia. A continuación, veremos cómo podemos diseñar un sistema comercial usando el indicador de Bandas de Bollinger de una manera precisa y fácil. Así, hoy abarcaremos los siguientes temas:

    1. Definición de las Bandas de Bollinger
    2. Estrategias con las Bandas de Bollinger
    3. Diseño de Sistemas de Estrategias con Bandas de Bollinger
    4. Conclusión
    5. Referencias

      Como veremos, las Bandas de Bollinger miden la dispersión de los datos alrededor de su media. Este indicador fue creado por John Bollinger. Está construido por dos bandas que rodean una media móvil de 20 días para medir la dispersión de los datos (precios) alrededor de su media (media móvil de 20 días). 

      Puede parecer que el indicador de Bandas de Bollinger es lo mismo que el indicador Envelopes, puesto que también tiene dos bandas que rodean los precios. Sin embargo, esto no es así: a diferencia de Envelopes, las Bandas de Bollinger no se colocan en un porcentaje fijo más allá de la media móvil; su cálculo, al contrario, permite que el indicador de Bandas de Bollinger se expanda o se contraiga según la desviación estándar de la media móvil. Hoy aprenderemos este y otros detalles en el apartado "Definición de las Bandas de Bollinger".

      También aprenderemos cómo se pueden usar las Bandas de Bollinger con algunas estrategias de forma que resulten expresivas y beneficiosas para nuestro trading, y esto seguro que se encontrará en el apartado "Estrategias con Bandas de Bollinger".

      Luego pasaremos a la parte más interesante del artículo: cómo utilizar estas estrategias en un sistema de trading algorítmico de forma precisa y fiable. Esto es lo que aprenderemos en las secciones "Estrategias con Bandas de Bollinger" y "Diseño de Sistemas de Estrategias con Bandas de Bollinger".


      Tenga en cuenta que: 
      • Todos los códigos en este artículo estarán escritos en MQL5 y la ejecución se dará en MetaTrader 5.
      • Le aconsejo que escriba y ejecute los códigos por su propia cuenta, si desea practicar y mejorar su aprendizaje.
      • Por consiguiente, usted necesitará el terminal MetaTrader 5 para ejecutar los códigos y el MetaEditor de MQL5 para escribir los códigos; las siguientes imágenes son para ellos.

      Descargue e instale MetaTrader 5 en su dispositivo. Podrá descargarlo desde el siguiente enlace: https://www.metatrader5.com/es/download. Después de ello, usted encontrará la ventana de MetaTrader 5, que tendrá el aspecto siguiente:

      Plataforma MT5


      Puede abrir el MetaEditor pulsando F4 al abrir el terminal de MetaTrader 5 o desde la pestaña de Herramientas, seleccionando el Editor de Lenguaje MetaQuotes. Las siguientes imágenes muestran cómo abrir el MetaEditor para escribir nuestros códigos desde MetaTrader 5:

      Apertura del Metaeditor 1


      Apertura del Metaeditor 2

      La siguiente imagen muestra la ventana abierta del MetaEditor: 

      Ventana del metaeditor


      La siguiente imagen muestra cómo crear un nuevo archivo para escribir nuestro código:

      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 más información, podrá leer mi anterior artículo siguiendo el enlace: https://www.mql5.com/es/articles/10293/

      Como me gusta mencionar siempre en diferentes eventos, la programación o codificación es una herramienta increíble que nos permite hacer nuestra vida fácil y sencilla, usando para ello acciones precisas y automatizadas. Por lo tanto, a la hora de gestionar inversiones, resulta un objetivo importante aprender a usar la programación de forma adecuada para alcanzar las metas deseadas en diferentes áreas de la vida.
      Cuando hablamos de trading, debemos imaginar cómo hacer nuestra vida fácil y agradable al dar instrucciones a nuestra computadora para conseguir lo que queremos y en el momento necesario; entonces el ordenador hará exactamente lo que deseamos, sin ninguna objeción, dejándonos las manos libres para hacer cualquier otra cosa en nuestra vida. Es un estilo de vida increíble, así que será un objetivo importante articular la codificación o programación de forma adecuada, incluso si vamos a codificar por nuestra cuenta o dejar que alguien lo haga por nosotros.

      Descargo de responsabilidad

      Todo el contenido de este artículo tiene solo fines educativos, no de ninguna otra clase. Por lo tanto, usted será responsable de cualquier acción realizada sobre la base del contenido de este artículo, ya que este no garantiza ningún tipo de resultados.

      Bien, vamos a ver una a una las secciones del artículo para aprender más sobre este interesante tema y el indicador.

      Definición de las Bandas de Bollinger

      La historia de la idea de las bandas de trading es larga e interesante y se utiliza de muchas maneras. Las bandas de trading se basan principalmente en la construcción de bandas por encima y por debajo de alguna medida de tendencia. 

      Por ejemplo, podemos usar medias móviles desplazadas hacia arriba y hacia abajo en un porcentaje de sí mismas, o Envelopes. Además, hay canales que son dos líneas paralelas por encima y por debajo de los precios para detectar puntos de inflexión. Pero todos estos métodos son fijos y no reaccionan según los movimientos del precio. En otras palabras, no se expanden ni contraen con los movimientos del precio.

      Las Bandas de Bollinger pueden hacer eso gracias a su cálculo específico. En esta parte, veremos los detalles del cálculo del indicador.

      La siguiente imagen muestra un ejemplo del indicador Envelopes y su aspecto en los precios:

      EURUSDH1 - Envelopes

      Como podemos ver en la imagen anterior, tenemos dos bandas que rodean los precios: la banda inferior rodea los precios desde abajo y la banda superior los rodea desde arriba. Entonces, la idea principal que necesitamos saber aquí es que hay muchos métodos basados en bandas de trading de la historia; los más comunes eran las bandas porcentuales. 

      También hay muchos avances en la idea de las bandas de trading. Uno de estos desarrollos es el indicador de Bandas de Bollinger, que se usa para comerciar con bandas. Se diferencia de los métodos anteriores en que puede expandirse y contraerse según lo permita su cálculo.

      El indicador de Bandas de Bollinger fue creado por John Bollinger a principios de los años 80, y es uno de los expertos más populares en el campo del mercado financiero y el trading. Bollinger es un CFA (Analista Financiero Colegiado) y un CMT (Técnico de Mercado Colegiado).

      El indicador de Bandas de Bollinger es un indicador técnico muy popular que mide la volatilidad y puede expandirse y contraerse según las condiciones del mercado. Se puede usar en todos los mercados financieros de acciones, divisas... etc. Ahora, vamos a hablar de la construcción de las Bandas de Bollinger:

      Como hemos mencionado antes, el concepto de bandas de trading comienza con alguna medida de tendencia central. Luego construimos las bandas por encima y por debajo de esta medida. Para el indicador de Bandas de Bollinger, la medida de la tendencia central es la media móvil simple, y el intervalo se define según la medida de volatilidad para una desviación estándar móvil.

      El indicador de Bandas de Bollinger:

      • Mide la dispersión de los datos alrededor de su media (media móvil).
      • Es un indicador de volatilidad.
      • La diferencia entre las bandas de Bollinger y Envelopes o cualquier método de porcentaje de bandas de trading es que tienen porcentajes específicos de media móvil por encima y por debajo de la misma, pero las bandas de Bollinger son una desviación estándar de la media móvil.
      • Las bandas se amplían automáticamente cuando aumenta la volatilidad y se contraen cuando la volatilidad disminuye. Su naturaleza dinámica nos permite usarlas en diferentes valores con la configuración estándar.
      • Las Bandas de Bollinger son una herramienta comercial que se usa para determinar los puntos de entrada y salida de una transacción.
      • Las bandas se utilizan a menudo para determinar las condiciones de sobrecompra y sobreventa.
      • Podemos usarlas para identificar M-Tops y W-Bottoms o para determinar la fuerza de la tendencia.
      La siguiente fórmula muestra cómo se calculan las Bandas de Bollinger:

      Cálculo de BB

      Veamos ahora un ejemplo de cálculo de Bandas de Bollinger:
        Supongamos que tenemos precios de cierre para 20 días hábiles como en el siguiente recuadro:
             Número de día   
             Precio de Cierre $  
          1 20
          2 30
          3 35
           4 30 
           5 40 
          6 45
          7 50
          8 55
          9 40
          10 45
          11 50
          12 35
          13 40
          14 50
          15 60
          16 65
          17 70
          18 60
          19 70
          20 75

          Cálculo de BB

          Entonces, el cálculo de las Bandas de Bollinger será como sigue:

             Ejemplo de cálculo de BB


            Ejemplo de cálculo de BB 1


            Ajustando la Configuración:

            Ahora bien, si alguien me preguntara si podemos ajustar la configuración de las Bandas de Bollinger de alguna otra manera para que podamos adoptarlas con nuestra estrategia o plan comercial, la respuesta sería que sí: podemos hacerlo, especialmente si estos ajustes se han puesto a prueba y nos han dado buenos resultados. Y también tenemos que saber que Bollinger recomienda hacer pequeños ajustes para el multiplicador de desviación estándar. Asimismo, debemos saber que si cambiamos el periodo de la media móvil esto afectará al periodo usado para calcular la desviación estándar. Bollinger también sugiere aumentar el multiplicador de desviación estándar a 2,1 si usamos una media móvil simple de 50 periodos y reducirlo a 1,9 si usamos una media móvil simple de 10 periodos. 

            Ahora, en el mundo actual, no necesitamos realizar los cálculos manualmente, pero tenemos el indicador listo e integrado en MetaTrader 5. Las siguientes imágenes muestran cómo añadir o adjuntar el indicador a nuestro gráfico. Seleccione el menú Insertar en MetaTrader 5:

            1- insertar indicador BB

            Luego elija Indicadores, después Tendencia, y finalmente Bandas de Bollinger:

            2- insertar indicador BB

            Después de seleccionar el indicador de Bandas de Bollinger, aparecerán los parámetros de la ventana del indicador. Dicha ventana muestra los parámetros por defecto del indicador. Tiene los siguientes parámetros ajustables:

            1.    Periodo para seleccionar el periodo de la media móvil.

            2.    Desviaciones para seleccionar el parámetro de desviación de las bandas superior e inferior.

            3.    Aplicar a: para seleccionar el tipo de precios cuyos parámetros se aplicarán (Cierre, Apertura, Máximo, Mínimo, Precio Mediano, Precio Típico y Cierre Ponderado).

            4.    Estilo: para seleccionar el estilo del indicador (color, forma y anchura de las líneas del indicador.

            5.    Cambio: para establecer un valor para aplicar el cambio para el indicador.

            Asimismo, como hemos mencionado antes, podemos ajustar esta configuración según las entradas del tráder y su estrategia.


            3- parámetros de BB

            Ahora, podemos ver el dibujo del indicador de Bandas de Bollinger en el gráfico de precios, que se mostrará igual que en la siguiente imagen:


            EURUSDH1 - BB


            Ahora, tenemos el dibujo del indicador de Bandas de Bollinger en el gráfico de precios, que se mostrará igual que en la siguiente imagen: 

            Estrategias con las Bandas de Bollinger

            En este apartado, hablaremos sobre las estrategias con las Bandas de Bollinger y aprenderemos a usarlas de forma rentable.

            Podemos usar las Bandas de Bollinger con diferentes condiciones de mercado o diferentes movimientos de mercado, podemos usarlas durante la tendencia alcista, bajista y lateral. Aunque hay muchas estrategias que podemos usar con cada condición del mercado, aquí mencionaremos solo algunas de ellas.

            • Durante una tendencia alcista.

            Primero, necesitamos entender cómo se moverán los precios durante la tendencia alcista con la media móvil, ya que podemos encontrar que los precios se mueven la mayor parte del tiempo durante la tendencia alcista por encima de su media (media móvil).

            Por eso, veremos que durante la tendencia alcista, los precios se mueven entre la media móvil y la banda superior la mayor parte del tiempo. Esto significa que los precios hacen mínimos más altos y máximos más altos, ya que hay más control por parte de los compradores.

            Tendencia alcista

            Tendencia alcista


            Aquí, las bandas de Bollinger pueden ayudarnos a identificar esta tendencia alcista, ya que podemos encontrar que los precios se mueven entre la media móvil y la banda superior. La siguiente imagen es un ejemplo de ello: como podemos ver, los precios en la zona verde se mueven durante la tendencia alcista entre la media móvil y la banda superior:

            EURUSDWeekly - BB con tendencia alcista

            La estrategia que mencionaremos aquí, es en la que necesitamos:
            • Comprar cuando los precios crucen por encima de la media móvil y el objetivo sea la banda superior.
              • Precios > MA = Compra, Banda Superior = Objetivo

            EURUSDWeekly - estrategia BB alcista

            • Durante una tendencia bajista

            Primero, necesitamos entender cómo se moverán los precios durante la tendencia bajista con la media móvil, ya que podemos encontrar que los precios se mueven la mayor parte del tiempo durante la tendencia bajista por debajo de su media (media móvil).

            Por eso, veremos que durante la tendencia bajista, los precios se mueven entre la media móvil y la banda inferior la mayor parte del tiempo. Esto significa que los precios hacen máximos más bajos y mínimos más bajos, ya que hay más control por parte de los vendedores.

            Tendencia a la baja

            Tendencia a la baja

            Aquí, las bandas de Bollinger pueden ayudarnos a identificar esta tendencia bajista, ya que podemos encontrar que los precios se mueven entre la media móvil y la banda inferior. La siguiente imagen es un ejemplo de ello: como podemos ver, los precios en la zona roja se mueven durante la tendencia bajista entre la media móvil y la banda inferior:

            EURUSDDaily - BB con tendencia bajista

            La estrategia que mencionaremos aquí, es en la que necesitamos:
            • Abrimos en corto cuando los precios crucen por debajo de la media móvil y el objetivo se encuentre en la banda inferior.
              • Precios < MA = Venta Corta, Banda Inferior = Objetivo

            EURUSDDaily - Estrategia BB bajista

            • Durante el movimiento lateral

            Primero, necesitamos entender cómo se mueven los precios durante los movimientos laterales, ya que podemos encontrar que los movimientos laterales son cualquier movimiento, excepto la tendencia alcista y la tendencia bajista.

            Los movimientos laterales muestran un equilibrio entre compradores y vendedores, ya que no existe un control total sobre el mercado por parte de uno de los grupos. Las siguientes imágenes son ejemplos de algunos movimientos laterales:

            Movimiento lateral 1

            Movimiento lateral 2

            Movimiento lateral 3

            Movimiento lateral 4

            El siguiente es un ejemplo real de movimiento lateral; podemos ver claramente que los precios en la zona verde se mueven lateralmente sin una dirección clara hacia arriba o hacia abajo:

             Movimiento lateral 


            Las cifras anteriores son ejemplos de movimiento lateral. Hay más de los mencionados, pero el concepto de movimiento lateral implica cualquier movimiento excepto las tendencias alcista y bajista.


            Ahora, necesitamos saber cómo actuará el movimiento lateral con la media móvil: los precios no respetan la media móvil, ya que esta será cruzada hacia arriba y hacia abajo. La siguiente figura es un ejemplo de ello:

             MA con movimiento lateral

            Entonces, ¿cómo pueden moverse los precios con el indicador de Bandas de Bollinger? Los precios se mueven entre la banda inferior y la banda superior, y la siguiente imagen es un ejemplo de ello:

            GBPUSD1H - BB con movimiento lateral

            Según lo que sabemos, los precios se mueven entre la banda inferior y la banda superior, por lo que la estrategia aquí durante los movimientos laterales será comprar en la banda inferior y el objetivo será la Banda Superior, o bien vender en corto en la banda superior y el objetivo será la banda inferior.
            • Precios en Banda Inferior = Comprar, Banda Superior = Objetivo
            • Precios en Banda Superior = Vender, Banda Inferior = Objetivo

            GBPUSD1H - BB con estrategia lateral


            En la imagen anterior:
            • Podemos comprar en la banda inferior y obtener ganancias en la banda superior.
            • Podemos vender en la banda superior y obtener ganancias en la banda inferior.

            Diseño de Sistemas de Estrategias con Bandas de Bollinger

            En esta interesante parte, aprenderemos a codificar un sistema comercial algorítmico basado en el indicador de Bandas de Bollinger. También aprenderemos a crear las tres estrategias comerciales que hemos mencionado antes (estrategia de tendencia alcista, estrategia de tendencia bajista y estrategia lateral).

            Podemos diseñar nuestro propio sistema comercial como queramos, desde un sistema comercial simple hasta un sistema comercial avanzado. Por ejemplo, podemos crear y diseñar un sistema comercial simple que genere una señal simple basada en un concepto simple y luego actúe de acuerdo con esta señal, o podemos crear y diseñar un sistema comercial avanzado que no solo nos dé una señal simple, sino una señal avanzada basada en una combinación de conceptos relacionados, ejecutándola automáticamente. Hay muchos enfoques diferentes. En este artículo, veremos un sistema comercial simple: lo crearemos con fines educativos solo para aprender el concepto. Usando este conocimiento como base, podremos desarrollar sistemas similares o diseñar un sistema comercial propio con nuestros propios términos. Espero que este artículo le resulte útil y le ayude a alcanzar sus objetivos comerciales o de inversión.

            Primero, aprenderemos cómo diseñar un código de Bandas de Bollinger puro que permita generar tres comentarios en el gráfico con el valor de la media móvil, el valor de la banda superior y el valor de la banda inferior.

            Aquí tenemos el código para hacer eso:

            //+------------------------------------------------------------------+
            //|                                       Simple Bollinger Bands.mq5 |
            //|                                  Copyright 2022, MetaQuotes Ltd. |
            //|                                             https://www.mql5.com |
            //+------------------------------------------------------------------+
            
            //+------------------------------------------------------------------+
            //| Expert tick function                                             |
            //+------------------------------------------------------------------+
            void OnTick()
              {
               //create an array for several prices
               double MiddleBandArray[];
               double UpperBandArray[];
               double LowerBandArray[];
               
               //sort the price array from the cuurent candle downwards
               ArraySetAsSeries(MiddleBandArray,true);
               ArraySetAsSeries(UpperBandArray,true);
               ArraySetAsSeries(LowerBandArray,true);
               
               //define Bollinger Bands
               int BollingerBands = iBands(_Symbol,_Period,20,0,2,PRICE_CLOSE);
               
               //copy price info into the array
               CopyBuffer(BollingerBands,0,0,3,MiddleBandArray);
               CopyBuffer(BollingerBands,1,0,3,UpperBandArray);
               CopyBuffer(BollingerBands,2,0,3,LowerBandArray);
               
               //calcualte EA for the cuurent candle
               double MiddleBandValue=MiddleBandArray[0];
               double UpperBandValue=UpperBandArray[0];
               double LowerBandValue=LowerBandArray[0];
               
               //comments
               Comment("MiddleBandValue: ",MiddleBandValue,"\n",
               "UpperBandValue: ",UpperBandValue,"\n","LowerBandValue: ",LowerBandValue,"\n");
               
              }
            //+------------------------------------------------------------------+
            

            Y ahora, después de escribir el código y compilarlo, deberemos asegurarnos de que el código no tenga errores o advertencias, como en la siguiente imagen:

            1- SBB - sin errores

            Luego buscaremos el archivo en la ventana del navegador; lo arrastraremos y lo soltaremos en el gráfico o clicaremos dos veces en él para ejecutarlo y adjuntarlo al gráfico como se muestra en las siguientes imágenes:

             2- SBB - archivo


            3- SBB ventana de ejecución


            La siguiente imagen muestra cómo funciona un gráfico con nuestro programa en marcha:

            4- SBB fijado al gráfico

            Ahora, vamos a aprender a diseñar estrategias propias simples con Bandas de Bollinger.
              Estrategia 1:
                • Plan de estrategia con la Banda de Bollinger de tendencia alcista: 
                • Precios > MA = Comprar, Banda superior = Tomar objetivo, O = Sin señal

                Plan de estrategia con tendencia alcista de BB

                Aquí tenemos el código para hacer eso:

                //+------------------------------------------------------------------+
                //|                                          Uptrend BB strategy.mq5 |
                //|                                  Copyright 2022, MetaQuotes Ltd. |
                //|                                             https://www.mql5.com |
                //+------------------------------------------------------------------+
                //+------------------------------------------------------------------+
                //| Expert tick function                                             |
                //+------------------------------------------------------------------+
                void OnTick()
                  {
                   //define Ask, Bid
                   double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
                   double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
                   
                   //create an array for several prices
                   double MiddleBandArray[];
                   double UpperBandArray[];
                   double LowerBandArray[];
                   
                   //sort the price array from the cuurent candle downwards
                   ArraySetAsSeries(MiddleBandArray,true);
                   ArraySetAsSeries(UpperBandArray,true);
                   ArraySetAsSeries(LowerBandArray,true);
                   
                   //define Bollinger Bands
                   int BollingerBands = iBands(_Symbol,_Period,20,0,2,PRICE_CLOSE);
                   
                   
                   //copy price info into the array
                   CopyBuffer(BollingerBands,0,0,3,MiddleBandArray);
                   CopyBuffer(BollingerBands,1,0,3,UpperBandArray);
                   CopyBuffer(BollingerBands,2,0,3,LowerBandArray);
                   
                   //calcualte EA for the cuurent candle
                   double MiddleBandValue=MiddleBandArray[0];
                   double UpperBandValue=UpperBandArray[0];
                   double LowerBandValue=LowerBandArray[0];
                   
                   //giving buy signal when price > MA
                   if (
                      (Ask>=MiddleBandArray[0])
                   && (Ask<UpperBandArray[0])
                      )
                         {
                         Comment("BUY");
                         }
                    
                   //check if we have a take profit signal      
                   if (
                      (Bid>=UpperBandArray[0])
                      )
                         {
                         Comment("TAKE PROFIT");
                         }  
                   
                      //check if we have no signal      
                   if (
                      (Ask<MiddleBandArray[0])
                      )
                         {
                         Comment("NO SIGNAL");
                         }  
                  }
                //+------------------------------------------------------------------+

                Las siguientes capturas de pantalla muestran las señales de esta estrategia:

                Tendencia alcista de BB - compra


                Tendencia alcista de BB - take profit

                Tendencia alcista de BB - Sin señal

                A continuación, deberemos realizar los siguientes pasos para:
                • Asegurarnos de que nuestro código no tenga errores ni advertencias.
                • Encontrar el archivo
                • Ejecutar el código arrastrando y soltando, o bien clicando dos veces en el archivo que se adjuntará en el gráfico

                5- UBB - sin errores

                 6- archivo UBB


                7- ventana de ejecución de UBB


                La siguiente imagen muestra el gráfico después de la ejecución del código. Aquí el programa se está ejecutando en el gráfico:

                8- UBB adjunto al gráfico

                  Estrategia 2:
                    • Plan de estrategia con la Banda de Bollinger de tendencia bajista:
                    • Precios < MA = Venta Corta, Banda Inferior = Objetivo

                    Plan de estrategia con tendencia bajista de BB

                    Aquí tenemos el código para hacer eso:

                    //+------------------------------------------------------------------+
                    //|                                        Downtrend BB strategy.mq5 |
                    //|                                  Copyright 2022, MetaQuotes Ltd. |
                    //|                                             https://www.mql5.com |
                    //+------------------------------------------------------------------+
                    //+------------------------------------------------------------------+
                    //| Expert tick function                                             |
                    //+------------------------------------------------------------------+
                    void OnTick()
                      {
                       //define Ask, Bid
                       double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
                       double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
                       
                       //create an array for several prices
                       double MiddleBandArray[];
                       double UpperBandArray[];
                       double LowerBandArray[];
                       
                       //sort the price array from the cuurent candle downwards
                       ArraySetAsSeries(MiddleBandArray,true);
                       ArraySetAsSeries(UpperBandArray,true);
                       ArraySetAsSeries(LowerBandArray,true);
                       
                       //define Bollinger Bands
                       int BollingerBands = iBands(_Symbol,_Period,20,0,2,PRICE_CLOSE);
                       
                       
                       //copy price info into the array
                       CopyBuffer(BollingerBands,0,0,3,MiddleBandArray);
                       CopyBuffer(BollingerBands,1,0,3,UpperBandArray);
                       CopyBuffer(BollingerBands,2,0,3,LowerBandArray);
                       
                       //calcualte EA for the cuurent candle
                       double MiddleBandValue=MiddleBandArray[0];
                       double UpperBandValue=UpperBandArray[0];
                       double LowerBandValue=LowerBandArray[0];
                       
                       //giving sell signal when price < MA
                       if (
                          (Bid<=MiddleBandArray[0])
                       && (Bid>LowerBandArray[0])
                          )
                             {
                             Comment("SELL");
                             }
                        
                       //check if we have a take profit signal      
                       if (
                          (Ask<=LowerBandArray[0])
                          )
                             {
                             Comment("TAKE PROFIT");
                             }  
                       
                          //check if we have no signal      
                       if (
                          (Bid>MiddleBandArray[0])
                          )
                             {
                             Comment("NO SIGNAL");
                             }  
                      }
                    //+------------------------------------------------------------------+

                    Las siguientes capturas de pantalla muestran las señales generadas por esta estrategia:

                    Tendencia bajista de BB - venta

                    Tendencia bajista de BB - take profit

                    Tendencia bajista de BB - sin señal


                    A continuación, realizamos nuevamente los pasos (mostrados en las capturas de pantalla) para:
                    • Asegurarnos de que nuestro código no tenga errores ni advertencias.
                    • Encontrar el archivo
                    • Ejecutar el código arrastrando y soltando, o bien clicando dos veces en el archivo que se adjuntará en el gráfico

                     9- DBB - sin errores

                     10- archivo DBB


                     11- ventana de ejecución de DBB


                    Este es el aspecto del programa en el gráfico después de la ejecución

                     12- DBB adjunto al gráfico



                      Estrategia 3:
                        • Plan de estrategia con la Banda de Bollinger de tendencia lateral:
                        • Precios en Banda Inferior = Comprar, Banda Superior = Objetivo
                        • Precios en Banda Superior = Vender, Banda Inferior = Objetivo

                        13- Plan de estrategia con BB lateral


                        Aquí tenemos el código para hacer eso:

                        A-   Señal de compra que se genera al tocar la banda inferior,

                        //+------------------------------------------------------------------+
                        //|                                     Buy sideways BB strategy.mq5 |
                        //|                                  Copyright 2022, MetaQuotes Ltd. |
                        //|                                             https://www.mql5.com |
                        //+------------------------------------------------------------------+
                        //+------------------------------------------------------------------+
                        //| Expert tick function                                             |
                        //+------------------------------------------------------------------+
                        void OnTick()
                          {
                           //define Ask, Bid
                           double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
                           double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
                           
                           //create an array for several prices
                           double MiddleBandArray[];
                           double UpperBandArray[];
                           double LowerBandArray[];
                           
                           //sort the price array from the cuurent candle downwards
                           ArraySetAsSeries(MiddleBandArray,true);
                           ArraySetAsSeries(UpperBandArray,true);
                           ArraySetAsSeries(LowerBandArray,true);
                           
                           //define Bollinger Bands
                           int BollingerBands = iBands(_Symbol,_Period,20,0,2,PRICE_CLOSE);
                           
                           
                           //copy price info into the array
                           CopyBuffer(BollingerBands,0,0,3,MiddleBandArray);
                           CopyBuffer(BollingerBands,1,0,3,UpperBandArray);
                           CopyBuffer(BollingerBands,2,0,3,LowerBandArray);
                           
                           //calcualte EA for the cuurent candle
                           double MiddleBandValue=MiddleBandArray[0];
                           double UpperBandValue=UpperBandArray[0];
                           double LowerBandValue=LowerBandArray[0];
                           
                           //giving buy signal when price > MA
                           if (
                              (Ask<=LowerBandArray[0])
                              )
                                 {
                                 Comment("BUY");
                                 }
                            
                           //check if we have a take profit signal      
                           if (
                              (Bid>=UpperBandArray[0])
                              )
                                 {
                                 Comment("TAKE PROFIT");
                                 }  
                           
                          }
                        //+------------------------------------------------------------------+
                        

                        Señales generadas por esta estrategia:

                        Señal de compra - BB lateral

                        TP de la señal Buy - BB lateral


                        Pasos (como se muestra en las capturas de pantalla a continuación) para:
                        • Asegurarnos de que nuestro código no tenga errores ni advertencias.
                        • Encontrar el archivo
                        • Ejecutar el código arrastrando y soltando, o bien clicando dos veces en el archivo que se adjuntará en el gráfico

                        13- BSBB - sin errores

                         14- archivo BSBB


                        15- ventana de ejecución de BSBB


                        Este es el aspecto del programa en el gráfico después de la ejecución


                         16- BSBB fijado al gráfico

                        B-   Señal de venta que se genera al tocar la banda superior,

                        Aquí tenemos el código para hacer eso:
                        //+------------------------------------------------------------------+
                        //|                                    Sell sideways BB strategy.mq5 |
                        //|                                  Copyright 2022, MetaQuotes Ltd. |
                        //|                                             https://www.mql5.com |
                        //+------------------------------------------------------------------+
                        //+------------------------------------------------------------------+
                        //| Expert tick function                                             |
                        //+------------------------------------------------------------------+
                        void OnTick()
                          {
                           //define Ask, Bid
                           double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
                           double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
                           
                           //create an array for several prices
                           double MiddleBandArray[];
                           double UpperBandArray[];
                           double LowerBandArray[];
                           
                           //sort the price array from the cuurent candle downwards
                           ArraySetAsSeries(MiddleBandArray,true);
                           ArraySetAsSeries(UpperBandArray,true);
                           ArraySetAsSeries(LowerBandArray,true);
                           
                           //define Bollinger Bands
                           int BollingerBands = iBands(_Symbol,_Period,20,0,2,PRICE_CLOSE);
                           
                           
                           //copy price info into the array
                           CopyBuffer(BollingerBands,0,0,3,MiddleBandArray);
                           CopyBuffer(BollingerBands,1,0,3,UpperBandArray);
                           CopyBuffer(BollingerBands,2,0,3,LowerBandArray);
                           
                           //calcualte EA for the cuurent candle
                           double MiddleBandValue=MiddleBandArray[0];
                           double UpperBandValue=UpperBandArray[0];
                           double LowerBandValue=LowerBandArray[0];
                           
                           //giving sell signal when price < MA
                           if (
                              (Bid>=UpperBandArray[0])
                              )
                                 {
                                 Comment("SELL");
                                 }
                            
                           //check if we have a take profit signal      
                           if (
                              (Ask<=LowerBandArray[0])
                              )
                                 {
                                 Comment("TAKE PROFIT");
                                 }  
                          }
                        //+------------------------------------------------------------------+
                        

                        Las siguientes son capturas de pantalla de la señal generada por esta estrategia:

                        Señal de venta - BB lateral

                        TP de la señal Sell - BB lateral


                        Pasos (como se muestra en las capturas de pantalla a continuación) para:
                        • Asegurarnos de que nuestro código no tenga errores ni advertencias.
                        • Encontrar el archivo
                        • Ejecutar el código arrastrando y soltando, o bien clicando dos veces en el archivo que se adjuntará en el gráfico

                         9- SSBB - sin errores


                         18- archivo SSBB


                         19- ventana de ejecución de SSBB


                        Este es el aspecto del programa en el gráfico después de la ejecución

                        20- SSBB fijado al gráfico


                        Conclusión

                        El concepto de Trading Bands es muy positivo, ya que nos ofrece una expectativa clara del próximo movimiento para aprovechar dicho movimiento y sacar ventaja de él. Hay muchos métodos para comerciar con bandas como Bollinger Bands y, como ya sabíamos, estos suponen un gran herramienta, ya que las bandas pueden expandirse y contraerse con los movimientos del precio, permitiendo su uso con todas las condiciones o tendencias del mercado.

                        Como hemos mencionado antes, en este artículo hemos tratado de compartir el concepto que subyace en los indicadores de Bandas de Bollinger, además de analizar su cálculo para mejorar nuestra comprensión del mismo. Además, hemos enumerado y estudiado estrategias comerciales simples que usan el indicador de Bandas de Bollinger y aprendido cómo diseñar sistemas comerciales simples para estas sencillas estrategias.

                        Ahora, usted podrá desarrollar o diseñar estrategias propias que se adapten a su estilo de negociación. Esperamos que este artículo le sirva para aprender algo nuevo y ampliar sus posibilidades comperciales.


                        Referencias

                        • Bollinger on Bollinger Bands by John Bollinger
                        • https://www.bollingerbands.com/about-us
                        • https://www.investopedia.com/trading/using-bollinger-bands-to-gauge-trends
                        • https://school.stockcharts.com/doku.php?id=technical_indicators:bollinger_bands



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

                        Mohamed Abdelmaaboud
                        Mohamed Abdelmaaboud | 7 abr. 2022 en 13:04
                        Vadzim Bandarevich #:

                        ¡Hola^ a todos! Acabo de encontrar un error en la imagen. ¡Ver la imagen correcta en mi archivo adjunto!


                        Hola Vadzim,

                        Gracias por tu comentario. tienes razón ya que es un error, tiene que ser Precio <= Banda inferior ya que esta es la señal de que estamos esperando para cerrar la posición corta abierta.

                        Considerado y ajuste enviado.


                        Gracias,

                        Mohamed

                        kman080
                        kman080 | 25 abr. 2022 en 12:29
                        Buenos días señor como es su trabajo por favor puede ayudarnos a diseñar un sistema de comercio por Ichimoku Kinko Hyo gracias por reagading
                        Mohamed Abdelmaaboud
                        Mohamed Abdelmaaboud | 26 abr. 2022 en 08:57
                        kman080 #:
                        Buenos días señor cómo es su trabajo por favor puede ayudarnos a diseñar un sistema de comercio por Ichimoku Kinko Hyo gracias por reagading

                        Hola kman080,

                        Gracias por tu comentario, intentaré hacerlo.

                        Jacobo Israel Salas
                        Jacobo Israel Salas | 29 abr. 2022 en 08:34
                        Excelente le agradezco mucho no tengo conocimientos tan avanzados como usted pero fue de mucha ayuda para usar el indicador en el nivel en que estoy ahorita adónde aprendiz de verdad admiro la profundidad de su conocimiento muchas gracias saludos
                        Mohamed Abdelmaaboud
                        Mohamed Abdelmaaboud | 29 abr. 2022 en 11:01
                        Jacobo Israel Salas #:
                        Excelente le agradezco mucho no tengo conocimientos tan avanzados como usted pero fue de mucha ayuda para usar el indicador en el nivel en que estoy ahorita adónde aprendiz de verdad admiro la profundidad de su conocimiento muchas gracias saludos

                        gracias por tu comentario, me alegra saber que el artículo te ayudó.

                        Analizando por qué fallan los asesores expertos Analizando por qué fallan los asesores expertos
                        En este artículo, ofrecemos un análisis de los datos de divisas para entender mejor por qué los asesores expertos pueden tener un buen rendimiento en algunos intervalos y un mal rendimiento en otros.
                        Usando la clase CCanvas en las aplicaciones MQL Usando la clase CCanvas en las aplicaciones MQL
                        En este artículo, hablaremos sobre el uso de la clase CCanvas en las aplicaciones MQL, ofreciendo un análisis detallado y con ejemplos del tema. Asimismo, mostraremos a los usuarios los fundamentos necesarios para trabajar con esta herramienta.
                        Indicadores múltiplos em um gráfico (Parte 04): Iniciando pelo EA Indicadores múltiplos em um gráfico (Parte 04): Iniciando pelo EA
                        En artículos anteriores, expliqué cómo crear un indicador con múltiples subventanas, lo que se vuelve interesante cuando usamos un indicador personalizado. Aquí entenderemos cómo añadir múltiples ventanas en un EA.
                        Plantilla para proyectar el MVC y posibilidades de uso (Parte 2): Esquema de interacción entre los tres componentes Plantilla para proyectar el MVC y posibilidades de uso (Parte 2): Esquema de interacción entre los tres componentes
                        Este artículo continúa y completa el tema planteado en el último artículo: la plantilla MVC en los programas MQL. En este artículo, veremos un posible esquema de interacción entre estos tres componentes.