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

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

MetaTrader 5Negociação | 6 fevereiro 2023, 10:07
479 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introdução

Aqui está um novo artigo de nossa série sobre como desenvolver um sistema de negociação com base nos indicadores técnicos mais populares. Neste artigo nós vamos conhecer em detalhes o indicador Alligator (Jacaré), aprendendo o que ele é, o que ele mede, como nós podemos calculá-lo, como podemos lê-lo e utilizá-lo. Em seguida, nós criaremos um sistema de negociação baseado em algumas estratégias simples com base no objetivo principal deste indicador. Nós abordaremos esse indicador através dos seguintes tópicos:

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

Eu conselho você a tentar aplicar o que aprendeu sozinho, especialmente os códigos deste artigo, para desenvolver suas habilidades de programação, pois esse é um passo importante para atingir esse objetivo de desenvolvimento. Nós usaremos neste artigo a IDE MQL5 (MetaQuotes Language 5) que está integrado na plataforma de negociação MetaTrader 5, se você não sabe como baixar a MetaTrader 5 e como usar o MQL5, você pode ler o tópico Escrevendo códigos em MQL5 no MetaEditor para saber mais sobre isso.

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.

Definição do Alligator

O indicador técnico Alligator é um seguidor de tendência, desenvolvido por Bill Williams. Ele se baseia no conceito de que a tendência não ocorre durante toda a vida de um instrumento do mercado financeiro, ela ocorre apenas de 15% a 30% do tempo, enquanto a maior parte do tempo o mercado fica lateral, de 85% a 70% do tempo. Portanto, às vezes temos uma tendência de alta ou de baixa, mas na maioria das vezes temos períodos de lateralização. Se você quiser saber mais sobre tendências, seus tipos e como podemos identificá-las, leia o tópico de definição de tendência do meu artigo anterior, ele será útil neste contexto. Ele usa alguns dos números de Fibonacci no cálculo da mesma forma que nós veremos, pois ele usa três médias móveis suavizadas com os períodos iguais a 5, 8 e 13. Como nós dissemos, o indicador Alligator consiste de três médias móveis suavizadas e elas são iguais às seguintes:

  • A Mandíbula do Jacaré.
  • Os dentes do Jacaré.
  • Os Lábios do Jacaré.

Nós podemos calcular este indicador manualmente através dos seguintes passos:

A mandíbula do Jacaré = SMMA (preço mediano, 13, 8)

Os dentes do Jacaré = SMA (preço mediano, 8, 5)

Os lábios do Jacaré = SMMA (preço mediano, 5, 3)

Preço Mediano = (Máxima + Mínima)/2

Onde:

SMMA = Média móvel suavizada

Preço mediano = o preço mediano dos dados

Máxima = a máxima do preço

Mínima = a mínima do preço

Após as etapas anteriores, nós obteremos o indicador Alligator, mas não precisamos calculá-lo manualmente, pois o temos como um indicador integrado na plataforma MetaTrader 5 e tudo o que nós precisamos fazer é escolhê-lo entre os indicadores técnicos disponíveis da mesma forma que a seguir:

Ao abrir a plataforma de negociação MetaTrader 5, nós pressionaremos Inserir --> Indicadores --> Osciladores --> Alligator

 Inserção do Alligator

Depois disso, nós encontraremos os parâmetros dele iguais aos seguintes:

 Parâmetro do indicador Alligator

1- Para definir o período da mandíbula do Jacaré.

2- Para definir o deslocamento horizontal da mandíbula Jacaré.

3- Para definir o período dos dentes do Jacaré.

4- Para definir o deslocamento horizontal dos dentes do Jacaré.

5- Para definir o período dos lábios do Jacaré.

6- Para definir o deslocamento horizontal dos lábios do Jacaré.

7- Para definir o método de suavização.

8- Para definir o tipo de preço usado.

Através da seguinte janela nós podemos determinar o estilo do indicador:

 Alligator param1

1- Para definir a cor da linha das mandíbulas.

2- Para definir o tipo de linha das mandíbulas.

3- Para definir a espessura da linha das mandíbulas.

4- Para definir a cor da linha dos dentes.

5- Para definir o tipo de linha dos dentes.

6- Para definir a espessura da linha dos dentes.

7- Para definir a cor da linha dos lábios.

8- Para definir o tipo de linha dos lábios.

9- Para definir a espessura da linha dos lábios.

Depois de determinar todos os parâmetros e pressionar "OK", nós podemos descobrir que o indicador está anexado ao gráfico da mesma forma que a seguir:

 Alligator anexado

Como nós podemos ver no gráfico anterior nós temos o indicador inserido no gráfico e temos três linhas:

1- Os Lábios do Jacaré.

2- Os dentes do Jacaré.

3- As mandíbulas do Jacaré.

Nós podemos ler o indicador observando a posição dessas linhas dos preços. Se o preço estiver acima dos lábios, dentes e mandíbulas, podemos dizer que a tendência é de alta. Se o preço estiver abaixo dos lábios, dentes e mandíbulas, podemos dizer que a tendência é de baixa. Se o preço estiver se movendo pelas três linhas, podemos dizer que temos uma lateralização.

Estratégia do Alligator

Existem muitas maneiras de usar o indicador Alligator na negociação, mas eu vou mencionar apenas estratégias simples que podem ser usadas com base na ideia principal deste tópico para fins educacionais e você deve testá-las antes de usá-las em sua conta real para garantir que elas sejam lucrativas. Você pode achar que precisa otimizar as estratégias mencionadas, e isso é normal, você pode fazer isso para alcançar a melhor fórmula que pode ser útil para o seu estilo de negociação.

  • Estratégia um: Identificador de tendência do Alligator:

Com base nessa estratégia, nós precisamos obter os sinais de alta e baixa com base em condições específicas. Se o valor dos lábios for maior que dois valores, o valor dos dentes e o valor das mandíbulas e, ao mesmo tempo, o valor dos dentes e o valor das mandíbulas, será um sinal de alta. Em outro caso, se o valor dos lábios for menor que o valor dos dentes e o valor das mandíbulas e, ao mesmo tempo, o valor dos dentes for menor que o valor das mandíbulas, será um sinal de baixa.

lábios > valor dos dentes, lábios > valor das mandíbulas e dentes > valor das mandíbulas --> alta

lábios < valor dos dentes, lábios < valor das mandíbulas e dentes < valor das mandíbulas --> baixa

  • Estratégia dois: Sistema de sinais do Alligator:

Com base nessa estratégia, nós precisamos obter os sinais de compra e venda dependendo do cruzamento entre os valores dos lábios, dentes e mandíbula. Se o valor dos lábios for maior que o valor dos dentes e o valor da mandíbula, isso será um sinal de compra. No outro cenário, se o valor dos lábios for menor que o valor dos dentes e mandíbulas, ele será um sinal de venda.

lábios > valor dos dentes, lábios > valor das mandíbulas --> compra

lábios < valor dos dentes, lábios < valor das mandíbulas --> venda

  • Estratégia três: Aprimoramento do sistema de sinais do Alligator:

Com base nessa estratégia, nós precisamos obter os sinais de compra e venda com base no cruzamento entre os lábios, dentes e mandíbulas, depois o cruzamento entre o preço de fechamento e o valor dos dentes. Se a linha dos lábios for menor que os dentes e as mandíbulas, então o preço de fechamento é maior que o valor dos dentes, ele será um sinal de compra. No outro caso, se a linha dos lábios for maior que os dentes e as mandíbulas, o preço de fechamento for menor que o valor dos dentes, ele será um sinal de venda.

lábios < valor dos dentes, lábios < valor das mandíbulas e preço de fechamento > dentes --> compra

lábios > valor dos dentes, lábios > valor das mandíbulas e preço de fechamento < dentes --> venda

Esquema da estratégia do Alligator

Agora, nós precisamos criar um sistema de negociação com base nas estratégias mencionadas no tópico anterior e, para isso, criaremos um modelo passo a passo para nos ajudar a criar esse sistema de negociação.

  • Estratégia um: Identificador de tendência do Alligator:

De acordo com essa estratégia, nós precisamos criar um sistema de negociação que possa ser usado para gerar sinais de alta ou baixa com base na verificação contínua dos seguintes valores:

  • Valor dos lábios
  • valor dos dentes
  • valor das mandíbulas

Nós precisamos que o sistema de negociação determine as posições desses valores para gerar os sinais adequados com base nisso. Se a linha dos lábios for maior que os dentes, os lábios maiores que as mandíbulas e a linha dos dentes for maior que as mandíbulas, neste caso, nós precisamos que o sistema de negociação retorne os seguintes valores como um comentário no gráfico:

  • Altista
  • Valor das mandíbulas = n
  • valor dos dentes = n
  • valor dos lábios = n

No outro caso, se a linha dos lábios for menor que a linha dos dentes, a linha dos lábios for menor que a linha da mandíbula e, ao mesmo tempo, a linha dos dentes for menor que a linha da mandíbula, neste caso, nós precisamos do sistema de negociação para retornar os seguintes valores como um comentário no gráfico:

  • Baixista
  • Valor das mandíbulas = n
  • valor dos dentes = n
  • valor dos lábios = n

A seguir está um modelo passo a passo deste sistema de negociação:

Esquema do Identificador de Tendência Alligator

  • Estratégia dois: Sistema de sinais do Alligator:

De acordo com esta estratégia, nós precisamos criar um sistema de negociação que possa ser usado para gerar os sinais de compra ou venda com base na verificação contínua dos seguintes valores para determinar as posições de cada um deles:

  • Valor dos lábios
  • valor dos dentes
  • valor das mandíbulas

Se a linha dos lábios for maior que o valor dos dentes e ao mesmo tempo a linha dos lábios for maior que o valor das mandíbulas, neste caso, precisamos que o sistema de negociação retorne um comentário no gráfico com os seguintes valores:

  • Compra
  • Valor das mandíbulas = n
  • valor dos dentes = n
  • valor dos lábios = n

No outro caso, se a linha dos lábios for menor que o valor dos dentes e, ao mesmo tempo, a linha dos lábios for menor que a linha da mandíbula, nós precisamos que o sistema de negociação retorne um comentário no gráfico como um sinal com os seguintes valores:

  • Venda
  • Valor das mandíbulas = n
  • valor dos dentes = n
  • valor dos lábios = n

A seguir está um modelo passo a passo deste sistema de negociação:

Esquema do sistema de sinais do Alligator

  • Estratégia três: Sinais do aprimoramento do sistema Alligator:

De acordo com esta estratégia, nós precisamos criar um sistema de negociação para gerar os sinais de compra e venda com base na verificação dos seguintes valores para determinar a posição de cada um deles:

  • Valor dos lábios
  • valor dos dentes
  • valor das mandíbulas
  • Preço de fechamento

Se o valor dos lábios for menor que o dos dentes, a linha dos lábios for menor que a linha da mandíbula e, em seguida, o preço de fechamento ficar acima do valor dos dentes, precisamos que o sistema de negociação retorne um comentário no gráfico como um sinal com os seguintes valores:

  • Compra
  • Valor dos lábios = n
  • Valor dos dentes = n
  • Preço de fechamento = n
  • Valor das mandíbulas = n

Se a linha dos lábios for maior que a linha dos dentes, a linha dos lábios for menor que a linha da mandíbula e, em seguida, o preço de fechamento ficar abaixo do valor dos dentes, precisamos que o sistema de negociação retorne um comentário no gráfico como um sinal com os seguintes valores:

  • Venda
  • Valor dos lábios = n
  • Valor dos dentes = n
  • Preço de fechamento = n
  • Valor das mandíbulas = n

A seguir está um modelo passo a passo deste sistema de negociação:

Esquema de aprimoramento do sistema de sinais do Alligator

Sistema de negociação do Alligator

Agora, nós criaremos um sistema de negociação para cada estratégia mencionada a ser executada na plataforma MetaTrader 5 para gerar os sinais desejados automaticamente. Primeiro, nós criaremos um sistema base de negociação para gerar um sinal dos valores dos componentes Alligator para usar em nosso sistema de negociação. A seguir estão as etapas para criar esse tipo de sistema:

Criação dos arrays de cada um dos componentes do Alligator (Lábios, Dentes, Mandíbulas).

   double jawsArray[];
   double teethArray[];
   double lipsArray[]; 

Ordenação dos dados desses arrays usando a função "ArraySetAsSeries". Seus parâmetros:

  • array[]
  • flag
   ArraySetAsSeries(jawsArray,true);
   ArraySetAsSeries(teethArray,true);
   ArraySetAsSeries(lipsArray,true);

Definição do Alligator usando a função "iAlligator". Seus parâmetros:

  • symbol: usaremos o (_Symbol) para ser aplicado ao símbolo atual.
  • period: usaremos (_Period) para ser aplicado ao tempo gráfico atual.
  • jaw_period: para determinar o período do cálculo das mandíbulas, usaremos (13).
  • jaw_shift: para determinar o deslocamento horizontal das mandíbulas, usaremos (8).
  • teeth_period: para determinar o período do cálculo dos dentes, usaremos (8).
  • teeth_shift: para determinar o deslocamento horizontal dos dentes, usaremos (5).
  • lips_period: para determinar o período do cálculo dos lábios, usaremos (5).
  • lips_shift: para determinar o deslocamento horizontal dos lábios, usaremos (3).
  • ma_method: para determinar o tipo da média móvel, usaremos (MODE_SMA).
  • applied_price: para determinar o tipo de preço, usaremos (PRICE_MEDIAN).
int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);

Defining data and storing results by using the "CopyBuffer" function. Seus parâmetros:

  • indicador_handle: para determinar o identificador do indicador, nós usaremos (alligatorDef).
  • buffer_num: para determinar o número do buffer do indicador, nós usaremos (0 para mandíbulas), (1 para dentes) e (2 para lábios).
  • start_pos: para determinar a posição inicial, vamos determinar (0).
  • count: para determinar a quantidade a copiar, usaremos (3).
  • buffer[]: para determinar o array de destino a ser copiado, usaremos (jawsArray, teethArray, lipsArray).
   CopyBuffer(alligatorDef,0,0,3,jawsArray);
   CopyBuffer(alligatorDef,1,0,3,teethArray);
   CopyBuffer(alligatorDef,2,0,3,lipsArray);

Obteção dos valores de três componentes.

   double jawsValue=NormalizeDouble(jawsArray[0],5);
   double teethValue=NormalizeDouble(teethArray[0],5);
   double lipsValue=NormalizeDouble(lipsArray[0],5);

Comentário com três componentes do indicador.

   Comment("jawsValue = ",jawsValue,"\n",
   "teethValue = ",teethValue,"\n",
   "lipsValue = ",lipsValue);

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

//+------------------------------------------------------------------+
//|                                      Simple Alligator 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"
//--------------------------------------------------------------------
void OnTick()
  {
   //creating price array
   double jawsArray[];
   double teethArray[];
   double lipsArray[];   
   //Sorting data
   ArraySetAsSeries(jawsArray,true);
   ArraySetAsSeries(teethArray,true);
   ArraySetAsSeries(lipsArray,true);
   //define Alligator
   int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);      
   //define data and store result
   CopyBuffer(alligatorDef,0,0,3,jawsArray);
   CopyBuffer(alligatorDef,1,0,3,teethArray);
   CopyBuffer(alligatorDef,2,0,3,lipsArray);
   //get value of current data
   double jawsValue=NormalizeDouble(jawsArray[0],5);
   double teethValue=NormalizeDouble(teethArray[0],5);
   double lipsValue=NormalizeDouble(lipsArray[0],5);
   //comment on the chart
   Comment("jawsValue = ",jawsValue,"\n",
   "teethValue = ",teethValue,"\n",
   "lipsValue = ",lipsValue);
  }
//+------------------------------------------------------------------+

Depois de compilar este código, vamos encontrá-lo no navegador na pasta Expert Advisors igual a seguir:

Simple Alligator System nav

Ao arrastá-lo e soltá-lo no gráfico desejado, nós encontraremos a janela deste EA igual à seguinte:

Janela Simple Alligator System

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

Simple Alligator System anexado

Como nós podemos no gráfico anterior no canto superior direito que o EA está anexado. Agora, nós estamos prontos para receber os sinais. A seguir está um exemplo de teste para verificar os sinais gerados.

 Sinal do Simple Alligator System

Como nós podemos ver no gráfico anterior, nós temos um comentário no canto superior esquerdo com os seguintes valores:

Valor das mandíbulas = n

valor dos dentes = n

valor dos lábios = n

  • Estratégia um: Identificador de tendência do Alligator:

Vamos criar um sistema de negociação baseado nesta estratégia para receber os sinais desejados e ele será igual ao código completo a seguir:

//+------------------------------------------------------------------+
//|                                   Alligator 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"
//+------------------------------------------------------------------+
void OnTick()
  {
//creating three arrays of Alligator components
   double jawsArray[];
   double teethArray[];
   double lipsArray[];
//Sorting data
   ArraySetAsSeries(jawsArray,true);
   ArraySetAsSeries(teethArray,true);
   ArraySetAsSeries(lipsArray,true);
//define Alligator
   int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);
//define data and store result
   CopyBuffer(alligatorDef,0,0,13,jawsArray);
   CopyBuffer(alligatorDef,1,0,13,teethArray);
   CopyBuffer(alligatorDef,2,0,13,lipsArray);
//get value of current data
   double jawsValue=NormalizeDouble(jawsArray[0],5);
   double teethValue=NormalizeDouble(teethArray[0],5);
   double lipsValue=NormalizeDouble(lipsArray[0],5);
//conditions of strategy
   if(lipsValue>teethValue && lipsValue>jawsValue && teethValue>jawsValue)
     {
      Comment("Bullish","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }
   if(lipsValue<teethValue && lipsValue<jawsValue && teethValue<jawsValue)
     {
      Comment("Bearish","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }
  }
//+------------------------------------------------------------------+

Diferenças neste código.

Condições da estratégia, em caso de alta:

   if(lipsValue>teethValue && lipsValue>jawsValue && teethValue>jawsValue)
     {
      Comment("Bullish","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }

Em caso de baixa:

   if(lipsValue<teethValue && lipsValue<jawsValue && teethValue<jawsValue)
     {
      Comment("Bearish","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }

Depois de compilar este código e executar o expert criado da mesma forma que aprendemos, nós encontraremos este EA anexado ao gráfico igual ao seguinte:

Identificador de tendência do Alligator anexado

Como nós podemos ver no gráfico anterior, nós temos o EA anexado ao gráfico no canto superior direito e estamos prontos para receber os nossos sinais de alta ou baixa com base nessa estratégia. A seguir estão os exemplos desses sinais:

Em caso de alta:

Identificador de tendência do Alligator - sinal de alta

Como nós podemos ver no gráfico anterior, nós temos um comentário como um sinal no canto superior direito com os seguintes valores:

  • Altista
  • Valor das mandíbulas = n
  • valor dos dentes = n
  • valor dos lábios = n 
Nós temos três linhas movendo-se abaixo dos preços, então nós recebemos um sinal de alta.

Em caso de baixa:

 Identificador de tendência do Alligator - sinal de baixa

Como nós podemos ver no gráfico anterior, nós temos um comentário como um sinal de baixa no canto superior direito com os seguintes valores:

  • Baixista
  • Valor das mandíbulas = n
  • valor dos dentes = n
  • valor dos lábios = n

Temos três linhas movendo-se acima dos preços, então nós recebemos um sinal de baixa.

  • Estratégia dois: Sistema de sinais do Alligator:

O código a seguir é para criar um sistema de negociação baseado nesta estratégia:

//+------------------------------------------------------------------+
//|                                    Alligator Signals 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"
//+------------------------------------------------------------------+
void OnTick()
  {
//creating three arrays of Alligator components
   double jawsArray[];
   double teethArray[];
   double lipsArray[];
//Sorting data
   ArraySetAsSeries(jawsArray,true);
   ArraySetAsSeries(teethArray,true);
   ArraySetAsSeries(lipsArray,true);
//define Alligator
   int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);
//define data and store result
   CopyBuffer(alligatorDef,0,0,13,jawsArray);
   CopyBuffer(alligatorDef,1,0,13,teethArray);
   CopyBuffer(alligatorDef,2,0,13,lipsArray);
//get value of current data
   double jawsValue=NormalizeDouble(jawsArray[0],5);
   double teethValue=NormalizeDouble(teethArray[0],5);
   double lipsValue=NormalizeDouble(lipsArray[0],5);
//conditions of strategy
   if(lipsValue>teethValue && lipsValue>jawsValue)
     {
      Comment("Buy","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }
   if(lipsValue<teethValue && lipsValue<jawsValue)
     {
      Comment("Sell","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }
  }
//+------------------------------------------------------------------+

Diferenças neste código.

Condições desta estratégia.

Em caso de sinal de compra:

   if(lipsValue>teethValue && lipsValue>jawsValue)
     {
      Comment("Buy","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }

Em caso de sinal de venda:

   if(lipsValue<teethValue && lipsValue<jawsValue)
     {
      Comment("Sell","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "lipsValue = ",lipsValue);
     }

Depois de compilar este código e executá-lo na plataforma de negociação, nós podemos encontrá-lo anexado ao gráfico igual ao seguinte:

Sistema de sinais do Alligator anexado

Nós vemos no canto superior direito no gráfico anterior que o EA está anexado e estamos prontos para receber os nossos sinais de compra ou venda com base nessa estratégia. A seguir, estão os exemplos de testes.

Em caso de sinal de compra:

Alligator Signals System - sinal de compra 

Como nós podemos ver, nós temos o nosso sinal desejado com os seguintes valores:

  • Compra
  • Valor das mandíbulas = n
  • valor dos dentes = n
  • valor dos lábios = n
Temos três linhas movendo-se abaixo dos preços. Então, recebemos um sinal de compra.

Em caso de sinal de venda:

 Alligator Signals System - sinal de venda

Temos o nosso sinal desejado com os seguintes valores:

  • Venda
  • Valor das mandíbulas = n
  • valor dos dentes = n
  • valor dos lábios = n

Temos três linhas que estão se movendo acima dos preços. Então, nós recebemos um sinal de venda.

  • Estratégia três: Aprimoramento do sistema de sinais do Alligator:

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

//+------------------------------------------------------------------+
//|                         Alligator Signals System Enhancement.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()
  {
//creating three arrays of Alligator components
   double jawsArray[];
   double teethArray[];
   double lipsArray[];
   MqlRates pArray[];
//Sorting data
   ArraySetAsSeries(jawsArray,true);
   ArraySetAsSeries(teethArray,true);
   ArraySetAsSeries(lipsArray,true);
   int Data=CopyRates(_Symbol,_Period,0,1,pArray);
//define Alligator
   int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);
//define data and store result
   CopyBuffer(alligatorDef,0,0,13,jawsArray);
   CopyBuffer(alligatorDef,1,0,13,teethArray);
   CopyBuffer(alligatorDef,2,0,13,lipsArray);
//get value of current data
   double jawsValue=NormalizeDouble(jawsArray[0],5);
   double teethValue=NormalizeDouble(teethArray[0],5);
   double lipsValue=NormalizeDouble(lipsArray[0],5);
//conditions of strategy
   if(lipsValue<teethValue && lipsValue<jawsValue && pArray[0].close>teethValue)
     {
      Comment("Buy","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "closingPrice = ",pArray[0].close,"\n",
              "lipsValue = ",lipsValue);
     }
   if(lipsValue>teethValue && lipsValue>jawsValue && pArray[0].close<teethValue)
     {
      Comment("Sell","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "closingPrice = ",pArray[0].close,"\n",
              "lipsValue = ",lipsValue);
     }
  }
//+------------------------------------------------------------------+

Diferenças neste código.

Criação de mais um array de preços utilizando a função "MqlRates" para armazenar as informações dos preços, volumes e spread.

MqlRates pArray[];

Obtençao dos dados históricos de MqlRates usando a "CopyRates". Seus parâmetros:

  • symbol_name: para determinar o nome do símbolo, usaremos (_Symbol).
  • timeframe: para determinar o período, usaremos (_period).
  • start_pos: para determinar a posição inicial, usaremos (0).
  • count: para determinar a contagem de dados a copiar, usaremos (1).
  • rates_array[]: para determinar o array de destino a ser copiado, usaremos (pArray).
int Data=CopyRates(_Symbol,_Period,0,1,pArray);

Condições da estratégia.

Em caso de sinal de compra:

   if(lipsValue<teethValue && lipsValue<jawsValue && pArray[0].close>teethValue)
     {
      Comment("Buy","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "closingPrice = ",pArray[0].close,"\n",
              "lipsValue = ",lipsValue);
     }

Em caso de sinal de venda:

   if(lipsValue>teethValue && lipsValue>jawsValue && pArray[0].close<teethValue)
     {
      Comment("Sell","\n",
              "jawsValue = ",jawsValue,"\n",
              "teethValue = ",teethValue,"\n",
              "closingPrice = ",pArray[0].close,"\n",
              "lipsValue = ",lipsValue);
     }

Depois de compilar este código e executar o EA, o encontraremos anexado ao gráfico para obter os nossos sinais de compra e venda.

 Alligator Signals System Enhancement anexado

Temos o EA anexado no canto superior direito e nós podemos receber os nossos sinais desejados, os exemplos a seguir são de teste.

Em caso de sinal de compra:

 Aprimoramento do sistema de sinais do Alligator- sinal de compra

Temos um comentário no canto superior esquerdo com os seguintes valores:

  • Compra
  • Valor das mandíbulas = n
  • valor dos dentes = n
  • Preço de fechamento = n
  • valor dos lábios = n 
Como três linhas estão se movendo acima dos preços, nós podemos descobrir que o preço de fechamento está fechado acima da linha dos dentes do Jacaré.

Em caso de sinal de venda:

 Alligator Signals System Enhancement - sinal de venda

Temos um comentário como um sinal no canto superior esquerdo:

  • Venda
  • Valor das mandíbulas = n
  • valor dos dentes = n
  • Preço de fechamento = n
  • valor dos lábios = n

Como três linhas estão se movendo abaixo dos preços, nós podemos descobrir que o preço de fechamento está abaixo da linha dos dentes do Jacaré.

Conclusão

Aprendemos neste artigo em detalhes sobre o indicador técnico Alligator, que pode ser usado para confirmar a tendência, além de gerar os sinais de compra e venda. Nós aprendemos como nós podemos calculá-lo manualmente e como nós podemos usá-lo com base nas estratégias simples mencionadas:

  • Identificador de Tendência do Alligator: Para gerar os sinais de alta ou baixa com base na posição das três linhas do Alligator (lábios, dentes e mandíbulas).
  • Sistema de Sinais do Alligator: Para gerar os sinais de compra ou venda pelo método clássico de cruzamento com base no cruzamento entre as três linhas do indicador.
  • Aprimoramento do Sistema de Sinais do Alligator: Para gerar os sinais de compra ou venda por outro método para obter esses sinais mais cedo com base na posição de três linhas dos indicadores e no cruzamento entre o preço de fechamento e dos dentes. 

Criamos um esquema passo a passo para cada estratégia mencionada para nos ajudar a organizar as nossas ideias para criar um sistema de negociação de maneira suave, fácil e eficaz. Também criamos um sistema de negociação para cada estratégia mencionada para ser usado na plataforma de negociação MetaTrader 5 e gerar os sinais automaticamente de acordo com o que desenvolvemos. É importante confirmar novamente que você deve testar qualquer estratégia antes de usá-la em sua conta real, pois isso pode não ser útil para você, pois não há nada adequado para todas as pessoas.

Espero que você tenha tentado aplicar o que aprendeu da mesma forma que eu disse no início deste artigo e obtido os benefícios completos deste artigo e espero que você o tenha achado útil para sua negociação e tenha informações úteis sobre o tópico deste artigo ou mesmo qualquer tópico relacionado. Se você quiser ler mais artigos semelhantes, você pode ler os meus artigos anteriores desta série, pois compartilhamos os indicadores técnicos mais populares, como o Estocástico, RSI, Bandas de Bollinger, Médias Móveis, Envelopes, MACD, ADX, etc., e como podemos criar um sistema de negociação baseado neles.

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

Como desenvolver um sistema de negociação baseado no indicador Fractais Como desenvolver um sistema de negociação baseado no indicador Fractais
Aqui está um novo artigo da nossa série sobre como projetar um sistema de negociação com base nos indicadores técnicos mais populares. Nós aprenderemos um novo indicador que é o indicador Fractais e aprenderemos como desenvolver um sistema de negociação baseado nele para ser executado na plataforma MetaTrader 5.
Como trabalhar com linhas usando MQL5 Como trabalhar com linhas usando MQL5
Neste artigo, falaremos sobre como trabalhar com os gráficos de linhas mais importantes, como linhas de tendência, suporte e resistência, usando as ferramentas da linguagem MQL5.
Ciência de Dados e Aprendizado de Máquina (Parte 08): Agrupamento K-Means em MQL5 Ciência de Dados e Aprendizado de Máquina (Parte 08): Agrupamento K-Means em MQL5
A mineração de dados é crucial para um cientista de dados e um trader porque, muitas vezes, os dados não são tão diretos quanto pensamos, o olho humano não consegue entender o padrão subjacente menor e as relações no conjunto de dados, talvez o algoritmo K-means pode nos ajudar com isso. Vamos descobrir...
Perceptron Multicamadas e o Algoritmo Backpropagation (Parte 3): Integrando ao Testador de estratégias - Visão Geral (I) Perceptron Multicamadas e o Algoritmo Backpropagation (Parte 3): Integrando ao Testador de estratégias - Visão Geral (I)
O perceptron multicamadas é uma evolução do perceptron simples, capaz de resolver problemas não linearmente separáveis. Juntamente com o algoritmo backpropagation, é possível treinar essa rede neural de forma eficiente. Na terceira parte da série sobre perceptron multicamadas e backpropagation, vamos mostrar como integrar essa técnica ao testador de estratégias. Essa integração permitirá a utilização de análise de dados complexos e melhores decisões para otimizar as estratégias de negociação. Nesta visão geral, discutiremos as vantagens e os desafios da implementação desta técnica.