English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
preview
Como desenvolver um sistema de negociação baseado no indicador Bear's Power

Como desenvolver um sistema de negociação baseado no indicador Bear's Power

MetaTrader 5Negociação | 16 novembro 2022, 10:38
266 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introdução

Neste novo artigo de nossa série, nós aprenderemos uma nova ferramenta técnica que pode ser usada a nosso favor, especialmente se a combinarmos com outras ferramentas técnicas. Nós aprenderemos como criar um sistema de negociação pelo indicador técnico Bear's Power. Como nós fazemos em nosso artigo desta série, nós tentamos entender a raiz das coisas para usá-las de maneira eficaz. Nós aprendemos sobre o indicador Bear's Power em detalhes através dos seguintes tópicos:

  1. Definição do Bear's Power
  2. Estratégia do Bear's Power
  3. Esquema da estratégia do Bear's Power
  4. Sistema de negociação utilizando o Bear's Power
  5. Conclusão

Através do tópico de definição do Bear's Power, nós aprenderemos em detalhes sobre o indicador Bear's Power, aprendendo o que ele é, o que ele mede, como nós podemos calculá-lo manualmente para aprender o conceito básico por trás desse indicador e como nós podemos inseri-lo e usá-lo na plataforma de negociação MetaTrader 5. Depois de aprender o básico e entender o conceito principal por trás deste indicador, nós aprenderemos como usá-lo através de algumas estratégias simples para aprofundar o nosso entendimento e obter mais informações sobre este tópico do artigo para melhorar a nossa negociação e isso será aprendido através do tópico da estratégia Bear's Power. Em seguida, nós projetaremos um esquema passo a passo para criar um sistema de negociação com base nas estratégias mencionadas, esta etapa é muito importante, pois nos ajudará a criar nossa negociação sem problemas, da mesma forma que veremos no tópico do esquema da estratégia do Bear's Power. Depois disso, nós chegaremos ao tópico mais interessante deste artigo, que é o sistema de negociação Bear's Power, pois nós aprenderemos como criar negociações com base nas estratégias mencionadas pela MQL5 (MetaQuotes Language) para serem executadas na plataforma de negociação MetaTrader 5.

Eu aconselho você a tentar aplicar e desenvolver o que você aprendeu sozinho, pois a prática é um fator importante em qualquer processo de aprendizado, pois isso o ajudará a entender muito bem o tópico. Nós usaremos este artigo como eu mencionei a plataforma de negociação MetaTrader 5 e seu IDE integrado para escrever os nossos códigos em MQL5. Se você quiser baixar e usar a MetaTrader 5 para usar a MQL5, você pode ler o tópico Escrevendo em MQL5 no MetaEditor do artigo anterior.

Ressalva: Qualquer informação fornecida aqui é apenas para fins educacionais e sem fins comerciais ou de aconselhamento. As informações não garantem nenhum tipo de resultado. Se você optar por usar esses materiais em qualquer uma de suas contas de negociação, você fará isso por sua conta e risco, sendo o único responsável.

Agora, vamos começar com os nossos tópicos.


Definição do Bear's Power

Neste tópico, nós aprenderemos com mais detalhes sobre o indicador Bear's Power aprendendo o que ele é, o que ele mede e como nós podemos calculá-lo e usá-lo na MetaTrader 5. O indicador Bear's Power é um indicador oscilador que oscila em torno do nível zero e mede a baixa no mercado. Ele também pode nos dar uma indicação de que os touros entram no jogo e é quando nós vemos que os ursos ficaram fracos. Todos nós reconhecemos que a oferta e a demanda são muito importantes em qualquer mercado, pois elas são os veículos e a energia que movem os mercados para cima ou para baixo. Portanto, é importante saber o quanto os touros e os ursos estão controlando os mercados. Este indicador foi criado pelo Dr. Alexander Elder para medir este conceito e ver o quanto os ursos estão controlando o mercado.

Como esse indicador pode fazer isso, essa pergunta nós podemos obter a resposta se aprendermos como nós podemos calculá-lo. Para calcular o indicador Bear's Power, seguiremos o seguinte.

  1. Obtemos a mínima do período.
  2. Obtemos a média móvel exponencial (EMA), para saber mais sobre ela e como nós podemos calculá-la, se você quiser saber mais sobre as médias móveis e seus tipos, leia o meu artigo anterior Como desenvolver sistemas baseados em médias móveis.
  3. Obtemos o valor do Bear's Power subtraindo a EMA da mínima.

Low = o menor valor das mínimas durante o período.

EMA = a média móvel exponencial EMA.

Bear's Power = Low - EMA

Sabemos que os ursos controlam o mercado, eles continuam empurrando o mercado para baixo a maior parte do tempo. Então, nós usamos o valor de baixa na fórmula do cálculo do Bear's Power, pois nós precisamos medir esses ursos, então obteremos a diferença entre essa baixa e a EMA para obter um indicador oscilador que oscila em torno do nível zero e quando descobrimos que o seu valor se aproxima do nível zero e cruza pra cima, podemos obter uma indicação de que os ursos ficaram mais fracos.

É bom usar este indicador com outro indicador de tendências, pois ele fornecerá "insights" mais eficazes da mesma forma que faremos em uma das estratégias mencionadas neste artigo. Este conceito é muito magnífico e uma das belas características da análise técnica, pois podemos usar muitos conceitos para obter mais "insights" e ver o instrumento de diferentes perspectivas.

Se nós quisermos saber como podemos inserir este indicador na MetaTrader 5, nós podemos fazer isso ao abrir a plataforma de negociação pressionando Inserir --> Indicadores --> Osciladores --> Bears Power. Nós podemos ver isso também através da imagem a seguir:

 Inserção do Bears Power

Após pressionar o "Bears Power" para inseri-lo no gráfico, encontraremos a janela de seus parâmetros igual à seguinte:

 Parâmetro do Bears Power

1 - Determinar o período que será utilizado no cálculo.

2 - Determinar a cor das barras do Bear's Power.

3 - Determinar a espessura das barras do Bear's Power.

Depois de determinar esses parâmetros e pressionar "OK", descobriremos que o indicador é inserido no gráfico da mesma forma que o seguinte:

Bears Power anexado

Podemos ver no gráfico anterior que na parte inferior nós temos o indicador anexado ao gráfico e suas barras oscilam em torno de zero o mesmo que mencionamos quando encontramos o valor abaixo de zero. Isso significa que os ursos tem o controle e se ele aproxima de zero e ficando maior que isso, significa que eles estão se enfraquecendo.


Estratégia do Bear's Power

Nesta parte, nós vamos aprender como podemos utilizar o Bear's Power através de estratégias simples que podem ser utilizadas com base no conceito básico deste indicador. A seguir encontramos essas estratégias e suas condições. Eu reforço aqui que essas estratégias são para fins educacionas já que o principal objetivo é entender o conceito principal por trás do indicador e como nós podemos usá-lo. Eu aconselho você a testar qualquer coisa que você saiba antes de usar em uma conta real para se certificar de que ela é adequada para a sua negociação e seu plano.

    Estratégia um: Movimento do Bear's Power

      De acordo com essa estratégia, nós precisamos buscar os sinais baseados na posição dos valores do bear's power atual e anterior. Se o valor atual for maior que o anterior, isso sera um sinal de que o indicador Bear's Power está subindo. Vice versa, se o valor atual for maior que o anterior, isso será um sinal de que Bear's Power está em queda.

      Simplesmente,

      Bear's Power Atual > Bear's Power Anterior --> Bear's Power está subindo

      Bear's Power atual < Bear's Power anterior --> Bear's Power está em queda

        Estratégia dois: Bear's Power - Forte ou Divergência

          De acordo com essa estratégia, nós precisamos obter um sinal que nos informe se há movimentos fortes ou divergências avaliando quatro valores e são eles: mínima atual e anterior, bear power atual e anterior. Se a mínima atual for menor que a anterior e o valor do bear power atual for menor que a anterior, isso será um sinal de um forte movimento. No outro caso, se a mínima atual é menor que a anterior e o valor do bear atual for maior que o anterior, isso será um sinal de divergência de alta

          Simplesmente,

          Mínima atual < mínima anterior e bear's power atual < bear's power anterior --> movimento forte

          Mínima atual < mínima anterior e bear's power atual > bear's power anterior --> divergência de alta

            Três estratégias

              De acordo com essa estratégia, nós precisamos de um gatilho que possa ser usado para obter os sinais de compra e venda e avaliaremos quatro valores para fazer isso com base nessa estratégia. Esses quatro valores são o bear's power atual, nível zero, valor do fechamento atual e a média móvel exponencial atual. Se o bear's power atual for maior que o nível zero e o fechamento atual for maior que a média móvel exponencial, isso será um sinal de compra. Se o poder do bear's power for inferior ao nível zero e o fechamento atual for inferior à média móvel exponencial, isso será um sinal de venda.

              Simplesmente,

              Bear's power atual > nível zero e o fechamento atual > EMA --> compra

              Bear's power atual < nível zero e o fechamento atual < EMA --> venda


              Esquema da estratégia do Bear's Power

              Neste tópico, nós aprenderemos como desenvolver um esquema passo a passo para cada estratégia mencionada para nos ajudar a criar sistemas de negociação para eles de maneira fácil após organizar as nossas ideias nas etapas deste esquema.

                Estratégia um: Movimento do Bear's Power

                  Primeiro, nós precisamos entender o que precisamos que o programa faça para organizar os nossos passos, então, precisamos que o computador verifique dois valores a cada tick, e isso será depois de criar esses valores com certeza, esses valores são o Bear's Power atual e anterior. Precisamos que o programa verifique esses valores para decidir qual é maior que o outro. Se o atual for maior que o anterior, nós precisamos que o programa ou o expert retorne um sinal como um comentário no gráfico com o seguinte:

                  • Bear's Power esdtá subindo
                  • Valor do Bear's Power
                  • Valor do Bear's Power anterior

                  Precisamos que cada valor apareça em uma linha separada. 

                  O outro cenário é se o valor atual do Bear's Power for maior que o anterior, precisamos que o expert advisor retorne um comentário também com os seguintes valores e cada valor em uma linha separada:

                  • Bear's Power está em queda
                  • Valor do Bear's Power
                  • Valor do Bear's Power anterior

                  Então, a seguir está um esquema passo a passo para esta estratégia para criar um sistema de negociação.

                  Esqeuma do movimento do Bear's Power

                    Estratégia dois: Bear's Power - Forte ou Divergência

                      Com base nessa estratégia, nós precisamos que o sistema de negociação verifique quatro valores e eles são os valores da mínima atual e anterior e bear power atual e anterior. Após isso, nós precisamos decidir se o valor da mínima atual é menor que a anterior e, ao mesmo tempo, o valor do bear's power atual é menor que o anterior, precisamos que o sistema de negociação retorne um sinal como um comentário no gráfico com os seguintes valores e cada um deles estará em uma linha separada:

                      • Movimento Forte
                      • Valor da mínima atual
                      • Valor da mínima anterior
                      • Valor atual do Bear's Power
                      • Valor do Bear's Power

                      No outro caso, se o valor da mínima atual for menor que a anterior e ao mesmo tempo, o valor do bear's power atual for maior que o anterior, precisamos que o sistema de negociação retorne um sinal com um comentário no gráfico com os seguintes valores:

                      • Divergência de alta
                      • Valor da mínima atual
                      • Valor da mínima anterior
                      • Valor atual do Bear's Power
                      • Valor do Bear's Power

                      A seguir está um plano passo a passo para nos ajudar a criar um sistema de negociação baseado nesta estratégia.

                      Bears Power - Esquema Forte ou de Divergência

                       

                        Estratégia três: Sinais do Bear's Power

                          Com base nessa estratégia, nós precisamos criar um sistema de negociação que verifique quatro valores a cada tick e eles são o bear's power atual, o nível zero, o fechamento atual e a média móvel exponencial atual. Nós precisamos decidir se o poder do urso atual é maior que o nível zero e, ao mesmo tempo, se o fechamento atual é maior que a média móvel exponencial, precisamos que o expert advisor retorne um sinal como um comentário no gráfico com os seguintes valores e cada um deles em uma linha separada:

                          • Sinal de Compra
                          • Valor do Fechamento Atual
                          • Valor atual da EMA
                          • Valor atual do Bear's Power

                          No outro caso, se o bear's power atual for menor que zero e, ao mesmo tempo, o fechamento atual for menor que a média móvel exponencial, precisamos que o sistema de negociação retorne um sinal como um comentário com os seguintes valores:

                          • Sinal de Venda
                          • Valor do Fechamento Atual
                          • Valor atual da EMA
                          • Valor atual do Bear's Power

                          O seguinte é um esquema passo a passo para organizar nossas ideias para criar um sistema de negociação baseado nesta estratégia.

                          Esquema dos sinais do Bears Power

                          Sistema de negociação utilizando o Bear's Power

                          Neste tópico, nós aprenderemos como criar um sistema de negociação para cada estratégia mencionada, mas criaremos um sistema de negociação simples para que o Bears Power gere um sinal na forma de um comentário no gráfico com o valor atual do Bears Power para usá-lo como base para todas as estratégias.

                          A seguir está o código para criar este sistema de negociação.

                          Nós vamos criar um array para o "bearpower" usando a função do tipo double:

                          double bearpowerArray[];

                          Ordenamos este array criado usando a função "ArraySetAsSeries" para retornar um valor booleano.

                          ArraySetAsSeries(bearpowerArray,true);

                          Definimos o indicador Bear's Power usando a função "iBearsPower" para retornar o manipulador do indicador. Os parâmetros são:

                          • symbol: usaremos (_Symbol) para ser aplicado no símbolo atual.
                          • period: usaremos (_Period) para ser aplicado no período atual.
                          • ma_period: usaremos 13 para o período da média móvel utilizável.
                          int bearpowerDef = iBearsPower(_Symbol,_Period,13);

                          Preenchemos o array usando a função CopyBuffer para obter os dados do indicador Bear's Power. Parâmetros desta função:

                          • Indicator_handle: para o manipulador do indicador e usaremos (bearpowerDef).     
                          • buffer_num: para o número do buffer do indicador, nós usaremos (0).
                          • start_pos: para a posição inicial nós usaremos (0).         
                          • count: para o valor a ser copiado e usaremos (3).                
                          • buffer[]: para o array de destino para copiar e usaremos (bearpowerArray).
                          CopyBuffer(bearpowerDef,0,0,3,bearpowerArray);

                          Definimos o "bearpowerVal" após criar uma variável usando a função "NormalizeDouble" para retornar o valor do tipo double. Parâmetros desta função:

                          • value: usaremos (bearpowerArray[0]) como um número normalizado.
                          • dígits: nós usaremos (6) como o número de dígitos após o ponto decimal.
                          double bearpowerVal = NormalizeDouble(bearpowerArray[0],6);

                          Precisamos gerar um comentário no gráfico com o valor atual do Bear's Power usando a função "Comment":

                          Comment("Bear's Power Value is ",bearpowerVal);

                          A seguir está o código completo para criar este sistema de negociação:

                          //+------------------------------------------------------------------+
                          //|                                          Simple Bear's Power.mq5 |
                          //|                                  Copyright 2022, MetaQuotes Ltd. |
                          //|                                             https://www.mql5.com |
                          //+------------------------------------------------------------------+
                          #property copyright "Copyright 2022, MetaQuotes Ltd."
                          #property link      "https://www.mql5.com"
                          #property version   "1.00"
                          //+------------------------------------------------------------------+
                          void OnTick()
                            {
                             double bearpowerArray[];
                          
                             ArraySetAsSeries(bearpowerArray,true);
                          
                             int bearpowerDef = iBearsPower(_Symbol,_Period,13);
                          
                             CopyBuffer(bearpowerDef,0,0,3,bearpowerArray);
                          
                             double bearpowerVal = NormalizeDouble(bearpowerArray[0],6);
                          
                             Comment("Bear's Power Value is ",bearpowerVal);
                          
                            }
                          //+------------------------------------------------------------------+

                          Após compilar este código, nós encontraremos o Expert Advisor dessa estratégia de negociação na janela do navegador da seguinte forma:

                           Bears Power Nav

                          Ao arrastá-lo e soltá-lo no gráfico, descobriremos que a janela deste expert aparecerá da mesma forma que a seguinte:

                           Simple Bears Power win

                          Após pressionar "OK", o expert será anexado ao gráfico da mesma forma que a imagem a seguir:

                          Simple Bears Power anexado

                          Podemos ver no gráfico anterior no canto superior direito que o expert está anexado. Em seguida, nós podemos encontrar os sinais gerados no gráfico da mesma forma que o seguinte, como exemplo de teste:

                           Sinal Simple Bears Power

                          Como nós podemos ver no gráfico anterior, no canto superior esquerdo, temos o valor atual do Bear's Power.

                            Estratégia um: Movimento do Bears Power

                              Segue o código completo para criar esse tipo de estratégia:

                              //+------------------------------------------------------------------+
                              //|                                        Bear's Power Movement.mq5 |
                              //|                                  Copyright 2022, MetaQuotes Ltd. |
                              //|                                             https://www.mql5.com |
                              //+------------------------------------------------------------------+
                              #property copyright "Copyright 2022, MetaQuotes Ltd."
                              #property link      "https://www.mql5.com"
                              #property version   "1.00"
                              //+------------------------------------------------------------------+
                              void OnTick()
                                {
                                 double bearpowerArray[];
                              
                                 ArraySetAsSeries(bearpowerArray,true);
                              
                                 int bearpowerDef = iBearsPower(_Symbol,_Period,13);
                              
                                 CopyBuffer(bearpowerDef,0,0,3,bearpowerArray);
                              
                                 double bearpowerVal = NormalizeDouble(bearpowerArray[0],6);
                                 double bearpowerPrevVal = NormalizeDouble(bearpowerArray[1],6);
                              
                                 if(bearpowerVal>bearpowerPrevVal)
                                   {
                                    Comment("Bear's Power is rising","\n",
                                            "Bear's Power Value is ",bearpowerVal,"\n",
                                            "Bear's Power Previous Value is ",bearpowerPrevVal);
                                   }
                              
                                 if(bearpowerVal<bearpowerPrevVal)
                                   {
                                    Comment("Bear's Power is declining","\n",
                                            "Bear's Power Value is ",bearpowerVal,"\n",
                                            "Bear's Power Previous Value is ",bearpowerPrevVal);
                                   }
                                }
                              //+------------------------------------------------------------------+

                              Diferenças neste código:

                              Definimos o valor do Bears Power atual "bearpowerVal" e o valor do Bears Power anterior "bearpowerPrevVal":

                                 double bearpowerVal = NormalizeDouble(bearpowerArray[0],6);
                                 double bearpowerPrevVal = NormalizeDouble(bearpowerArray[1],6);

                              Condições da estratégia:

                              Em caso de subida:

                                 if(bearpowerVal>bearpowerPrevVal)
                                   {
                                    Comment("Bear's Power is rising","\n",
                                            "Bear's Power Value is ",bearpowerVal,"\n",
                                            "Bear's Power Previous Value is ",bearpowerPrevVal);
                                   }

                              Em caso de declínio:

                                 if(bearpowerVal<bearpowerPrevVal)
                                   {
                                    Comment("Bear's Power is declining","\n",
                                            "Bear's Power Value is ",bearpowerVal,"\n",
                                            "Bear's Power Previous Value is ",bearpowerPrevVal);
                                   }

                              Após compilar este código, nós encontraremos o Expert Advisor dessa estratégia de negociação na janela do navegador da seguinte forma:

                               Bears Power Nav 2

                              Depois de arrastar e soltar o expert no gráfico, nós encontraremos a janela do expert da seguinte forma:

                               Bears Power Movement win

                              Depois de pressionar "OK", descobriremos que ele será anexado ao gráfico da mesma forma que a imagem a seguir:

                              Bears Power Movement anexado

                              Podemos ver no gráfico anterior no canto superior direito que o expert está anexado ao gráfico. Então, podemos encontrar os sinais gerados da mesma forma que o seguinte, conforme o sinal.

                              Em caso de alta com os dados atuais:

                               Bears Power Movement - subindo - dados atuais

                              Podemos ver no gráfico anterior na parte superior do gráfico, que geramos um sinal ascendente, o valor do Bears Power atual e o valor do Bears Power anterior. Na janela de dados, nós podemos encontrar o valor atual do Bears Power.

                              Em caso de subida com dados anteriores:

                              Bears Power Movement - subindo - dados anteriores

                              Como nós podemos ver no gráfico anterior, podemos encontrar uma diferença na janela de dados, pois podemos encontrar o valor anterior do Bears Power.

                              Em caso de declínio com os dados atuais:

                               Bears Power Movement - em declínio - dados atuais

                              Podemos ver no gráfico anterior na parte superior do gráfico, que geramos um sinal de declínio, o valor do Bears Power atual e o valor do Bears Power anterior. Na janela de dados, nós podemos encontrar o valor atual do Bears Power.

                              Em caso de declínio com os dados anteriores:

                               Bears Power Movement - em declínio - dados anteriores

                              Como podemos ver no gráfico anterior, podemos encontrar uma diferença na janela de dados, pois podemos encontrar o último valor do poder do urso.

                                Estratégia dois: Poder do Urso - Forte ou Divergência

                                  Segue o código completo para criar esse tipo de estratégia:

                                  //+------------------------------------------------------------------+
                                  //|                          Bear's Power - Strong or Divergence.mq5 |
                                  //|                                  Copyright 2022, MetaQuotes Ltd. |
                                  //|                                             https://www.mql5.com |
                                  //+------------------------------------------------------------------+
                                  #property copyright "Copyright 2022, MetaQuotes Ltd."
                                  #property link      "https://www.mql5.com"
                                  #property version   "1.00"
                                  //+------------------------------------------------------------------+
                                  void OnTick()
                                    {
                                     double bearpowerArray[];
                                     MqlRates priceArray[];
                                  
                                     ArraySetAsSeries(bearpowerArray,true);
                                     int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
                                  
                                     int bearpowerDef = iBearsPower(_Symbol,_Period,13);
                                  
                                     CopyBuffer(bearpowerDef,0,0,3,bearpowerArray);
                                  
                                     double bearpowerVal = NormalizeDouble(bearpowerArray[0],6);
                                     double bearpowerPrevVal = NormalizeDouble(bearpowerArray[1],6);
                                  
                                     double currentLowVal=NormalizeDouble(priceArray[2].low,6);
                                     double prevLowVal=NormalizeDouble(priceArray[1].low,6);
                                  
                                     if(currentLowVal<prevLowVal && bearpowerVal<bearpowerPrevVal)
                                       {
                                        Comment("Strong Move","\n",
                                                "Current Low Value is ",currentLowVal,"\n",
                                                "Previous Low Value is ",prevLowVal,"\n",
                                                "Bear's Power Value is ",bearpowerVal,"\n",
                                                "Bear's Power Previous Value is ",bearpowerPrevVal);
                                       }
                                  
                                     if(currentLowVal<prevLowVal && bearpowerVal>bearpowerPrevVal)
                                       {
                                        Comment("Bullish divergence","\n",
                                                "Current Low Value is ",currentLowVal,"\n",
                                                "Previous Low Value is ",prevLowVal,"\n",
                                                "Bear's Power Value is ",bearpowerVal,"\n",
                                                "Bear's Power Previous Value is ",bearpowerPrevVal);
                                       }
                                    }
                                  //+------------------------------------------------------------------+

                                  Diferenças neste código:

                                  Criação de dois arrays, bearpowerArray e priceArray:

                                     double bearpowerArray[];
                                     MqlRates priceArray[];

                                  Ordenamos esses arrays criados, para o bearpowerArray usaremos a função "ArraySetAsSeries" da mesma forma que aprendemos antes. Para o priceArray, usaremos a função "CopyRates" para obter os dados históricos de "MqlRates" e seus parâmetros são:

                                  • symbol: usaremos (_Symbol).
                                  • timeframe: usaremos (_Period).
                                  • start time: nós usaremos (0).
                                  • stop time: nós usaremos (3).
                                  • rates array: nós usaremos (pArray).
                                     ArraySetAsSeries(bearpowerArray,true);
                                     int Data=CopyRates(_Symbol,_Period,0,3,priceArray);

                                  Definimos os valores atuais e anteriores da miníma e do Bears Power usando a função "NormalizeDouble".

                                     double bearpowerVal = NormalizeDouble(bearpowerArray[0],6);
                                     double bearpowerPrevVal = NormalizeDouble(bearpowerArray[1],6);
                                  
                                     double currentLowVal=NormalizeDouble(priceArray[2].low,6);
                                     double prevLowVal=NormalizeDouble(priceArray[1].low,6);

                                  Condições da estratégia:

                                  Em caso de movimento forte:

                                     if(currentLowVal<prevLowVal && bearpowerVal<bearpowerPrevVal)
                                       {
                                        Comment("Strong Move","\n",
                                                "Current Low Value is ",currentLowVal,"\n",
                                                "Previous Low Value is ",prevLowVal,"\n",
                                                "Bear's Power Value is ",bearpowerVal,"\n",
                                                "Bear's Power Previous Value is ",bearpowerPrevVal);
                                       }

                                  Em caso de divergência de alta:

                                     if(currentLowVal<prevLowVal && bearpowerVal>bearpowerPrevVal)
                                       {
                                        Comment("Bullish divergence","\n",
                                                "Current Low Value is ",currentLowVal,"\n",
                                                "Previous Low Value is ",prevLowVal,"\n",
                                                "Bear's Power Value is ",bearpowerVal,"\n",
                                                "Bear's Power Previous Value is ",bearpowerPrevVal);
                                       }

                                  Após compilar este código, nós encontraremos o Expert Advisor dessa estratégia de negociação na janela do navegador da seguinte forma:

                                  Bears Power Nav3

                                  Ao arrastar e soltar este expert no gráfico desejado, encontraremos a janela dele igual à seguinte:

                                  Janela Bears Power - Forte ou Divergência

                                  Após pressionar "OK", o expert será anexado ao gráfico da mesma forma que a imagem a seguir:

                                   Bears Power - Forte ou Divergência anexado

                                  Podemos ver no gráfico anterior, no canto superior direito do gráfico, que o expert Bear's Power - Forte ou Divergência está anexado ao gráfico. Então, podemos encontrar os sinais gerados com base nessa estratégia da mesma forma que a seguir.

                                  No caso de um movimento forte com dados atuais:

                                   Bears Power - Forte ou Divergência - forte - dados atuais

                                  Podemos ver no gráfico que temos o sinal desejado com um comentário dos seguintes valores:

                                  • Movimento forte
                                  • Valor da mínima atual
                                  • Valor da mínima anterior
                                  • Valor atual do Bears Power
                                  • Valor anterior do Bears Power 

                                  Em caso de sinal forte com os dados anteriores:

                                   Bears Power - Forte ou Divergência - forte - dados anteriores

                                  Podemos ver no gráfico anterior, que temos o mesmo comentário como um sinal no gráfico com os mesmos valores, mas com a janela de dados anterior.

                                  Em caso de divergência de alta com os dados atuais:

                                  Bears Power - Forte ou Divergência - divergência de alta - dados atuais

                                  Podemos ver no gráfico anterior que temos um comentário no gráfico como um comentário com os seguintes valores:

                                  • Divergência de alta
                                  • Valor da mínima atual
                                  • Valor da mínima anterior
                                  • Valor atual do Bears Power
                                  • Valor anterior do Bears Power  

                                  Em caso de divergência de alta com os dados anteriores:

                                   Bears Power - Forte ou Divergência - divergência de alta - dados anteriores

                                  Podemos ver no gráfico anterior, que temos um comentário no gráfico com o mesmo valor da janela de dados anterior.

                                    Estratégia três: Sinais do Bear's Power

                                      A seguir está o código completo para criar um sistema de negociação baseado nesta estratégia.

                                      //+------------------------------------------------------------------+
                                      //|                                         Bear's Power signals.mq5 |
                                      //|                                  Copyright 2022, MetaQuotes Ltd. |
                                      //|                                             https://www.mql5.com |
                                      //+------------------------------------------------------------------+
                                      #property copyright "Copyright 2022, MetaQuotes Ltd."
                                      #property link      "https://www.mql5.com"
                                      #property version   "1.00"
                                      //+------------------------------------------------------------------+
                                      void OnTick()
                                        {
                                         double bearpowerArray[];
                                         double maArray[];
                                         MqlRates priceArray[];
                                      
                                         ArraySetAsSeries(bearpowerArray,true);
                                         ArraySetAsSeries(maArray,true);
                                         int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
                                      
                                         int bearpowerDef = iBearsPower(_Symbol,_Period,13);
                                         int maDef = iMA(_Symbol,_Period,13,0,MODE_EMA,PRICE_CLOSE);
                                      
                                         CopyBuffer(bearpowerDef,0,0,3,bearpowerArray);
                                         CopyBuffer(maDef,0,0,3,maArray);
                                      
                                         double bearpowerVal = NormalizeDouble(bearpowerArray[0],6);
                                      
                                         double emaVal = NormalizeDouble(maArray[0],6);
                                      
                                         double currentClose=NormalizeDouble(priceArray[2].close,6);
                                      
                                         if(bearpowerVal>0 && currentClose>emaVal)
                                           {
                                            Comment("Buy Signal","\n",
                                                    "Current Close Value is ",currentClose,"\n",
                                                    "Current EMA Value is ",emaVal,"\n",
                                                    "Bear's Power Value is ",bearpowerVal);
                                           }
                                      
                                         if(bearpowerVal<0 && currentClose<emaVal)
                                           {
                                            Comment("Sell Signal","\n",
                                                    "Current Close Value is ",currentClose,"\n",
                                                    "Current EMA Value is ",emaVal,"\n",
                                                    "Bear's Power Value is ",bearpowerVal);
                                           }
                                        }
                                      //+------------------------------------------------------------------+
                                      

                                      Diferenças neste código:

                                      Criamos três arrays, bearpowerArray, naArray e priceArray.

                                         double bearpowerArray[];
                                         double maArray[];
                                         MqlRates priceArray[];

                                      Ordenamos esses arrays criados.

                                         ArraySetAsSeries(bearpowerArray,true);
                                         ArraySetAsSeries(maArray,true);
                                         int Data=CopyRates(_Symbol,_Period,0,3,priceArray);

                                      Definimos o indicador Bear's Power usando o "iBearsPower" o mesmo que mencionamos anteriormente e o indicador Moving Average usando a função "iMA" que retorna o manipulador do indicador da média móvel.

                                         int bearpowerDef = iBearsPower(_Symbol,_Period,13);
                                         int maDef = iMA(_Symbol,_Period,13,0,MODE_EMA,PRICE_CLOSE);

                                      Preenchemos o array usando a função "CopyBuffer" para obter os dados do Bear's Power e os indicadores da média móvel.

                                         CopyBuffer(bearpowerDef,0,0,3,bearpowerArray);
                                         CopyBuffer(maDef,0,0,3,maArray);

                                      Definimos o Bears Power atual, a média móvel exponencial e o preço de fechamento atual.

                                         double bearpowerVal = NormalizeDouble(bearpowerArray[0],6);
                                         double emaVal = NormalizeDouble(maArray[0],6);
                                         double currentClose=NormalizeDouble(priceArray[2].close,6);

                                      Condições desta estratégia:

                                      No caso do sinal de compra:

                                         if(bearpowerVal>0 && currentClose>emaVal)
                                           {
                                            Comment("Buy Signal","\n",
                                                    "Current Close Value is ",currentClose,"\n",
                                                    "Current EMA Value is ",emaVal,"\n",
                                                    "Bear's Power Value is ",bearpowerVal);
                                           }

                                      No caso do sinal de venda:

                                         if(bearpowerVal<0 && currentClose<emaVal)
                                           {
                                            Comment("Sell Signal","\n",
                                                    "Current Close Value is ",currentClose,"\n",
                                                    "Current EMA Value is ",emaVal,"\n",
                                                    "Bear's Power Value is ",bearpowerVal);
                                           }

                                      Após compilar este código, nós encontraremos esse expert na janela do navegador igual ao seguinte:

                                      Bears Power Nav copia 4

                                      Depois de arrastar e soltar o expert no gráfico, nós encontraremos a janela do expert da seguinte forma:

                                      Bears Power Signals win

                                      Após pressionar "OK", o expert será anexado ao gráfico da mesma forma que a imagem a seguir:

                                       Bears Power Signals anexado

                                      Podemos ver que o expert está anexado ao gráfico no canto superior direito. Então, podemos encontrar os sinais gerados com base neste sistema de negociação da mesma forma que o seguinte:

                                      No caso do sinal de compra:

                                       Bears Power Signals - compra

                                      Como podemos ver no gráfico temos um comentário com os seguintes valores:

                                      • Sinal de compra
                                      • Valor de fechamento atual
                                      • Valor da MME atual
                                      • Valor do Bears Power

                                      Em caso de sinal de venda:

                                      Bears Power Signals - venda

                                      Podemos ver no gráfico o sinal desejado com um comentário no gráfico com os seguintes valores:

                                      • Sinal de venda
                                      • Valor de fechamento atual
                                      • Valor da MME atual
                                      • Valor do Bears Power


                                      Conclusão

                                      Agora, acho que nós abordamos o básico desse indicador nos tópicos anteriores. Aprendemos com mais detalhes o que é o indicador Bear's Power, o que ele mede, como podemos calculá-lo e como podemos inserir e usar o indicador Bear's Power, que está embutido na MetaTrader 5 através do tópico Definição do Bear's Power. Depois de entender o indicador em detalhes, aprendemos como usar o indicador com base na ideia básica por trás do indicador por meio de algumas estratégias simples mencionadas, o objetivo básico dessas estratégias é aprender como podemos usar esse indicador. Eu aconselho você a testar qualquer coisa que você saiba antes de usar em uma conta real para se certificar de que ela é adequada para a sua negociação e seu plano. Essas estratégias foram as mesmas que a seguir:

                                      Movimento do Bear's Power: esta estratégia pode ser usada para determinar a direção do indicador Bear's Power, se ele está subindo ou descendo.

                                      Bear's Power Forte ou divergência: esta estratégia pode ser usada para determinar se temos um movimento forte ou de divergência.

                                      Sinais Bear's Power: esta estratégia pode ser usada para obter os sinais de compra ou venda.

                                      Após isso, aprendemos a criar um esquema passo a passo para cada estratégia mencionada para nos ajudar a criar um sistema de negociação de maneira suave e fácil, depois de organizar nossas ideias por meio desses projetos. Então, nós aprendemos o tópico mais interessante neste artigo que foi criar um sistema de negociação para cada estratégia mencionada para obter os sinais automaticamente após desenvolvê-los em MQL5 para serem executados na plataforma de negociação MetaTrader 5.

                                      Espero que você tenha aplicado e tentado escrever o código mencionado sozinho, pois isso o ajudará a melhorar seu processo de codificação e aprendizado, se desejar, e isso melhorará sua curva de aprendizado como programador. Como precisamos prestar atenção ao código o máximo que pudermos e tentar resolver problemas o máximo que pudermos, também se precisarmos melhorar nossas habilidades de programação. A programação é uma habilidade importante que nós precisamos melhorar para nos ajudar a negociar de maneira suave, fácil, eficaz e precisa. Também é para economizar o nosso tempo para fazer o que costumamos fazer em etapas específicas e determinadas, o computador ou o programa pode fazer isso a nosso favor automaticamente e também essa abordagem pode nos ajudar a evitar emoções que podem ser muito prejudiciais quando afetam nossas negociações. negativamente, pois o programa fará o que precisamos sem nenhuma emoção.

                                      Espero também que você ache este artigo útil para aprimorar sua negociação e melhorar os seus resultados de negociação. Se você quiser ler mais artigos semelhantes sobre como desenvolver um sistema de negociação com base nos indicadores técnicos mais populares, você pode ler os meus outros artigos desta série, pois temos muitos indicadores técnicos que compartilhamos nesses artigos e sistemas de negociação projetados com base neles e no conceito básico por trás deles por meio de estratégias simples. Você pode encontrar muitos dos indicadores técnicos mais populares nesses artigos, por exemplo, média móvel, MACD, estocástico, RSI e ADX.

                                      Traduzido do Inglês pela MetaQuotes Ltd.
                                      Artigo original: https://www.mql5.com/en/articles/11297

                                      DoEasy. Controles (Parte 14): Novo algoritmo para nomear elementos gráficos. Continuando o trabalho no objeto WinForms TabControl DoEasy. Controles (Parte 14): Novo algoritmo para nomear elementos gráficos. Continuando o trabalho no objeto WinForms TabControl
                                      Neste artigo, elaboraremos um novo algoritmo para nomear todos os elementos gráficos que permitem criar gráficos personalizados, e continuaremos desenvolvendo o objeto WinForms TabControl.
                                      Redes neurais de maneira fácil (Parte 23): Criando uma ferramenta para transferência de aprendizado Redes neurais de maneira fácil (Parte 23): Criando uma ferramenta para transferência de aprendizado
                                      Nesta série de artigos, já mencionamos a transferência de aprendizado mais de uma vez. Mas até agora o assunto não foi além das menções. Sugiro preencher essa lacuna e dar uma olhada mais de perto na transferência de aprendizado.
                                      Aprendendo a construindo um EA que opera de forma automática (Parte 06): Tipos de contas (I) Aprendendo a construindo um EA que opera de forma automática (Parte 06): Tipos de contas (I)
                                      Aprenda como criar um EA que opera de forma automática, isto de forma simples e o mais seguro possível. Nosso EA, até o momento consegue trabalhar, em qualquer tipo de situação, mas para torná-lo automatizado, ele não está adequado, precisamos fazer algumas coisas.
                                      Redes neurais de maneira fácil (Parte 22): Aprendizado não supervisionado de modelos recorrentes Redes neurais de maneira fácil (Parte 22): Aprendizado não supervisionado de modelos recorrentes
                                      Continuamos a estudar algoritmos de aprendizado não supervisionado. E agora proponho discutir as particularidades por trás do uso de autocodificadores para treinar modelos recorrentes.