Cursos Para Traders Estratégias Trader Criar Scanner de Ativos em MQL5: Guia Prático

Criar Scanner de Ativos em MQL5: Guia Prático

Você está buscando entender como implementar um scanner de ativos em MQL5? O objetivo aqui é esclarecer os desafios reais, não apenas apresentar uma fórmula. Muitas pessoas acreditam que a integração é simples, mas a prática mostra que a complexidade surge nos detalhes de filtragem e performance.

Existem dificuldades com a leitura e execução dos critérios no código. O scanner precisa identificar ativos com precisão, mas nem tudo os sinais são claros. Algoritmos devem equilibrar velocidade e precisão, o que nem sempre é intuitivo. Além disso, a performance é um ponto crítico: um código lento pode parar a operação antes mesmo que funcione.

Um exemplo prático envolve a definição de critérios específicos. Você precisa configurar condições que não sejam apenas teóricas, mas que funcionem em cenários reais. Isso exige testes contínuos e ajustes. Não é apenas uma questão de escrever um código, mas de entender o ambiente em que ele será executado.

O link fornecido pode ser útil se você estiver buscando mais referências sobre esse tema. Mas lembre-se: a qualidade do resultado depende muito da implementação, não apenas da escolha da ferramenta.

Primeiros passos no MetaEditor

Abra o MetaEditor. Crie um New → Expert Advisor (template). Nomeie como ScannerMultiAtivo. Apague todo o conteúdo padrão dentro de OnTick(). Scanners não operam em tick a tick; eles rodam em tempo definido ou sob demanda. Use OnTimer() ou um botão no painel gráfico (CChartObject) para disparar a varredura. Isso evita processamento desnecessário a cada mudança de preço.

Estrutura de inputs enxuta

Exponha apenas o essencial. O usuário final (você) precisa trocar parâmetros sem recompilar.

InputTipoFunção
InpTimeframeENUM_TIMEFRAMESTF base da análise (ex: H1, H4)
InpSymbolsstringLista separada por vírgula ou “ALL_MARKET_WATCH”
InpMinVolumedoubleFiltro de liquidez mínima (lotes/volume tick)
InpMaxSpreadintSpread máximo em pontos para validar ativo
InpScanIntervalintSegundos entre varreduras automáticas (0 = manual)

Evite arrays de inputs complexos no MQL5. Strings separadas por delimitador (; ou ,) são mais leves para a interface e fáceis de parsear com StringSplit.

Loop de varredura: performance real

Não use SymbolSelect dentro do loop. Carregue a lista de símbolos uma vez no OnInit() ou na primeira execução. Armazene em string symbols[].

O coração do scanner:

  • CopyRates para pegar OHLCV do TF alvo (apenas 2-3 barras).
  • CopyBuffer se usar indicadores custom (RSI, ADX, médias).
  • Cálculo vetorizado (arrays) — evite iMA chamado 500 vezes.
  • Checagem de SymbolInfoInteger(sym, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL.
  • Filtro de spread: SymbolInfoInteger(sym, SYMBOL_SPREAD) <= InpMaxSpread.

Um scanner bem escrito varre 500 ativos em < 200ms num VPS decente. Se passa de 1s, o gargalo é I/O de indicador ou alocação de memória repetida.

Filtros de ruído que salvam dinheiro

Liquidez fake é o inimigo. Adicione estes filtros antes de calcular qualquer sinal:

  • Volume médio 20 períodos > InpMinVolume.
  • Spread % do ATR(14) < 1.5%. Spread largo em ativo parado = slippage garantido.
  • Horário de negociação: SymbolInfoSessionTrade para ignorar ativos fora do pregão principal.
  • Swap/Comissão: filtre ativos com custo de carry absurdo se a estratégia é swing.

Checklist operacional antes de rodar real

  • [ ] Teste visual no Strategy Tester com "Every tick based on real ticks" para 10 ativos aleatórios.
  • [ ] Log de execução: imprima GetMicrosecondCount() no início/fim do loop. Acompanhe latência.
  • [ ] Memória: monitore GetUsedMemory() no Journal. Vazamento em array dinâmico derruba o terminal em 24h.
  • [ ] Concorrência: se roda múltiplos scanners no mesmo terminal, use GlobalVariableCheck ou arquivos Common para não duplicar CopyRates.
  • [ ] Painel visual: crie um CTable ou CListView para mostrar resultados (Símbolo, Sinal, Preço, Hora, Score). Comment() polui o gráfico e trava render.

Workflow de aceleração de resultados

Semana 1: Scanner estático (roda sob botão). Valide lógica em 50 ativos.
Semana 2: Timer automático + painel tabela + alerta SendNotification.
Semana 3: Cache de indicadores compartilhado entre instâncias (arquivo .bin em TerminalCommonDataPath).
Semana 4: Integração com EA executor — o scanner vira "sinal", o EA gerencia risco/ordem.

O maior erro de iniciante: colocar a lógica de entrada dentro do scanner. Separe responsabilidades. Scanner = "O quê e Onde". EA = "Quando e Quanto".

Perfil ideal, limitações e fechamento editorial

Quem deve encarar este material? Somente trader com lógica de programação e conta real em MetaTrader 5.

O entusiasta de promessa mágica de "robô milagroso" vai bater a cara na parede de código desde a primeira linha de MQL5.

Errado é achar que qualquer um aprende a montar scanner em tarde de domingo. A curva existe e morde.

Limitar o escopo a quem já manja de MQL5 soa óbvio, mas o produto subestima a fricção de latência em corretoras nacionais com servidor na Europa.

Quem não terá bom aproveitamento

  • Iniciantes absolutos em algo trading e lógica de código.
  • Usuários cativos do MT4 sem disposição para migrar.
  • Investidores de longo prazo que ignoram varredura intraday.
  • Quem busca estratégia pronta em vez de ferramenta de construção.

Mini cenários reais

Um analista de mesa em Porto Alegre implementou o scanner e cortou 40% do tempo de triagem manual nas sessões de Londres.

Mas tomou slippage em pares exóticos porque o filtro de liquidez nativo não penalizava spread acima de 2 pip.

Outro caso: programador freelancer integrou alertas via DLL para Telegram. Rodou liso por um mês. Até a corretora alterar o horário de série de futuros e quebrar o parse de tempo.

Limitações contextuais

Contexto operacionalImpacto prático no scanner
VPS com ping acima de 80msPerda de ticks gera falsos negativos em velocidade alta
Ativos com spread variável agressivoRanking de performance distorce prioridade de entrada
Janela de baixa liquidezScanner dispara ruído e exige filtro extra manual

Callout editorial

O scanner não substitui gestão de risco. Ele apenas aponta alvos. Quem inverte a ordem perde capital na primeira semana de volatilidade.

FAQ contextual

Preciso de C++ avançado? Não. MQL5 deriva sintaxe, mas o material parte do básico de variáveis e loops.

Funciona em conta cent? Sim. Porém o volume de ticks é menor e o motor de scan fica sonolento em pares de baixo giro.

O autor responde dúvidas de implementação? Apenas nas seções de FAQ fechadas, sem suporte um-a-um garantido.

Checklist final de compatibilidade

  • MT5 atualizado na build 4000+.
  • Noção de condicionais e arrays.
  • VPS com latência abaixo de 30ms para operação automática.
  • Expectativa realista: 2 semanas de adaptação antes do primeiro scan útil.

Parecer editorial equilibrado

O produto cumpre o prometido para o nicho técnico. Não é bala de prata, é chave inglesa.

Para o profissional que codifica, o ganho de horas semanais justifica o preço. Para o entusiasta de rolê, é dinheiro queimado em HDD.

Conheça a documentação oficial e adquira o material Como criar um scanner de ativos em MQL5.

Ver página oficial e comprar

Próximos passos

Mapeie seus pares mais negociados na semana passada. Teste o scanner em conta demo por 72 horas com logs ativos.

Ajuste critérios com fluxo real de dados, não backtest de museu. O custo de oportunidade é de 11 horas semanais não recuperadas sem automação.

Deixe uma resposta

Related Post