English Русский 中文 Español Deutsch 日本語
preview
Recursos do Assistente MQL5 que você precisa conhecer (Parte 67): Uso dos padrões do TRIX e da Faixa Percentual de Williams

Recursos do Assistente MQL5 que você precisa conhecer (Parte 67): Uso dos padrões do TRIX e da Faixa Percentual de Williams

MetaTrader 5 — Negociação |
24 0
Stephen Njuki
Stephen Njuki

Introdução

Damos continuidade à nossa série de artigos dedicada ao estudo de padrões de sinal gerados por pares de indicadores técnicos. No artigo anterior, analisamos a Média Móvel Adaptativa Fractal em conjunto com o oscilador Índice de Força. Neste artigo, examinaremos o Oscilador de Média Móvel Exponencial Tripla (Triple Exponential Moving Average Oscillator, TRIX) em combinação com outro oscilador, a Faixa Percentual de Williams (Williams Percent Range, WPR). Como oscilador baseado em médias móveis, o TRIX atua como indicador de tendência, enquanto a Faixa Percentual de Williams o complementa ao sinalizar níveis de suporte e resistência.

Analisamos 10 padrões típicos que podem ser gerados pela combinação desses dois indicadores, seguindo a mesma abordagem dos artigos anteriores, e realizamos o treinamento ou a otimização com o CHFJPY no timeframe de 4 horas, utilizando dados de 2023. O teste forward no mesmo símbolo é realizado com dados de 2024.

O TRIX é essencialmente um oscilador de momentum que suaviza o preço por meio de uma média móvel exponencial tripla. O indicador é especialmente adequado à identificação de tendências, pois a suavização permite filtrar o ruído. Isso é feito medindo a taxa de variação de uma média móvel suavizada três vezes. Além de confirmar tendências, o TRIX também fornece sinais de divergência. O TRIX é calculado aplicando-se uma média móvel exponencial (EMA) três vezes em sequência. em seguida, calculando a variação percentual. A fórmula é a seguinte:

trix_form

onde:

  • EMA₁ - primeira EMA aplicada ao preço, por exemplo, ao preço de fechamento, para um período N.
  • EMA₂ - segunda EMA, aplicada à EMA₁.
  • EMA₃ - terceira EMA, aplicada à EMA₂.
  • TriX Line - variação percentual da EMA suavizada três vezes, que funciona como oscilador de momentum.

Nas configurações padrão do TRIX, o período costuma ser definido como 15. Em nossos testes, utilizamos o valor 3, pois ele apresentou sensibilidade suficiente considerando o curto intervalo de teste, de apenas um ano. Para definir esse parâmetro, usamos o parâmetro constante __PERIOD no cabeçalho da classe de sinal personalizada.

#define __PERIOD 3
class CSignalTRX_WPR : public CExpertSignal
{
protected:
   CiTriX            m_trix;
   CiWPR             m_wpr;
   int               m_patterns_used;
   //--- adjusted parameters

   //--- "weights" of market models (0-100)
   int               m_pattern_0;      // model 0
   int               m_pattern_1;      // model 1

...


   int               m_pattern_9;      // model 9
   //
   //int               m_patterns_usage;   //

public:
   CSignalTRX_WPR(void);
   ~CSignalTRX_WPR(void);
   //--- methods of setting adjustable parameters
   //--- methods of adjusting "weights" of market models
   void              Pattern_0(int value)
   {  m_pattern_0 = value;
   }
   void              Pattern_1(int value)
   {  m_pattern_1 = value;
   }
   void              Pattern_2(int value)
   {  m_pattern_2 = value;
   }


...

   void              PatternsUsed(int value)
   {  m_patterns_used = value;
      PatternsUsage(value);
   }
   //--- method of verification of settings
   virtual bool      ValidationSettings(void);
   //--- method of creating the oscillator and timeseries
   virtual bool      InitIndicators(CIndicators *indicators);
   //--- methods of checking if the market models are formed
   virtual int       LongCondition(void) override;
   virtual int       ShortCondition(void) override;
   virtual double    Direction(void) override;

protected:
   //--- method of initialization of the oscillator
   bool              InitTRX_WPR(CIndicators *indicators);
   //--- methods of getting data
   double            TRX(int ind)
   {  //
      m_trix.Refresh(-1);
      return(m_trix.Main(ind));
   }
   double            TRX_MAX(int ind)
   {  //
      m_trix.Refresh(-1);
      return(m_trix.Main(m_trix.Maximum(0, ind, __PERIOD)));
   }
   double            TRX_MIN(int ind)
   {  //
      m_trix.Refresh(-1);
      return(m_trix.Main(m_trix.Minimum(0, ind, __PERIOD)));
   }
   double            WPR(int ind)
   {  //
      m_wpr.Refresh(-1);
      return(m_wpr.Main(ind));
   }
   double            Close(int ind)
   {  //
      m_close.Refresh(-1);
      return(m_close.GetData(ind));
   }
   double            High(int ind)
   {  //
      m_high.Refresh(-1);
      return(m_high.GetData(ind));
   }
   double            Low(int ind)
   {  //
      m_low.Refresh(-1);
      return(m_low.GetData(ind));
   }
   long              Volume(int ind)
   {  //
      m_tick_volume.Refresh(-1);
      return(m_tick_volume.GetData(ind));
   }
   int               X()
   {  //
      return(StartIndex());
   }
   //--- methods to check for patterns
   bool              IsPattern_0(ENUM_POSITION_TYPE T);
   bool              IsPattern_1(ENUM_POSITION_TYPE T);

...


   bool              IsPattern_9(ENUM_POSITION_TYPE T);
};

Em MQL5, esse indicador já está disponível por meio de uma função nativa, portanto precisamos escrever muito pouco código. Para implementá-lo, utilizamos a classe CiTRIX. Sua interpretação depende da posição ou do valor absoluto do indicador. Um TRIX positivo indica uma tendência de alta ou um movimento ascendente do preço. Um TRIX negativo aponta para uma tendência de baixa. A linha zero também constitui um nível de referência importante, e seu cruzamento muitas vezes sinaliza uma reversão da tendência.

A divergência é outro fenômeno importante associado a esse indicador. Ela ocorre quando o TRIX se move em direção oposta ao preço e costuma sinalizar o enfraquecimento da tendência. Entre suas vantagens estão a redução do atraso e do ruído em comparação com EMAs individuais, além do bom desempenho em mercados direcionais. Como limitação, pode gerar sinais falsos em mercados instáveis.

O WPR é um oscilador de níveis de suporte e resistência que identifica zonas de sobrecompra e sobrevenda. Desenvolvido por Larry Williams, o indicador compara o preço de fechamento atual com a faixa formada pelas máximas e mínimas de determinado período. Seu principal objetivo é identificar possíveis pontos de reversão do mercado. Por esse motivo, tende a ser mais eficaz em mercados sem tendência definida. A fórmula é a seguinte:

wpr_form

onde:

  • Highest_N - preço mais alto dos últimos N períodos.
  • Lowest_N - preço mais baixo dos últimos N períodos.
  • Close_today - preço de fechamento atual.
  • × (-100) - inverte o valor para facilitar a interpretação, produzindo uma escala de 0 a -100.

Nas duas fórmulas gerais, today ("hoje") corresponde aos valores da barra de preço atual ou mais recente. O termo today foi simplesmente herdado da formulação original para o timeframe diário. O período retrospectivo normalmente utilizado é 14, mas adotamos para o WPR o mesmo período usado no oscilador TRIX, ou seja, 3, conforme indicado anteriormente. Esses parâmetros podem ser ajustados livremente, inclusive com períodos diferentes para cada um dos dois indicadores. Valores entre -80 e -100 indicam que o ativo se encontra em uma zona de suporte, o que pode representar uma oportunidade de compra. Valores entre -20 e 0 indicam que o preço do ativo se encontra em uma zona de resistência, sugerindo uma possível oportunidade de venda. O cruzamento do nível -50 também pode indicar uma mudança de tendência.

O oscilador também gera sinais de divergência. Em uma divergência de alta, por exemplo, o preço forma uma mínima mais baixa enquanto o WPR forma uma mínima mais alta, sinalizando a possibilidade de um movimento ascendente. Já a divergência de baixa ocorre quando o preço forma uma máxima mais alta e o WPR uma máxima mais baixa, o que pode indicar uma reversão para baixo. Entre as vantagens do WPR estão sua simplicidade e sua eficácia em operações de curto prazo. Além disso, ele geralmente combina bem com outros indicadores. Suas limitações incluem a geração de sinais falsos em mercados com tendência forte e a necessidade de confirmação adicional ao identificar sinais específicos.

Com isso, podemos passar à análise dos 10 tipos de padrões. Todos os testes foram realizados no par CHFJPY, no timeframe de 4 horas, entre 01.01.2023 e 01.01.2025. O ano de 2023 corresponde ao período de treinamento ou otimização, enquanto 2024 corresponde ao período de teste forward.


Cruzamento do TRIX e reversão do WPR

O primeiro padrão que analisamos combina o cruzamento da linha zero pelo TRIX com uma reversão do WPR a partir de uma zona de suporte ou resistência. Quando o TRIX cruza sua linha zero para cima, isso sinaliza uma possível reversão para uma tendência de alta, pois a EMA com suavização tripla passa a subir mais rapidamente. Ao mesmo tempo, se o WPR subir acima de -80, vindo de níveis inferiores, isso indica que o preço está saindo da zona de sobrevenda ou reagindo a um nível de suporte. Em geral, esse movimento reflete o aumento da pressão compradora e, quando os dois sinais ocorrem em conjunto, reforça a possibilidade de reversão ou continuidade da tendência, reduzindo o risco de um falso rompimento.

Na implementação dessa abordagem, além do simples cruzamento do TRIX, podemos exigir que ele apresente inclinação crescente, obtendo assim uma confirmação mais consistente. Também é importante que o WPR ultrapasse -80, mas permaneça abaixo de -50, evitando entradas prematuras em reversões ainda pouco definidas. Um aumento expressivo do volume ou o rompimento de um nível importante de resistência pelo preço também pode fornecer confirmação adicional. Em mercados instáveis, o risco continua presente, por isso filtros adicionais, como médias móveis, podem ser úteis. Em MQL5, implementamos da seguinte forma:

//+------------------------------------------------------------------+
//| Check for Pattern 0.                                             |
//+------------------------------------------------------------------+
bool CSignalTRX_WPR::IsPattern_0(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && 0.0 < TRX(X()) && 0.0 >  TRX(X() + 1) && -80.0 > WPR(X() + 1) && WPR(X()) > -80.0)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && 0.0 < TRX(X() + 1) && 0.0 >  TRX(X()) && -20.0 > WPR(X()) && WPR(X() + 1) > -20.0)
   {  return(true);
   }
   return(false);
}

O sinal de baixa ocorre quando o TRIX cruza a linha zero para baixo, indicando uma possível tendência de baixa à medida que a EMA suavizada perde impulso. Simultaneamente, o WPR cai abaixo de -20, partindo de níveis superiores, o que indica que o preço está saindo da zona de sobrecompra ou se afastando de uma região de resistência, com aumento da pressão vendedora. Essa combinação geralmente sinaliza uma possível reversão da tendência ou a continuidade do movimento descendente. De forma análoga ao cenário de alta, podemos observar se o movimento descendente ganha força como confirmação do momentum de baixa, enquanto o WPR deve estar abaixo de -20, mas ainda acima de -50.

Também convém verificar o rompimento de um nível de suporte ou a redução do volume de posições compradas como confirmação adicional. Em mercados com oscilações bruscas ou movimento lateral, os riscos podem ser reduzidos com o uso de linhas de tendência ou do RSI. A seguir são apresentados os resultados dos testes realizados entre 01.01.2023 e 01.01.2025, sendo que o treinamento foi realizado exclusivamente com os dados de 2023:

r0


Divergência entre o preço e o TRIX com valores extremos do WPR

O próximo padrão baseia-se na divergência entre o preço e o TRIX quando o WPR se encontra em um valor extremo. Um sinal de alta ocorre quando o preço forma mínimas mais baixas, enquanto o TRIX forma mínimas mais altas, indicando enfraquecimento do momentum de baixa. Se, ao mesmo tempo, o WPR estiver abaixo do nível de suporte de -80, isso sugere que o preço está em condição de sobrevenda e que pode ocorrer uma reversão para cima. Esse cenário é reforçado pela trajetória de alta do TRIX. Para aumentar a confiabilidade do método, é necessário identificar a divergência em pelo menos duas oscilações do preço. Também é recomendável aguardar até que o WPR comece a subir a partir de níveis inferiores a -80, confirmando o surgimento de pressão compradora.

Para confirmar a entrada na operação, também podem ser utilizados padrões de candles, como o "martelo". O principal risco associado a esse padrão é que a divergência pode falhar durante uma forte tendência de baixa. No entanto, a confirmação em timeframes maiores pode ajudar a reduzir esse risco. Em MQL5, o padrão é implementado da seguinte forma:

//+------------------------------------------------------------------+
//| Check for Pattern 1.                                             |
//+------------------------------------------------------------------+
bool CSignalTRX_WPR::IsPattern_1(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Low(X() + 1) > Low(X()) && -80.0 > WPR(X()) && TRX(X()) > TRX(X() + 1))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && High(X()) > High(X() + 1) && WPR(X()) > -20.0 && TRX(X() + 1) > TRX(X()))
   {  return(true);
   }
   return(false);
}

O sinal de baixa é identificado quando observamos uma divergência negativa entre o preço e o TRIX, com o WPR na zona de resistência ou sobrecompra. Essa divergência ocorre quando o preço forma máximas mais altas, enquanto o TRIX forma máximas mais baixas, indicando enfraquecimento do momentum de alta. Um WPR acima de -20 indica uma zona de resistência e sugere uma possível reversão da tendência. Muitas vezes, isso representa um sinal de venda com alta probabilidade. Na implementação desse método, costuma ser útil confirmar a divergência entre vários picos para aumentar a precisão. Também é preferível aguardar até que o WPR caia abaixo de -20 após a formação de mais de uma barra.

Além disso, a observação de padrões de candles de baixa pode fornecer uma confirmação adicional. As limitações desse padrão aparecem principalmente em mercados com tendência forte, nos quais as divergências frequentemente deixam de funcionar. Os resultados dos testes são apresentados a seguir:

r1


Cruzamento do TRIX e posição do WPR

No padrão seguinte, o sinal de alta ocorre quando o TRIX cruza a linha zero para cima, acima da linha de sinal, indicando uma transição para uma tendência de alta, enquanto o WPR permanece acima de -50, o que sugere que o preço se encontra em uma zona neutra ou de resistência. Essa combinação reforça a ideia de fortalecimento da tendência de alta, com menor probabilidade de correção. Se o cruzamento do TRIX ocorrer com inclinação crescente, o sinal tende a ser mais forte. O WPR deve permanecer acima de -50, mas abaixo de -20, pois buscamos zonas neutras que se aproximam da resistência. Uma confirmação adicional pode ser obtida quando o preço rompe médias móveis importantes ou por meio da análise do indicador ADX. Em MQL5, implementamos da seguinte forma:

//+------------------------------------------------------------------+
//| Check for Pattern 2.                                             |
//+------------------------------------------------------------------+
bool CSignalTRX_WPR::IsPattern_2(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && 0.0 < TRX(X()) && 0.0 >  TRX(X() + 1) && WPR(X()) > -50.0)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && 0.0 < TRX(X() + 1) && 0.0 >  TRX(X()) && -50.0 > WPR(X()))
   {  return(true);
   }
   return(false);
}

O padrão de baixa ocorre quando o TRIX cruza a linha zero de cima para baixo, enquanto o WPR permanece abaixo de -50. Isso indica uma tendência descendente acompanhada de pressão vendedora persistente. Assim como no cenário de alta correspondente, a lógica se baseia na menor probabilidade de reversão, já que o preço se encontra em uma zona neutra e ainda distante do suporte. Como nos demais padrões descritos anteriormente, acompanhar o aumento da inclinação descendente do TRIX ajuda a reforçar o sinal. O WPR também deve permanecer abaixo de -50, mas ainda acima de -80. Mercados instáveis, assim como no caso do sinal de alta, não são adequados a esse padrão, portanto ele deve ser aplicado preferencialmente em mercados direcionais. Os resultados dos nossos testes para o padrão 2 são os seguintes:

r2


Tendência do TRIX e saída do WPR

O padrão seguinte é caracterizado por uma situação em que o TRIX encontra suporte na linha zero ou próximo dela, enquanto o WPR sai das zonas de suporte ou resistência. No cenário de alta, o TRIX oscila em uma faixa estreita próxima de zero antes de romper esse nível de forma decisiva para cima. Ao mesmo tempo, o WPR deixa a zona de suporte, cruza o nível -80 de baixo para cima e fecha acima dele. Na implementação da estratégia, identificar níveis históricos de suporte do TRIX com base em períodos anteriores pode ser uma tarefa complexa e funcionar como um filtro excessivamente restritivo, reduzindo o número de oportunidades ou cenários de negociação.

O cruzamento do nível -80 pelo WPR pode ser confirmado com outro indicador de momentum que sinalize um impulso de alta. Padrões de engolfo de alta ou picos de volume também podem ser utilizados como confirmação. Uma limitação desse padrão está nos níveis de suporte pouco consistentes, que podem não se sustentar. A confirmação em um timeframe maior pode ser bastante útil ao trabalhar com esse padrão. A implementação em MQL5 é a seguinte:

//+------------------------------------------------------------------+
//| Check for Pattern 3.                                             |
//+------------------------------------------------------------------+
bool CSignalTRX_WPR::IsPattern_3(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && TRX(X()) >= 0.0 && TRX(X() + 1) <= 0.0 && TRX(X() + 2) >= 0.0 && WPR(X() + 1) < -80.0 && WPR(X()) > -80.0)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && TRX(X() + 2) <= 0.0 && TRX(X() + 1) >= 0.0 && TRX(X()) <= 0.0 && WPR(X()) < -20.0 && WPR(X() + 1) > -20.0)
   {  return(true);
   }
   return(false);
}

O sinal de baixa ocorre quando o TRIX permanece em uma faixa de consolidação antes de romper para baixo, enquanto o WPR cruza o nível -20 de cima para baixo e fecha abaixo dele. Isso confirma o movimento de baixa. A consolidação do TRIX seguida de um rompimento para baixo indica que o indicador encontrou resistência e que o momentum de alta está enfraquecendo. O movimento do WPR também confirma o aumento da pressão vendedora. Assim como no cenário de alta, exigir confirmação do TRIX com base em seus picos anteriores pode dificultar a geração de sinais. É importante aguardar até que o WPR permaneça abaixo de -20 para evitar falsos sinais. Um movimento de baixa do preço, como um padrão de engolfo de baixa, também pode reforçar a confirmação. Em mercados com tendência forte, esse padrão pode ser difícil de aplicar, por isso é recomendável complementá-lo com outros indicadores, como o RSI. Os resultados dos testes são apresentados a seguir:

r3


Rompimento do TRIX com WPR na faixa neutra

No quinto padrão, o sinal de alta ocorre quando o TRIX, assim como no padrão 3, rompe uma resistência, enquanto o WPR permanece entre -50 e -20. Em geral, isso confirma que o preço se encontra em uma zona neutra ou de alta e, portanto, reforça a hipótese de um rompimento consistente. Na utilização desse padrão, a inclinação e a magnitude do movimento do TRIX podem servir como confirmação. Também é possível acompanhar os rompimentos do preço no gráfico, principalmente em relação a indicadores importantes, como as médias móveis. Esse padrão é característico apenas de mercados direcionais, enquanto mercados voláteis podem gerar sinais falsos. A implementação em MQL5 é a seguinte:

//+------------------------------------------------------------------+
//| Check for Pattern 4.                                             |
//+------------------------------------------------------------------+
bool CSignalTRX_WPR::IsPattern_4(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && 0.0 < TRX(X()) && 0.0 >  TRX(X() + 1) && TRX(X()) == TRX_MAX(X()) && WPR(X()) > -50.0 && WPR(X()) < -20.0)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL &&  0.0 < TRX(X() + 1) && 0.0 >  TRX(X()) && TRX(X()) == TRX_MIN(X()) && WPR(X()) > -80.0 && WPR(X()) < -50.0)
   {  return(true);
   }
   return(false);
}

O sinal de baixa ocorre quando o TRIX rompe um nível de suporte para baixo, enquanto o WPR se encontra em uma zona neutra ou de baixa. Se o TRIX cair abaixo de um nível "histórico" de suporte, como uma mínima anterior ou mesmo a linha zero, isso pode indicar aceleração do momentum de baixa. O WPR deverá permanecer entre -50 e -80, faixa correspondente a uma zona neutra ou de baixa, confirmando a consistência do rompimento. Novamente, é importante considerar a inclinação da curva do TRIX no ponto de rompimento, enquanto o WPR deve estar abaixo de -50, mas ainda fora da zona de sobrevenda, para melhorar o momento da entrada. Um rompimento do preço no gráfico, por exemplo, abaixo de uma média móvel, também pode servir como confirmação adicional. Esse padrão apresenta desempenho fraco em mercados instáveis. Os resultados dos testes são os seguintes:

r4


Reversão do TRIX e saída do WPR

O sinal de alta desse padrão ocorre quando o TRIX atinge um pico extremamente elevado, geralmente bem acima da linha zero, e depois reverte para baixo, enquanto o WPR cai abaixo de -20. Em geral, isso indica que o preço deixou a zona de sobrecompra, tornando provável uma correção saudável ou a continuidade da tendência. Nesse padrão, é fundamental acompanhar a queda do WPR até o nível -50, mas sem que ele o ultrapasse para baixo, evitando assim uma condição de sobrevenda. Também é importante observar se o preço consegue se manter em níveis importantes de suporte ou próximo de uma média móvel relevante.

Uma limitação desse padrão é que uma correção após uma condição de sobrecompra pode se transformar em um movimento corretivo acentuado. Os níveis de retração de Fibonacci podem ajudar a lidar com esse risco. Em MQL5, implementamos da seguinte forma:

//+------------------------------------------------------------------+
//| Check for Pattern 5.                                             |
//+------------------------------------------------------------------+
bool CSignalTRX_WPR::IsPattern_5(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && TRX(X() + 2) < TRX(X() + 1) && TRX(X() + 1) >  TRX(X()) && TRX(X() + 1) == TRX_MAX(X()) && WPR(X() + 1) > -20.0 && WPR(X()) < -20.0)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && TRX(X() + 2) > TRX(X() + 1) && TRX(X() + 1) <  TRX(X()) && TRX(X() + 1) == TRX_MIN(X()) && WPR(X()) > -80.0 && WPR(X() + 1) < -80.0)
   {  return(true);
   }
   return(false);
}

O sinal de baixa ocorre quando o TRIX reverte a partir de um nível extremamente baixo, enquanto o WPR sai da zona de sobrevenda, indicando uma possível correção antes da retomada da tendência de baixa. A queda do TRIX até um valor extremamente baixo, seguida de uma reversão para cima, sinaliza um possível enfraquecimento da condição de sobrevenda. Para confirmar que o preço já não se encontra nessa zona e que, portanto, a tendência de baixa anterior pode estar prestes a ser retomada, o WPR deve subir acima de -80. Uma inclinação ascendente acentuada do TRIX, ainda abaixo de zero, pode servir como filtro adicional de confirmação. O WPR deve subir em direção a -50, mas não deve ultrapassar esse nível, pois queremos evitar que o WPR avance em direção à zona de sobrecompra.

Outro sinal útil pode ser a oscilação do preço próximo de um nível importante ou de uma média móvel relevante. As limitações desse padrão tornam-se mais evidentes em mercados instáveis; nesse caso, linhas de tendência podem ser utilizadas como filtro adicional. Os resultados dos testes são os seguintes:

r5


Continuação do TRIX e WPR em faixa intermediária

O sinal de alta ocorre quando o TRIX permanece acima de zero e o WPR se encontra na faixa intermediária entre -50 e -20. Isso indica uma tendência de alta consistente, com possibilidade de continuidade do movimento ascendente. A lógica é que, enquanto o TRIX permanece acima de zero e mantém inclinação positiva, ele confirma a continuidade da tendência de alta. Ao mesmo tempo, o WPR em uma faixa intermediária indica que o preço não está nem em condição de sobrecompra nem de sobrevenda. Isso sugere que a tendência pode continuar sem uma ameaça imediata de reversão.

A utilização desse padrão exige acompanhar se o TRIX mantém uma inclinação ascendente constante, sem reversões bruscas. Para favorecer a continuidade da tendência, o WPR também deve permanecer entre -50 e -20. Como confirmação adicional, o preço pode seguir uma linha de tendência ou se manter acima de uma média móvel importante. Uma limitação desse padrão é que os sinais na faixa intermediária podem perder força em mercados de baixa volatilidade. A implementação em MQL5 é a seguinte:

//+------------------------------------------------------------------+
//| Check for Pattern 6.                                             |
//+------------------------------------------------------------------+
bool CSignalTRX_WPR::IsPattern_6(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && TRX(X() + 2) > TRX(X() + 1) && TRX(X() + 1) > TRX(X()) && TRX(X()) > 0.0 && WPR(X()) > -80.0 && WPR(X()) < -20.0)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && TRX(X() + 2) < TRX(X() + 1) && TRX(X() + 1) < TRX(X()) && TRX(X()) < 0.0 && WPR(X()) > -80.0 && WPR(X()) < -20.0)
   {  return(true);
   }
   return(false);
}

O padrão de baixa ocorre quando o TRIX permanece abaixo de zero e o WPR se mantém em uma faixa intermediária, sinalizando uma tendência de baixa consistente. A lógica é que um TRIX abaixo de zero, com inclinação negativa, geralmente confirma a continuidade da tendência de baixa. O WPR entre -50 e -80 também indica que o preço ainda não atingiu uma condição de sobrevenda. Isso sugere que o movimento descendente pode prosseguir sem uma reversão imediata. Na aplicação desse padrão de baixa, assim como já destacamos para a maioria dos padrões anteriores, a inclinação do TRIX é decisiva. Ela deve manter uma trajetória consistentemente descendente.

Também é necessário acompanhar o WPR para garantir que permaneça dentro da faixa principal entre -50 e -80. A manutenção do preço junto a uma média móvel importante ou a um nível de suporte pode reforçar a confirmação do padrão. Sua principal limitação, assim como no cenário de alta correspondente, é que o sinal na faixa intermediária pode permanecer fraco durante longos períodos. Os resultados dos testes são os seguintes:

r6


Consolidação do TRIX com WPR em uma zona definida

O padrão de alta ocorre quando o TRIX rompe uma zona de consolidação enquanto o WPR se encontra em uma zona de suporte favorável ao movimento de alta, sinalizando o início de uma nova tendência ascendente com momentum significativo. A lógica é que um movimento lateral do TRIX, ou sua consolidação próxima da linha zero, seguido de um rompimento para cima, indica o surgimento de uma nova tendência de alta. Ao mesmo tempo, um WPR acima de -50 confirma o momentum de alta, sugerindo que ele pode se manter. O ideal é identificar uma consolidação do TRIX dentro da faixa mais estreita possível, próxima de zero, ao longo de várias barras ou períodos.

Isso inevitavelmente torna o sinal bastante restritivo, a ponto de quase não gerar resultados mesmo em períodos prolongados de teste. Na verdade, esse padrão e alguns outros semelhantes foram justamente o motivo pelo qual adotamos um período muito curto para o indicador, igual a 3. Períodos mais longos apresentavam menor sensibilidade às variações do preço e, consequentemente, geravam poucos sinais e poucas operações. Nesse caso, embora a confirmação pela inclinação continue sendo desejável, como nos demais padrões, ela acaba sendo quase um luxo, já que o número de pontos de entrada já é reduzido. Em MQL5, implementamos da seguinte forma:

//+------------------------------------------------------------------+
//| Check for Pattern 7.                                             |
//+------------------------------------------------------------------+
bool CSignalTRX_WPR::IsPattern_7(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && fabs(Close(X()) - Close(X() + 1)) >= TRX_MAX(X() + 1) - TRX_MIN(X() + 1) && TRX_MAX(X() + 1) > 0.0 && TRX_MIN(X() + 1) < 0.0 && TRX_MAX(X() + 1) < TRX(X()) && WPR(X()) >= -20.0)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && fabs(Close(X()) - Close(X() + 1)) >= TRX_MAX(X() + 1) - TRX_MIN(X() + 1) && TRX_MAX(X() + 1) > 0.0 && TRX_MIN(X() + 1) < 0.0 && TRX_MIN(X() + 1) > TRX(X()) && WPR(X()) <= -80.0)
   {  return(true);
   }
   return(false);
}

O padrão de baixa ocorre quando o TRIX rompe para baixo uma zona de consolidação enquanto o WPR entra em uma zona de baixa, sinalizando o surgimento de uma nova tendência descendente com algum momentum. A lógica é a mesma do cenário de alta. Uma consolidação prolongada próxima da linha zero, sem direção definida, seguida de um rompimento para baixo, geralmente indica não apenas uma tendência de baixa, mas o início dela. A queda do WPR abaixo de -50 reforça ainda mais esse cenário de baixa.

Ao aplicar critérios rigorosos para identificar uma consolidação estreita do TRIX, é importante garantir que ainda seja gerado um número suficiente de operações. O WPR deve permanecer abaixo de -50, mas sem entrar em sobrevenda, para favorecer um momento adequado de entrada. Falsos rompimentos em mercados instáveis continuam sendo o principal risco desse padrão. Os resultados dos nossos testes para o padrão 7 são os seguintes:

r7


Reversão do TRIX na linha zero com WPR em zona extrema

O penúltimo padrão apresenta um sinal de alta: o TRIX reverte para cima na linha zero, enquanto o WPR se encontra em zona de sobrevenda. Isso caracteriza uma forte reversão de alta a partir de uma condição neutra. A lógica desse padrão é que a reversão ascendente do TRIX a partir da linha zero indica uma transição de momentum neutro para momentum de alta. Um WPR abaixo de -80 também confirma que o mercado está em sobrevenda. Em conjunto, esses sinais apontam para uma probabilidade elevada de reversão da tendência à medida que aumenta a pressão compradora.

A utilização desse padrão exige uma confirmação adequada da reversão do TRIX, o que pode requerer a análise de mais de uma barra. Também pode aumentar a confiabilidade do sinal aguardar até que o WPR ultrapasse claramente o nível -80, buscando confirmação adicional em mais de uma observação. Como filtros adicionais, podem ser utilizados padrões de candles de alta ou a reação do preço em níveis importantes de suporte, como já mencionamos nos padrões anteriores. A principal limitação desse padrão ocorre em mercados com tendência forte. Em MQL5, implementamos da seguinte forma:

//+------------------------------------------------------------------+
//| Check for Pattern 8.                                             |
//+------------------------------------------------------------------+
bool CSignalTRX_WPR::IsPattern_8(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && TRX(X()) > TRX(X() + 1) && TRX(X() + 1) > 0.0 && TRX(X() + 2) > TRX(X() + 1) && WPR(X()) < -50.0)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && TRX(X() + 2) < TRX(X() + 1) && TRX(X() + 1) < 0.0 && TRX(X()) < TRX(X() + 1) && WPR(X()) > -50.0)
   {  return(true);
   }
   return(false);
}

O padrão de baixa ocorre quando o TRIX reverte para baixo ao se aproximar de zero, enquanto o WPR indica que o preço se encontra em uma zona de sobrecompra ou em um nível de resistência. A reversão do TRIX na linha zero confirma uma mudança do sentimento do mercado para uma perspectiva de baixa. Um WPR acima de -20 também confirma a condição de sobrecompra, aumentando a probabilidade de reversão à medida que se intensifica a pressão vendedora. A reversão da tendência no TRIX deve ser claramente confirmada, seja pela inclinação da curva, seja pelo número de barras formadas após a reversão.

Aguardar até que o WPR caia abaixo de -20 e combinar esse movimento com padrões de candles de baixa ou níveis de resistência também pode produzir sinais mais consistentes. Assim como no cenário de alta, a principal limitação desse padrão está nos mercados com tendência forte. Os resultados dos testes são apresentados abaixo. Como em todos os padrões analisados neste artigo, o teste foi realizado entre 01.01.2023 e 01.01.2025, após o treinamento ou a otimização no período de 01.01.2023 a 01.01.2024. Foi utilizado o símbolo CHFJPY no timeframe H4.

r8


Fundo/topo duplo do TRIX e sobrevenda/sobrecompra do WPR

No padrão final, o sinal de alta ocorre quando o TRIX forma um fundo duplo, enquanto o WPR sinaliza uma forte reversão de alta. Esse nível de suporte serve para confirmar que o preço atingiu sua mínima. A lógica é que um fundo duplo, formado por dois pontos alternados em um nível de suporte geralmente abaixo de zero, pode, assim como uma consolidação, indicar uma possível reversão da tendência de baixa para uma tendência de alta. O WPR no nível de suporte de -80 confirma a condição de sobrevenda e reforça a expectativa de reversão.

Ao utilizar esse padrão, também é importante que o fundo duplo esteja próximo da linha zero ou na região negativa. Esse requisito dificulta consideravelmente a geração de sinais, pois fundos duplos no TRIX raramente se formam em barras alternadas. Assim como nos demais padrões, a formação de um fundo duplo no próprio preço ou o rompimento de um nível de resistência podem servir como sinais adicionais de confirmação. A principal limitação desse padrão está nos mercados instáveis e voláteis. A implementação em MQL5 é a seguinte:

//+------------------------------------------------------------------+
//| Check for Pattern 9.                                             |
//+------------------------------------------------------------------+
bool CSignalTRX_WPR::IsPattern_9(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && TRX(X()) >= 0.0 && TRX(X() + 1) <= 0.0 && TRX(X() + 2) >= 0.0 && TRX(X() + 3) <= 0.0 && TRX(X() + 4) >= 0.0 && WPR(X()) <= -50.0)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && TRX(X() + 4) <= 0.0 && TRX(X() + 3) >= 0.0 && TRX(X() + 2) <= 0.0 && TRX(X() + 1) >= 0.0 && TRX(X()) <= 0.0 && WPR(X()) >= -50.0)
   {  return(true);
   }
   return(false);
}

O padrão de baixa é caracterizado pela formação de um topo duplo no TRIX, novamente próximo da linha zero ou ligeiramente acima dela, na região positiva. Isso geralmente indica enfraquecimento do momentum de alta. Um WPR acima de -20 confirma a condição de sobrecompra e também reforça o cenário de reversão para baixo. As recomendações práticas incluem grande parte dos elementos já mencionados nos padrões anteriores, como a inclinação, os valores defasados e o uso de indicadores adicionais. Os riscos associados a esse padrão estão ligados a oscilações bruscas de preço. Os testes do padrão final não geraram nenhuma operação, pois as condições de entrada se mostraram restritivas demais. E isso mesmo utilizando um período muito curto para o indicador.


Conclusão

Analisamos os padrões e sinais obtidos pela combinação do TRIX com a Faixa Percentual de Williams. Para os testes, utilizamos períodos excessivamente curtos para os indicadores com o objetivo de gerar um número suficiente de operações dentro de um intervalo de apenas um ano. Isso sugere que esse par de indicadores é menos sensível ou menos ativo do que os pares analisados anteriormente. Por esse motivo, seu uso exige testes adicionais. Nos testes realizados, apenas os padrões 1, 4 e 5 foram aprovados no teste forward.


Arquivo Descrição
wz-67.mq5 EA criado no Assistente, cujo cabeçalho exibe os arquivos utilizados
SignalWZ_67.mqh Arquivo da classe de sinal personalizada utilizado pelo Assistente

As instruções de uso dos arquivos da classe de sinal personalizada podem ser encontradas aqui.

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

Arquivos anexados |
SignalWZ_67.mqh (19.78 KB)
wz-67.mq5 (7.82 KB)
Ciência de Dados e ML (Parte 36): Lidando com Mercados Financeiros Tendenciosos Ciência de Dados e ML (Parte 36): Lidando com Mercados Financeiros Tendenciosos
Os mercados financeiros não são perfeitamente equilibrados. Alguns mercados apresentam tendência de alta, outros apresentam tendência de baixa, enquanto outros apresentam movimento lateral, indicando incerteza quanto à direção. Quando essas informações desbalanceadas são utilizadas para treinar modelos de machine learning, elas podem gerar resultados enganosos, especialmente porque as condições do mercado mudam com frequência. Neste artigo, discutiremos diferentes maneiras de lidar com esse problema.
Criação de EAs auto-otimizáveis em MQL5 (Parte 7): Negociação simultânea com indicadores de vários períodos Criação de EAs auto-otimizáveis em MQL5 (Parte 7): Negociação simultânea com indicadores de vários períodos
Nesta série de artigos, analisamos várias maneiras de determinar o melhor período para utilizar nossos indicadores técnicos. Hoje, mostraremos como aplicar a lógica oposta, ou seja, em vez de selecionar um único período considerado o mais adequado, veremos como utilizar de forma eficiente todos os períodos disponíveis. Essa abordagem reduz a quantidade de dados descartados e oferece formas alternativas de aplicar algoritmos de machine learning, indo além da simples previsão de preços.
Técnicas do MQL5 Wizard que você deve conhecer (Parte 60): Aprendizado por Inferência (Wasserstein-VAE) com Padrões da Média Móvel e do Oscilador Estocástico Técnicas do MQL5 Wizard que você deve conhecer (Parte 60): Aprendizado por Inferência (Wasserstein-VAE) com Padrões da Média Móvel e do Oscilador Estocástico
Concluímos nossa análise sobre o uso complementar da Média Móvel (MA) e do Oscilador Estocástico examinando o papel que o aprendizado por inferência pode desempenhar após as etapas de aprendizado supervisionado e aprendizado por reforço. Existem diversas maneiras de abordar o aprendizado por inferência nesse contexto. No entanto, nossa abordagem consiste em utilizar Variational Autoencoders (VAEs). Primeiro, exploraremos essa abordagem em Python e, em seguida, exportaremos nosso modelo treinado no formato ONNX para utilizá-lo em um Expert Advisor desenvolvido com o MQL5 Wizard no MetaTrader.
Trading com o calendário econômico MQL5 (Parte 10): Painel arrastável e efeitos de hover nos botões Trading com o calendário econômico MQL5 (Parte 10): Painel arrastável e efeitos de hover nos botões
Continuamos aprimorando os recursos de trading com o calendário econômico MQL5. Hoje adicionaremos um painel arrastável, que permitirá reposicionar os elementos para melhorar a visualização do gráfico sempre que necessário. Também adicionaremos efeitos de hover nos botões para tornar a interação com o painel ainda mais prática.