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

Desenvolvimento de um sistema de negociação baseado no indicador Ichimoku

MetaTrader 5Negociação | 21 setembro 2022, 07:40
514 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introdução

Aqui está um novo artigo da uma série em que aprendemos como criar sistemas de negociação baseados em indicadores técnicos populares. Nele, estudaremos um novo instrumento técnico em detalhes, veremos como ele pode ser usado na negociação e como pode ser útil. Para uma melhor compreensão, veremos algumas estratégias simples.

Tornamos a dividir o trabalho sobre o indicador em vários tópicos:

  1. Definição do indicador Ichimoku
  2. Estratégia do indicador Ichimoku
  3. Esquema de uma estratégia baseada no indicador Ichimoku
  4. Sistema de negociação baseado no indicador Ichimoku
  5. Considerações finais

Na primeira seção, aprenderemos o que é esse indicador, como ele é construído, como pode ser calculado e o que mede. Estudaremos o indicador em detalhes para entender o conceito por trás dele. Na seção "Estratégia do indicador Ichimoku", estudaremos estratégias simples baseadas nesse mesmo conceito do indicador. Além disso, desenvolveremos esquemas passo a passo para cada estratégia, o que servirá como uma excelente base para a criação de um sistema de negociação que gerará automaticamente sinais usando o indicador Ichimoku para MetaTrader 5. Em seguida, passaremos para o tópico mais interessante, nomeadamente aprenderemos como escrever sistemas de negociação em MQL5 usando essas estratégias, que podem gerar sinais de forma automática e precisa para uso na plataforma de negociação MetaTrader 5. Vamos nos debruçar sobre isso na seção "Sistema de negociação baseado no indicador Ichimoku".

Neste artigo, como em todos os outros, usaremos a plataforma de negociação MetaTrader 5 e a linguagem de programação MQL5 (MetaQuotes Language) incorporada à plataforma. Se você não sabe como baixar ou usar o MetaEditor, recomendo ler a seção "Como escrever código MQL5 no MetaEditor" em meu artigo anterior.

Aconselho você a testar e praticar o que aprendeu neste artigo, pois isso o ajudará muito a entender melhor o assunto e, possivelmente, a ter novas ideias.

Nota: Todo o conteúdo deste artigo tem apenas propósitos educacionais e não se destina a outros fins. Tudo o que você colocar em prática com base neste artigo, você faz exclusivamente por sua conta e risco, o autor não garante nenhum resultado.

Agora vamos começar a estudar.


Definição do indicador Ichimoku

Nesta parte, estudaremos em detalhes o indicador Ichimoku, particularmente o que é, o que mede, como é construído e suas características de cálculo. Depois de analisar cuidadosamente todos os detalhes do indicador, vamos conseguir usá-lo com mais eficiência.

O indicador Ichimoku foi desenvolvido por Goichi Hosoda. Esta ferramentas criada no seio da escola japonesa pode ser usada para obter informações detalhadas sobre um determinado instrumento financeiro, uma vez que permite identificar a direção da tendência, nível de suporte/resistência, impulso e sinais de negociação. Já falamos sobre tendências mais de uma vez em artigos anteriores, por isso, você pode, por exemplo, ler este artigo que descreve o que é uma tendência detalhadamente.

Está construído em cinco partes:

  • Linha Tenkan-Sen (linha de reversão)
  • Linha Kijun-Sen (linha base)
  • Linha Senkou Span A (principal A)
  • Linha Senkou Span B (principal B)
  • Linha Chikou Span (retardada)
As linhas Senkou Span A e Senkou Span B formam uma nuvem (Kumo) quando plotadas.

Agora vamos ver como calcular o indicador Ichimoku manualmente, isto nos permitirá entender o conceito por trás do indicador ou usá-lo mais efetivamente. Bem, precisaremos calcular cada elemento do indicador Ichimoku.

Linha Tenkan-Sen (linha de reversão) = (valor máximo de 9 períodos + valor mínimo de 9 períodos)/2

Linha Kijun-Sen (linha base) = (valor máximo de 26 períodos + valor mínimo de 26 períodos)/2

Linha Senkou Span A (principal A) = (Tenkan-Sen + Kijun-Sen)/2 - mas será deslocada 26 períodos no futuro

Linha Senkou Span B (principal B) = (valor máximo de 52 períodos + valor mínimo de 52 períodos)/2 - também será deslocada 26 períodos no futuro

Chikou Span Line (retardada) = preço de fechamento atual com 26 períodos no passado

Atualmente não há necessidade de calculá-lo manualmente, pois existe um indicador pronto, que vem como padrão na plataforma MetaTrader 5. Tudo o que você precisa fazer é selecionar Ichimoku na lista de indicadores disponíveis e ele aparecerá no gráfico sem nenhum cálculo de nossa parte. Para inserir o indicador Ichimoku em um gráfico na plataforma MetaTrader5, selecione o menu Inserir --> Indicadores --> Ichimoku Kinko Hyo.

Aqui vemos o segundo nome do indicador Ichimoku - Ichimoku Kinko Hyo.

 Inserindo o indicador Ichimoku no gráfico

Depois disso, a janela de parâmetros do indicador será aberta, assim:

 Opções de inicialização do indicador Ichimoku

Nesta janela, você precisa definir os parâmetros do indicador:

1 — Período de cálculo da linha Tenkan-sen

2 — período de cálculo da linha Kijun-sen

3 — período de cálculo da linha Senkou Span B

Você também pode definir o estilo e a aparência desejados na guia de cores:

Cores para o indicador Ichimoku

1 — Cor da linha Tenkan-sen

1A — Estilo de linha Tenkan-sen

1B — Espessura da linha Tenkan-sen


2 — Cor da linha Kijun-sen

2A — Estilo da linha Kijun

2B — Espessura da linha Kijun


3 — Cor da linha Chikou Span

3A — Estilo da linha Chikou Span

3B — Espessura da linha Chikou Span


4 — Cor da nuvem durante um movimento ascendente (Up Kumo)

4A — Estilo da nuvem durante o movimento ascendente (Up Kumo)

4B — Espessura da nuvem durante o movimento ascendente (Up Kumo)


5 — Cor da nuvem durante um movimento descendente (Down Kumo)

5A — Estilo nuvem durante o movimento descendente (Down Kumo)

5B — Espessura da nuvem durante o movimento descendente (Down Kumo)


Após definir os parâmetros, o indicador aparecerá no gráfico conforme mostrado abaixo.

Indicador Ichimoku em um gráfico

Como se pode ver pelo indicador no gráfico da figura anterior, Tenkan-Sen e Kijun-Sen são as linhas azul e vermelha, enquanto que Chikou Span é a linha verde, que representa o preço de fechamento, que foi plotado há 26 horas, consoante o período gráfico. E temos também uma nuvem (Senkou Span A e Senkou Span B) que está 26 horas à frente e é de cor vermelha, o que significa que está se movendo para baixo.


Estratégia do indicador Ichimoku

Nesta parte aprenderemos como usar o indicador Ichimoku de acordo com seu conceito, usando estratégias simples como exemplos. Analisaremos também uma estratégia que pode ser usada para identificar uma tendência usando o identificador de tendência Ichimoku. Além disso, exploraremos uma estratégia que pode ser usada para obter informações sobre a força da tendência através da estratégia de força Ichimoku. Em seguida, examinaremos uma estratégia que pode ser usada para confirmar um sinal de alta ou baixa com base em dois métodos diferentes de cruzamento, ou seja, olharemos para as estratégias de sinal price-Ki e ten-Ki com base no indicador Ichimoku.

Mais uma vez, é necessário testar qualquer nova estratégia antes de usá-la em sua conta real. Não há nada que se adapte absolutamente a todos. Cada um de nós tem seu próprio estilo de negociação, baseado na maneira de ser e nos hábitos. O que pode ser útil para mim pode não ser útil para você.

Além disso, mesmo que você ache que a ideia ou o conceito da estratégia combina com você, talvez seja necessário otimizá-la para construí-la especificamente para você. Assim, antes de tudo, é muito importante testá-la em uma conta demo e entender se a ferramenta será útil para você ou não.

  • Primeira estratégia: identificador de tendência baseado no Ichimoku

De acordo com essa estratégia, usaremos o indicador como um alerta sobre o tipo de tendência, verificando se no momento a tendência é de alta ou de baixa. Para fazer isso, você precisará analisar três valores: o preço de fechamento, Senkou Span A e Senkou Span B. Se o preço de fechamento for maior que Senkou Span B e, ao mesmo tempo, o preço de fechamento também for maior que Senkou Span A, teremos um sinal de tendência de alta. Por outro lado, se o preço de fechamento for inferior ao Senkou Span B e o preço de fechamento também for inferior ao Senkou Span A, isso será indicativo de uma tendência de baixa.

Preço de Fechamento > Senkou Span B e Preço de Fechamento > Senkou Span A --> Tendência de Alta

Preço de Fechamento < Senkou Span B e Preço de Fechamento < Senkou Span A --> Tendência de Baixa

  • Segunda estratégia: força da tendência baseada no indicador Ichimoku

De acordo com essa estratégia, usaremos o indicador como um indicador da força da tendência atual. Para fazer isso, verificamos novamente três valores: a linha Senkou Span A atual, a Senkou Span A anterior e a Senkou Span B. Se a linha Senkou Span A atual for maior que a Senkou Span A anterior e a Senkou Span A atual for maior que o Senkou Span B, isso é um sinal de que a tendência é de alta e forte. Por outro lado, se o Senkou Span A atual estiver abaixo do Senkou Span A anterior, e o Senkou Span A atual estiver abaixo do Senkou Span B, isso será um sinal de que a tendência é de baixa e forte.

Senkou Span A atual > Senkou Span A anterior e Senkou Span A atual > Senkou Span B --> Forte tendência de alta

Senkou Span A atual < Senkou Span A anterior e Senkou Span A atual < Senkou Span B --> Forte tendência de baixa 

  • Estratégia três: sinal price-Ki baseado no Ichimoku

De acordo com essa estratégia, durante uma tendência de alta, o indicador exibirá informações sobre a presença de um sinal de alta e, durante uma tendência de baixa, gerará uma notificação de sinal de baixa. Para determinar o sinal, ele verificará dois valores: o preço de fechamento e o Kijun-Sen. Se o preço de fechamento for maior que o valor de Kijun-Sen, isso será um sinal de alta. Por outro lado, se o preço de fechamento estiver abaixo do valor Kijun-Sen, será um sinal de baixa.

Com a tendência de alta: Preço de fechamento > kijun-sen --> sinal de alta

Com a tendência de baixa: Preço de fechamento < kijun-sen --> sinal de baixa

  • Quarta estratégia: sinal ten-ki baseado no Ichimoku

Essa é outra estratégia que pode gerar alertas para um sinal de alta durante uma tendência de alta ou um sinal de baixa durante uma tendência de baixa. Para esta estratégia, vamos verificar dois valores: Tenkan-sen e Kijun-sen. Se o valor de Tenkan-sen for maior que o valor de Kijun-sen, este é um sinal de alta no mercado. Por outro lado, se Tenkan-sen for inferior ao valor de Kijun-sen, será um sinal de baixa.

Tenkan-sen > Kijun-sen --> sinal de alta

Tenkan-sen < Kijun-sen --> sinal de baixa


Esquema de uma estratégia baseada no indicador Ichimoku

Nesta parte, desenvolveremos um plano para escrever código de acordo com as estratégias consideradas. Considero este um dos passos mais importantes no estudo das estratégias de negociação, pois o plano/esquema permite desenvolver passo a passo o sistema de negociação.

  • Primeira estratégia: identificador de tendência baseado no Ichimoku

De acordo com a descrição dessa estratégia, precisamos criar um sistema de negociação que verifique constantemente os preços de fechamento, os valores Senkou Span A e Senkou span. O sistema então tem que comparar esses valores e determinar qual é maior e qual é menor. Com base nisso, ele deve decidir se o mercado está em tendência de alta ou de baixa. E o valor deve ser exibido como um comentário no gráfico. Além disso, os valores para o preço de fechamento e para as linhas Ichimoku no gráfico devem ser exibidos adicionalmente. Se o preço de fechamento for maior que o Span B e maior que o Span A, então a tendência é de alta. Se o preço de fechamento for inferior ao Span B e inferior ao Span A, a tendência é de baixa.

Diagrama de estratégia para identificação de tendências usando Ichimoku

  • Segunda estratégia: força da tendência baseada no indicador Ichimoku

Com base nessa estratégia, criaremos um sistema de negociação que gerará um alerta com informações sobre a força da tendência atual. Para fazer isso, o sistema verificará constantemente os valores do Senkou Span A atual, do Senkou Span A anterior e do Senkou Span B. O sistema de negociação deve comparar esses valores e determinar qual deles é maior e qual é menor . Com base nessa comparação, deve retornar a força da tendência atual. Se o valor atual do Span A for maior que o Span A anterior, e também o valor atual do Span A for maior que o Span B, então a tendência é de alta e forte. As informações devem ser exibidas como um comentário no gráfico. Os valores das linhas Ichimoku também devem ser exibidos.

Esquema de uma estratégia para identificar a força da tendência por Ichimoku

  • Estratégia três: sinal price-Ki baseado no Ichimoku

O sistema que funciona de acordo com essa estratégia deve exibir um comentário com sinal de alta ou baixa no gráfico, assim como os valores dos preços de fechamento e da linha Kijun-sen. Para isso, o sistema de negociação deve verificar constantemente os valores do preço de fechamento e da linha Kijun-sen, compará-los e decidir qual deles é maior ou menor. Se o preço de fechamento for superior à linha Kijun-sen, no gráfico aparecerá um comentário com o sinal de alta, o preço de fechamento e o valor do Kijun-sen. Se o preço de fechamento for inferior à linha Kijun-sen, um comentário será exibido no gráfico com um sinal de baixa, o preço de fechamento e o valor do Kijun-sen.

 Diagrama da estratégia de sinal price-Ki usando Ichimoku

  • Quarta estratégia: sinal ten-ki baseado no Ichimoku

O sistema que funciona de acordo com essa estratégia deve exibir um comentário com um sinal de alta ou de baixa no gráfico com base na comparação das linhas Tenkan Sen e Kijun Sen. Assim, o sistema de negociação deve comparar constantemente esses dois valores e retornar como comentário no gráfico um sinal de alta, os valores de Tenkan Sen e Kijun Sen se o valor de Tenkan Sen for maior que o valor de Kijun Sen. Se, pelo contrário, a linha Tenkan Sen for mais alta, será necessário retornar um sinal de baixa e valores de linha.

Diagrama da estratégia do sinal ten-Ki usando Ichimoku

Sistema de negociação baseado no indicador Ichimoku

Agora, aprenderemos como desenvolver um sistema de negociação baseado nos valores do indicador Ichimoku, e nesse processo veremos como determinar a tendência, a força da tendência, os sinais de alta e de baixa.

Vamos começar escrevendo um programa simples que exibe um comentário no gráfico com o valor atual das linhas Ichimoku. Ele será a base para todas as estratégias a seguir.

Nosso código vai conter a diretiva #include para o arquivo Indicators/Trend.mqh. Em seguida, usamos a classe CiIchimoku para obter os valores do indicador Ichimoku.

#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;

Com void OnInit(), vamos chamar o indicador e criar variáveis duplas com os valores Tenkan-sen, Kijun-sen, Senkou span A, Senkou span B e Chikou span.

   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);

Exibimos esses valores como um comentário no gráfico - cada valor em uma linha separada.

   Comment("Tenkan Sen Value is: ",TenkanVal,"\n",
           "Kijun Sen Value is: ",KijunVal,"\n",
           "Senkou Span A Value is: ", SpanAVal,"\n",
           "Senkou Span B Value is: ",SpanBVal,"\n",
           "Chikou Span Value is: ",ChikouVal);

O código completo para este sistema fica assim:

//+------------------------------------------------------------------+
//|                                       Simple Ichimoku system.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"
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//+------------------------------------------------------------------+
void OnInit()
  {
   Ichimoku = new CiIchimoku();
   Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);

   Comment("Tenkan Sen Value is: ",TenkanVal,"\n",
           "Kijun Sen Value is: ",KijunVal,"\n",
           "Senkou Span A Value is: ", SpanAVal,"\n",
           "Senkou Span B Value is: ",SpanBVal,"\n",
           "Chikou Span Value is: ",ChikouVal);
  }
//+------------------------------------------------------------------+

Após a compilação, o programa aparecerá na janela do Navegador no MetaTrader 5.

Ichimoku no Navegador

Iniciamos clicando duas vezes no arquivo ou arrastando-o para o gráfico, e aparecerá a seguinte janela com os parâmetros de inicialização.

Janela para iniciar o Ichimoku

Agora após clicar em "OK" o programa aparecerá no gráfico.

Sistema Ichimoku simples em um gráfico

E exemplo de sinais gerados por este sistema pode ser visto abaixo.

Sinal de sistema simples Ichimoku

Na figura acima, você pode ver que o comentário apareceu no gráfico com os seguintes valores:

  • Valor Tenkan Sen
  • Valor Kijun Sen
  • Valor Senkou Span A
  • Valor Senkou Span B
  • Valor Chikou Span
Esses são os valores de todos os elementos do indicador Ichimoku.
  • Primeira estratégia: identificador de tendência baseado no Ichimoku

Em seguida, vamos escrever o código do sistema de negociação que exibirá um comentário com o valor da tendência atual. Abaixo está o código completo para tal estratégia.

//+------------------------------------------------------------------+
//|                                    Ichimoku trend identifier.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"
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//+------------------------------------------------------------------+
void OnInit()
  {
   Ichimoku = new CiIchimoku();
   Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlRates PArray[];
   int Data=CopyRates(_Symbol,_Period,0,1,PArray);

   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);


   if(PArray[0].close>SpanBVal&&PArray[0].close>SpanAVal)
     {
      Comment("The trend is up","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

   if(PArray[0].close<SpanBVal&&PArray[0].close<SpanAVal)
     {
      Comment("The trend is down","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }
  }
//+------------------------------------------------------------------+

Diferenças introduzidas no código:

Criamos uma matriz de preços usando a função MqlRates, que armazena informações sobre preços.

MqlRates PArray[];

Preenchemos a matriz de preços usando a função CopyRates depois de criar uma variável inteira para os dados. A função CopyRates recebe dados históricos MqlRates.

int Data=CopyRates(_Symbol,_Period,0,1,PArray);

Condições da estratégia do identificador de tendência baseado no Ichimoku.

Em caso de tendência de alta:

   if(PArray[0].close>SpanBVal&&PArray[0].close>SpanAVal)
     {
      Comment("The trend is up","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

Em caso de tendência de baixa:

   if(PArray[0].close<SpanBVal&&PArray[0].close<SpanAVal)
     {
      Comment("The trend is down","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

Depois disso, compilamos o código do EA. O arquivo compilado aparecerá na janela Navigator no terminal MetaTrader 5, conforme mostrado abaixo.

Ichimoku no Navegador 2

Iniciamos clicando duas vezes no arquivo ou arrastando-o para o gráfico. Depois disso, a janela do EA aparecerá novamente.

Janela da estratégia para identificação de tendência baseada no Ichimoku

Depois de pressionar "OK", o programa aparecerá no gráfico.

Estratégia para identificar a tendência com base no Ichimoku no gráfico

Abaixo está um exemplo de sinais gerados pelo sistema durante uma tendência de alta e uma tendência de baixa.

Sinal de tendência de alta:

Estratégia para identificar tendência usando - sinal de crescimento

O comentário aparece no gráfico com os seguintes valores:

  • The trend is up - tendência de alta
  • Valor do preço de fechamento
  • Valor Tenkan Sen
  • Valor Kijun Sen
  • Valor Senkou Span A
  • Valor Senkou Span B
  • Valor Chikou Span

Essa estratégia exibe informações sobre a tendência de alta e os valores do preço e dos elementos Ichimoku.

Sinal de tendência de baixa:

Estratégia para identificação de tendência usando Ichimoku - sinal de queda

O comentário aparece no gráfico com os seguintes valores:

  • The trend is down - tendência de baixa
  • Valor do preço de fechamento
  • Valor Tenkan Sen
  • Valor Kijun Sen
  • Valor Senkou Span A
  • Valor Senkou Span B
  • Valor Chikou Span

Essa estratégia exibe informações sobre a tendência de alta e os valores do preço e dos elementos Ichimoku.

  • Segunda estratégia: força da tendência baseada no indicador Ichimoku

De acordo com essa estratégia, o sistema deve exibir um comentário no gráfico com a força da tendência e o tipo de tendência atual (para cima ou para baixo). A seguir, mostramos como escrever o código MQL5 de um sistema que funciona de acordo com essa estratégia.

//+------------------------------------------------------------------+
//|                                      Ichimoku trend strength.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"
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//+------------------------------------------------------------------+
void OnInit()
  {
   Ichimoku = new CiIchimoku();
   Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanAPrevVal= Ichimoku.SenkouSpanA(-25);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);

   if(SpanAVal>SpanAPrevVal&&SpanAVal>SpanBVal)
     {
      Comment("The trend is up and strong","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Prev. Value is: ", SpanAPrevVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

   if(SpanAVal<SpanAPrevVal&&SpanAVal<SpanBVal)
     {
      Comment("The trend is down and strong","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Prev. Value is: ", SpanAPrevVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }
  }
//+------------------------------------------------------------------+

Este código difere em termos de estratégia.

Em caso de forte tendência de alta:

   if(SpanAVal>SpanAPrevVal&&SpanAVal>SpanBVal)
     {
      Comment("The trend is up and strong","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Prev. Value is: ", SpanAPrevVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

Em caso de forte tendência de baixa:

   if(SpanAVal<SpanAPrevVal&&SpanAVal<SpanBVal)
     {
      Comment("The trend is down and strong","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Prev. Value is: ", SpanAPrevVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

Após a compilação, o programa aparecerá na janela do Navegador no MetaTrader 5.

Ichimoku no Navegador 3

Clicamos duas vezes para iniciar o sistema, a janela do EA será aberta:

 Janela de estratégia para identificar a força da tendência por Ichimoku

Clicamos em "OK" e o programa aparecerá no gráfico.

Estratégia para identificar a força da tendência Ichimoku no gráfico

Exemplos de sinais gerados com base nesta estratégia durante o teste do sistema. Para uma tendência de alta.

Força da tendência com Ichimoku: forte tendência de alta

Na figura acima, você pode ver que o comentário apareceu no gráfico com os seguintes valores:

  • The trend is up and strong - forte tendência de alta
  • Valor Tenkan Sen
  • Valor Kijun Sen
  • Valor anterior de Senkou Span A
  • Valor Senkou Span A
  • Valor Senkou Span B
  • Valor Chikou Span

No comentário são exibidas informações de que a tendência é de alta e forte. Exemplos de sinais gerados com base nesta estratégia durante o teste do sistema. Para uma tendência de baixa.

 Força da tendência com Ichimoku : forte tendência de baixa

Na figura acima, você pode ver que o comentário apareceu no gráfico com os seguintes valores:

  • The trend is down and strong - forte tendência de baixa
  • Valor Tenkan Sen
  • Valor Kijun Sen
  • Valor anterior de Senkou Span A
  • Valor Senkou Span A
  • Valor Senkou Span B
  • Valor Chikou Span

Desta vez, o comentário exibe informações de que a tendência é de baixa e forte.

  • Estratégia três: sinal price-Ki baseado no Ichimoku

O sistema que funciona de acordo com essa estratégia deve exibir um comentário no gráfico com um sinal de alta ou baixa com base na interseção do preço e da linha Kijun sen. Aqui está o código completo para este sistema:

//+------------------------------------------------------------------+
//|                                     Ichimoku Price-Ki signal.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"
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//+------------------------------------------------------------------+
void OnInit()
  {
   Ichimoku = new CiIchimoku();
   Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlRates PArray[];

   int Data=CopyRates(_Symbol,_Period,0,1,PArray);

   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);

   if(PArray[0].close>KijunVal)
     {
      Comment("Bullish signal","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

   if(PArray[0].close<KijunVal)
     {
      Comment("Bearish signal","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }
  }
//+------------------------------------------------------------------+

Diferenças neste código:

Criamos e preenchemos a matriz de preços.

   MqlRates PArray[];

   int Data=CopyRates(_Symbol,_Period,0,1,PArray);

 Condições da estratégia Ichimoku Price-Ki na presença de um sinal de alta.

   if(PArray[0].close>KijunVal)
     {
      Comment("Bullish signal","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

Condições da estratégia Ichimoku Price-Ki na presença de um sinal de baixa.

   if(PArray[0].close<KijunVal)
     {
      Comment("Bearish signal","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

Após a compilação, o programa Expert Advisor aparecerá na janela Navigator no MetaTrader 5.

Ichimoku no Navegador 5

Arrastamos nosso programa do Navegador para o gráfico. Isto irá abrir uma janela como esta.

 Janela do sinal Price-Ki com Ichimoku

Depois de pressionar "OK", o programa aparecerá no gráfico.

Sinal price-Ki com base no Ichimoku no gráfico

Exemplos de sinais de teste gerados com base nesta estratégia (com um sinal de alta):

Sinal de baixa com Price-Ki Ichimoku

Como você pode ver no exemplo, há um comentário no gráfico com os seguintes valores:

  • Bullish signal - sinal de alta
  • Valor do preço de fechamento
  • Valor Kijun-sen

Um sinal de alta é gerado com base na interseção do preço e da linha Kijun Sen. Exemplos de sinais de teste gerados com base nesta estratégia (com um sinal de baixa):

 Sinal de baixa com Price-Ki Ichimoku

Como você pode ver no exemplo, há um comentário no gráfico com os seguintes valores:

  • Sinal de baixa
  • Valor do preço de fechamento
  • Valor Kijun-sen

Um sinal de baixa é gerado com base na interseção do preço e da linha Kijun Sen.

  • Quarta estratégia: sinal ten-ki baseado no Ichimoku

Um sistema que funcione de acordo com essa estratégia deve exibir um comentário com um sinal de alta ou baixa no gráfico com base na interseção das linhas Tenkan Sen e Kijun sen. Aqui está o código completo para este sistema:

//+------------------------------------------------------------------+
//|                                       Ichimoku ten-Ki signal.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"
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//+------------------------------------------------------------------+
void OnInit()
  {
   Ichimoku = new CiIchimoku();
   Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);

   if(TenkanVal>KijunVal)
     {
      Comment("Bullish signal","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

   if(TenkanVal<KijunVal)
     {
      Comment("Bearish signal","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }
  }
//+------------------------------------------------------------------+

Este código difere em termos de estratégia.

No caso de um sinal de alta:

   if(TenkanVal>KijunVal)
     {
      Comment("Bullish signal","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

Em caso de sinal de baixa:

   if(TenkanVal<KijunVal)
     {
      Comment("Bearish signal","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

Depois disso, compilamos o código do conselheiro e ele aparece na janela Navegador no terminal MetaTrader 5.

Ichimoku no Navegador 4

Executamos clicando duas vezes, depois disso aparecerá a seguinte janela.

Janela de estratégia Ichimoku ten-Ki signal

Clicamos em "OK" e o programa aparecerá no gráfico.

Estratégia de sinal Ichimoku dez-Ki no gráfico

Exemplos de sinais gerados durante o teste com base nesta estratégia (com um sinal de alta):

Estratégia Ichimoku ten-Ki signal - sinal de alta

Como você pode ver no exemplo, há um comentário no gráfico com os seguintes valores:

  • Bullish signal - sinal de alta
  • Valor Tenkan Sen
  • Valor Kijun-sen

Um sinal de alta é gerado com base na interseção das linhas Tenkan Sen e Kijun Sen. Exemplos de sinais gerados durante o teste com base nesta estratégia (com um sinal de baixa):

Estratégia Ichimoku ten-Ki signal - sinal de baixa

   

Como você pode ver no exemplo, há um comentário no gráfico com os seguintes valores:

  • Sinal de baixa
  • Valor Tenkan Sen
  • Valor Kijun-sen

Um sinal de baixa é gerado com base na interseção das linhas Tenkan Sen e Kijun Sen.


Considerações finais

O indicador Ichimoku pode ser usado como um sistema abrangente que permite definir mais de um dado em um gráfico: o tipo de tendência, a força da tendência e a capacidade de receber sinais de negociação de alta ou baixa. Como tal, é uma ferramenta de negociação útil que, quando usada corretamente, pode melhorar os resultados - pode ajudá-lo a tomar as decisões certas, identificando vários pontos de vista com um único indicador.

Acho que aprendemos muito sobre esse indicador. Você pode precisar saber mais informações, e tudo bem, pois abordamos apenas o básico aqui. Portanto, eu recomendo trabalho adicional com ele se você quiser usá-lo na negociação.

Neste artigo, analisamos o Ichimoku de diferentes ângulos - aprendemos o que é, o que mede, como funciona e como calculá-lo. Analisamos como usá-lo com estratégias simples baseadas no conceito básico por trás dele. Estudamos as seguintes estratégias:

  • Identificação de tendência Ichimoku - a estratégia informa o tipo de tendência, para cima ou para baixo.
  • Força da tendência Ichimoku - a estratégia informa quando uma forte tendência está se formando.
  • Sinal da interseção do preço e da linha Kijun Sen é - a identificação de um sinal de alta e baixa.
  • Sinal da interseção das linhas Tenkan Sen e Kijun Sen - a identificação de um sinal de alta e baixa.

Também criamos um plano passo a passo que ajuda você a criar um sistema de negociação com base nas estratégias discutidas. Escrevemos sistemas de negociação em MQL5 para cada estratégia considerada para uso no MetaTrader 5. Espero que você consiga aplicar o que aprendeu e tente programar sozinho, pois a prática é um fator importante em qualquer processo de aprendizagem. Mais uma vez, é muito importante testar minuciosamente antes de aplicá-los em uma conta real. Afinal, o que funciona para os outros pode não funcionar necessariamente para você.

A negociação algorítmica é uma ferramenta incrível que permite melhorar a negociação, ajudando a evitar emoções humanas que podem ser prejudiciais. Já foi dito mais de uma vez que as emoções desempenham um grande papel na negociação e muitas vezes causam fracasso. E se você encontrar uma ferramenta que possa executar negociações automaticamente com base em uma estratégia vencedora, será indiscutivelmente um tesouro. Além disso, desta forma, liberamos tempo que podemos gastar em outras coisas úteis, enquanto o sistema de negociação funciona para nós.

E, em geral, espero que o artigo seja útil para você e o ajude a atingir seus objetivos de negociação. Se você gostou deste artigo, leia meus artigos anteriores desta série para aprender como desenvolver um sistema de negociação baseado em indicadores técnicos populares.

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

DoEasy. Controles (Parte 9): Reorganizando métodos de objetos WinForms, controles "RadioButton" e "Button" DoEasy. Controles (Parte 9): Reorganizando métodos de objetos WinForms, controles "RadioButton" e "Button"
No artigo de hoje, organizaremos os nomes dos métodos das classes dos objetos WinForms e criaremos os objetos WinForms Button e RadioButton.
Redes neurais de maneira fácil (Parte 18): Regras de associação Redes neurais de maneira fácil (Parte 18): Regras de associação
Como continuação desta série, gostaria de apresentar a vocês outro tipo de tarefa dos métodos de aprendizado não supervisionado, em particular a busca de regras de associação. Este tipo de tarefa foi usado pela primeira vez no varejo para analisar cestas de compras. Neste artigo falaremos sobre as possibilidades de utilização de tais algoritmos no trading.
O modelo de movimento dos preços e suas principais disposições (Parte 1): A versão do modelo mais simples e suas aplicações O modelo de movimento dos preços e suas principais disposições (Parte 1): A versão do modelo mais simples e suas aplicações
O artigo fornece os fundamentos de um movimento de preços matematicamente rigoroso e a teoria do funcionamento do mercado. Até o presente, nós não tivemos nenhuma teoria de movimento de preços matematicamente rigorosa. Em vez disso, nós tivemos que lidar com as suposições baseadas na experiência, afirmando que o preço se move de uma certa maneira após um determinado padrão. É claro que essas suposições não foram apoiadas nem pela estatística e nem pela teoria.
Desenvolvendo um EA de negociação do zero (Parte 31): Em direção ao futuro (IV) Desenvolvendo um EA de negociação do zero (Parte 31): Em direção ao futuro (IV)
Vamos continuar a retirar coisas de dentro do EA. Mas no entanto este será o último artigo desta serie. A última coisa que será de fato removida, nesta serie de artigos, é o sistema de som. Talvez isto venha a lhe dar um nó no cérebro, caso você não tenha acompanhado estes artigos.