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

Mohamed Abdelmaaboud | 28 abril, 2022

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: 

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:

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.

    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:

    EURUSDWeekly - estrategia BB alcista

    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:

    EURUSDDaily - Estrategia BB bajista

    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.

    GBPUSD1H - BB con estrategia lateral


    En la imagen anterior:

    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 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:

    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 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:

     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:

    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:

    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:

     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