Como desenvolver um sistema de negociação baseado nas bandas de Bollinger

Mohamed Abdelmaaboud | 15 junho, 2022

Introdução

No trading, existem inúmeras ferramentas e métodos que podem ser utilizados para atingir objetivos de negociação. A escolha de cada uma de tais ferramentas varia dependendo das condições do mercado. 

Um desses métodos consiste no uso de faixas. Basicamente, durante esse tipo de negociação, operamos dentro de um corredor formado por duas bandas. A ferramenta usada para tal propósito é chamada de indicador bandas de Bollinger. É um dos indicadores mais populares e mais frequentemente utilizados no mundo da análise técnica e do trading.

Neste artigo vamos falar sobre o indicador bandas de Bollinger, como é calculado e como utilizá-lo eficazmente. Eventualmente, aprenderemos a utilizar este indicador consoante nossa estratégia. Além disso, desenvolveremos nosso próprio sistema de negociação baseado no indicador bandas de Bollinger. No decurso deste artigo, iremos abordar os seguintes tópicos

  1. Definindo as bandas de Bollinger
  2. Estratégia de negociação baseada nas bandas de Bollinger
  3. Desenvolvendo uma estratégia baseada nas bandas de Bollinger
  4. Epílogo
  5. Referências

O indicador foi criado por John Bollinger. Ele consiste em duas linhas construídas em torno de uma média móvel de 20 dias, para, assim, medir a dispersão de dados (neste caso, os preços) à volta do valor médio (média móvel). Com isso, ficaremos a saber como o indicador mede tal disseminação em torno da média e como trabalhar com ela. 

Embora as bandas de Bollinger possam parecer muito semelhantes ao indicador Envelopes, que também consiste em duas faixas localizadas acima e abaixo do preço, as linhas deste último são desenhadas a uma distância fixa (%) da média móvel, já as linhas do Bollinger podem afastar-se e aproximar-se dependendo de um certo número de desvios padrão. Estas e outras particularidades são explicadas na seção Definindo as bandas de Bollinger.

Também analisaremos a melhor forma de aplicar o indicador bandas de Bollinger ao trading, falaremos sobre isto na secção Estratégia de negociação baseada nas bandas de Bollinger.

Depois veremos como utilizar estratégias por meio de sistemas de automatizados de negociação algorítmica.


Observação: 

Para instalar a plataforma MetaTrader 5 no seu computador, baixe a devida distribuição em: https://www.metatrader5.com/pt/download. Após a instalação, veremos a janela do terminal MetaTrader 5:

Plataforma MetaTrader 5


Para abrir o MetaEditor, pressione F4 com o terminal MetaTrader 5 aberto ou selecione MetaQuotes Language Editor no menu Ferramentas. As imagens abaixo mostram como abrir o editor de código MetaEditor:

Método MetaEditor 1


Método MetaEditor 2

A janela aberta do MetaEditor é assim: 

Janela do MetaEditor


A seguir é necessário criar um novo arquivo, como se mostra na imagem:

MetaEditor - novo arquivo

  1. Criação de novo arquivo para escrever um EA
  2. Criação de novo arquivo para escrever um indicador personalizado
  3. Criação de novo arquivo para escrever um script

Para mais informações, leia meu artigo anterior no link: https://www.mql5.com/pt/articles/10293.

Sempre gosto de dizer que a programação é uma ferramenta maravilhosa que torna as nossas vidas mais fáceis ao permitir a automatização precisa das coisas de que necessitamos. É por isso que é importante investir neste campo, desenvolver-se nele e aprender a fazer o uso correto de todos os recursos para alcançar os objetivos desejados em diferentes áreas da vida.

Imagine, a nível de trading, como a vida pode ser fácil e agradável se você entregar instruções a um computador, dizendo-lhe o que fazer e quando o fazer. O computador fará exatamente o que lhe mandar, sem quaisquer objeções, e nós teremos mais tempo para algo agradável. É por isto que devemos reservar um tempo para aprender a programar e para escrever programas automatizados.

Observação

Todo o conteúdo deste artigo é destinado apenas para fins de treinamento e não é destinado a qualquer outro propósito. Qualquer coisa que você coloque em prática com base neste artigo será por sua própria conta e risco, o autor não garante nenhum resultado.

Passemos ao estudo da matéria de hoje.


Definindo as bandas de Bollinger

A ideia de negociar por meio de faixas é bastante comum, surgiu há muito tempo e é utilizada com vários ativos. Basicamente, o objetivo de tal método é construir linhas acima e abaixo de alguma medida de tendência. 

Desse modo, por exemplo, podemos construir linhas afastadas de uma média móvel por um certo valor percentual, como no caso do indicador Envelopes. Ou também existem canais formados por duas linhas paralelas acima ou abaixo do preço, que nos permitem identificar pontos pivô. Mas a desvantagem desse tipo de métodos é que todos eles são fixos e não reagem às oscilações de preços. Em outras palavras, eles não se expandem, contraem ou mudam com qualquer movimentação do preço.

As características específicas do cálculo do indicador bandas de Bollinger permitem que o indicador seja adaptável. Abaixo veremos como o indicador é calculado.

A imagem abaixo mostra o Envelopes, que é outro indicador baseado em barras:

EURUSDH1 - Envelopes

Como podemos observar, temos duas faixas que envolvem o preço: a inferior está abaixo do preço e a superior está acima dele. Quero mostrar que existem diversas estratégias de negociação baseadas nessas faixas. 

Há também muitas soluções e alternativas prontas para serem usadas. Uma delas é as bandas de Bollinger. Elas diferem dos métodos mencionados anteriormente porque a natureza do seu cálculo permite que essas bandas converjam e divirjam.

O indicador bandas de Bollinger foi criado no início dos anos 80 por John Bollinger, um renomado especialista na área de mercados financeiros e negociação. Ele é um analista financeiro e um profissional especializado em mercados certificados.

As bandas de Bollinger são um indicador técnico muito popular que mede a volatilidade. Ele pode se expandir e se contrair em função das condições do mercado. Pode ser utilizado em qualquer mercado financeiro, Forex, ações, etc. Assim é construído esse indicador:

Como mencionado acima, a construção das bandas deve começar com alguma medida da tendência central. Depois, devem ser construídas as faixas por cima e por baixo. A medida central mencionada é uma média móvel simples, enquanto o intervalo é determinado por uma medida da volatilidade do desvio padrão móvel.

O indicador bandas de Bollinger:

A fórmula para calcular o indicador bandas de Bollinger é mostrada abaixo:

Cálculo das BB

Vejamos um exemplo de cálculo de Bandas de Bollinger:
Digamos que temos preços de fechamento para 20 dias de negociação:
   Nº do dia   
   Preço de fechamento $  
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 das BB

Para estes preços, o cálculo do indicador será o seguinte:

     Exemplo de cálculo de BB


    Exemplo de cálculo de BB 1


    Configuração de parâmetros:

    Posso usar outras configurações do indicador bandas de Bollinger e ajustá-las à minha estratégia de negociação e objetivos específicos? Sim, com certeza, mas convém sempre verificar e testar quaisquer configurações para obter bons resultados. Além disso, Bollinger recomenda fazer pequenos ajustes no multiplicador de desvio padrão. Também é preciso lembrar que a mudança do período da média móvel afeta o período utilizado para calcular o desvio padrão. Bollinger sugere aumentar o multiplicador de desvio padrão para 2,1 quando se utiliza uma média móvel simples de 50 períodos, e reduzi-lo para 1,9 quando se utiliza uma média móvel simples de 10 períodos. 

    Felizmente, não há necessidade de calcular isto manualmente, pois existe um indicador pronto, que vem como padrão na plataforma MetaTrader 5. As figuras a seguir mostram como anexar o indicador ao gráfico. No terminal MetaTrader 5 através do menu "Inserir":

    1 - inicialização do indicador BB no gráfico

    Depois, selecionamos Indicadores -> Tendências -> Bandas de Bollinger:

    2 - inicialização do indicador BB no gráfico

    Uma vez selecionado o indicador, uma janela com parâmetros será aberta e mostrará as configurações padrão do indicador. Aqui podem ser definidos:

    1. O período para o cálculo da média móvel.
    2. O parâmetro de desvio para ajustar as bandas superior e inferior.
    3. O tipo de preço a ser utilizado para o cálculo (fechamento, abertura, máximo, mínimo, mediano, típico, ponderado).
    4. O estilo de exibição do indicador no gráfico (cor, tipo e espessura das linhas).
    5. Deslocamento do indicador.

    Ajustamos estas definições de acordo com a nossa estratégia.


    3 parâmetros do indicador BB

    Após configurar e premir OK, o indicador aparecerá no gráfico, como na figura a seguir:


    Indicador BB no gráfico EURUSDH1


    Na figura, podemos ver duas linhas (bandas de Bollinger) em redor do preço, sendo que uma vai abaixo da média e a outra vai acima dela. 

    Estratégia de negociação baseada nas bandas de Bollinger

    Nesta parte falaremos sobre estratégias baseadas nas bandas de Bollinger e como aplicar esse indicador ao trading.

    O indicador bandas de Bollinger é adequado para diferentes condições e movimentos de mercado: tendência ascendente, tendência descendente e tendência lateral. Existem muitas estratégias para cada condição de mercado. Aqui estão alguns delas.

    Usamos primeiro a média móvel para compreender como os preços se movem durante uma tendência ascendente. Durante tal tendência, os preços se movem maioritariamente acima da média móvel.

    Em nosso caso, em uma tendência crescente, na maioria das vezes os preços se moverão entre a média móvel e a faixa superior. Os preços formarão mínimos e máximos mais altos e o mercado será influenciado pelos compradores.

    Tendência de alta

    Tendência de alta


    Neste caso, as bandas de Bollinger podem ajudar a identificar a tendência de alta pela posição dos preços em relação a elas e à média. A imagem abaixo mostra um exemplo: os preços estão na zona verde, movendo-se entre a média móvel e a faixa superior, ou seja, a tendência é de alta:

    EURUSDWeekly - Indicador BB, tendência de alta

    De acordo com esta estratégia, podemos proceder da seguinte forma

    EURUSDWeekly - Indicador BB, estratégia de alta

    Usamos primeiro a média móvel para compreender como os preços se movem durante uma tendência descendente. Durante tal tendência, os preços se movem maioritariamente acima da sua média móvel.

    Em nosso caso, em uma tendência descendente, na maioria das vezes os preços se moverão entre a média móvel e a faixa inferior. Os preços formarão mínimos e máximos mais baixos e o mercado será influenciado pelos vendedores.

    Tendência de baixa

    Tendência de baixa

    Neste caso, as bandas de Bollinger podem ajudar a identificar a tendência de baixa pela posição dos preços em relação a elas e à média. A imagem abaixo mostra um exemplo: os preços estão na zona vermelha, movendo-se entre a média móvel e a faixa inferior, ou seja, a tendência é de alta:

    EURUSDDaily - Indicador BB, tendência de baixa

    De acordo com esta estratégia, podemos proceder da seguinte forma

    EURUSDDaily - Indicador BB, estratégia de tendência decrescente

    A primeira coisa a fazer é compreender como determinar o movimento lateral. Em geral, ele é qualquer outro movimento que não pode ser definido como uma tendência ascendente ou descendente.

    O movimento lateral marca um equilíbrio entre compradores e vendedores, sem que nenhum deles prevaleça claramente. Aqui estão exemplos destes movimentos laterais:

    Movimento lateral 1

    Movimento lateral 2

    Movimento lateral 3

    Movimento lateral 4

    Abaixo está um exemplo real de uma lateralização assim. Pode-se ver claramente que os preços na zona verde estão se movendo lateralmente, sem direção clara para cima ou para baixo:

     Movimento lateral 


    Existem outras variações de tendência lateral, mas basta lembrar que se trata de qualquer outro movimento que não seja uma tendência para cima e para baixo.


    Agora vejamos o que acontece à média móvel em um movimento lateral. O preço oscilará ao seu redor e constantemente cruzará para cima e para baixo. A imagem abaixo mostra um exemplo:

     MA e lateralização

    E como é que o preço se comportará em relação ao indicador bandas de Bollinger? O preço se moverá entre a faixa inferior e a superior:

    GBPUSD1H - BB durante lateralização

    Como o preço se move entre as bandas, a estratégia seria comprar na banda inferior e colocar take-profit na banda mais alta, ou vice-versa, abrimos um posição curta na banda mais alta e take-profit na mais baixa.

    GBPUSD1H - BB e estratégia durante lateralização


    Na imagem acima:

    Desenvolvendo uma estratégia baseada nas bandas de Bollinger

    Nesta parte aprenderemos como desenvolver sistemas de negociação algorítmica baseados no indicador bandas de Bollinger e escrever código. Vamos programar as três estratégias de negociação que discutimos anteriormente (tendência para cima, tendência para baixo e tendência lateral).

    Você pode conceber qualquer sistema de negociação para si próprio, desde o simples ao avançado. Por exemplo, poderia desenvolver um que gera um sinal simples baseado em um princípio básico, e agir com base nesse sinal. Também pode escrever um avançado que não só gera o sinal, mas também o combina com outros princípios e o executa automaticamente. Há muitas abordagens diferentes. Neste artigo vamos trabalhar com sistemas de negociação simples. Vamos criá-los para aprender o princípio e suas possibilidades. Com base neste conhecimento, você será capaz de desenvolver sistemas similares ou seu próprio sistema de negociação conforme suas próprias condições. Espero que você considere este artigo útil e que o ajude a atingir seus objetivos de negociação u de investimento.

    Primeiro, vamos escrever o código das bandas de Bollinger que exibirá três comentários no gráfico com o valor da média móvel, o valor da banda superior e o valor da banda inferior.

    Eis o código resultante:

    //+------------------------------------------------------------------+
    //|                                       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");
       
      }
    //+------------------------------------------------------------------+
    
    
    

    Depois de termos escrito o código e o termos compilado, devemos certificar-nos de que não existem erros ou avisos no código:

    1- SBB - sem erros

    A seguir, encontramos o arquivo na janela do navegador e o arrastamos sobre o gráfico ou fazer duplo clique sobre ele:

     2- SBB - arquivo


    3- SBB - execução na janela


    A imagem abaixo mostra um gráfico com o programa em execução:

    4- SBB no gráfico

    Passemos agora a estratégias simples baseadas no indicador bandas de Bollinger.
    Estratégia 1:

    Esquema mostrando as bandas de Bollinger para uma tendência de alta

    Eis o código resultante:

    //+------------------------------------------------------------------+
    //|                                          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");
             }  
      }
    //+------------------------------------------------------------------+
    
    

    Esta estratégia produz sinais como estes:

    BB tendência de alta - compra


    BB tendência de alta - take-profit

    BB tendência de alta - sem sinal

    Os passos são os seguintes:

    5- UBB - sem erros

     6- arquivo UBB


    7- janela de execução UBB


    A imagem abaixo mostra a janela depois de rodar nosso código. O programa está rodando no gráfico:

    8- O programa UBB rodar no gráfico

    Estratégia 2:

    Esquema de estratégia baseada nas bandas de Bollinger para uma tendência de baixa

    Eis o código resultante:

    //+------------------------------------------------------------------+
    //|                                        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");
             }  
      }
    //+------------------------------------------------------------------+
    
    

    Esta estratégia produz sinais como estes:

    BB de baixa - venda

    BB de baixa - take-profit

    BB de baixa - sem sinal


    Seguimos novamente os mesmos passos:

     9- DBB - sem erros

     10- arquivo DBB


     11- janela de execução DBB


    Assim é visto o programa no gráfico após a inicialização:

     12- DBB em execução no gráfico



    Estratégia 3:

    Esquema de estratégia baseada nas bandas de Bollinger para uma tendência lateral


    Eis o código resultante:

    A - sinal de compra é gerado quando a barra inferior é tocada

    //+------------------------------------------------------------------+
    //|                                     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");
             }  
       
      }
    //+------------------------------------------------------------------+
    
    
    

    Os sinais gerados por esta estratégia

    Sinal de compra baseado nas BB durante lateralização

    Take-profit para sinal de compra baseado nas BB durante lateralização


    A seguir, os mesmos passos (mostrados nas capturas de tela abaixo):

    13- BSBB - sem erros

     14- arquivo BSBB


    15- janela de execução BSBB


    Assim é visto o programa no gráfico após a inicialização:


     16- BSBB em execução no gráfico

    A - o sinal de venda é gerado quando a banda superior é tocada

    Eis o código resultante:
    //+------------------------------------------------------------------+
    //|                                    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");
             }  
      }
    //+------------------------------------------------------------------+
    
    
    

    As imagens abaixo mostram os sinais gerados por esta estratégia:

    Sinal de venda baseado nas BB durante lateralização

    Take-profit para sinal de venda baseado nas BB durante lateralização


    A seguir, os mesmos passos (mostrados nas capturas de tela abaixo):

     17- SSBB - sem erros


     18- arquivo SSBB


     19- janela de execução do SSBB


    Assim é visto o programa no gráfico após a inicialização:

    20- SSBB em execução no gráfico


    Epílogo

    O princípio de negociação com as bandas é muito interessante, pois dá uma clara expectativa do que será o próximo movimento. Você certamente pode se beneficiar com isso. Existem muitos métodos de trading de bandas como as bandas de Bollinger, mas a vantagem destas últimas é que podem se expandir e se contrair dependendo do movimento de preços, de modo que podem ser usadas em qualquer condição de mercado.

    Neste artigo revisamos o princípio do indicador bandas de Bollinger, seu cálculo, estratégias de negociação simples, e desenvolvemos um sistema simples baseado nestas estratégias simples.

    Agora você pode desenvolver sua própria estratégia de acordo com seu estilo de operar. Espero que este artigo seja útil para você e o ajude a atingir seus alvos de negociação.


    Literatura