
Como desenvolver um sistema de negociação baseado nas bandas de Bollinger
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
- Definindo as bandas de Bollinger
- Estratégia de negociação baseada nas bandas de Bollinger
- Desenvolvendo uma estratégia baseada nas bandas de Bollinger
- Epílogo
- 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.
- Vamos escrever todos os códigos deste artigo em linguagem MQL5. Vamos executá-los na plataforma MetaTrader 5.
- Recomendo a você que escreva e execute o código discutido neste artigo por conta própria para entender melhor o tópico.
- Você precisará de um terminal de negociação para efetuar a execução e do MetaEditor para escrever o código em MQL5.
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:
- Criação de novo arquivo para escrever um EA
- Criação de novo arquivo para escrever um indicador personalizado
- 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.
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:
- Mede a dispersão dos dados em torno da média (média móvel).
- É um indicador de volatilidade.
- Difere de outros indicadores deste tipo na medida em que as linhas não são traçadas a uma distância fixa da média móvel, senão que são flexíveis e podem aproximar-se e afastar-se dependendo de um certo número de desvios padrão.
- As bandas se expandem automaticamente quando a volatilidade aumenta e se estreitam quando a volatilidade diminui. Esta natureza dinâmica permite que o indicador seja utilizado com variados instrumentos com configurações padrão.
- Em geral, é manuseado para identificar pontos de entrada e saída.
- São frequentemente utilizadas para identificar condições de sobre-compra e sobre-venda.
- Também pode ser utilizado quer para encontrar topos M e fundos W ou para determinar a força de uma tendência.
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 |
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.
- O período para o cálculo da média móvel.
- O parâmetro de desvio para ajustar as bandas superior e inferior.
- O tipo de preço a ser utilizado para o cálculo (fechamento, abertura, máximo, mínimo, mediano, típico, ponderado).
- O estilo de exibição do indicador no gráfico (cor, tipo e espessura das linhas).
- Deslocamento do indicador.
Ajustamos estas definições de acordo com a nossa estratégia.
Após configurar e premir OK, o indicador aparecerá no gráfico, como na figura a seguir:
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.
- Tendência de alta
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.
- Comprar quando o preço tiver ultrapassado a média móvel de baixo para cima. O alvo de fechamento está na faixa superior.
- Preços > MA = compra, faixa superior = fechamento
- Tendência de baixa
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.
- Abrimos uma posição curta quando o preço cruzar a média móvel de cima para baixo. O alvo de fechamento está na faixa inferior.
- Preços < MA = venda, banda inferior = fechamento
- Tendência lateral
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:
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:
- Preço na barra inferior = compra, barra superior = take-profit
- Preço na barra superior = venda, barra inferior = take-profit
- Compramos na barra inferior do indicador, fixamos o lucro na barra superior.
- Ou entramos em uma posição de venda na barra superior e fixamos lucro na inferior.
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:
- Gráfico que mostra uma estratégia baseada nas bandas de Bollinger durante uma tendência de alta:
- Preço > MA = compra, banda superior = take-profit ou = sem sinal
//+------------------------------------------------------------------+ //| 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:
- Vemos que não há erros ou avisos no código
- Encontramos o arquivo
- Executamos o código arrastando o arquivo para o gráfico ou fazemos duplo clique sobre o mesmo
- Esquema para estratégia baseada nas bandas de Bollinger durante uma tendência de baixa:
- Preços < MA = venda, banda inferior = fechamento
//+------------------------------------------------------------------+ //| 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:
- Vemos que não há erros ou avisos no código
- Encontramos o arquivo
- Executamos o código arrastando o arquivo para o gráfico ou fazemos duplo clique sobre o mesmo
- Esquema de estratégia baseada nas bandas de Bollinger durante uma tendência lateral:
- Preço na barra inferior = compra, barra superior = take-profit
- Preço na barra superior = venda, barra inferior = take-profit
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
- Vemos que não há erros ou avisos no código
- Encontramos o arquivo
- Executamos o código arrastando o arquivo para o gráfico ou fazemos duplo clique sobre o mesmo
Eis o código resultante:A - o sinal de venda é gerado quando a banda superior é tocada
//+------------------------------------------------------------------+ //| 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:
- Vemos que não há erros ou avisos no código
- Encontramos o arquivo
- Executamos o código arrastando o arquivo para o gráfico ou fazemos duplo clique sobre o mesmo
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
- Bollinger on bandas de Bollinger por 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
Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/3039





- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso