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

Como desenvolver um sistema de negociação baseado no indicador Williams PR

MetaTrader 5Negociação | 6 outubro 2022, 09:41
671 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introdução

Neste novo artigo da nossa série sobre como desenvolver um sistema de negociação com base nos indicadores técnicos mais populares, nós aprenderemos como desenvolver diferentes sistemas de negociação simples com base em um novo indicador técnico que é o Williams Percent Range (WPR). Além de entender o indicador técnico Williams Percent Range em detalhes, nós aprenderemos como nós podemos usá-lo efetivamente com base na ideia principal por trás dele. Acredito que se nós pudermos entender a raiz das coisas, nós não só poderemos usá-lo de forma eficaz, mas também podemos encontrar novos "insights" ou ideias em torno do conceito principal ou de qualquer ferramenta relacionada que possa ser uma razão para obter resultados excepcionais e melhores da negociação. Então, eu tenho uma abordagem para tentar aprender e ensinar a raiz das coisas para aprofundar nossa compreensão cada vez mais.

Vamos estudá-lo através dos seguintes tópicos:

  1. Definição do Williams %R
  2. Estratégia do Williams %R
  3. Esquema da estratégia do Williams %R
  4. Sistema de negociação da estratégia Williams %R
  5. Conclusão

Através do primeiro tópico que é a definição do Williams %R, nós vamos aprender o que é o Williams %R, o que ele mede e como nós podemos calculá-lo manualmente. Então nós vamos aprender como nós podemos usar este indicador corretamente através das estratégias simples baseadas no conceito principal por trás deste indicador, nós aprenderemos isso através do tópico da estratégia do Williams %R. Nós vamos desenvolver um esquema passo a passo para cada estratégia mencionada, para nos ajudar a criar a tarefa principal deste artigo que é criar um sistema de negociação através deste indicador. Este esquema será feito através do tópico do esquema da estratégia do Williams %R. Então, nós chegaremos ao tópico mais interessante deste artigo: criar um sistema de negociação baseado nas estratégias mencionadas através do tópico do sistema de negociação do indicador Williams %R.

Após esses tópicos mencionados, acho que nós aprenderemos os fundamentos deste indicador técnico, além de aprender como nós criamos um sistema de negociação simples baseado nele para poder usar esse sistema de negociação na MetaTrader 5 para gerar os sinais automaticamente. Eu encorajo você a aplicar tudo sozinho, pois isso será muito útil para entendê-lo profundamente. Teste cada estratégia de sinal antes de usá-la em sua conta real para ter certeza de que ela será útil para você.

Nós usaremos a plataforma de negociação MetaTrader 5 e o MetaEditor integrado para escrever os nossos códigos em MQL5 e criar o nosso sistema de negociação na forma de expert advisors. Se você quiser saber como instalar a MetaTrader 5 ou como usar o MetaEditor, leia o tópico Escrevendo o código em MQL5 no MetaEditor do meu 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 a aprender uma nova ferramenta que pode ser um ponto de transição em nossa jornada de negociação para a obtenção de melhores resultados.


Definição do Williams %R

Assim como eu mencionei na introdução, nós aprenderemos detalhadamente sobre o indicador Williams %R. O Williams %R (WPR) é um indicador de momento desenvolvido por Larry Williams. Podemos dizer que o WPR é o oposto do oscilador estocástico, pois a diferença entre eles é como eles são dimensionados, nós podemos dizer também que o WPR pode ser usado da mesma forma que o estocástico também. Se você quiser saber mais sobre o indicador estocástico, leia meu artigo anterior sobre Aprenda a desenvolver um sistema de negociação baseado no indicador Estocástico. O WPR mede a relação entre o preço de fechamento e o intervalo da máxima-mínima. O indicador WPR também oscila entre 0 e -100. Como o WPR é um indicador de momento, ele também pode ser usado para medir a força da tendência. Se você quiser saber mais sobre a tendência, você pode ler o tópico da definição de tendência do artigo anterior. O indicador pode ser significativo ao observar os níveis importantes de -80, -20 e o ponto médio -50.

É importante tentar combinar outra ferramenta técnica com este indicador, por exemplo, ferramentas de price action, padrões gráficos, volume e média móvel, como o que nós faremos neste artigo sobre o tópico de estratégias, pois isso será muito útil, pois você poderá esclarecer e ter mais perspectiva no instrumento que você estuda e isso será útil para tomar as decisões adequadas.

Agora, precisamos saber como nós podemos calcular o indicador WPR. De forma simples, nós podemos calculá-lo pelos seguintes passos:

  1. Calcular a maior máxima = o maior valor das máximas no período calculado.
  2. Calcular a menor mínima = o menor valor da mínima no período calculado.
  3. WPR = (maior máxima - fechamento)/(maior máxima - menor mínima) * -100

Para entender melhor, nós precisamos ver um exemplo com os valores reais para aplicar isso e calcular o WPR. A seguir, temos os seguintes dados para um instrumento.

Período Máxima Mínima Fechamento
1 1.078 1.0678 1.0733
2 1.0788 1.0726 1.0777
3 1.0766 1.0697 1.0727
4 1.0733 1.0662 1.0724
5 1.074 1.0642 1.068
6 1.0749 1.0661 1.0734
7 1.0698 1.0558 1.0689
8 1.0599 1.0532 1.056
9 1.0608 1.046 1.0586
10 1.0565 1.046 1.0466
11 1.0556 1.0429 1.0547
12 1.0444 1.0388 1.0431
13 1.0421 1.035 1.0411
14 1.053 1.0353 1.0379
15 1.0577 1.0502 1.0511
16 1.0586 1.0525 1.0527
17 1.0594 1.0495 1.0555
18 1.0601 1.0482 1.0551
19 1.0642 1.0493 1.054
20 1.0632 1.0505 1.0621
21 1.0579 1.0491 1.052
22 1.0567 1.0491 1.051
23 1.0602 1.0381 1.0547
24 1.0509 1.0359 1.0443
25 1.0486 1.0396 1.0414
26 1.052 1.04 1.0408
27 1.0644 1.0505 1.0515
28 1.0775 1.0611 1.0614
29 1.0749 1.0671 1.0714
30 1.0715 1.0652 1.0699

Agora, nós passaremos pelas etapas de cálculo para obter o WPR igual ao seguinte. Observe que, nós vamos usar as configurações padrão do período, que é igual a14.

1- Obtemos a maior máxima.

Valores HH

2- Obtemos a menor mínima.

Valores LL

3- Obtemos o WPR.

Agora, nós calculamos os valores de WPR. Ele será uma linha que oscila entre 0 e -100 para medir o momento da mesma forma que nós mencionamos. Hoje em dia, nós não precisamos calculá-lo manualmente, pois nós podemos encontrá-lo pronto na plataforma de negociação MetaTrader 5 e tudo o que nós precisamos fazer é escolhê-lo entre os indicadores disponíveis da mesma forma que as etapas a seguir.

Inserção W_R

Depois disso, nós encontraremos sua janela para determinar os seus parâmetros da mesma forma que o seguinte:

 Parâmetros W_R

1- Definir o período desejado.

2- Determinar a cor da linha de WPR.

3- Determinar o estilo da linha de WPR.

4- Determinar a espessura da linha de WPR.

Nós também podemos controlar os níveis do indicador através da guia Níveis da mesma forma que segue:

Níveis W_R

Podemos ver na imagem anterior que nós temos dois níveis -80 e -20 que são os níveis importantes para registrar as leituras das máximas e mínimas. Além disso, nós podemos adicionar outros níveis de acordo com o que achamos que será útil, como adicionar o nível -50 de exemplo e pressionando adicionar e determinando o nível a ser exibido na janela do indicador no gráfico.

Após determinar todos os parâmetros desejados e pressionar "OK", o indicador será anexado ao gráfico da mesma forma que o seguinte.

 W_R anexado

Como nós podemos ver na imagem anterior, a linha preta na janela inferior do gráfico está oscilando entre 0 e -100 para medir o momento. Além disso, o ponto médio de -50 é um nível importante e tem insights significativos sobre o movimento de preços, pois quando o WPR cruzar acima do nível -50, isso significa que o preço é negociado na metade superior da faixa da máxima-mínima durante o período calculado e vice-versa. Quando o WPR cruza abaixo do nível -50, isso significa que o preço é negociado na metade inferior da faixa da máxima-mínima no período calculado. Caso contrário, quando nós vemos o indicador abaixo da área de -80, isso significa uma leitura de baixa que indica que o preço é negociado perto de sua mínima, mas quando nós vemos o indicador acima da área de -20, isso significa uma leitura de alta que indica que o preço negocia perto da sua máxima. esses níveis de -80 e -20 são áreas muito importantes porque indicam que os preços atingem áreas de sobrecompra e sobrevenda da mesma forma que nós veremos mais adiante.


Estratégia do Williams %R

Nesta parte, nós aprenderemos como nós podemos utilizar o Williams %R através de estratégias simples baseadas no conceito principal do indicador. Vamos aprender três estratégias diferentes que podem ser usadas com base na ideia por trás do indicador Williams %R. A primeira estratégia, nós chamaremos de Williams %R - OB e OS, a segunda, nós podemos chamar de Williams %R - crossover, e a terceira chamaremos de Williams %R - MA. nas linhas a seguir nós identificaremos como essas estratégias podem ser utilizadas.

  • Estratégia um: Williams %R - OB e OS:

De acordo com essa estratégia, nós precisamos ser notificados quando o instrumento estiver na área de sobrecompra ou na área de sobrevenda com base em uma condição específica. Quando o valor de Williams %R for inferior ao nível -80, este será um sinal de sobrevenda. Quando o valor de Williams %R for maior que o nível -20, este será um sinal de sobrecompra.

Essa estratégia será útil para nos notificar quando os preços atingirem áreas de sobrecompra ou sobrevenda e isso nos ajudará a esperar o próximo movimento ao ler o estado do momentum.

Valor de WPR < -80 --> sobrevendido

Valor de WPR > - 20 --> sobrecomprado

  • Estratégia dois: Williams %R - crossover:

De acordo com essa estratégia, nós precisamos obter um sinal quando houver um sinal de compra ou venda com base no cruzamento entre o Williams %R atual, o Williams %R anterior (WPR) e o nível -50. Quando o WPR anterior for menor que -50 e o WPR atual for maior que -50, este será um sinal de compra. Quando o WPR anterior for maior que -50 e o WPR atual for menor que -50, este será um sinal de venda.

Essa estratégia será útil, pois gerará sinais de compra e venda com base no cruzamento com um nível muito importante que é -50, e será mais eficaz se combinarmos outra ferramenta técnica para confirmar esses sinais.

Prev. WPR < -50 e WPR atual > -50 --> sinal de compra

Prev. WPR > -50 e WPR atual < -50 --> sinal de venda

  • Estratégia três: Williams %R - MA:

De acordo com essa estratégia, nós precisamos receber uma notificação quando tivermos um sinal de compra ou venda também, mas ela será baseada em outra condição, pois nós precisamos obter um sinal de compra quando ask for maior que o valor da média móvel e o valor do Williams %R for superior ao nível -50. Nós precisamos obter um sinal de venda quando bid for menor que o valor médio móvel e o valor do Williams %R for menor que o valor da média móvel.

Essa estratégia nos permite obter sinais de compra e venda mais definidos com base em suas condições, porque aqui nós combinamos outra ferramenta técnica que é a média móvel para confirmar o sinal atual e filtrar falsos rompimentos.

Oferta de venda > valor MA e WPR > -50 --> sinal de compra

Oferta de compra < valor MA e WPR < -50 --> sinal de venda


Esquema da estratégia do Williams %R

Neste tópico, nós projetaremos um esquema passo a passo para criar um sistema de negociação para cada estratégia mencionada. Eu considero esta etapa muito importante em qualquer processo de criação do sistema de negociação, pois ela nos ajudará a entender o que nós precisamos fazer através das etapas organizadas.

  • Estratégia um: Williams %R - OB e OS:

Com base nessa estratégia, nós projetaremos um esquema passo a passo para criar um sistema de negociação, pois nós precisamos que o expert verifique três valores a cada tick e faça uma comparação para determinar a posição de um desses valores em relação a outros, esses três valores são os níveis atuais de WPR, -80 e -20. O expert decidirá após a comparação anterior se o valor atual do WPR for inferior ao nível -80, nós precisamos que o expert gere o comentário "Over Sold" no gráfico. No outro cenário, quando o valor atual do WPR for maior que o nível -20, nós precisamos que o expert gere o comentário "Over Bought" no gráfico.

A seguir está o esquema para esta estratégia:

 Esquema Williams_R - OB _ OS

 

  • Estratégia dois: Williams %R - crossover:

Com base nessa estratégia, nós precisamos que o programa gere sinais de compra ou venda com base na verificação dos três valores do WPR anterior, WPR atual e -50. Este sinal será gerado com base na verificação tick a tick pelo expert para esses três valores para determinar a posição do valor WPR anterior e atual a partir do nível -50. Se o valor do WPR anterior estiver abaixo de -50 e o valor do WPR atual estiver abaixo de -50, o expert deve criar e exibir um sinal de compra e também exibir os valores atuais e anteriores de Williams %R. Se o valor do WPR anterior estiver acima de -50 e o valor do WPR atual estiver acima de -50, o expert também deve gerar e exibir um sinal de venda e exibir um comentário com o Williams %R atual e anterior.

A seguir, mostramos o esquema dessa estratégia.

 Esquema Williams_R - Crossover

  • Estratégia três: Williams %R e MA:

Vamos criar um sistema de negociação que gera sinais de compra e venda com base em um conjunto de condições e confirmações adicionais. O expert deve verificar continuamente os níveis de Ask, Bid, o valor WPR, a média atual e o nível -50. Se o expert determinar que o preço de Ask está acima da média móvel e o valor de WPR está acima do nível -50, ele deve gerar um sinal de compra e também exibir um comentário no gráfico com os valores do Williams %R e a média móvel exponencial. Se o preço de Bid estiver abaixo da média móvel e o WPR estiver abaixo de -50, o expert deve gerar um sinal de venda e exibir o Williams %R e a média móvel exponencial no gráfico.

Este esquema passo a passo o ajudará a desenvolver um sistema de negociação para esta estratégia:

 Esquema Williams_R _ MA

Sistema de negociação da estratégia Williams %R

Nesta parte, veremos como criar um sistema de negociação com base nas estratégias analisadas - essa será a parte mais interessante do artigo. Em primeiro lugar, escreveremos um programa simples que exibirá um comentário no gráfico com o valor do indicador Williams.%R. Isso servirá de base para todos os outros sistemas.

Então, vamos ver como escrever o código para esse sistema de negociação:

  • Criamos um array usando a função "double" que representa os valores de ponto flutuante.
double WPArray[];
  • Em seguida, ordenaremos a matriz de dados atuais, para isso, utilizaremos a função ArraySetAsSeries, que retornará true em caso de sucesso ou false em caso de falha (bool). Os parâmetros desta função serão array[] e um sinalizador.
ArraySetAsSeries(WPArray,true);
  • Em seguida, definiremos as propriedades do indicador Williams %R usando a função iWPR. Para isso, criaremos uma variável inteira WPDef para definir o %R de Williams. A função iWPR retornará o identificador do indicador Williams' Percent Range. Os parâmetros serão o nome do símbolo, o período e o período da média.
    • Usaremos (_Symbol) para ser aplicado no símbolo atualmente usado e (_Period) para ser aplicado no período gráfico atualmente usado.
int WPDef = iWPR(_Symbol,_Period,14);
  • Copiaremos os dados de preço para o array criado usando a função "CopyBuffer" que retorna a contagem de dados copiados ou -1 se houver um erro. Os parâmetros são o manipulador do indicador, tempo do buffer do indicador, posição inicial, quantidade a ser copiada e a matriz de destino a ser copiada.
CopyBuffer(WPDef,0,0,3,WPArray);
  • Obtemos o valor do Williams %R dos dados atuais usando a função "NormalizeDouble" após criar uma variável do tipo "double" de WPValue para o valor do Williams %R atual. Os parâmetros da função "NormalizeDouble" são o número normalizado e o número de dígitos após o ponto decimal.
double WPVal = NormalizeDouble(WPArray[0],2);
  • Usamos a função "Comment" para gerar o valor do Williams %R como um comentário no gráfico.
Comment("Williams' %R Value is",WPVal);

A seguir está o código completo do sistema de negociação que contém todas as funções comentadas:

//+------------------------------------------------------------------+
//|                                            Simple Williams%R.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 WPArray[];

   ArraySetAsSeries(WPArray,true);

   int WPDef = iWPR(_Symbol,_Period,14);

   CopyBuffer(WPDef,0,0,3,WPArray);

   double WPVal = NormalizeDouble(WPArray[0],2);

   Comment("Williams' %R Value is",WPVal);

  }
//+------------------------------------------------------------------+

Após compilar este código nós podemos encontrar o expert no arquivo da pasta "Expert Advisors" na janela do Navegador igual a figura a seguir.

WPR nav1

Ao arrastar e soltar no gráfico desejado para executá-lo, a janela deste sistema de negociação aparecerá da seguinte forma.

Janela Simple W_R

Após pressionar "OK", ele será anexado ao gráfico da seguinte forma.

 Simple W_R anexado

A seguir está um exemplo dos sinais gerados deste sistema de negociação durante os testes.

 Sinal Simple W_R

Como nós podemos ver no exemplo anterior, o expert gerou um comentário do sinal no canto superior esquerdo do gráfico com o valor do WPR atual. Para garantir que o sinal gerado seja o mesmo que o indicador embutido na MetaTrader 5, nós podemos ver isso na imagem a seguir.

Simple W_R - mesmo sinal

Como nós podemos ver na imagem anterior, o expert é anexado e o indicador é inserido geraram o mesmo sinal ou valor. No canto superior direito, podemos ver que o expert Simple Williams %R está executando no gráfico, e no canto superior esquerdo há um comentário com o sinal gerado por ele. O valor do indicador é -78,15, que é igual ao valor do indicador embutido que está sendo executado na janela do indicador no gráfico. O mesmo valor é exibido acima da linha do WPR no lado esquerdo. 

  • Estratégia um: Williams%R - OB & OS:

Com base nessa estratégia, nós precisamos criar um sistema de negociação que possa gerar sinais para nos informar automaticamente quando o preço atingir as áreas de sobrecompra ou sobrevenda. Segue o código completo para criar esse tipo de estratégia:

//+------------------------------------------------------------------+
//|                                         Williams%R - OB & OS.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 WPArray[];
   
   ArraySetAsSeries(WPArray,true);
   
   int WPDef = iWPR(_Symbol,_Period,14);
   
   CopyBuffer(WPDef,0,0,3,WPArray);
   
   double WPVal = NormalizeDouble(WPArray[0],2);
   
   if(WPVal<-80)
   {
      Comment("Over Sold");
   }
   
   if(WPVal>-20)
   {
      Comment("Over Bought");
   }
   
  }
//+------------------------------------------------------------------+

a seguir estão as diferenças neste código.

Condições de sobrevenda:

   if(WPVal<-80)
   {
      Comment("Over Sold");
   }

Condições de sobrecompra:

   if(WPVal>-20)
   {
      Comment("Over Bought");
   }

Após compilar este código, quando nós quisermos executá-lo na MetaTrader 5 para gerar sinais automáticos, faremos o seguinte passo:

Encontramos o arquivo do expert na janela do navegador.

WPR nav3

Arrastamos e soltamos ele no gráfico que precisamos extrair os sinais. O seguinte é para a sua janela.

Janela Williams_R - OB _ OS

Marcamos "Permitir Negociação Automatizada" --> Pressionamos "OK". Encontramos ele anexado ao gráfico.

Williams_R - OB _ OS anexado

A seguir está um exemplo da geração de sinais com base nessa estratégia durante o teste.

Sobrecompra:

Sinal Williams_R - OB _ OS - OB

Como podemos ver no exemplo anterior, o expert gerou um sinal de sobrecompra, pois o valor do WPR está acima do nível -20, o que significa que os preços estão sendo negociados perto de sua máxima durante os 14 períodos.

Sobrevendido:

Sinal Williams_R - OB _ OS - OS

De acordo com o exemplo anterior, nós descobrimos que o WPR está abaixo do nível -80, o que significa que os preços estão sendo negociados perto da sua mínima, portanto, o sinal aqui será sobrevendido.

  • Estratégia dois: Williams%R - Crossover:

De acordo com essa estratégia, nós precisamos criar um sistema de negociação para gerar os sinais de compra e venda com base no cruzamento. Segue o código completo para criar um sistema de negociação baseado nesta estratégia:

//+------------------------------------------------------------------+
//|                                       Williams%R - Crossover.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 WPArray[];

   ArraySetAsSeries(WPArray,true);

   int WPDef = iWPR(_Symbol,_Period,14);

   CopyBuffer(WPDef,0,0,3,WPArray);

   double WPVal = NormalizeDouble(WPArray[0],2);
   double WPPrevVal = NormalizeDouble(WPArray[1],2);

   if(WPPrevVal<-50 && WPVal>-50)
     {
      Comment("Buy signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "Williams % R Previous Value is",WPPrevVal);
     }

   if(WPPrevVal>-50 && WPVal<-50)
     {
      Comment("Sell signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "Williams % R Previous Value is",WPPrevVal);
     }

  }
//+------------------------------------------------------------------+

a seguir estão as diferenças neste código.

Obtemos o valor anterior do Williams %R usando a função "NormalizeDouble" após criar uma variável do tipo "double" de WPPrevValue para o valor do Williams %R anterior. Os parâmetros da função "NormalizeDouble" são o número normalizado e o número de dígitos após o ponto decimal.

double WPPrevVal = NormalizeDouble(WPArray[1],2);

Condições da estratégia Williams%R - crossover.

No caso do sinal de compra:

   if(WPPrevVal<-50 && WPVal>-50)
     {
      Comment("Buy signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "Williams % R Previous Value is",WPPrevVal);
     }

No caso do sinal de venda:

   if(WPPrevVal>-50 && WPVal<-50)
     {
      Comment("Sell signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "Williams % R Previous Value is",WPPrevVal);
     }

Após compilar este código, nós podemos encontrá-lo na janela do navegador igual a imagem a seguir.

WPR nav2

Ao clicar duas vezes no expert desta estratégia como segunda opção para executá-la no gráfico desejado, a janela do expert será exibida.

Janela Williams_R - Crossover

Após pressionar "OK", ele será anexado ao gráfico.

Williams_R - Crossover anexado

A seguir está um exemplo dos sinais gerados desta estratégia durante o teste.

Sinal de compra:

Williams_R - Crossover signal - Sinal de compra

Podemos ver no gráfico que o consultor gerou um sinal de compra; também no comentário, no canto superior esquerdo, podemos ver os valores atuais e anteriores de Williams %R. Nesse caso, podemos ver que as condições para tal sinal foram formadas: WPR = -55.93, ou seja, está abaixo do nível -50, enquanto o valor atual do WPR = -41.09, que está acima desse nível -50.

Sinal de venda:

Williams_R - Crossover signal - Sinal de venda

 

Neste exemplo, um sinal de venda é gerado com base nesta estratégia: o comentário correspondente é exibido no canto superior esquerdo do gráfico, assim como o WPR atual e o WPR anterior.

As condições para este sinal foram formadas no gráfico: o valor anterior = -29.95, que está acima do nível -50, e o WPR atual = -58.8, que está abaixo do nível -50.

  • Estratégia três: Williams%R & MA:

Segue o código completo para criar um sistema de negociação para esta estratégia:

//+------------------------------------------------------------------+
//|                                              Williams%R & MA.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 WPArray[];
   double MAArray[];

   double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
   double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);

   ArraySetAsSeries(WPArray,true);
   ArraySetAsSeries(MAArray,true);

   int WPDef = iWPR(_Symbol,_Period,14);
   int MADef = iMA(_Symbol,_Period,100,0,MODE_EMA,PRICE_CLOSE);

   CopyBuffer(WPDef,0,0,3,WPArray);
   CopyBuffer(MADef,0,0,3,MAArray);

   double WPVal = NormalizeDouble(WPArray[0],2);
   double MAVal = NormalizeDouble(MAArray[0],2);

   if(Ask>MAVal && WPVal>-50)
     {
      Comment("Buy signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "EMA Value is",MAVal);
     }

   if(Bid<MAVal && WPVal<-50)
     {
      Comment("Sell signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "EMA Value is",MAVal);
     }

  }
//+------------------------------------------------------------------+

a seguir estão as diferenças neste código.

Criamos os arrays para WP e MA.

double WPArray[];
double MAArray[];

Obtemos os valores de ask e bid após criar as variáveis do tipo double para eles.

double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);

Ordenamos essas matrizes criadas a partir dos dados atuais.

ArraySetAsSeries(WPArray,true);
ArraySetAsSeries(MAArray,true);

Definimos o Williams PR usando a função iWPR e a Média Móvel usando a função iMA. Os parâmetros do iWPR foram mencionados anteriormente. Os parâmetros do iMA são nome do símbolo, período, período da média, deslocamento horizontal, tipo de suavização e tipo de preço.

int WPDef = iWPR(_Symbol,_Period,14);
int MADef = iMA(_Symbol,_Period,100,0,MODE_EMA,PRICE_CLOSE);

Copiamos os dados de preços para os arrays criados usando a função "CopyBuffer".

CopyBuffer(WPDef,0,0,3,WPArray);
CopyBuffer(MADef,0,0,3,MAArray);

Obtemos os valores atuais de Williams RP e a média móvel.

double WPVal = NormalizeDouble(WPArray[0],2);
double MAVal = NormalizeDouble(MAArray[0],2);

Condições da estratégia.

Em caso de sinal de compra:

   if(Ask>MAVal && WPVal>-50)
     {
      Comment("Buy signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "EMA Value is",MAVal);
     }

Em caso de sinal de venda

   if(Bid<MAVal && WPVal<-50)
     {
      Comment("Sell signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "EMA Value is",MAVal);
     }

Após compilar este código, nós encontraremos o expert na janela do navegador da MetaTrader 5 igual ao seguinte.

WPR nav4

Ao arrastá-lo e soltá-lo no gráfico desejado, encontraremos sua janela igual ao seguinte.

 Janela Williams_R _ MA

Após marcar "Permitir a Negociação Automatizada" e pressionar o botão OK, o programa será anexado ao gráfico:

 Williams_R _ MA anexado

A seguir, um exemplo dos sinais gerados com base nessa estratégia.

Em caso de sinal de compra:

 Williams_R _ MA - Compra

Como nós podemos encontrar no gráfico o sinal gerado no canto superior esquerdo,

  • Sinal de compra 
  • Valor de WPR
  • Valor de EMA

As condições são atendidas. o Ask é maior que MA e o WPR é maior que -50

Em caso de sinal de venda:

 Williams_R _ MA - Venda

Como nós podemos encontrar no gráfico o sinal gerado no canto superior esquerdo,

  • Sinal de venda 
  • Valor de WPR
  • Valor de EMA

As condições são atendidas. O bid é menor que MA e o WPR é menor que o nível -50.


Conclusão

O Williams Percent Range ou Williams' PR é uma importante ferramenta técnica e um dos indicadores mais populares usados ​​para medir o momentum. Também podemos combiná-lo com outros indicadores técnicos para aproveitar ao máximo seus benefícios. Em geral, essa é uma das características mais importantes da análise técnica: poder usar mais de uma ferramenta para obter mais de uma perspectiva e tomar uma decisão mais calculada.

Neste artigo, nos familiarizamos com o indicador técnico Williams PR: aprendemos o que é, o que mede e como é calculado. Para entender melhor, analisamos um exemplo de cálculo. Também aprendemos como usá-lo em um gráfico e como ler seus valores.

Também vimos como usá-lo com estratégias simples baseadas em seu conceito básico. Analisamos as três estratégias a seguir:

  • Williams %R - OB e OS: para gerar sinais de sobrecompra e sobrevenda quando os preços atingirem essas zonas.
  • Williams %R - crossover: para gerar sinais de compra e venda com base em condições específicas e significativas.
  • Williams %R - MA: para gerar sinais de compra e venda com base no WPR e na leitura da média móvel exponencial.
Após isso, desenvolvemos um plano passo a passo para cada estratégia analisada, que deve nos ajudar a criar um sistema de negociação. Em seguida, vimos o desenvolvimento de vários sistemas de negociação: criamos um expert advisor em MQL5 para cada estratégia, obtivemos um programa que pode funcionar na plataforma de negociação MetaTrader 5 e também vimos exemplos dos sinais gerados.

Em geral, o artigo mostra exemplos simples de como podemos usar a programação. A negociação algorítmica é uma ferramenta incrível que pode nos ajudar a tornar a negociação mais fácil e eficiente. Ele pode ser uma ferramenta muito útil para deixar o dinheiro trabalhar para você enquanto você dorme literalmente. Assim, eu encorajo a todos a aprenderem ou pensarem como nós podemos nos beneficiar desta ferramenta de forma a aumentar a probabilidade de maximizar os lucros.

Mais uma vez, é vital que o leitor teste completamente os materiais antes de aplicá-los a uma conta real. Afinal, o que funciona para os outros pode não funcionar para você. Especialmente porque o objetivo principal deste artigo é ensinar algo novo ao leitor. De qualquer forma, as estratégias exigem otimização. Nós realmente esperamos que você tente escrever o código sozinho e coloque em prática o que você aprendeu neste artigo. Espero também que o artigo seja útil para você e o ajude a obter melhores resultados em suas negociações. Se você gostou deste artigo e o achou útil, leia os artigos anteriores da mesma série para aprender como desenvolver um sistema de negociação baseado nos indicadores técnicos mais populares.

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

O modelo de movimento de preços e suas principais disposições (Parte 2): Equação da evolução do campo probabilístico do preço e a ocorrência do passeio aleatório observado O modelo de movimento de preços e suas principais disposições (Parte 2): Equação da evolução do campo probabilístico do preço e a ocorrência do passeio aleatório observado
O artigo considera a equação da evolução do campo probabilístico do preço e o critério do próximo salto do preço. Ela também revela a essência dos valores dos preços nos gráficos e o mecanismo para a ocorrência de um passeio aleatório desses valores.
Letreiro de Cotação — Versão Melhorada Letreiro de Cotação — Versão Melhorada
Que tão darmos uma apimentada na versão básica do Letreiro. Primeira coisa que iremos fazer, é modificar o letreiro de forma a acrescentar uma imagem, seja ela o logotipo do ativo, ou uma outra imagem qualquer, apenas para facilitar uma rápida identificação, de qual ativo estamos vendo.
Aprendendo a construindo um EA que opera de forma automática (Parte 01): Conceitos e estruturas Aprendendo a construindo um EA que opera de forma automática (Parte 01): Conceitos e estruturas
Aprenda como criar um EA que opera de forma automática, isto de forma simples e o mais seguro possível.
Ciência de Dados e Aprendizado de Máquina (Parte 05): Árvores de Decisão Ciência de Dados e Aprendizado de Máquina (Parte 05): Árvores de Decisão
As árvores de decisão imitam a maneira como os humanos pensam para classificar os dados. Vamos ver como construir árvores e usá-las para classificar e prever alguns dados. O principal objetivo do algoritmo de árvores de decisão é separar os dados impuros em puros ou próximos a nós.