Se você está em busca de uma ferramenta que possa te ajudar a entender melhor a trajetória de uma linha desenhada a partir de um conjunto de pontos de dados, o Indicador Theil-Sen é uma excelente opção. Esse indicador basicamente faz a estimativa da linha de tendência, utilizando a regressão sobre uma série de valores, e calcula a inclinação dessa linha resultante.
A seleção do conjunto de dados pode ser feita a partir de médias móveis simples, médias móveis exponenciais, preços de fechamento, ou preços máximos/mínimos, que são coletados automaticamente do gráfico do MetaTrader. Você só precisa escolher um tipo de dado para coletar, e o melhor: ele suporta múltiplas moedas simultaneamente.
iTSlope(asymbol,timeframe,regperiod,adataset,rmp,rtc,slope,line_nickname,enable_text,ashift); // Esta é a função principal para usar no seu EA. Apenas insira seus próprios parâmetros. // Traders manuais podem usar isso ou utilizar o indicador diretamente.

Como de costume, esse indicador suporta múltiplas moedas ao mesmo tempo. Estou incluindo a ferramenta "BreakPoint" aqui, mas vale ressaltar que ela não é necessária para o funcionamento do indicador.
Veja como a linha de tendência se comporta em um mercado lateral:


Agora, veja como a linha de tendência aparece em um mercado em tendência:

Para aqueles que estão curiosos, aqui está um exemplo de um Expert Advisor para usar com o Indicador Theil-Sen:
//+------------------------------------------------------------------+ //| demo.mq4 | //| Copyright 2020, Everybody Software Corp. | //| https://anywhere.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, Everybody Software Corp." #property link "https://anywhere.com" #property version "1.00" #property strict #include <TheilSen_Indicator.mqh> #include <BreakPoint.mqh>//<--- não requerido //+------------------------------------------------------------------+ //| Função de inicialização do Expert | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Função de desinicialização do Expert | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Função Tick do Expert | //+------------------------------------------------------------------+ void OnTick() { //--------- essas variáveis são criadas vazias, mas elas conterão dados após o uso do iTSlop() abaixo. ------// double slope=0;// a inclinação da linha de regressão. ENUM_TIMEFRAMES timeframe=0;// este é o timeframe para o símbolo. 0 significa timeframe do gráfico atual. int regperiod=20,// o período de regressão. quantas barras você quer usar para a regressão. ashift=1;// o deslocamento da barra onde você deseja que a linha de regressão seja desenhada. string asymbol="",// este é o símbolo/par de moedas que você deseja usar para os cálculos. "" significa símbolo atual. adataset="ema_close",// o tipo de dado que você deseja usar para a regressão. line_nickname="qualquer_coisa_aqui", rmp,// a "fase do mercado" calculada, que é uma descrição específica do mercado rtc;// a "tendência do mercado" calculada, que é uma descrição geral do mercado. bool enable_text=true;// quando definido como true, os dados textuais são exibidos no gráfico atual. iTSlope(asymbol,timeframe,regperiod,adataset,rmp,rtc,slope,line_nickname,enable_text,ashift);// moeda única // if(rmp == "trending")BreakPoint("","",true,"rmp",rmp,"rtc",rtc,"asymbol",asymbol); } //+------------------------------------------------------------------+
Agradeço especialmente ao whroeder e aos demais que ajudaram a esclarecer o conceito.
Publicações relacionadas
- Calendário Econômico: Monitoramento e Cache para Testes de Estratégia no MetaTrader 5
- Bandas Quantílicas: Entenda Esse Indicador para MetaTrader 5
- Buffers Horários para Coleta de Dados no MetaTrader 5
- Pivot Point Personalizado com Horário de Fechamento Ajustável para MetaTrader 4
- AllAverages v4.9 MT5: O Indicador Imperdível para Traders