Cursos Para Traders Estratégias Trader Guia Técnico: Calcule Correlação de Pearson no MQL5

Guia Técnico: Calcule Correlação de Pearson no MQL5

Na prática, quem programa indicadores no MetaTrader 5 acaba batendo na parede ao tentar medir a força de um relacionamento entre dois ativos. O código parece simples, mas a falta de exemplos reais, a escolha errada de períodos e a confusão entre correlação de Pearson e covariância costumam gerar sinais falsos e perdas evitáveis.

Quando a correlação de Pearson realmente ajuda

Imagine um trader que combina EUR/USD e GBP/USD numa estratégia de hedge. Ele quer saber se, nos últimos 100 candles, os pares se moveram juntos ou se um está “descolando”. A correlação de Pearson (r) entrega um número entre –1 e 1, indicando direção e intensidade. Se r≈0,5, há uma relação moderada; se r≈0,9, a co‑movimentação é quase perfeita.

Passo a passo no MQL5

  • 1. Coleta dos dados: use CopyClose para puxar os preços de fechamento de ambos os símbolos no mesmo timeframe.
  • 2. Alinhamento temporal: garanta que o vetor de preços tenha o mesmo tamanho; caso contrário, descarte os candles excedentes.
  • 3. Cálculo das médias: double meanA = ArrayAverage(arrA); double meanB = ArrayAverage(arrB);
  • 4. Numerador: double num = 0; for(int i=0;i
  • 5. Denominador: double den = MathSqrt(ArrayVariance(arrA))*MathSqrt(ArrayVariance(arrB));
  • 6. Resultado: double r = num/den;

Limitações que poucos apontam

A correlação de Pearson assume linearidade e sensibilidade a outliers. Um único candle de volatilidade extrema pode inflar r e mascarar a tendência real. Além disso, o cálculo em janelas deslizantes pode gerar “efeito lag”: o indicador só reflete o que já aconteceu, não o que está por vir.

Exemplo prático de falha

Um trader usa 20‑periods para EUR/USD × USD/JPY e obtém r=0,85, acreditando em forte correlação. No entanto, durante um anúncio de taxa, o USD/JPY dispara, criando um outlier que eleva artificialmente o valor. Se ele recalcular com 50 períodos ou aplicar um filtro de mediana, r cai para 0,42, revelando que a relação não era tão robusta.

FAQ rápido

  • Posso usar preços de abertura? Sim, mas a escolha deve ser consistente; misturar aberturas e fechamentos gera ruído.
  • Qual a janela ideal? Não existe “tamanho único”. Teste múltiplas janelas (10, 30, 100) e observe a estabilidade de r.
  • Como lidar com outliers? Aplicar um trimmed mean ou excluir os 5 % mais extremos antes do cálculo.

Se quiser acelerar a implementação, o repositório oficial da MQL5 já oferece um snippet pronto – basta adaptar ao seu símbolo. Acesse o exemplo completo aqui e ajuste a janela conforme o seu perfil de risco.

Primeiros passos após instalar o MetaEditor

Abra o MetaEditor e crie um novo script chamado PearsonCorrelation.mq5. Salve na pasta Scripts para que o terminal o reconheça imediatamente. Não esqueça de compilar (F7) antes de executar.

  • Verifique a versão: MQL5 ≥ 600 garante suporte total ao tipo double com precisão de 15 casas decimais.
  • Inclua a biblioteca padrão: #include traz funções auxiliares, porém a correlação será codificada manualmente para controle total.

Estrutura mínima do algoritmo

O cálculo de Pearson requer duas séries temporais alinhadas (por exemplo, preços de fechamento de dois ativos). O fluxo básico:

 1. Carregar dados históricos → CopyClose. 2. Garantir mesmo número de barras → truncar a série maior. 3. Calcular médias → ArrayAverage. 4. Aplicar a fórmula: r = Σ[(x‑i‑μx)*(y‑i‑μy)] / sqrt( Σ(x‑i‑μx)² * Σ(y‑i‑μy)² ) 5. Exibir resultado no log ou como objeto gráfico. 

Checklist operacional para a rotina diária

EtapaAçãoTempo estimado
1Atualizar séries com CopyClose (últimos 250 candles)5 min
2Validar integridade (sem gaps)2 min
3Executar cálculo1 min
4Registrar r no Journal e disparar alerta se |r| > 0,71 min

Erros comuns e como evitá‑los

  • Desalinhamento de períodos: se um ativo tem horário de negociação diferente, use TimeCurrent() como referência e ajuste com Shift.
  • Divisão por zero: a soma dos quadrados pode ser nula quando a série é constante. Inclua verificação: if(denominator==0) return 0;.
  • Precisão numérica: ao trabalhar com micro‑pips, multiplique temporariamente por 10⁵ para evitar perdas de casas decimais, depois reconverta.

Workflow recomendado para iniciantes

Transforme o script em um expert advisor simples que rode no evento OnTimer() a cada 60 min. Assim, a correlação será atualizada automaticamente, sem necessidade de intervenção manual.

⚡ Dica: use EventSetTimer(60*60) e, dentro de OnTimer(), chame a função CalcPearson(). Isso cria um mini‑dashboard no Experts log.

Mini‑dashboard textual

Inclua no final do script a rotina abaixo para imprimir um resumo visual:

 PrintFormat("Pearson %s‑%s : % .4f", Symbol1, Symbol2, r); 

Quando o valor ultrapassar o limiar definido, o link de afiliado pode direcionar para um serviço de sinais que já incorpora essa métrica.

Timeline evolutiva (primeiro mês)

  • Semana 1: implementar o cálculo bruto e validar com dados históricos conhecidos.
  • Semana 2: automatizar a coleta de séries e criar alertas de alta correlação.
  • Semana 3: integrar ao painel de controle (ChartObjects) para visualização direta no gráfico.
  • Semana 4: otimizar desempenho (reduzir chamadas de CopyClose usando buffers).

Seguindo esse roteiro, a correlação de Pearson deixa de ser um conceito teórico e passa a ser uma ferramenta prática de decisão, pronta para ser combinada com estratégias de pares‑trading ou hedge.

Perfil ideal e limites do “Como calcular correlação de Pearson em MQL5”

Se você é trader que já mexe com indicadores customizados e quer cruzar séries temporais diretamente no MetaEditor, este recurso pode ser um trunfo. Se, ao contrário, sua rotina se resume a comprar sinais prontos ou usar plataformas “plug‑and‑play”, a curva de aprendizado será mais um peso do que uma ajuda.

Quem deve considerar o pacote

  • Programadores intermediários de MQL5: conhece a estrutura de scripts, consegue compilar e debugar, mas ainda busca funções prontas para evitar cálculo manual.
  • Analistas quantitativos que precisam validar pares de ativos antes de montar estratégias de arbitragem.
  • Educadores e mentores que desejam demonstrar ao vivo a relação estatística entre variáveis de preço.

Quem provavelmente não terá bom aproveitamento

  • Iniciantes absolutos em programação – a sintaxe MQL5 já exige um passo de adaptação antes de tocar no cálculo.
  • Traders que operam apenas em timeframe diário e confiam exclusivamente em indicadores de momentum; a correlação de Pearson perde relevância nessas análises.
  • Profissionais que exigem métricas avançadas como correlação parcial ou rolling‑window otimizada; o módulo oferece só o básico.

Limitações práticas

O algoritmo calcula correlação linear em amostras estáticas. Não há suporte a janelas deslizantes, normalização de outliers ou tratamento robusto de séries não‑estacionárias. Em mercados voláteis, a medida pode inflar valores e gerar sinais enganosos.

Além disso, o script depende exclusivamente da biblioteca Math do MQL5; quem usa broker que restringe acesso a funções matemáticas avançadas verá falhas na compilação.

FAQ contextual

PerguntaResposta
Posso usar em ativos com diferentes períodos?Sim, mas é preciso alinhar as séries manualmente; o módulo não sincroniza timeframes.
O cálculo aceita valores ausentes (NaN)?Não. Qualquer registro faltante aborta a execução, exigindo pré‑processamento.
É possível exportar o coeficiente para CSV?Não há funcionalidade nativa, mas basta adicionar FileWrite ao script.
Funciona em MetaTrader 4?Não. A API MathCorrelation só existe em MQL5.

Checklist rápido antes de decidir

  • Domínio básico de loops e arrays em MQL5.
  • Necessidade de validar relações lineares entre duas séries simultâneas.
  • Disponibilidade de tempo para adaptar o código à sua estratégia.
  • Aceitação de que o output será um número entre ‑1 e 1, sem interpretação automática.

Parecer editorial equilibrado

O pacote entrega exatamente o que promete: um cálculo de Pearson pronto para ser inserido em estratégias automatizadas. Não oferece glamour, nem “inteligência artificial” de fundo, mas cumpre o papel com precisão matemática e baixo consumo de CPU.

Para quem tem a disciplina de validar hipóteses estatísticas antes de operar, ele representa um ganho de produtividade mensurável. Para quem busca “sinais mágicos”, a ferramenta se reduz a mais um número que acaba acumulando poeira no código.

Mini cenários reais

Cenário A: um trader de FX usa o módulo para comparar EUR/USD e GBP/USD em 15 min. O coeficiente de 0,84 revela forte co‑movimento; ele introduz um filtro de correlação <90 % nas entradas. Resultado: redução de 12 % nas perdas de “whipsaw”.

Cenário B: um analista de ações tenta correlacionar preço e volume de PETR4 no dia. O cálculo retorna 0,12, indicando quase nenhuma relação linear – ele decide abandonar a ideia e volta ao estudo de indicadores de volatilidade.

Próximos passos recomendados

Baixe o script aqui e teste em um demo com pares de sua escolha. Ajuste a janela de amostragem para 250 candles e observe a variação do coeficiente ao longo do tempo. Se a oscilação for alta, considere complementar a análise com correlação de Kendall ou Spearman.

Em resumo, a ferramenta é útil, porém circunscrita. Seu valor depende da maturidade do usuário em filtrar ruído estatístico e integrar o número ao gerenciamento de risco.

Deixe uma resposta

Related Post