Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Visualizações:
28
Avaliação:
(2)
Publicado:
\MQL5\Include\SAX\
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Visão geral

Quase todas as ferramentas que criamos para analisar um gráfico permanecem no mundo dos números. Esta, porém, vai além. A Aproximação Agregada Simbólica (SAX), introduzida por Jessica Lin, Eamonn Keogh e colegas em 2003, pega um intervalo de preços e o transforma em uma sequência curta de letras, algo como bddcbbba. Uma vez que um trecho do mercado se torna uma palavra, é possível fazer com ela tudo o que a ciência da computação já sabe fazer com texto: comparar, contar, gerar hash, pesquisar.

Esta publicação aplica isso a uma questão prática: o mercado está se comportando assim agora; quando ele já se comportou de maneira semelhante no passado e o que aconteceu depois? O indicador codifica a janela atual, analisa o histórico em busca de janelas passadas com formato semelhante, lê o futuro conhecido de cada correspondência e traça a distribuição resultante de resultados como um cone de previsão no gráfico, acompanhado de um painel de veredicto que apresenta as estatísticas por trás disso.

A transformação em si tem três etapas, cada uma com um propósito específico:

  • Normalizar a janela por Z, para que o que reste seja apenas a forma pura. Uma alta no EURUSD e uma alta no ouro se mapeiam para a mesma curva normalizada se subirem da mesma maneira.
  • Aproximação agregada por partes: dividir a janela normalizada em w segmentos iguais e substituir cada um por sua média. Uma janela de 48 barras com w = 8 se transforma em oito números, o que representa uma redução de dimensionalidade que suaviza o ruído ao longo do processo.
  • Discretize: mapeie a média de cada segmento para uma letra usando pontos de ruptura que dividem a distribuição normal padrão em faixas de probabilidade igual, de modo que cada letra seja, a priori, igualmente provável.

As três etapas da transformação SAX em uma janela de preços

O pipeline SAX: normalize a janela em z, calcule a média em células e, em seguida, mapeie cada célula para uma letra usando pontos de ruptura gaussianos.

O que torna a busca SAX precisa, e não apenas rápida, é o MINDIST, uma distância entre duas palavras que, comprovadamente, estabelece um limite inferior para a verdadeira distância euclidiana entre as séries normalizadas por z. Como ele só pode subestimar a distância real, pode ser usado para descartar candidatos sem o risco de descartar uma correspondência verdadeira. É isso que justifica a busca em duas etapas aqui: filtrar com a distância entre palavras de baixo custo e, em seguida, classificar os resultados restantes pela verdadeira distância euclidiana. O conjunto de testes de validação publicado confirma que o pipeline retorna exatamente as mesmas correspondências que o método de força bruta, ao mesmo tempo em que dispensa grande parte do trabalho.

Leia isto antes de usá-la: a etapa de normalização por z, que torna o SAX elegante, descarta deliberadamente o nível de preço e a volatilidade — e, nas negociações, esses são frequentemente exatamente os fatores que mais importam para você. Esta ferramenta compensa onde pode, medindo cada resultado em unidades da volatilidade prevalecente na época, mas a limitação é real e não foi eliminada por meio de ajustes. Espere que o veredicto indique “sem vantagem ” com mais frequência do que qualquer outra coisa. Em mercados próximos a um passeio aleatório, essa é a resposta correta, não um mau funcionamento.


O que o indicador representa

Dois objetos, ambos reconstruídos quando uma nova barra fecha.

O cone em leque projeta a distribuição futura dos análogos a partir da última barra fechada. Uma linha contínua traça o movimento mediano futuro a cada etapa, e as linhas pontilhadas acima e abaixo traçam os percentis 25 e 75; assim, o cone se alarga à medida que a concordância entre os precedentes se esvai. A distribuição por etapa é mantida em unidades de ATR e multiplicada pelo ATR atual para chegar ao eixo de preço real, o que permite que precedentes de períodos calmos e voláteis contribuam para o mesmo cone. O cone é traçado apenas quando o veredicto é de alta ou de baixa; portanto, a ausência do cone é, por si só, uma informação, e não uma falha de renderização.

O painel de veredicto apresenta os números que o cone oculta:

Linha
O que isso indica
palavra
A codificação SAX da janela atual, a consulta na qual a busca foi efetivamente executada.
análogos
Quantos precedentes foram encontrados e sua distância média de correspondência. Um número elevado de resultados com uma distância média ruim é um caso mais fraco do que um número pequeno de correspondências próximas.
fwd H
Mediana do movimento para frente além do horizonte, em múltiplos de ATR e em porcentagem.
band
O intervalo entre o 25º e o 75º percentil desses movimentos para frente: a largura do cone, expressa numericamente.
taxa de alta
A proporção de precedentes que registraram alta, e a variação. Uma mediana que tende para cima com uma taxa de alta de 51% é fruto da sorte de um único precedente, não uma tendência.
VEREDITO
Alta, baixa, sem vantagem, poucos casos análogos ou ausência de dados.

O veredicto é deliberadamente difícil de se obter. Primeiro se decide se há poucos casos análogos; depois, o caso de “cara ou cor”; e somente uma amostra que atenda a ambas as faixas de convicção recebe uma direção: o movimento da mediana deve exceder o limiar de vantagem em termos de ATR, e a taxa de alta deve sair da faixa em torno de 0,5. Se falhar em qualquer um desses critérios, a resposta é “sem vantagem”, independentemente do que a mediana indique.

O indicador analógico SAX no EURUSD M30: cone em leque e painel de veredicto

O prognóstico para o EURUSD, M30: o cone em leque projetando a mediana e a faixa interquartil dos análogos, com o painel de veredicto informando a amostra por trás dele.


Principais Características

Honestidade por construção

  • Sem antecipação. A janela de resultado de uma correspondência deve terminar estritamente antes do início da janela de consulta, para que nada do próprio futuro da consulta possa se infiltrar em seu conjunto de precedentes. Essa é a única proteção que separa uma busca por análogos de um ajuste de curva.
  • Resultados normalizados pelo ATR. Os movimentos futuros são expressos em múltiplos do ATR vigente no momento da partida, de modo que um precedente de um período tranquilo e outro de um período volátil fiquem em pé de igualdade. Essa é a compensação pelo que a normalização z descartou.
  • Um veredicto que tem permissão para dizer “não”. A ferramenta retém uma previsão e suprime o cone sempre que a amostra for muito pequena ou a tendência não for decisiva em ambas as medidas.

Uma biblioteca SAX de verdade, não uma aproximação dela

  • Normalização z, PAA incluindo o caso fracionário em que o comprimento da janela não é divisível uniformemente pelo comprimento da palavra, pontos de ruptura gaussianos via probit de Acklam, codificação e um MINDIST que estabelece, de forma comprovável, um limite inferior para a distância real. Nada disso existia na plataforma anteriormente.
  • São suportados tamanhos de alfabeto de 2 a 10, com pontos de ruptura definidos uma única vez no momento da configuração e armazenados em cache.
  • Uma janela plana é relatada como plana, em vez de ser codificada silenciosamente: com um desvio padrão próximo de zero, não há forma a ser normalizada, e inventar uma produziria uma palavra sem sentido.
  • Uma métrica euclidiana de força bruta é fornecida junto com o pipeline de produção como uma opção, para que a poda possa ser verificada em relação à resposta que deveria reproduzir, em vez de ser simplesmente considerada confiável.

Prático em um gráfico em tempo real

  • A busca é executada uma vez por barra fechada, e não por tick, e lê o histórico a partir da barra 1, de modo que a barra em formação nunca entre nem na consulta nem no conjunto de precedentes.
  • O tamanho da caixa do painel é definido com base no texto efetivamente renderizado, de modo que nada seja cortado em qualquer tamanho de fonte ou conteúdo, e são fornecidos temas claro e escuro para que a leitura seja fácil em qualquer fundo do gráfico.
  • Cada objeto do gráfico possui um prefixo comum e é removido na função `deinit`, sem deixar nenhum objeto órfão para trás.


Configuração recomendada

Parâmetro
Valor recomendado
Observações
Símbolo
Qualquer instrumento de mercado
A correspondência de formas é independente de escala por definição. O desenvolvimento e a captura de tela utilizaram o par EURUSD.
Intervalo de tempo
M30 a H4
É necessário histórico suficiente para que o conjunto de precedentes seja significativo. A janela, o horizonte e a varredura do histórico são medidos em barras, portanto, são transferidos entre os intervalos de tempo sem alterações.
Histórico
6.000 barras
A profundidade de análise padrão. Mais histórico significa mais precedentes e uma distribuição mais sólida, com um custo linear no tempo de busca.
Tema do painel
Combine com seu gráfico
Escuro por padrão. Mude para claro em um gráfico branco, caso contrário, o texto do corpo não ficará legível.


Estrutura de arquivos

Um indicador e dois cabeçalhos. Os cabeçalhos são incluídos como <SAX\...>, portanto, devem ficar em sua própria subpasta SAX.

Arquivo
Função
Descrição
Include\SAX\SAXTransform.mqh
A transformação
Normalização Z, PAA, pontos de ruptura gaussianos, codificação de palavras e MINDIST de limite inferior. Reutilizável em qualquer série, sem dependência de gráficos ou negociação.
Include\SAX\SAXAnalogs.mqh
A busca
Correspondência em duas etapas (poda e classificação), a proteção “no-lookahead”, resultados normalizados por ATR, a distribuição por etapa por trás do cone e a classificação do veredicto.
Indicators\SAX\SAXAnalog.mq5
O indicador
Executa a busca em cada nova barra e desenha o cone de previsão e o painel de veredicto. Não plota nada nos buffers; tudo são objetos do gráfico.


Parâmetros de entrada

Entrada
Padrão
O que controla
InpWinLen
48 barras
Comprimento da janela de consulta: qual a extensão da forma recente que deve coincidir para que uma barra seja considerada um precedente.
InpHorizon
12 barras
Horizonte de previsão: até que ponto no futuro conhecido de cada precedente o resultado é medido e até onde o cone se estende.
InpWordLen, InpAlphabet
8, 4
A resolução do SAX. Palavras mais longas e alfabetos maiores permitem uma discriminação mais precisa e, portanto, resultam em menos correspondências; palavras mais curtas e alfabetos mais simples reúnem mais precedentes com semelhanças mais vagas.
InpMaxAnalogs, InpMinAnalogs
50, 10
Quantos precedentes mais próximos devem ser mantidos e a amostra mínima abaixo da qual o veredicto é forçado a “muito poucos”, independentemente do que esses poucos indiquem.
InpEdgeATR
0,25
Limite de convicção: o movimento mediano para frente deve ultrapassar um quarto de um ATR para ser considerado uma tendência.
InpMetric
MINDIST
O pipeline de duas etapas (poda e classificação), que é a configuração de produção. Mude para o Euclid para uma análise exaustiva de todos os candidatos: mesma classificação, sem poda, útil como referência de precisão e velocidade.
InpATRPeriod
14
O ATR usado para normalizar os resultados e escalar o cone no eixo de preço.
InpMaxHistory
6.000 barras
Até que ponto no passado se deve procurar por precedentes.
Cores, canto, tema
Azul / vermelho / cinza, canto superior esquerdo, escuro
Cores de destaque do cone e do painel de acordo com o veredicto, a cor da linha da faixa, o canto âncora do painel e o tema claro ou escuro.


Base de pesquisa

A implementação segue o trabalho original do SAX de Jessica Lin, Eamonn Keogh e colegas, cuja página do SAX reúne os artigos.

O SAX não é uma bola de cristal para preços, e esta ferramenta reportará “nenhuma vantagem” com mais frequência do que qualquer outra informação. Seu valor reside nas raras ocasiões, bem fundamentadas, em que muitos precedentes genuínos apontam na mesma direção, e na disciplina de uma ferramenta que se recusa a fingir o contrário. A mesma biblioteca abre espaço para trabalhos futuros: palavras do SAX como características categóricas para um modelo de aprendizado de máquina, descoberta de motivos e discordâncias para detecção de anomalias ou um modelo de transição de Markov sobre o dicionário de palavras.

Um artigo complementar deriva a transformação e o limite inferior, detalha a pesquisa e suas condições de segurança e mostra a aprovação do conjunto de testes de validação: Aproximação Agregada Simbólica (SAX) em MQL5: Pesquisa e Previsão de Analogias Históricas.

Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/75543

Trade Journal and Performance Analytics Dashboard Trade Journal and Performance Analytics Dashboard

Um painel leve integrado ao gráfico que analisa seu histórico de operações fechadas e exibe a taxa de acerto, o fator de lucro, sequências de resultados e uma curva de patrimônio — sem necessidade de inserir estratégias, apenas seus próprios números, atualizados automaticamente.

SHK Heikin Ashi MACD Signal Arrows SHK Heikin Ashi MACD Signal Arrows

Um indicador gráfico para o MetaTrader 5 que traça velas Heikin Ashi, setas de compra e venda confirmadas, filtragem opcional de divergência do histograma do MACD e alertas configuráveis.

Global Macro Soros Global Macro Soros

Global Macro Soros. Um indicador de concordância de tendências em múltiplos intervalos de tempo, inspirado no estilo de negociação macroeconômica de George Soros.

Trade Manager Panel Simple Interactive Chart Trading Tool with Risk Management for MT5 Trade Manager Panel Simple Interactive Chart Trading Tool with Risk Management for MT5

Um painel simples de gerenciamento de negociações em MQL5 que oferece linhas de gráfico com recurso de arrastar e soltar, dimensionamento dinâmico de lotes com base na porcentagem de risco, modos de Stop Loss por ATR/ponto e monitoramento em tempo real do lucro e prejuízo (P/L) variável.