Automatização e filtragem na análise técnica — ferramentas, fluxo de trabalho e armadilhas

Um screener deve aplicar a mesma regra a toda a lista de instrumentos registrada. A pergunta essencial após uma pesquisa é, por isso: um resultado vazio significa ausência de configuração ou ausência de dados? Este capítulo leva você da definição de uma configuração até pseudocódigo completo, registro de alertas e teste fora da amostra utilizada para selecionar parâmetros. Separamos a identificação de um candidato do envio de uma ordem. A automatização pode poupar trabalho, mas também repetir um erro rápida e consistentemente.

Ilustração educacional com geometria ilustrativa. As definições, os dados e os cálculos exatos estão no artigo.
Pontos essenciais em 60 segundos
  • Um screener seleciona candidatos. O seu valor pode estar numa revisão mais curta mantendo a cobertura da lista. Para avaliar o efeito nos resultados financeiros, precisa também de uma regra fixada de entrada, saída e custos.
  • Um alerta tem um escopo definido. Não substitui a pesquisa de condições fora desse escopo. A redução do tempo de tela é mensurável; não pressupomos melhoria automática da disciplina ou dos resultados.
  • Um backtest é um modelo. Um testador pode incorporar spreads históricos, comissões e slippage admitido. Não consegue reproduzir todos os preços disponíveis nem a resposta futura da corretora, incluindo uma recotação. O ajuste de um modelo ao histórico não prova uma vantagem futura.
  • Os níveis de automatização são uma convenção descritiva. Um alerta, um filtro e um sistema que executa ordens têm responsabilidades diferentes. A execução completa exige também tratamento de erros, duplicados e estado da conta; um sinal, por si só, é insuficiente.
Seleção hipotética: 28 esperados, 26 avaliados, 2 ausentes e 4 candidatos
Diagrama conceitual com resultados hipotéticos: 26/28 = 92.8571% de cobertura; 26 = 4 candidatos + 22 sem sinal. Dois resultados ausentes desconhecidos. Candidato não é ordem.

1. Por que automatizar — e o que automatiza exatamente

As oito moedas USD, EUR, GBP, JPY, CHF, AUD, NZD e CAD formam 8 × 7 / 2 = 28 pares não ordenados. É um universo selecionado, não todo o mercado Forex nem uma medição dos instrumentos «mais acompanhados». Uma corretora pode oferecer outra lista. Registre símbolos, sentido da cotação e versão da lista antes de pesquisar. Avaliamos filtros de médias móveis, osciladores e zonas S/R com o mesmo contrato de dados.

Um filtro aplica uma condição registrada a uma lista. O resultado reúne candidatos e um relatório de cobertura. Uma decisão manual ou automática posterior pode rejeitar um candidato; mantenha esse resultado separado.

Um screener faz uma revisão repetível sem escolher gráficos favoritos, mas apenas dentro da sua configuração. Uma lista de 28 pares nos ajustes não prova que todos receberam dados atuais. O relatório tem também de conter um registro para o par sem sinal e para o par que não pôde ser avaliado.

RSI abaixo de 30 é o resultado de uma condição, e não uma instrução de compra. Se price action ou análise contextual adicional determina a entrada, registre também as rejeições. Caso contrário, o teste do screener abrangerá apenas operações convenientemente selecionadas.

2. Espectro da automatização: do alerta ao algoritmo

Os cinco níveis abaixo organizam o escopo das funções. São uma convenção do curso, e não uma classificação do percurso ótimo para a maioria dos negociadores. Um nível superior exige controles adicionais, mas não é necessariamente melhor para uma tarefa específica.

NívelO que faz a máquinaO que faz o negociadorExemplos
1. Alerta de preçoNotifica quando o preço atinge um nívelAnalisa, decide, executaAlerta em EUR/USD = 1,0700
2. Alerta de indicadorNotifica quando um indicador satisfaz uma condiçãoAnalisa o contexto, decideRSI(14) < 30 em D1
3. ScreenerFiltra a lista de instrumentos por critériosRevê resultados, analisa, decideTradingView Screener
4. Sistema semiautomáticoGera sinal + parâmetros sugeridosAprova ou rejeita, gere a posiçãoIndicador personalizado + alerta Pine Script
5. Automatização completaAnalisa, abre, gere, fechaMonitora, intervém em emergênciasExpert Advisor (EA) em MT4/MT5

Um filtro ou alerta pronto nem sempre exige programação. Continua a exigir configuração, fonte de dados e teste operacional. A execução semiautomática e automática introduz outro problema: uma condição corretamente identificada pode receber execução diferente ou nenhuma execução.

O diagrama agrupa funções em três categorias: notificação e filtragem, seleção do universo e execução. Passar à execução exige controles adicionais de instruções e erros; o diagrama não é uma classificação de qualidade nem uma previsão do desempenho da conta.

Este artigo concentra-se nos níveis 1 a 4. A automatização completa (EA) surge sobretudo no contexto das armadilhas — porque é aí que se chega quando se recorre a um robô demasiado cedo.

Pesquisa, alerta e execução: funções separadas
Sequência operacional: cada etapa tem uma condição e um registo separados.

3. Critérios de filtragem na prática

Comece pela observação que deseja encontrar e depois transforme-a em condições. Um filtro seletivo só é útil se encontra os casos pretendidos e informa o que não conseguiu avaliar. A quantidade de resultados, por si só, não revela sua qualidade.

Lista para tornar uma regra objetiva

Antes de qualquer condição chegar ao scanner, precisa passar da linguagem da intuição para a da máquina. Todos os elementos abaixo que não definir explicitamente serão definidos pelo scanner — geralmente de forma diferente da que presume:

ElementoPergunta de controle
UniversoQue instrumentos pesquiso (uma lista fechada, não «tudo»)?
Fonte de dadosDe quem é o feed e que preços utiliza (Bid, Ask, mid)? O mesmo em que negoceio?
Período gráfico e momento de avaliaçãoQue velas — apenas fechadas? Quando se calcula exatamente a condição?
Indicador e implementaçãoQue parâmetros e de quem é a implementação (RSI de Wilder ≠ RSI numa SMA)?
Operador e limiarUm cruzamento do limiar ou um estado abaixo/acima dele? Com que tolerância?
Frequência da pesquisaUma vez por vela fechada, uma vez por dia a hora fixa ou continuamente?
Dados em faltaO que faz a regra com uma vela em falta, um gap, uma mudança de símbolo?
Eliminação de duplicadosQuantos alertas se a condição se mantém durante seis velas seguidas — seis ou um?
Condição de reposiçãoO que invalida o sinal e permite que a regra dispare novamente?

Três medidas separadas. Duração da pesquisa e cobertura dos dados medem comodidade e confiabilidade. Concordância com um padrão de referência identificado independentemente mede a detecção da condição. Resultados financeiros exigem toda a estratégia, incluindo candidatos rejeitados, preços de resposta e custos. Atingir TP não é, por si só, a definição de resultado «correto» do screener, e ausência de melhoria da taxa de acerto não nega a poupança de tempo. Compare com a variante não filtrada na mesma amostra reservada previamente.

Filtros de tendência

  • Preço em relação a EMA/SMA. Preço acima de uma EMA 200 ascendente em D1 pode definir um filtro direcional. Rejeita candidatos que não cumpram esta condição, e não todas as operações «contra a tendência» segundo qualquer definição de mercado. Preço igual à média ou inclinação plana exige decisão explícita.
  • Cruzamento de médias móveis. A condição EMA 50 anteriormente ≤ EMA 200 e agora > EMA 200 detecta uma transição. Não é uma taxa de câmbio cruzada nem prova de alteração da direção futura do preço. Os dois valores têm de vir de velas completas da mesma série.
  • ADX acima de um limiar. Exemplos de limiares de convenção estabelecida: ADX(14) > 25 é tratado como mercado em tendência, < 20 como consolidação — lembrando que o ADX mede a força do movimento, não a direção. Útil sobretudo como filtro negativo: abaixo do limiar, uma regra de tendência rejeita o instrumento segundo o parâmetro escolhido.

Filtros de momentum e osciladores

  • RSI em zonas extremas. Exemplos de limiares para o RSI(14) são 30 e 70. A frequência depende do instrumento, período gráfico, período e método de inicialização. Sobrevenda não é sinal de compra autônomo, nem sobrecompra sinal de venda. Sem pesquisa, não atribuímos maior valor informativo aos extremos D1 do que aos H1.
  • Divergência. É preciso definir swings, emparelhamento dos extremos de preço e oscilador e momento de confirmação. Com essas definições, até um padrão complexo pode ser calculado. Uma avaliação manual de divergência «em várias ondas» sem regras deixa seleção discricionária difícil de reproduzir justamente num teste.
  • Histograma MACD — mudança de sinal. O histograma cruza zero de baixo para cima — nesta implementação, significa mudança da relação entre a linha MACD e a linha de sinal, e não prova de mudança da direção do preço. Fácil de programar, frequentemente utilizado como filtro preliminar para análise posterior.

Filtros de preço e estrutura

  • Proximidade de S/R. Defina zona e tolerância na mesma unidade do preço. Um alerta em uma zona marcada manualmente pode simplificar a revisão, mas a eficácia precisa ser testada; não decorre da facilidade de configuração.
  • Rutura da amplitude de N velas. Por exemplo, fechamento de uma vela concluída > máximo mais alto das 20 velas completas anteriores. A vela testada é excluída da janela do máximo; igualdade não é rompimento na variante estrita. É uma convenção Donchian, e não uma promessa automática de lucro.
  • Fibonacci. Defina extremos de swing confirmados e tolerância em torno de uma retração. A confirmação atrasada é descrita no artigo 5.11. Calcular um nível não prova que o preço reagirá nele.

Analise um candle antes de ler o contrato completo

Use o suporte S=1.1000 e o ATR fixado A=0.0040. A zona é [1.0992;1.1008]; a invalidação exige C < 1.0980; a reativação exige C ≥ 1.1040 e L > 1.1008. Considere satisfeitas as condições de EMA indicadas sempre que um sinal for testado.

  1. Dados ausentes ou inválidos: registre esse estado e suspenda novos alertas.
  2. Um fechamento abaixo do limite de invalidação encerra esse contexto.
  3. Se estiver desarmado, teste o rearmamento para o próximo candle. Não emita alerta neste candle.
  4. Se estiver armado, uma interseção da amplitude com a zona e C > S podem gerar um candidato se o filtro de EMA for satisfeito.

A sequência abaixo fornece os números. São entradas de modelo, não uma reconstrução do histórico de mercado. O contrato posterior acrescenta controles que preservam esse significado quando dados ou solicitações se repetem.

Reproduza o estado do alerta sem ver o próximo candle

Mantenha S, A fixado, a ordem das ramificações e o contexto. As seis primeiras decisões usam a sequência publicada, incluindo a repetição da solicitação. A lacuna final é um caso separado. Escolha antes de revelar a verificação; as respostas ficam acessíveis sem escrever notas.

Etapa 1. Armado. L=1.1007,H=1.1015,C=1.1010.

A nota é opcional. Guarde uma cópia se o armazenamento do navegador não estiver disponível.

Verificar esta etapa e revelar a próxima

SIGNAL. A amplitude intersecta a zona, C > S e o filtro de EMA pressuposto é satisfeito. Desarme esse contexto.

Etapa 1 — repetição da solicitação. A mesma chave e o mesmo hash de entrada chegam novamente.

A nota é opcional. Guarde uma cópia se o armazenamento do navegador não estiver disponível.

Verificar esta etapa e revelar a próxima

Retorne o SIGNAL já registrado. Não o avalie com o estado agora desarmado nem envie outra notificação.

Etapa 2. Desarmado. L=1.1010,H=1.1042,C=1.1040.

A nota é opcional. Guarde uma cópia se o armazenamento do navegador não estiver disponível.

Verificar esta etapa e revelar a próxima

REARM para o próximo candle. C é igual ao limite permitido e L está acima de 1.1008. Nenhum alerta agora.

Etapa 3. Armado. L=1.1007,H=1.1025,C=1.1010; o filtro de EMA é satisfeito.

A nota é opcional. Guarde uma cópia se o armazenamento do navegador não estiver disponível.

Verificar esta etapa e revelar a próxima

SIGNAL para esta nova chave de candle; depois, desarme.

Etapa 4. Desarmado. L=1.0975,H=1.1014,C=1.0980.

A nota é opcional. Guarde uma cópia se o armazenamento do navegador não estiver disponível.

Verificar esta etapa e revelar a próxima

DISARMED. A igualdade não satisfaz C < 1.0980. A reativação também não é satisfeita.

Etapa 5. Desarmado. L=1.0974,H=1.0982,C=1.0979.

A nota é opcional. Guarde uma cópia se o armazenamento do navegador não estiver disponível.

Verificar esta etapa e revelar a próxima

INVALIDATED. Descarte o centro antigo; é necessário um novo fractal confirmado.

Etapa: lacuna independente. Um erro de dados impede a avaliação; não há um registro completo.

A nota é opcional. Guarde uma cópia se o armazenamento do navegador não estiver disponível.

Verificar esta etapa e revelar a próxima

NO_DATA. Não invente NO_SIGNAL nem deduza reativação ou invalidação dentro da lacuna. Suspenda os alertas até reconstruir o contexto.

Ler a sequência resolvida completa

O mesmo nível, estados sucessivos do alerta

Percorramos a regra sem alterar limiares após ver o resultado. O suporte S = 1,1000 vem de um fractal confirmado antes do primeiro dia testado. ATR A = 0,0040, ou 40 pips, fixado nesse momento, define a zona [1,0992; 1,1008], invalidação em C < 1,0980 e rearmamento em C ≥ 1,1040 e L > 1,1008. São parâmetros de modelo, e não valores recomendados para EUR/USD. O centro do fractal e A mantêm-se ao longo do exemplo.

Excerto hipotético do registro Bid D1, avaliado após receber cada fechamento
PassoL / H / CEstado anteriorResultado
11,1007 / 1,1015 / 1,1010ArmadoA amplitude intersecta a zona, C > S: alerta e desarme
1 — repetiçãoMesma chave e hash de entrada do passo 1Registro SIGNAL existenteDevolver o resultado anterior; sem nova avaliação, alteração de estado ou notificação
21,1010 / 1,1042 / 1,1040DesarmadoC iguala o limiar de rearmamento, L fica acima da zona: armar para o passo seguinte, sem alerta
31,1007 / 1,1025 / 1,1010ArmadoNovo teste: segundo alerta, outro fim de vela e chave
41,0975 / 1,1014 / 1,0980DesarmadoA igualdade não invalida na regra estrita; sem rearmamento nem alerta
51,0974 / 1,0982 / 1,0979DesarmadoC < 1,0980: contexto invalidado

Nos passos 1 e 3, o filtro EMA declarado é satisfeito: o fechamento está acima da EMA e a EMA atual acima do seu valor de há 20 velas. A tabela não reconstrói 500 velas de aquecimento; estas duas condições são entradas de um modelo lógico, e não leituras de mercado documentadas. Repetir o passo 1 precisa devolver o mesmo SIGNAL; não pode ser recalculado com o estado agora desarmado e substituído por DISARMED. Numa revisão, reconstruímos separadamente o estado anterior a essa vela e os estados dependentes posteriores, conservando a execução original. O passo 2 não pode armar e emitir alerta ao mesmo tempo, porque o seu estado no início da avaliação era desarmado. A ordem dos ramos faz parte da definição, não é um detalhe técnico.

Após o passo 5, o fractal antigo continua arquivado como invalidado. A pesquisa do dia seguinte não pode renomeá-lo «suporte mais recente» e criar novo alerta a partir do mesmo centro. É preciso um novo fractal confirmado. A expiração após 60 velas é um estado separado: ocorre mesmo sem cruzar o nível de invalidação. Se faltam dados entre passos, não sabemos se houve rearmamento ou invalidação na lacuna; relate a interrupção e suspenda novos alertas até reconstruir o contexto.

Uma revisão de High/Low pode alterar a qualificação do fractal. Conserve a cópia original, o resultado então disponível e a correção posterior associada. Avaliar «como funcionou a regra nos dados finais» e «o que poderia efetivamente ter enviado nesse momento» são duas experiências diferentes. Pode executar ambas, mas não misturar registros. O CSV de estados anexo fornece material para verificar uma implementação sem colocar ordens.

RSI: abaixo de 30 não é novo cruzamento
Sequência e eixo temporal; cada condição é utilizada após os dados ficarem disponíveis.

Da intuição à condição — a regra completa e o que se perde na tradução

Intuição: «comprar reações no suporte em uma tendência de alta em D1». A mesma ideia escrita para um scanner a poder executar:

A versão completa tem quatro tarefas: obter um retrato dos dados com versão; fixar o contexto; avaliar o candle a partir do estado original; registrar o resultado e entregar uma notificação sem duplicação. Leia as ramificações em ordem. Uma repetição da solicitação não é um novo candle, e uma correção não é um alerta original.

Ler o contrato completo de dados, estados e entrega
PSEUDOCÓDIGO: CANDIDATO A «TESTE DO SUPORTE», NÃO UMA ORDEM
Configuração fixada: versão, 28 pares, feed BID, D1, calendário,
  EMA: α=2/201, inicializada com a SMA dos primeiros 200 C; ATR(14) de Wilder:
  inicialização = média dos primeiros 14 TR com C anterior, depois α=1/14;
  aquecimento de pelo menos 500 velas completas é uma escolha do modelo, não garantia de convergência.
Estado do símbolo: nível S, ATR A, intervalo de identificação, armado/desarmado.
No início de t, registre uma cópia imutável do contexto com dados conhecidos antes de start_t:
  registra entradas para t sem alterar o estado armado de trabalho; uma repetição usa esta cópia.
  O estado anterior a t e o arquivo de centros vêm da última vela processada anteriormente.
  selecione o último fractal inferior estrito com 2 velas de cada lado,
  confirmado e recebido antes de start_t, com idade não superior a 60 velas;
  mínimos iguais não formam fractal estrito; nenhum = NO_LEVEL.
  Identifique novo contexto pelo feed e centro do fractal. Conserve centros invalidados
  no registro; não recrie contexto a partir do mesmo centro.
  Para novo contexto A := ATR conhecido antes de start_t; mantenha-o inalterado
  até expiração, invalidação ou novo centro confirmado.
  Após 60 velas desde o centro, registre EXPIRED; não emita alerta.
  Se A ≤ 0 ou falta o seu valor: NO_VALUE, sem sinal.
  Registre zona [S − 0.2A; S + 0.2A] e invalidação C < S − 0.5A.
  Um novo fractal confirmado cria novo contexto, armado antes do teste.
Após o fim de t, para CADA símbolo no universo completo:
  Key := (version, feed, symbol, D1, end_UTC).
  Obtenha OHLC t completo e known_at, e a cópia de contexto guardada antes de start_t.
  O hash de entrada abrange OHLC, histórico de indicadores, contexto, configuração e versões dos dados.
  Se esta chave e hash existem: devolva o resultado anterior sem avaliação nem alteração de estado.
  Se a chave existe, mas o hash difere: acrescente revisão e execute uma reprodução separada
    desde o estado fixado anterior a t; não avalie t com estado já alterado por t.
    Corrigir o histórico anterior a t exige reprodução desde a primeira entrada alterada.
    Conserve resultado/known_at originais; marque o resultado reproduzido como correção posterior.
    Não envie a correção como novo alerta original; termine o símbolo.
  Na primeira avaliação, utilize cópia do estado anterior a t e a cópia do contexto;
    valide L ≤ min(O,C) ≤ max(O,C) ≤ H.
  Verifique continuidade de sessão, feed, componente, incrementos de preço e aquecimento.
  Erro de dados: registre NO_DATA; conserve o estado; não emita alerta.
  Se C_t < S − 0.5A: registre INVALIDATED, remova contexto; termine o símbolo.
  Se o estado estava desarmado:
    se C_t ≥ S + A AND L_t > S + 0.2A: arme para a vela SEGUINTE;
    registre REARM ou DISARMED; não emita alerta na mesma vela.
  Se o estado estava armado:
    trend := C_t > EMA200_t AND EMA200_t > EMA200_(t−20).
    test := H_t ≥ S − 0.2A AND L_t ≤ S + 0.2A AND C_t > S.
    signal := trend AND test.
    Registre SIGNAL ou NO_SIGNAL com os operandos completos.
    Num sinal, desarme o contexto; novo alerta só após um REARM futuro.
  Cada ramo terminal registra resultado, entradas, estado antes e estado depois de t.
  Grave registro e estado uma vez em uma transação única com chave única;
    em um conflito de repetição, devolva o registro existente sem segunda mutação.
  Identifique a notificação por esta chave, incluindo ao retomar a entrega.
  Processe os fins das velas cronologicamente; uma falha de dados bloqueia alertas posteriores
    até reconstruir o contexto; não pode ser convertida em NO_SIGNAL.
Após pesquisar, relate esperados/avaliados/em falta/candidatos, incluindo quando candidatos = 0.
O alerta inclui end_t, known_at, version, S, A e condições; sem função de execução.

A tradução torna as escolhas explícitas. Suporte significa um fractal confirmado, a zona é ±0.2 × ATR fixado e o teste exige a interseção da amplitude e o fechamento registrados. O contexto W1 e a qualidade discricionária do candle ficam fora dessa regra. Rearmar um alerta e invalidar o suporte continuam sendo eventos separados. Outra definição exige outra versão.

Contexto macroeconômico e filtros de custos — o que nenhum screener mostra sozinho

Um filtro de calendário, spread ou rollover é uma regra separada. Uma janela de 30 ou 60 minutos não tem aqui otimalidade estabelecida. Registre que eventos abrange, de onde vieram as datas e se bloqueia novos candidatos, novas ordens ou também altera o tratamento de posições existentes.

  • Filtro de calendário. Um procedimento de exemplo pode rejeitar novos candidatos duas horas antes de um evento selecionado. É um parâmetro a testar, não uma exigência universal. Verifique a data com o editor e distinga hora agendada de publicação efetiva; «Alto impacto» é a classificação do fornecedor do calendário.
  • Filtro de spread. O limiar é explícito, com unidade e base de comparação. Duas vezes um nível medido previamente para o par e hora pode bloquear uma nova instrução. Não explica por que o spread alargou nem protege uma posição existente.
  • Filtro ATR. ATR > 1,2 × a média dos N valores anteriores descreve a ultrapassagem de um limiar selecionado. Uma leitura abaixo do limiar não significa automaticamente «mercado pouco líquido». Alterar SL, TP e volume exige uma regra registrada; não decorre necessariamente apenas do ATR.

Mantenha a avaliação posterior de padrões, contexto e risco como regras separadas. Se uma delas alterar a decisão de agir, mantenha suas entradas e o motivo da rejeição.

Nível 2/fluxo de ordens no FX de varejo — profundidade aparente. No mercado OTC à vista, vê o livro de ordens da corretora, não o do mercado. Durante um choque, a profundidade apresentada pode desaparecer antes de uma ordem de mercado executar (a chamada liquidez fantasma — liquidez aparente), com execução a vários pips ou a uma dezena ou mais de distância; nas estratégias de rompimento de períodos menores, é uma razão importante da divergência entre backtests e realidade. Fluxo de ordens com livro central existe em futuros (CME); a microestrutura do mercado OTC é examinada na seção 3.
Regimes de mercado — um screener não é universal

Os filtros podem devolver números diferentes de resultados em regimes diferentes. Se alterna entre conjuntos de tendência e de amplitude, a regra de alternância precisa ser registrada antes do teste e utilizar dados então disponíveis. Selecionar retrospectivamente o melhor filtro para cada segmento histórico é outra otimização. Uma semana vazia com dados completos é resultado válido, e não motivo para afrouxar limiares durante o processo.

Um rompimento não revela intenção. Um alerta seguido de retorno abaixo do nível não prova concentração de stops nem ação de um participante maior. ADX > 25 também não confirma essa causa: o ADX não dá direção. Uma regra pode exigir outro fechamento acima do nível, mas o sinal ocorre então mais tarde e exige medição separada. Não pode chamar «armadilha» a todas as rompimentos perdedoras apenas após ver o resultado.
Refaça os cálculos dos exemplos publicados. Baixar os exemplos, o verificador e as instruções. Extraia todo o ZIP e execute node reproduce-real-examples.cjs nessa pasta. Ler as instruções ou consultar os valores esperados. O verificador testa 50 asserções e grava as verificações em ./reproduced. Todos os arquivos-fonte necessários estão incluídos; os exemplos relacionados de H1/H4 e de três símbolos usam o mesmo verificador.

Seleção H1 real: um pavio rejeitado e um novo candidato

Um experimento separado e mais simples abrange EURUSD, GBPUSD e USDJPY da mesma exportação ICMarketsSC-Demo. Cada H1 completa é avaliada após terminar, pelo Bid. As horas mantêm o horário original do MT5, sem deslocamento verificado. O limite R é a máxima do pivô estrito mais recente, com duas máximas inferiores à esquerda e duas à direita; a igualdade não gera pivô. O centro i só se torna conhecido após o fechamento de i+2 e só é usado a partir do próximo candle. A tolerância é zero.

Um candidato exige ambas as condições: Ct > R e Ct−1 ≤ R. Cada pivô gera no máximo um candidato, e a chave inclui versão da regra, fonte, símbolo, H1 e início do candle avaliado. Uma repetição da solicitação retorna o resultado registrado. O nível expira após 24 candles posteriores ao centro; qualquer interrupção do intervalo horário reinicia o contexto e exige um novo pivô contíguo. Não deduzimos a causa da interrupção. É um filtro de candidatos, não uma estratégia de entrada e saída.

EUR/USD H1 real: pivô confirmado, pavio rejeitado e fechamento posterior acima do nível
ICMarketsSC-Demo, Bid, 13–14 out 2026, hora original MT5. Pivô 2+2 estrito; o sinal exige fechamento. Ilustra lógica de seleção, não execução ou rentabilidade.

EUR/USD: o pivô das 21:00 de 13 de outubro tem máxima = 1,12037. Seus dois candles H1 à direita terminam às 00:00 de 14 de outubro; portanto, R não pode ser conhecido antes. H1 [03:00, 04:00) tem H = 1.12044, mas C = 1,12034: o rompimento apenas pelo pavio é rejeitado, sem inventar uma história de “armadilha”. Somente H1 [04:00, 05:00) fecha em 1,12064, enquanto o C anterior continua ≤ R. Um candidato surge após receber esse fechamento, nunca antes das 05:00.

H1 [04:00, 05:00), 14 de outubro de 2026 — universo completo do experimento
SímboloRCResultado da seleção
EURUSD1,120371,12064Novo candidato
GBPUSD1,325931,32669Este pivô já foi informado — sem repetição
USDJPY158,466158,392Rejeitado: C ≤ R

Todos os 3 de 3 símbolos foram avaliados; um novo candidato não significa uma operação. Rejeições e todos os resultados anteriores desde 1 de outubro também são registrados. Selecionamos o primeiro candidato EURUSD após essa data com um rompimento rejeitado do mesmo R nas 12 H1 anteriores, não por um lucro posterior. A exportação não contém horários de recebimento ao vivo, Ask, execuções ou histórico completo de revisões. Mostramos a ordem causal em dados fixados, não as notificações realmente enviadas na época.

Para verificar: candles H1 usados no gráfico, estados sucessivos do exemplo, o registro completo de três símbolos, metadados e SHA-256 e o script de reprodução. As verificações de prefixos comparam um resultado calculado apenas com o histórico até aquele ponto com a mesma parte da reprodução completa. Acrescentar candles futuros não pode alterar um resultado anterior.

4. TradingView — screener, alertas, Pine Script

Screener integrado

O TradingView fornece filtros cambiais e alertas, mas o escopo exato depende da ferramenta e plano atuais. Verifique colunas, período e fonte. «Volume» no FX à vista não é um registro centralizado de transações: pode significar o número de atualizações de um feed específico. Duas fontes podem produzir resultados diferentes; a comparação continua possível, mas exige dados e método identificados.

Para uma primeira implementação, use um único objetivo: encontrar candidatos sobrevendidos dentro deste filtro de tendência de baixa D1. Avalie candles completos e disponíveis do universo e da fonte registrados. A regra é C < EMA(200) AND RSI(14) < 35 AND ADX(14) > 20. A igualdade não satisfaz nenhuma comparação estrita. A implementação e a inicialização dos indicadores seguem o contrato de dados declarado. O resultado são candidatos para análise; não se prescreve uma posição vendida nem comprada.

Três verificações D1 construídas — sem histórico de mercado
Linha do modeloFechamento / EMA200RSI14 / ADX14Resultado
A1,0900 / 1,100032 / 24Candidato: as três comparações são satisfeitas
B1,1100 / 1,100032 / 24Rejeitado: o fechamento não está abaixo da EMA
C1,0900 / 1,100068 / 24Rejeitado: o RSI não está abaixo de 35

Essas entradas verificam a lógica sem reconstruir o histórico dos indicadores. Um retorno de cinco sessões seria uma condição separada: 100 × (C_t / C_(t−5) − 1) tem sinal; seu valor absoluto não. Especifique sinal, limite e série antes de acrescentá-lo. Informe os casos esperados, avaliados, ausentes e candidatos, em vez de prometer uma quantidade diária típica.

Alertas no TradingView

Um alerta notifica uma condição: pode exigir fechamento ou resposta dentro do candle. Em ambos os casos, registre hora dos dados, da detecção e do recebimento da mensagem. Não pressupomos que todos os outros algoritmos já negociaram nem que todas as notificações tenham o mesmo atraso.

Os limites de alertas dependem do plano do TradingView vigente, do tipo de alerta e da duração. Verifique esses pontos antes de escolher um universo. Limites de alertas ativos e de símbolos avaliados são restrições separadas.

Pine Script — indicadores e estratégias personalizados

Pine Script permite criar indicadores, alertas e estratégias simuladas. Comece por uma condição pequena que possa verificar à mão e confira seu comportamento em candles completos e em formação. A documentação oficial define o modelo de execução.

  • Um indicador próprio pode combinar RSI, uma zona de Fibonacci confirmada e uma relação entre EMAs. Cada entrada precisa de cálculo, fonte e horário de disponibilidade; uma seta desenhada não fornece essas definições.
  • Um alerta baseado em um indicador personalizado — o script gera automaticamente um alerta quando as condições convergem. Recebe uma notificação no telefone e abre um gráfico pronto a analisar.
  • Um backtest de estratégia — Pine Script tem um módulo integrado strategy() que permite testar lógica em dados históricos. Os resultados aparecem na aba «Strategy Tester»: curva de capital, drawdown, taxa de acerto e fator de lucro.

Pine Script calcula indicadores, alertas e ordens simuladas no emulador do TradingView. Integração nativa de corretora para tratar ordens não significa que um script de estratégia envie operações próprias à corretora. Execução automática após um webhook exige uma camada separada corretamente configurada. Tem de identificar duplicados, confirmações e erros. O ambiente depende de dados e requisitos; sem medição, não estabelecemos nenhuma plataforma como garantia de slippage menor.

Um evento RSI em pseudocódigo. Isto descreve lógica, não código pronto para colar nem um sistema de envio de ordens. A implementação precisa conservar o contrato de completude e tempos e a regra de inicialização especificada no artigo 5.8.

PSEUDOCÓDIGO — APENAS ALERTAS, SEM ORDENS
Configuração: versão da regra, universo, feed BID, período D1,
  limites diários, implementações RSI(14) e EMA(200), pelo menos 500 velas históricas.
Após cada fim D1 esperado, para CADA símbolo:
  Verifique completude, OHLC, continuidade do calendário e momento de disponibilidade.
  Se faltam dados: registre NO_DATA; conserve o estado do limiar; termine o símbolo.
  Calcule RSI e EMA com o mesmo método declarado em duas velas D1 completas consecutivas.
  Se o resultado é indefinido: registre NO_VALUE; termine o símbolo.
  Event := RSI anterior ≥ 30 AND novo RSI < 30 AND novo C < nova EMA.
  Key := (version, feed, symbol, D1, end_UTC).
  Registre o resultado mesmo quando event = FALSE, com hora e hash dos dados.
  Se event e a chave ainda não foi enviada: registre um alerta e envie a notificação.
  Reexecutar com a mesma chave não envia novo alerta.
  Correção do histórico: acrescente versão de correção; não substitua a decisão original.
  Se há lacuna de dados entre velas: não simule um cruzamento contínuo.
  O evento seguinte exige um novo par de velas completas consecutivas.

RSI = 30 na vela anterior permite a transição, enquanto igualdade na vela atual não a satisfaz. É uma escolha explícita de operadores. Outra vela ainda abaixo de 30 não é uma nova transição. Separadamente, eliminamos duplicados de um resultado idêntico após reexecutar a pesquisa. Uma lacuna de dados não permite inventar o RSI em falta nem aceitar um cruzamento não observado.

Detecção e resposta. Close fica disponível quando a vela é concluída e recebida. Seguem-se alerta, decisão e eventual tentativa de execução. O emulador predefinido do TradingView executa uma nova ordem não antes do tick seguinte; oferece também opções para modelar execução no fechamento. Essa opção não prova que o preço fosse atingível após receber o alerta. Utilizar um fechamento HTF futuro antes do fim do intervalo é antecipação, independentemente do nome da definição. A cronologia é mostrada no artigo 5.11.

Modelo de atraso. O alerta foi recebido três segundos após a conclusão da vela, e o Ask no momento da resposta era 12 pips superior ao do modelo de referência. É uma diferença de preço hipotética, não uma observação do CPI. Até um sinal D1 pode encontrar um salto nesses três segundos. Registre horas dos dados, alerta, instrução e execução; o efeito do atraso não depende apenas da duração do período gráfico.
Da lógica dos indicadores ao alerta registado
Sequência e eixo temporal; cada condição é utilizada após os dados ficarem disponíveis.

5. MT4/MT5 — scanners, indicadores, EA

MetaTrader permite indicadores locais e Expert Advisors em MQL4/MQL5. Um EA pode enviar e gerenciar ordens se a plataforma, a conta e o provedor permitirem. Um filtro que apenas informa condições tem uma responsabilidade mais restrita.

Indicadores e scanners personalizados

Um painel pode informar estado da tendência, RSI e distância de uma média móvel para símbolos do Market Watch. Verifique regra, versão, cobertura e tratamento dos dados da ferramenta. Um nome de produto ou uma avaliação não resolve essas questões.

Um filtro local MT4/MT5 precisa manter o processo da plataforma em execução, em um computador ou VPS. Os alertas do TradingView usam sua infraestrutura de servidores. Verifique atualização dos dados, erros do serviço e recebimento de mensagens nos dois ambientes; notificação e detecção são tarefas separadas.

Expert Advisors — automatização completa

Os EA são programas que podem negociar autonomamente. As possibilidades são enormes — desde um simples «comprar quando a EMA 50 cruza acima da EMA 200» até sistemas complexos com gestão dinâmica da posição, trailing stops e análise de vários períodos.

Avaliar um EA pronto exige regras documentadas, histórico de alterações, dados, custos e resultados que incluam períodos fracos. Uma curva suave, por si só, não estabelece fraude nem ajuste excessivo, mas sem esta informação não os exclui. O resto do capítulo mostra o que verificar.

Execução fora do scanner. A relação entre preço e atraso aplica-se também a D1 se a resposta ocorre em um movimento rápido. Um VPS e um percurso de rede curto não garantem execução. Política, preços disponíveis e confirmações do fornecedor específico continuam a ser variáveis separadas; são abordadas nos artigos sobre qualidade de execução e infraestrutura.

MT5 e MT4

O MT5 tem um testador de vários símbolos, enquanto o testador padrão MT4 trabalha em um símbolo selecionado. Isto importa para estratégias de carteira, mas não determina qualidade dos dados ou do modelo de execução. Verifique instrumentos suportados, modos de teste e condições da corretora específica; o nome da plataforma, por si só, não avalia a execução.

6. Fluxo de trabalho: da pesquisa à lista de observação

O processo abaixo separa pesquisa, verificação e resposta. É um exemplo organizacional para swing trading, e não resultados de um estudo de eficácia. Cada etapa deixa registro, incluindo rejeições.

  1. W1 após a conclusão da semana. Reveja o contexto e as zonas S/R confirmadas anteriormente. A avaliação pode ser manual ou automatizada se formalmente definida. Registre momento de identificação e limites das zonas; não os desloque depois para se ajustarem ao resultado.
  2. Seleção D1 após o fechamento especificado. Avalie cada símbolo pela regra fixada. Analise os candidatos com o contexto semanal registrado; mantenha rejeições manuais e estados de dados ausentes.
  3. Lista de observação e exposição. O número de pares depende da capacidade de revisão, e não de uma faixa «ideal» de 2–5. Posições compradas em EUR/USD e GBP/USD e uma posição vendida em USD/CHF compartilham exposição vendida em USD, mas têm outras moedas diferentes; não são uma posição idêntica. Meça correlação em rendimentos alinhados, especificando período e janela. O DXY duplica parcialmente estas taxas. O COT tem datas separadas de posições e publicação. O dimensionamento da posição pertence apenas ao plano da operação.
  4. Alertas e espera. Nos pares da lista, configure alertas: de preço (atinge uma zona), de indicador (RSI entra em uma zona extrema) ou de objetos desenhados (toque em uma linha de tendência). Você espera pela notificação sem precisar observar o gráfico continuamente.
  5. Alerta → análise → decisão. Examine o candidato registrado e as condições separadas de ativação, risco e execução. Uma notificação não autoriza uma ordem por si só. Registre por que nenhuma ação é tomada.

Registre tempo e cobertura reais da revisão. Um alerta não garante avaliação contextual correta nem lista completa. Uma alteração de dados após intervenção ou anúncio pode mudar o resultado da regra; verificar essa alteração exige novo registro, em vez de substituir a leitura anterior.

Cinco etapas no contrato de dados: cópia do estado, regra, resultado de cada símbolo, chave de evento e revisão. Não é um EA. Conservar o registro anterior permite distinguir a decisão então disponível de uma correção posterior.
Lista de observação e obsessão

O número de candidatos deve adequar-se à capacidade de revisão. Trate um resultado vazio como ausência de configurações só após verificar cobertura do universo e atualidade dos dados. Falha, vela incompleta e histórico insuficiente têm estados separados. «Hoje não» é interpretação, não mensagem de diagnóstico.

7. Segunda-feira de manhã — como é filtrar 28 pares

Revisão ilustrativa de segunda-feira: a fonte utiliza dias que terminam às 17:00 America/New_York e cinco velas D1 completas em uma semana normal. A avaliação utiliza o último D1 completo recebido. Com UTC, uma vela curta de domingo pode já existir na segunda-feira, pelo que não pressupomos universalmente ausência de novo D1 no fim de semana.

8:15. No screener TradingView, filtros D1 (dados do fechamento da sessão de sexta-feira): RSI(14) < 35, preço abaixo da EMA 200, ADX(14) > 20. Objetivo: pares em sobrevenda dentro de uma tendência de baixa.

O filtro do modelo devolve quatro pares com dados completos para os 28. A revisão utiliza a mesma fonte, fim D1 e inicialização dos indicadores:

  • AUD/USD. RSI hipotético de 28 e preço abaixo da EMA 200 satisfazem o filtro. Com uma zona W1 registrada previamente, o candidato avança para análise adicional; proximidade de suporte, por si só, não é instrução de compra.
  • NZD/USD. O filtro é satisfeito, mas uma regra adicional exige proximidade de uma zona W1, aqui ausente. Registro: rejeitado na validação, e não «falso sinal» classificado após uma perda.
  • EUR/GBP. No modelo, o scanner indica ADX 21 e um segundo feed 18 contra um limiar > 20. Não é uma medição coerente única. Registre fontes e suspenda a comparação até verificar OHLC, limites diários e inicialização. Não atribua toda a diferença de três pontos ADX apenas ao feed sem recalcular.
  • GBP/CHF. RSI hipotético 31 e ADX 27 satisfazem o filtro. Proximidade de retração de 61,8% exige swing conhecido previamente e tolerância especificada; um alerta de preço e RSI continuam a ser condições separadas.

Modelo: 4/28 = 14,2857% dos instrumentos passam o filtro e 2/28 = 7,1429% ficam na lista de observação. O tempo de trabalho não foi medido. Com dois conjuntos de dados em falta, o relatório correto diria «4 candidatos entre 26 avaliados, cobertura 26/28 = 92,8571%», e não «4 de 28»; os resultados dos dois em falta são desconhecidos.

Quatro alertas e uma moeda comum. No modelo, abriram-se posições longas em AUD/USD, NZD/USD, EUR/USD e GBP/USD, cada uma com risco de preço planejado de 1R. Se todas fecharem efetivamente em −1R, o total é −4R; se R já incluía todos os custos, não os acrescentamos outra vez. Slippage e gaps podem alterar execuções. Uma componente USD comum aumenta a sensibilidade comum, mas não elimina quatro moedas base diferentes nem estabelece correlação constante. A seção 9 desenvolve a medição da exposição.
28 símbolos: candidato, sem sinal, dados em falta
Sequência operacional: cada etapa tem uma condição e um registo separados.

8. Alertas — acompanhar sem vigiar

Um alerta separa a espera por uma condição da revisão de um gráfico. O efeito no tempo de trabalho pode calcular-se. Isto não estabelece garantia de menos operações impulsivas; a notificação continua a exigir seguir o plano.

Ordem de mercado e ordem limitada — uma regra breve

Uma ordem de mercado não garante preço nem execução em todas as condições. Uma ordem limitada restringe o preço segundo as regras do produto, mas pode ficar por executar. Sem dados, não pressupomos que uma limitada «ganha geralmente» em D1. A escolha do tipo de ordem e ativação Bid/Ask são abordadas no artigo 2.7.

Tipos de alertas

  • Preço. «Notifique-me quando EUR/USD atingir 1,0700.» Configura-os em níveis S/R, retrações Fibonacci e zonas de interesse. Sem programação.
  • Indicador. «RSI(14) < 30 em D1» ou «o histograma MACD mudou de sinal». No TradingView: clique no indicador → Create Alert. No MT4/MT5: através de indicador personalizado com função de alerta (atenção — um alerta MT4 exige plataforma aberta ou VPS, porque executa localmente).
  • Num objeto desenhado. O TradingView permite alertas em linhas de tendência e zonas desenhadas — o preço toca na linha semanal e recebe uma notificação no telefone. Combina análise desenhada manualmente com notificação automática.
  • Uma condição composta. Um alerta de várias condições: «preço abaixo da EMA 200 AND RSI < 35 AND ADX > 25». Exige Pine Script ou MQL, mas configura-o uma vez.

Como combinar alertas na prática

Baseados em zonas + baseados em indicadores. No fim de semana, desenha zonas em W1/D1 e configura alertas de preço. Em paralelo, configura alertas de indicadores (RSI < 30) nos pares da lista. Quando ambos disparam aproximadamente ao mesmo tempo, tem uma condição mais seletiva, embora não necessariamente confirmação independente: ambos os critérios são calculados do mesmo preço. A abordagem por zonas combina bem com a análise de suporte e resistência e a de indicadores com estratégias baseadas em osciladores.

Reduza repetições desnecessárias e condições expiradas. O número de alertas ativos depende do processo de revisão: pode pesquisar todo o universo e enviar apenas eventos novos sem duplicação. Não precisa de omitir instrumentos para reduzir notificações.

Um estado como RSI < 30 pode continuar verdadeiro por vários candles. RSI anterior ≥ 30 e RSI atual < 30 é um evento de transição. Avalie a condição escolhida uma vez por candle completo especificado e elimine depois o processamento duplicado desse candle. São controles separados.

Alinhe fonte, lado do preço, limites diários e inicialização dos indicadores antes de comparar filtros. OHLC diferentes podem alterar resultados nos limites. Rótulos de fuso do servidor, por si só, não estabelecem a magnitude nem a direção de uma diferença. A lição 5.11 explica a correspondência temporal.

Rollover e fechamento D1. Se a fonte termina o dia às 17:00 America/New_York, são 23:00 em Varsóvia quando as épocas de mudança da hora coincidem, ou 22:00 nos períodos de desfasamento. GMT+2/+3 do servidor, por si só, não prova esta convenção. Registre o spread histórico e uma regra separada de resposta atrasada: adiar a análise até de manhã muda o preço e pode invalidar a configuração. As condições de pausas e rollover são descritas no artigo 4.6.
Um alerta não executa uma operação. Os spreads podem mudar durante uma publicação, mas uma notificação, por si só, não tem preço de execução. Só uma ordem está sujeita às regras de execução do produto específico. Uma janela de bloqueio de ±15 minutos é um parâmetro, e não garantia de segurança fora dela. Horários e conversão temporal são desenvolvidos no artigo 4.5.
Informação compartilhada, posições diferentes. Alertas em AUD/USD, NZD/USD, EUR/USD e GBP/USD compartilham uma moeda de cotação, mas também têm moedas base diferentes. Não os somamos como provas independentes nem os tratamos como uma operação idêntica. A seção 9 separa exposição de correlação medida.
Três posições, uma componente USD vendedora comum
A matriz mostra os sinais de exposição cambial de três direções de posição, e não um mapa de correlações. A correlação exige rendimentos alinhados, janela e método; a tensão não coloca todos os pares em ±1. O DXY tem peso EUR de 57,6% e não é confirmação independente de EUR/USD.
Exemplo: um alerta de zona em EUR/USD

No modelo hipotético, a zona W1 [1,0680; 1,0720] foi definida antes do teste. Separadamente, foi definido um cruzamento RSI(14) abaixo de 30 num D1 completo. A condição conjunta exige uma janela temporal especificada, como ambos os eventos no mesmo dia, em vez de qualquer «hora semelhante» escolhida retrospectivamente. Após a satisfação, revê-se um H4 completo segundo a regra da formação. É um filtro mais seletivo, mas ambos os sinais derivam do preço e não são automaticamente independentes.

9. Backtesting — o que testar e como interpretar resultados

Um backtest aplica um modelo a entradas históricas. Pode revelar regras inconsistentes e estimar resultados sob premissas declaradas. Não estabelece os preços exatos disponíveis após uma decisão ao vivo nem garante resultados em novas observações.

O que vale a pena testar

Um teste histórico exige regras reproduzíveis e dados disponíveis em cada momento. Até uma desigualdade simples é incompleta sem fonte, período gráfico, inicialização e preço de resposta.

  • Condições de indicadores. RSI(14) < 30 só se torna reproduzível após fixar fonte, limites, cálculo e momento de avaliação.
  • Regras de saída e SL/TP. Um SL fixo de 50 pips, TP de 100 pips. Ou trailing stop de 2× ATR. Mensurável e comparável.
  • Comparar variantes. Meça o mesmo procedimento com outro limite ou regra de stop. Registre todas as variantes examinadas e mantenha dados que não tenham sido usados para escolhê-las.

Tudo o que exige avaliação humana presta-se mal a backtesting:

  • Price action. A geometria da vela, uma zona e o momento de confirmação podem ser definidos numericamente. Um «parece convincente» discricionário exige protocolo de avaliação separado e registrado; não pressupomos uma vantagem comprovada do olhar sobre a regra.
  • Contexto estrutural. Identificar manualmente a onda 2 exige regras, versão da identificação e momento de criação. Reidentificar depois não pode melhorar um resultado de teste anterior.
  • Decisões discricionárias. Podem registrar-se rejeições de candidatos prospectivamente. Sem esse registro, não sabemos se a discricionariedade melhorou o resultado ou se foram selecionados apenas casos bem-sucedidos. Não há base para afirmar que apenas o contexto invisível ao algoritmo explica a rentabilidade.

Qualidade dos dados — um tema pouco discutido

Um resultado de backtest só é tão confiável quanto os dados em que assenta. No Forex, é um problema sério. O mercado é descentralizado — os dados da corretora podem diferir dos de outra (spreads diferentes, pequenas diferenças OHLC). Dados OHLC perdem a informação sobre o movimento dentro da vela: se SL e TP forem apertados, não se sabe qual veio primeiro — o toque no SL ou no TP.

O modo «Every tick based on real ticks» do MT5 utiliza ticks disponíveis, mas não garante que existam em todo o lado. MetaQuotes descreve a geração de ticks onde faltam dados e a rejeição de ticks incoerentes com dados de minuto. Verifique o relatório de dados. Spread histórico é separado do atraso de execução. Um spread «atual» fixo utilizado em outro modo é um cenário, e não sempre uma estimativa inferior: o spread atual pode ser alto ou baixo face ao histórico testado.

Bid/Ask, mid e preços do fornecedor. Não infira o tipo de preço por uma API ser gratuita. Os metadados têm de especificar Bid, Ask, mid, transação ou outra série. Em um modelo longo calculado em relação ao mid, o custo do spread em pips é (spread de entrada + spread de saída)/2. Com ambos iguais a 1 pip e 200 idas e voltas, a diferença é 200 pips antes de custos adicionais. Com Ask de entrada e Bid de saída reais, essa diferença já está nos preços. Dukascopy e TrueFX são fontes de exemplo a verificar; o nome do fornecedor não dispensa verificar colunas, cobertura e lacunas.

Fechamento de vela e movimento dentro do candle definem regras diferentes. Um toque pode ocorrer e desaparecer antes do fim do candle. Um evento baseado em fechamento espera a conclusão e o recebimento. OHLC não reconstrói toda a ordem dos movimentos no intervalo, portanto não comprova uma suposta vantagem percentual de nenhuma das regras.

Movimento rápido hipotético. Uma ordem pode atingir o stop embora o fechamento H1 posterior fique acima da entrada. OHLC não dá a ordem dos extremos e execuções. Passar a dados M5 pode reduzir a ambiguidade, mas continua a não reconstruir todas as trajetórias de ticks. Não atribuímos movimentos a algoritmos do fornecedor sem dados. Marque separadamente janelas de publicações para comparar resultados líquidos e valor esperado.

O financiamento tem sinal e unidade. O swap pode ser negativo ou positivo conforme produto e lado da posição; não inferimos o sinal para curta USD/MXN ou longa USD/TRY apenas dos nomes das moedas. O teste precisa de especificações históricas e multiplicadores dos dias, não apenas da tabela atual. Por exemplo, resultado de preço de +80 USD, comissões de −7 USD e financiamento de −18 USD dão +55 USD; com financiamento de +18 USD, o resultado é +91 USD. Spread incorporado nos preços reais não é cobrado outra vez. Unidades e conversões detalhadas são descritas no artigo 2.8.

EUR/CHF, 15 de janeiro de 2015. SNB anunciou a eliminação da taxa mínima de câmbio de 1,20 e alteração da taxa de juros para −0,75%. FSCS confirma a entrada da Alpari (UK) em administração especial em 19 de janeiro. Estes documentos não confirmam o número anterior de EA, os seus drawdowns de 3–5%, a duração da ausência de todas as cotações nem a dimensão das perdas dos clientes. A conclusão para os testes é mais restrita: dados de um período sob uma política específica não contêm automaticamente a sua alteração posterior, e um preço de stop não é garantido sem a condição contratual adequada.

Uma vela, dois resultados possíveis

O modelo longo já está aberto com execução em 1,1000. Os OHLC Bid da vela seguinte: O = 1,1000, H = 1,1030, L = 1,0980, C = 1,1010. TP = 1,1020, SL comum = 1,0990; admita execução sem gaps exatamente no nível, sem custos adicionais. A trajetória O→H→L→C atinge primeiro TP: +20 pips. O→L→H→C atinge primeiro SL: −10 pips. Ambas têm OHLC idênticos.

Em um nocional de 10.000 EUR, os resultados são +20 ou −10 USD. Não são dois resultados possíveis da mesma operação real: mostram duas trajetórias coerentes com dados incompletos. Os preços de execução de entrada e saída já incluem o lado de mercado, pelo que não acrescentamos spread outra vez. Um testador que presume uma ordem a partir de OHLC escolhe uma convenção; o relatório precisa a divulgar. Um período inferior ou ticks podem resolver mais casos, mas dados em falta continuam em falta.

Um OHLC, duas sequências possíveis
Duas trajetórias têm OHLC Bid 1,1000/1,1030/1,0980/1,1010. Execução longa 1,1000, nocional 10000 EUR. Execução admitida nos níveis, sem gaps nem encargos.

Mid e execução — dois cálculos da mesma ida e volta

Modelo EUR/USD: mid de entrada 1,1000, spread de entrada 2 pips, logo Ask 1,1001; execução longa 1,1002. Mid de saída 1,1020, spread de saída 4 pips, logo Bid 1,1018; execução de venda 1,1017. Nocional 10.000 EUR. O lucro mid é 20 USD. As metades dos spreads custam 1 + 2 = 3 USD; slippage face a Ask/Bid é 1 + 1 = 2 USD. O resultado pelos preços executados é (1,1017 − 1,1002) × 10.000 = 15 USD — coerente com 20 − 3 − 2.

Comissão de ida e volta de 2 USD e financiamento com sinal de −1 USD dão 12 USD líquidos. Em uma conversão comum admitida de 4,00 PLN/USD, são 48 PLN; um registro real deve utilizar taxas de câmbio e momentos de registro dos montantes individuais. Não calculamos 15 − 3 − 2 novamente. O CSV separa a referência dos preços efetivos.

Como interpretar os resultados

As principais métricas de backtesting:

MétricaO que indicaA que prestar atenção
Fator de lucro (PF)Soma dos resultados LÍQUIDOS positivos / valor absoluto da soma dos negativosZero não entra em nenhuma soma. Sem perdas, a razão é indefinida, não prova de vantagem infinita. PF 1,5 não é limiar universal.
Drawdown máximoMaior queda do capital face a um máximo anteriorEm moeda ou porcentagem do máximo; depende da frequência de amostragem. Apenas resultados de operações fechadas podem omitir risco de posições abertas.
Taxa de acertoProporção de resultados positivos em uma amostra definida30% dos resultados em +3R e 70% em −1R dão +0,2R brutos por operação. Um custo de 0,25R por ida e volta muda o valor esperado para −0,05R. R:R e taxa de acerto, por si só, não provam rentabilidade futura.
Número de operaçõesDimensão da amostra e diversidade efetiva100 operações no mesmo movimento USD ≠ 100 observações independentes. Examine concentrações, regimes e incerteza; não há mínimo mágico.
Índice de SharpeRendimento excedente médio face a uma referência / desvio-padrão dos rendimentosImportam frequência, referência, anualização e dependência temporal. > 1 ou > 2 não é teste de qualidade nem prova de ajuste excessivo.

Exemplo: um backtest mal realizado e como o corrigir

Modelo de otimização: limiar RSI de 10 a 30 em passos de 1, SL de 30 a 80 pips em passos de 1 e TP de 80 a 200 pips em passos de 1. A grade contém 21 × 51 × 121 = 129.591 combinações, e não algumas dezenas. Conte também tentativas abandonadas e alterações manuais da regra. Um melhor PF de exemplo de 2,8 nos dados 2020–2025 é resultado de seleção nesse conjunto, e não prova de vantagem da combinação escolhida RSI 22 / SL 43 / TP 167.

Um pico de desempenho acentuado em uma combinação é sinal para verificar sensibilidade. Não prova ajuste excessivo, por si só: custos, amostra pequena e mudança de regime podem importar. Relate a grade inteira e a regra de seleção, não apenas o melhor ponto.

Após selecionar parâmetros em todo o período 2020–2025, não pode renomear 2024–2025 como amostra reservada. Precisa de observações futuras novas ou de outro plano especificado previamente. Treino, validação e teste têm funções separadas; após utilizar o teste, não volte a otimizar nele.

Diferenças entre teste e operação podem vir do modelo de custos, dados, execução ou condições em mudança. Nem toda a experiência real mais fraca prova ajuste excessivo, nem todo o backtest é otimista por definição. A comparação exige as mesmas regras e um diário de sinais, ordens e execuções reais.

Teste prospectivo — a ponte entre backtest e conta real

Um teste prospectivo verifica o funcionamento em novas observações. A duração não estabelece representatividade: alguns meses podem cobrir poucos eventos e um único regime. Uma conta de demonstração permite verificar lógica e disponibilidade, mas a execução pode não coincidir com a real. Decomponha um resultado pior em diferenças de dados, execução, custos e distribuição dos próprios eventos.

Monte Carlo — distribuição de cenários em vez de trajetória única

Reordenar resultados fechados, por exemplo 1.000 permutações de 150 operações, mostra trajetórias de capital condicionais para a mesma amostra e regras fixas de dimensionamento. Não cria choques novos nem mudança de distribuição, e pode remover dependência temporal. Com risco percentual ou posições simultâneas, é preciso conservar a sua estrutura. O percentil 95 dessa simulação não é um limite garantido do drawdown futuro. Uma ferramenta para este exercício é o simulador Monte Carlo.

10. Python na filtragem e nos backtests

Python pode apoiar o seu próprio registro de dados e testes. Custo e dificuldade dependem da qualidade da fonte, escopo e manutenção. Um scanner próprio exige tratamento de erros, versões de dependências e monitoramento; este artigo apresenta um contrato lógico, e não código de produção ou promessa de sistema barato pronto a utilizar.

Um ambiente próprio permite controlar várias partes do processo:

  • Integração de fontes. APIs de corretoras e bibliotecas de dados oferecem instrumentos e metadados diferentes. Verifique acesso, cobertura e revisões antes de combinar suas séries.
  • Análise estatística. As bibliotecas calculam testes e distribuições. Ainda é necessário escolher corretamente a pergunta, a distribuição de referência, as premissas de dependência e a família de tentativas.
  • Flexibilidade de backtesting. As bibliotecas backtrader e vectorbt permitem testar estratégias de carteira (muitos pares simultâneos), alocação dinâmica de capital e estratégias com correlações entre instrumentos. Pine Script e MQL têm limitações aqui.
  • Um fluxo conectado. Obtenção, seleção e notificações podem compartilhar um registro. A execução exige uma camada separada de instruções e confirmações, com seu próprio tratamento de repetições de solicitações.
  • Análise de sentimento. Alguns negociadores experimentam análise automática do sentimento de notícias e relatórios econômicos, integrando o sinal no fluxo de filtragem. Existem ferramentas (de scripts simples a API de modelos de linguagem), mas na prática de varejo continua mais próxima de uma experiência do que de uma solução acabada.

Um fluxo em pseudocódigo — dados, pesquisa e arquivo. Não contém tokens API nem funções de execução de ordens. A mesma lógica pode ser implementada em qualquer ambiente.

PSEUDOCÓDIGO DO FLUXO — SEM FUNÇÃO DE ENVIO DE ORDENS
Carregue a configuração fixada e a lista de símbolos completa com versão.
Determine os fins de vela esperados pelo calendário da fonte, não pelo relógio do computador.
Para cada símbolo, obtenha dados com component, start, end, complete,
  received_at, revision e identificador da fonte.
Conserve uma cópia imutável dos dados e a soma de verificação.
Valide OHLC, unidade de preço, continuidade da sessão e aquecimento dos indicadores.
Em caso de erro, registre NO_DATA com a causa; não crie NO_SIGNAL.
Em uma cópia válida, calcule a regra completa dos critérios.
Registre um resultado para cada símbolo, incluindo os que não satisfazem a condição.
Elimine alertas duplicados por versão, feed, símbolo, período e end_UTC.
Em uma correção, acrescente novo registro associado à cópia anterior.
Resuma: esperados, avaliados, em falta, candidatos e duração da pesquisa.
Arquive a decisão manual e a sua hora separadamente, sem substituir o resultado do filtro.
Relate falha do processo e símbolos em falta, mesmo com zero candidatos.

Antes de escolher uma fonte, verifique licença, cobertura de instrumentos, lado do preço, marcas temporais, completude, revisões e Bid/Ask disponíveis. Não aplicamos uma designação única a todos os dados Yahoo ou API gratuitas. Uma biblioteca de leitura de dados não melhora automaticamente a qualidade nem fornece preços de execução.

Repetir um pedido de dados é uma operação diferente de repetir o envio de uma ordem. Uma pesquisa pode recriar a mesma chave em segurança e devolver o resultado anterior. A camada de execução exige identificador de instrução separado e verificação de estado antes de repetir; fica fora do screener aqui apresentado.

Repetição e estado da instrução. Um erro de resposta não prova que a ordem não tenha sido aceita. Antes de repetir, a camada de execução precisa verificar o estado e aplicar o mecanismo de eliminação de duplicados suportado pela API. Não pressupomos que todas as corretoras respeitem uma chave de idempotência arbitrária. Limites de pedidos e períodos de espera seguem o contrato do fornecedor. O pseudocódigo do screener não envia ordens, pelo que a sua repetição não pode ligar-se diretamente a uma operação de negociação.
Contrato da pesquisa: registe resultados mesmo sem sinais
Sequência operacional: cada etapa tem uma condição e um registo separados.

11. Armadilhas da automatização

A automação repete um processo especificado. Meça se economiza tempo de análise, preserva a cobertura ou altera erros operacionais. Ela também pode repetir um erro consistentemente; as verificações seguintes facilitam sua identificação.

ArmadilhaMecanismoComo limitar
Modelo midPara duas execuções, a diferença é metade do spread de entrada mais metade do de saídaVerificar o tipo de preço; não acrescentar novamente spread a execuções Ask/Bid reais
Spread fixoCenário admitido que pode ser demasiado baixo ou altoHistórico Bid/Ask e relatório de dados em falta; só o modo «real ticks» não garante completude
Slippage e comissão omitidosResultado líquido inferior ao bruto, sobretudo em períodos menoresModelar slippage prudentemente; contar comissão em R
AntecipaçãoO sinal utiliza dados indisponíveis na decisão (fechamento de vela em formação, swing do futuro)Entradas disponíveis na decisão, incluindo atrasos de confirmação e entrega; resposta em uma cotação disponível posteriormente
Ajuste excessivoParâmetros ajustados ao ruído de um histórico específicoPoucos parâmetros; fora da amostra; walk-forward
Tentativas múltiplasEscolher a melhor variante aumenta o risco de descoberta falsaRegistrar todas as tentativas, utilizar correção adequada e teste não utilizado antes
Viés de sobrevivênciaSó vê os sistemas que sobreviveramAvaliar o processo, não resultados pré-selecionados
Redesenho do históricoO indicador redesenha histórico fechadoTestar prospectivamente o indicador; evitar ferramentas como ZigZag nas regras
Swap omitidoO custo de manter posição consome resultados de swingIncluir pontos de swap; testar em dados com custos

Ajuste excessivo (ajuste ao passado)

Ajuste excessivo significa ajustar escolhas a propriedades de uma amostra específica que não persistem fora dela. Não é sinônimo de toda a perda no primeiro dia. Sensibilidade dos parâmetros, número de tentativas e novas observações ajudam a avaliar o problema.

Sinais de alerta de ajuste excessivo:[5]

  • A estratégia tem muitos parâmetros livres face ao número de operações e histórico disponível.
  • Uma pequena alteração de parâmetro (RSI 14 → RSI 15) muda drasticamente os resultados — a chamada fragilidade.
  • Um backtest dá excelentes resultados em um período e perda em outro.
  • Um PF ou Sharpe elevado exige avaliar incerteza, número de variantes examinadas e dependência entre resultados. Nem amostra abaixo de 100 nem acima de 500 operações, por si só, determina a existência de vantagem. Verifique também duração da observação, grandes perdas raras e desempenho em dados não utilizados na escolha da regra.

Testar fora da amostra só tem sentido se essa amostra não participou na seleção da regra. Em testes walk-forward, o ajuste em uma janela anterior é seguido de avaliação em outra posterior; todos os limiares, atualizações e agregação dos resultados são registrados previamente. Exigir resultado positivo em todas as janelas não é uma regra estatística universal.

Modelo ilustrativo — otimização genética e o «parâmetro milagroso». Admita um teste EUR/USD com cinco anos de dados e seis parâmetros ajustáveis. Resultado hipotético: fator de lucro 4,3, drawdown 6% e 847 operações; as escolhas foram RSI=16, SL=63,2 pips, TP=214,8 pips, filtro ATR=1,237, delta EMA=37 e ADX mínimo=23,6. Em outra janela, o PF do modelo é 0,8, e o resultado da conta na semana seguinte é −18%. Estes números não vêm de estratégia implementada nem estabelecem a causa da queda. Ajuste ao ruído é uma hipótese; é preciso verificar também variabilidade dos resultados, mudança de condições, custos e conformidade da execução com a regra. Sensibilidade visível ao período justifica mais verificações, não uma conclusão autónoma de ajuste excessivo. Conserve a lista completa de tentativas e a escolha feita antes do teste. Limitar parâmetros livres reduz o espaço de pesquisa, mas não substitui nova amostra. Walk-forward tem sentido com janelas e regras registradas previamente; ajustar repetidamente o processo aos seus resultados pode voltar a consumir os dados de teste.

Exploração repetida dos dados (data snooping)

Com 50 testes independentes de hipóteses nulas verdadeiras a um nível de 5%, a probabilidade de pelo menos uma rejeição falsa é 1 − 0,95^50 = 92,3055%, e o número esperado é 2,5. É risco elevado, não certeza. Variantes nos mesmos dados são geralmente dependentes, pelo que o cálculo de independência não pode ser tratado como a sua probabilidade medida.

Registre a família de tentativas antes de escolher um vencedor. Com 50 testes e nível de família de 5%, Bonferroni dá limiar de 0,05/50 = 0,001 para cada valor-p válido. Controla o risco de pelo menos uma rejeição falsa sem exigir testes independentes. FDR responde a outra pergunta; o exemplo abaixo mostra a distinção. Nenhuma correção de valores-p estabelece a rentabilidade de uma estratégia.

Bonferroni, FDR e o limite da inferência

Modelo de cinco testes válidos em uma família definida previamente: valores-p ordenados 0,0004; 0,008; 0,019; 0,021; 0,070. Bonferroni com α = 0,05 dá 0,01 e rejeita os dois primeiros. O procedimento Benjamini–Hochberg com q = 0,05 compara valores com i × q / 5: 0,01; 0,02; 0,03; 0,04; 0,05. O maior índice que satisfaz é 4, pelo que rejeita os quatro primeiros.

FWER controla a probabilidade de pelo menos uma rejeição falsa; FDR controla a proporção esperada de rejeições falsas entre todas as rejeições, sendo essa proporção zero quando não há nenhuma. O BH clássico exige pressupostos de dependência adequados, como independência ou dependência positiva especificada; não o aplicamos sem verificar a variantes FX arbitrariamente correlacionadas. q = 5% não significa que cada estratégia selecionada tenha probabilidade de 95% de funcionar. O artigo dos autores (1995) e a documentação do método descrevem o escopo dos procedimentos. Um teste válido exige pergunta, dados, distribuição de referência e estatística especificados previamente; os valores-p aqui são entradas hipotéticas.

A divisão da amostra inclui o tempo das etiquetas

Em um plano hipotético fixado antes da análise, o treino cobre 2018–2022, a validação 2023 e o teste não visto 2024–2025. Se uma etiqueta tem horizonte até cinco sessões, uma observação de treino do fim de dezembro de 2022 cujo resultado se determina em janeiro de 2023 não pertence ao treino que termina em 31 de dezembro. Remova etiquetas que atravessam o limite ou desloque o corte segundo os fins efetivos. Separar apenas datas de entrada é insuficiente.

Preços históricos anteriores ao limite podem aquecer um indicador no início do teste se eram então conhecidos. Um transformador de escala, limiares ou seleção de instrumentos não pode ser ajustado no segmento futuro. A validação serve para selecionar, o teste para avaliação única; quando muda uma regra com base no teste, ele já está consumido. Walk-forward exige os mesmos princípios em cada janela e método de atualização registrado previamente. Calibrar probabilidades também exige segmento separado: oito eventos em dez previsões de 0,8 em um grupo pequeno não provam calibração universal nem rentabilidade.

Precisão, sensibilidade e custos da omissão

Modelo com 100 casos identificados independentemente: o padrão de referência é positivo em 20 e negativo em 80. O screener emite 15 alertas: 12 correspondem à referência e 3 são falsos; falha 8 positivos. Precisão = 12/15 = 80%, sensibilidade = 12/20 = 60%, especificidade = 77/80 = 96,25%. O desempenho financeiro não decorre destas três medidas. As etiquetas de referência têm de ser independentes do filtro; não classificamos como positivo todo o lucro posterior selecionado manualmente.

Se a referência utiliza um resultado futuro, a etiqueta só está disponível no fim do horizonte. Não pode influenciar um sinal anterior nem entrar prematuramente no treino. Baixe os modelos recalculados; todos os números deste bloco são hipotéticos.

Deteção de padrões: matriz de 100 casos
Matriz de 100 casos identificados: TP12 FP3 FN8 TN77; não é desempenho financeiro.

Viés de sobrevivência nos EA prontos

Olhar apenas para sistemas ainda vendidos e publicados omite tentativas retiradas. A comparação exige população conhecida e registro de versões falhadas. Não conhecemos o número de «milhares» de EA retirados nem resultados de exemplo de influenciadores — não utilizamos estes números como prova.

Um histórico público — como o interpretar. Uma conta verificada publicamente é melhor prova do que uma captura, mas a verificação tem um escopo que precisa de compreender. Verifique pelo menos: (1) se a conta está marcada Real em vez de Demo; (2) se histórico de desempenho e permissões de negociação foram verificados (no Myfxbook: «Track Record Verified» e «Trading Privileges Verified»); (3) quando começam os resultados apresentados — pode definir-se uma data inicial personalizada, que é divulgada, pelo que examine também o intervalo completo; (4) se depósitos e saques são visíveis; (5) se o período inclui condições diferentes, incluindo choques (2015, 2016, 2022). A ausência de qualquer ponto não prova fraude, mas devolve o ônus da prova ao vendedor.

A ilusão de controle

A automatização exige monitorar estado do processo, atualidade dos dados e erros não tratados. Funcionar à noite, por si só, não determina slippage nem número de perdas. Os alarmes devem relatar dados em falta ou pesquisa parada, além de configurações satisfeitas.

GBP/USD, 7 de outubro de 2016 — escopo do relatório e automatização. O relatório do BIS descreve um movimento brusco desde cerca das 00:07 BST: 23:07 UTC de 6 de outubro e 01:07 CEST em Varsóvia a 7 de outubro. Mostra plataformas, preços, liquidez e problemas de certas transações diferentes; não contém execuções de stops de todas as corretoras de varejo.[13] Em uma posição longa existente, o resultado dependeria do nocional, nível e tipo de stop, lado de ativação e preços de execução disponíveis. Após ativação, um stop de mercado pode executar abaixo do limiar, mas, sem registro específico de conta, não podemos calcular a perda nem afirmar que todos os sistemas automáticos receberam uma cascata de stops. Um filtro de spread ou dados em falta pode suspender novas tentativas; não transforma o risco de posições existentes em um preço de saída garantido. Fechar em emergência também exige cotação e execução disponíveis. O evento sustenta testar esses cenários, não atribuir o mesmo resultado a todos os sistemas.
Um filtro com unidade explícita. O ATR hipotético é 0,0060 EUR/USD = 60 pips. Um limiar de spread de 0,15 × ATR é 0,0009 = 9 pips. Compare ambos os lados em preço ou ambos em pips, nunca 9 com 0,0060. É parâmetro de modelo, não limite recomendado. O filtro bloqueia novas tentativas, mas não garante o preço de fechamento. Um limite de desvio depende do modo do produto, e uma instrução de fechamento de emergência pode ficar por executar quando faltam cotações.
Política de execução. Recolha preço de referência no momento da instrução, execução efetiva, rejeições e atrasos. Pode haver slippage positivo ou negativo também em D1. Não conhecemos uma distribuição universal de assimetria em todas as corretoras, e a designação ECN/STP não garante qualidade. Um modelo de teste pode especificar atrasos e rejeições, mas os parâmetros exigem dados. A mecânica do last look é descrita na seção 3.
Contrato do programa de prop trading. Utilizar um feed atrasado ou um erro de simulador pode ser restringido por um contrato específico. Não apresentamos um cenário de desafio e pagamento cancelado como evento verificado. Verifique separadamente autorização de EA e práticas proibidas específicas; permitir automatização não elimina as restantes condições.

A caixa negra

A ausência de documentação dificulta determinar se resultados alterados vêm dos dados, regra ou execução. Um sistema pode deixar de ter o desempenho esperado; precisa de condição de paragem e procedimento de avaliação. «Funcionou até agora» é insuficiente.

Indicadores que redesenham o histórico

Distinga leitura variável em uma vela aberta, confirmação atrasada de swing, correção de dados e reescrita de sinal anterior. Conserve uma cópia do valor com a hora de avaliação e compare-a com o histórico posterior. O nome ZigZag não determina todas as utilizações de um indicador; o problema é utilizar um ponto antes da confirmação ou ocultar alterações.

Empresas de prop trading e automatização

As regras das empresas de prop trading são contratuais e variam entre programas e fases. Não afirmamos que muitas proíbam toda a automatização. Por exemplo, a FTMO descreve permitir algoritmos e EA sujeitos às restrições do programa. Verifique regras atuais, natureza da conta (incluindo simuladas), limites e práticas proibidas; aceitar um screener não significa aceitar automaticamente qualquer método de execução.

Quatro origens de um teste defeituoso
Quatro problemas de teste: utilização prematura de dados, ordem SL/TP desconhecida dentro de OHLC, amostra de teste consumida e spread contado duas vezes. Cada um exige verificação específica. O diagrama não diagnostica ajuste excessivo apenas pelo aspeto da curva de capital.

12. O que não automatizar no início

Antes de automatizar a execução, tem também de descrever atividades para além do próprio sinal. A lista abaixo identifica tarefas que exigem regra e teste separados; não pressupomos que a execução manual seja sempre mais eficaz.

  • Gestão da posição. Defina dimensionamento, alterações do stop e fechamentos parciais antes de automatizá-los. A prática pode revelar decisões pouco claras, mas a execução manual não comprova que uma regra seja superior.
  • Calendário macroeconômico. Um screener pode considerar o NFP se recebeu calendário e regra de bloqueio corretos. Não prevê o spread nem o conteúdo de um anúncio ainda não publicado. Não ter calendário é uma limitação explícita, não uma propriedade de todos os sistemas automáticos.
  • Seleção do universo. Defina e versione a lista antes do teste. Excluir pares de mau desempenho após examinar resultados é outra tentativa de seleção. Meça características dos pares em dados especificados em vez de lhes atribuir propriedades fixas.
  • Fins de semana e pausas. Um filtro de spread pode suspender novas ordens, mas não limita a perda por gap de uma posição existente. Reduzir exposição nocional reduz a sensibilidade ao preço; um stop comum não garante preço. Uma cobertura por opções exige contrato e conta separados, não apenas a designação «hedge». O risco de pausas é abordado no artigo 4.4.
  • Estado da conta. Verifique produto, modo hedging/netting, margem para nova instrução e regras de fechamento por garantia insuficiente. A ordem de liquidação depende do fornecedor; não pressupomos fechamento universal da maior perda. Margem e proteção do cliente são abordadas separadamente no artigo 2.6. A capacidade de aceitar uma ordem em um momento não garante manter a posição mais tarde.
Grades e duplicação são regras diferentes. Seis posições iguais de 1 unidade dão 6 unidades de exposição total. Seis níveis de duplicação de 1, 2, 4, 8, 16, 32 dão 63; um sétimo nível de 64 eleva o total a 127. Uma grade não cresce exponencialmente só por ser grade. Nenhuma soma prova rentabilidade em oscilação. Limite de exposição nocional e instrução de saída não estabelecem perda máxima garantida em um gap; cenários de preço e condições do produto exigem descrições separadas.

Automatize atividades repetíveis claramente definidas e conserve o seu rasto. Pesquisa, alertas, decisões e execução são etapas sucessivas com erros e limites separados. Repetir uma regra mais depressa não melhora a qualidade; apenas permite implementação e teste consistentes.

13. Ferramentas — comparação

FerramentaLinguagem de scriptsFiltragemAlertasBacktestingExecução automáticaCusto (indicativo)
TradingView — plano básicoPine ScriptFiltros da plataformaSegundo o plano atualEmulador de estratégiasO script de estratégia, por si só, não envia ordens nativas à corretoraVerificar plano e dados
TradingView — planos pagosPine ScriptO escopo depende da ferramentaSegundo o plano atualEmulador de estratégiasUm webhook exige camada de execução separada; integração de corretora não transforma automaticamente um script em um EAPreços atuais
MT4MQL4Indicadores personalizadosSim (janela, notificação no telefone, email)Strategy Tester (1 símbolo)Expert Advisors0 USD (da corretora)
MT5MQL5Indicadores personalizadosSim (janela, notificação no telefone, email)Strategy Tester (várias moedas)Expert Advisors0 USD (da corretora)
cTraderC# / ferramentas da plataformaSegundo a configuraçãoSegundo a configuraçãoTestes cBotcBot — lógica de execução separadaCondições da plataforma e fornecedor
Ambiente próprioPor exemplo, PythonRegra definida pelo autorInfraestrutura própriaModelo do autor / bibliotecasCamada API separadaDados, manutenção e infraestrutura

A tabela descreve o escopo das funções, e não uma classificação de qualidade. Licença das ferramentas, acesso a dados, VPS e custos de transação são parcelas separadas. Verifique limites e preços dos planos na documentação atual.

Conjunto mínimo inicial — comece aqui
  • Período principal: D1 — é onde pesquisa e analisa. Retira o contexto de W1.
  • Lista de observação: escolha um universo com versão que possa analisar e monitorar. A quantidade que chega à lista ativa é um resultado da regra, não uma meta a ser forçada.
  • Dois filtros. Por exemplo, EMA 200 e RSI 14 como transformações de preço explicitamente definidas. Os limiares são convenções a avaliar, não remoção comprovada da maioria do ruído.
  • 1 tipo de alerta para começar: alertas de preço em zonas S/R do gráfico semanal. Acrescentará os de indicadores depois.
  • Comece por um processo auditável. Um filtro e uma regra de alerta podem ser um primeiro exercício viável. Acrescente execução depois de especificar suas regras de estado da conta e tratamento de erros.
  • Prática do processo e teste prospectivo. Dois ou três meses em uma conta de demonstração podem servir como período de prática admitido para funcionamento, registro e cumprimento das regras; não são mínimo suficiente de validação. Número e período das observações dependem da frequência dos eventos, dependência e variabilidade dos resultados. A demonstração não reproduz automaticamente condições de execução reais, e a passagem de um tempo escolhido não garante representatividade nem rentabilidade.

Volume da posição — fora do escopo deste artigo

Selecionar uma configuração sem o volume adequado é metade do trabalho — mas as fórmulas, o tratamento de custos no orçamento de risco e exemplos numéricos desenvolvidos pertencem à seção 9. A calculadora de volume da posição interativa e o simulador Monte Carlo estão na seção de Ferramentas.

Escopo educativo. A filtragem não avalia a adequação do produto nem garante resultados. A proteção de saldo negativo em certos regimes de CFD de varejo opera ao nível da conta e não garante preço de stop. Estatuto do cliente, entidade contratante e instrumento exigem verificação separada. A porcentagem de perdas de uma corretora diz respeito às suas contas e período indicado, não a todos os usuários Forex ou EA; o seu escopo é abordado na seção sobre o mercado de varejo.

Uma regra fixa em dados reais: fechamento fora da amplitude ou apenas pavio?

Um candle pode superar uma máxima anterior e fechar acima dela ou voltar à amplitude. Essa distinção descreve variações posteriores de preço diferentes nestes registros? Fixamos uma comparação antes de calcular seu resumo. Esta é uma descrição retrospectiva do histórico de um único provedor. Alguns períodos já haviam aparecido em nossos exemplos didáticos; nem o horário do plano nem a divisão por data criam uma amostra de teste nunca vista.

A entrada contém 6000 registros Bid H1 inalterados para cada um de EUR/USD, GBP/USD e USD/JPY de ICMarketsSC-Demo / MT5. Nas datas candidatas, o registro contém 17995 linhas e 3140 candidatos de um único lado. O intervalo de bloqueio seleciona 1086; 1039 têm um resultado contínuo de seis registros e 47 cruzam uma lacuna futura de horários. Esses 47 continuam contabilizados, em vez de serem descartados sem aviso.

Rompimentos por fechamento e pavio: variações observadas
Médias e medianas descritivas agrupadas. Disponíveis/selecionados mantém resultados ausentes; dividir por data não cria teste nunca visto.
Amostra completa agrupada. As variações são divididas pelo TR20 médio anterior; não são retornos de operações.
Direção · categoriaDisponíveis / selecionadosMédiaMedianaFração > 0
ALTA · fechamento271 / 280-0,0689-0,14330,4613
ALTA · pavio258 / 2730,20770,05770,5078
BAIXA · fechamento226 / 2360,0934-0,12560,4823
BAIXA · pavio284 / 297-0,0152-0,25690,4472

Uma variação com sinal positivo segue a direção do rompimento; uma negativa vai contra ela. Média, mediana e fração acima de zero respondem a perguntas diferentes. Em BAIXA · fechamento, a média é positiva, mas a mediana é negativa e menos da metade das observações é positiva. Nenhum desses números é uma taxa de acerto após custos.

Regra exata e limites da comparação

Para o candidato t, fixe a maior máxima e a menor mínima dos 20 registros H1 completos anteriores. Exija continuidade horária de t−21 até t; o registro mais antigo fornece o fechamento anterior para True Range. Um rompimento dos dois limites é excluído primeiro. Caso contrário, classifique um fechamento estritamente fora como CLOSE, ou um rompimento pela máxima/mínima com fechamento dentro, incluindo igualdade, como WICK. A igualdade do extremo, por si só, não é rompimento.

Tome o primeiro candidato de cada símbolo e bloqueie os seis índices seguintes, independentemente da disponibilidade posterior do resultado. Só após selecionar, confira os seis registros seguintes quanto a passos horários exatos. Meça direção × (C em t+6 − C em t), em pips e dividido pela média aritmética do TR dos 20 registros anteriores. O candidato não contribui para sua amplitude de referência nem para esse denominador.

A figura agrupa eventos, portanto símbolos com mais eventos disponíveis têm maior peso. As janelas de resultado não se sobrepõem dentro de um símbolo, mas 808 pares de eventos adjacentes compartilham histórico anterior, e janelas disponíveis de pares diferentes se sobrepõem no tempo 950 vezes. Os grupos de julho usam a data do candidato; um resultado cruza esse limite. Essas dependências e lacunas estruturadas no tempo impedem uma interpretação de independência ou causalidade. Não há execuções, premissas de spread, retornos de conta ou alegações de vantagem estatística aqui.

Todas as 48 linhas de resumo (CSV) · Registro completo de classificação (CSV) · Eventos selecionados e resultados ausentes (CSV) · Método e instruções de reprodução · Fontes, plano fixado, código e resultados (ZIP).

Exercício final: separe a decisão dos próximos seis candles

Este é o primeiro EUR/USD UP_CLOSE selecionado a partir de 1 de setembro de 2026 com resultado disponível: o candle H1 que abre em 3 de setembro às 19:00. Candidatos UP_CLOSE anteriores, em 2 de setembro às 16:00 e 3 de setembro às 15:00, foram rejeitados pelo intervalo de bloqueio vigente. O caso foi escolhido por cronologia e disponibilidade, não pelo sinal ou tamanho do movimento posterior. Chame de P o candle H1 que atende à condição.

Na decisão, a amplitude dos 20 registros anteriores é 1.15826–1.16302 e seu True Range médio é 9.325 pips. P fecha em 1.16368, acima do limite superior fixado. O último candle H4 elegível abre às 16:00 e termina às 20:00, junto com o fechamento H1 de P. Ele oferece uma visão mais ampla do mesmo histórico Bid, não uma confirmação independente. Os dois registros finais ainda precisam ser recebidos após o fim dos respectivos intervalos.

Antes de revelar outro candle: registre o que atende à condição, o primeiro momento possível de avaliação e o que continua desconhecido. Neste exercício, pare de monitorar no primeiro fechamento H1 posterior igual ou inferior a 1.16302. Mantenha esse limite fixo. É uma condição analítica de encerramento; não especifica ordem, execução de stop-loss ou tamanho de posição.

  1. Quadro 0: até o candle H1 de 2026-09-03 às 19:00

    P atende a UP_CLOSE somente após receber seu registro final, nunca antes das 20:00. A trajetória posterior continua oculta. Atender à condição não fornece, por si só, Ask executável ou custos.

    Exercício final: quadro 0 de 6
    EUR/USD Bid H1/H4. Hora original MT5; só este prefixo visível. Contexto H4 fixo.

    Somente os registros H1/H4 deste quadro (CSV).

  2. Revelar registro 1 de 6

    Quadro 1: até o candle H1 de 2026-09-03 às 20:00

    O fechamento revelado é 1.16328, acima de 1.16302. A condição de encerramento não ocorreu; isso não prevê o próximo fechamento.

    Exercício final: quadro 1 de 6
    EUR/USD Bid H1/H4. Hora original MT5; só este prefixo visível. Contexto H4 fixo.

    Somente os registros H1/H4 deste quadro (CSV).

  3. Revelar registro 2 de 6

    Quadro 2: até o candle H1 de 2026-09-03 às 21:00

    O fechamento revelado é 1.16346, acima de 1.16302. A condição de encerramento não ocorreu; isso não prevê o próximo fechamento.

    Exercício final: quadro 2 de 6
    EUR/USD Bid H1/H4. Hora original MT5; só este prefixo visível. Contexto H4 fixo.

    Somente os registros H1/H4 deste quadro (CSV).

  4. Revelar registro 3 de 6

    Quadro 3: até o candle H1 de 2026-09-03 às 22:00

    O fechamento 1.16286 é igual ou inferior a 1.16302. O monitoramento termina após o fechamento deste candle das 22:00, nunca antes das 23:00. A classificação anterior UP_CLOSE continua correta.

    Exercício final: quadro 3 de 6
    EUR/USD Bid H1/H4. Hora original MT5; só este prefixo visível. Contexto H4 fixo.

    Somente os registros H1/H4 deste quadro (CSV).

  5. Revelar registro 4 de 6

    Quadro 4: até o candle H1 de 2026-09-03 às 23:00

    O fechamento agora é 1.16257. O monitoramento já terminou no candle das 22:00; o novo registro não altera quando essa condição se tornou conhecida.

    Exercício final: quadro 4 de 6
    EUR/USD Bid H1/H4. Hora original MT5; só este prefixo visível. Contexto H4 fixo.

    Somente os registros H1/H4 deste quadro (CSV).

  6. Revelar registro 5 de 6

    Quadro 5: até o candle H1 de 2026-09-04 às 00:00

    O fechamento agora é 1.16229. O monitoramento já terminou no candle das 22:00; o novo registro não altera quando essa condição se tornou conhecida.

    Exercício final: quadro 5 de 6
    EUR/USD Bid H1/H4. Hora original MT5; só este prefixo visível. Contexto H4 fixo.

    Somente os registros H1/H4 deste quadro (CSV).

  7. Revelar registro 6 de 6

    Quadro 6: até o candle H1 de 2026-09-04 às 01:00

    O sexto fechamento é 1.16232: −13.6 pips desde P, ou −544/373 (cerca de −1.4584) unidades do TR20 médio anterior. É uma variação observada do preço Bid, não uma perda de operação reconstruída.

    Exercício final: quadro 6 de 6
    EUR/USD Bid H1/H4. Hora original MT5; só este prefixo visível. Contexto H4 fixo.

    Somente os registros H1/H4 deste quadro (CSV).

Cada quadro ajusta sua escala pelos próprios preços visíveis; nenhum extremo futuro define os eixos iniciais. H4 permanece fixado na decisão. Os rótulos originais de abertura do MT5 são mantidos, o deslocamento da corretora não foi verificado e os horários reais de recebimento não foram medidos. Ainda seria necessária uma cotação posterior para modelar uma resposta executável.

Dados e notas de tempo do exercício final · Todos os 28 registros H1, incluindo a trajetória revelada (CSV). O registro completo e o ZIP acima mantêm as exclusões e a sequência de cálculo.

Perguntas frequentes — Automatização e filtragem na análise técnica

Preciso de saber programar para utilizar filtragem?

Não. Os screeners integrados no TradingView e painéis MT4/MT5 funcionam pelo princípio «clique nos filtros, defina limiares, obtenha uma lista». Pine Script e MQL acrescentam capacidades (condições próprias, alertas compostos), mas a filtragem básica não exige escrever código.

Vale a pena comprar um Expert Advisor (EA) pronto?

A avaliação exige regras documentadas, histórico completo de tentativas e alterações, modelo de custos e novas observações. Até um histórico de conta verificado não garante representatividade nem resultados futuros. Um backtest ou avaliação atraente, por si só, não substitui estas verificações.

Quantos alertas devo ter configurados ao mesmo tempo?

Não existe número universal. Registre capacidade de revisão e expiração das condições, reduzindo repetições pela eliminação de duplicados. Pode pesquisar todo o universo sem notificar após cada vela que continua a satisfazer o mesmo estado.

Qual a confiabilidade de um backtest no Forex?

Depende dos dados, regras e modelo de execução. OHLC não estabelece a ordem SL/TP na mesma vela. Um modo de ticks reais pode preencher lacunas com dados gerados. Um backtest não prevê resultados; um teste prospectivo verifica novas observações sujeito a limites de duração e diversidade da amostra.

TradingView ou MT4/MT5 para filtragem?

Compare fonte e limites das velas, filtros disponíveis, funcionamento dos alertas e escopo do testador. Os alertas TradingView executam no servidor; um indicador MT local exige plataforma ou VPS em funcionamento. Um script de estratégia TradingView isolado não é um sistema nativo de negociação na corretora.

Python é melhor para backtesting do que Pine Script?

Um ambiente próprio dá controle sobre dados e modelo, mas transfere para o autor a responsabilidade pela sua correção. Um testador de plataforma tem convenções e limitações definidas. A escolha não elimina antecipação, erros de unidades nem custos omitidos.

Tenho de executar o screener todos os dias?

Se a regra avalia cada fechamento D1, a pesquisa deve cobrir todos esses fechamentos. Rever apenas à segunda e quinta-feira perde condições novas dos outros dias, salvo se um sistema automático continuar a registrá-las. Separe frequência de revisão manual de frequência da pesquisa completa.

Fontes

Fontes primárias

  1. Robert Pardo, The Evaluation and Optimization of Trading Strategies, 2.ª ed., Wiley, 2008 — metodologia de backtesting, análise walk-forward, reconhecimento de ajuste excessivo; obra essencial para validar estratégias automáticas.
  2. Ernest P. Chan, Quantitative Trading: How to Build Your Own Algorithmic Trading Business, 2.ª ed., Wiley, 2021 — guia prático de construção de estratégias quantitativas: da filtragem à execução algorítmica.
  3. Perry J. Kaufman, Trading Systems and Methods, 6.ª ed., Wiley, 2020 — revisão enciclopédica de sistemas de negociação: filtros de tendência, filtragem, testes e otimização de estratégias.
  4. Andreas F. Clenow, Following the Trend, Wiley, 2013 — abordagem sistemática à negociação de tendências: filtragem de instrumentos, backtests de carteira, gestão de posições; aspectos práticos da automatização.

Leitura complementar

  1. David Aronson, Evidence-Based Technical Analysis, Wiley, 2007 — validação estatística de métodos de análise técnica: viés de exploração de dados, testes de significância, comparações múltiplas (data snooping); leitura essencial para quem testa estratégias.
  2. Marcos Lopez de Prado, Advances in Financial Machine Learning, Wiley, 2018 — leitura complementar; capítulos não lidos não são atribuídos como prova de regras.
  3. Alexander Elder, The New Trading for a Living, Wiley, 2014 — leitura complementar; capítulos não lidos não são atribuídos como prova de regras.
  4. Kathy Lien, Day Trading and Swing Trading the Currency Market, 3.ª ed., Wiley, 2016 — leitura complementar; capítulos não lidos não são atribuídos como prova de regras.
  5. Lukas Menkhoff, Mark P. Taylor, «A paixão obstinada dos profissionais de câmbio: análise técnica», Journal of Economic Literature, Vol. 45, n.º 4, 2007 — revisão do uso da análise técnica no Forex; contexto para discutir o papel da automatização entre profissionais de câmbio.
  6. Andrew W. Lo, Adaptive Markets: Financial Evolution at the Speed of Thought, Princeton University Press, 2017 — hipótese dos mercados adaptativos: por que estratégias que funcionaram no passado podem deixar de funcionar; implicações para automatização e backtesting.

Fontes institucionais e documentação

  1. Banco Nacional Suíço (2015), «O Banco Nacional Suíço elimina a taxa mínima de câmbio e reduz a taxa de juros para −0,75%», comunicado de imprensa, 15 de janeiro de 2015.
  2. FCA (2015), «Informações para clientes da Alpari (UK) Limited» — entrada da Alpari (UK) em administração especial.
  3. Comitê de Mercados do BIS (2017), «O evento súbito da libra de 7 de outubro de 2016», janeiro de 2017 — análise do evento: pouca liquidez, ordens, respostas algorítmicas e divergências entre plataformas.
  4. TradingView, Documentação Pine Script — documentação oficial da linguagem: comportamento do script na vela atual e fechada (barstate), alertas, strategy().
  5. MetaQuotes, Referência MQL5 — documentação oficial MQL5: indicadores, Expert Advisors, Strategy Tester.
  6. ESMA (2018), «A ESMA acorda proibir opções binárias e restringir CFD para proteger investidores de varejo», 27 de março de 2018 — pacote de intervenção no produto: limites de alavancagem, proteção de saldo negativo, avisos de risco; análises de supervisão indicaram que 74–89% das contas CFD de varejo tinham perdas.

O seu progresso de aprendizagem

Terminou esta lição? Marque-a você. Abrir ou deslocar uma página nunca a marca como concluída.

O progresso requer JavaScript e armazenamento do navegador.

Guardado apenas neste navegador. Sem conta nem sincronização entre dispositivos. Limpar os dados do site pode apagar o seu progresso.

Jarosław Wasiński

Editor-chefe, ForexMechanics.com • Analista macro e FX

Analista independente e profissional com mais de 20 anos de experiência nos mercados financeiros. Atua no Forex desde 2007, com foco em análise fundamentalista, estrutura do mercado OTC e gestão disciplinada do risco de capital.

  • Criador e editor-chefe do MyBank.pl, oferecendo educação financeira confiável desde 2004.
  • Autor de centenas de comentários de mercado aprofundados, análises estruturais e materiais educacionais para traders e investidores.
  • Defensor da transparência do mercado, promovendo uma educação baseada em dados concretos e relatórios institucionais (BIS, ESMA, CFTC).

Todo o conteúdo tem caráter exclusivamente educacional e informativo – não constitui recomendação de investimento. Lembre-se: operar com alavancagem (Forex/CFD) envolve alto risco de perda rápida de capital.