Artigos com exemplos de como programar na linguagem MQL5

icon

Inúmeros artigos com exemplos sobre como criar indicadores e robôs de negociação para a plataforma MetaTrader na linguagem MQL5 esperam por você. Cada artigo é acompanhado de códigos-fonte, que você pode abrir no MetaEditor e executar por conta própria.

Esses artigos serão úteis tanto para quem está se iniciando na negociação automatizada, bem como traders capacitados com experiência em programação e negociação. Aqui você encontrará não apenas exemplos, mas também novas ideias.

Novo artigo
recentes | melhores
preview
Do iniciante ao especialista: Sistema de análise autogeométrica

Do iniciante ao especialista: Sistema de análise autogeométrica

Os padrões geométricos oferecem aos traders uma forma concisa de interpretar o movimento dos preços. Muitos analistas desenham linhas de tendência, retângulos e outras figuras manualmente e, em seguida, baseiam suas decisões de negociação nas formações que enxergam. Neste artigo, examinaremos uma alternativa automatizada: o uso de MQL5 para detectar e analisar os padrões geométricos mais populares. Vamos detalhar a metodologia, discutir os detalhes da implementação e mostrar como o reconhecimento automático de padrões pode aprimorar a compreensão do mercado pelo trader.
preview
Otimização e ajuste fino do código-fonte para melhorar os resultados do backtesting

Otimização e ajuste fino do código-fonte para melhorar os resultados do backtesting

Melhore seu código MQL5 otimizando a lógica, aprimorando os cálculos e reduzindo o tempo de execução para aumentar a precisão do backtesting. Ajuste finamente os parâmetros, otimize loops e elimine ineficiências para melhorar o resultado.
preview
WebSocket para MetaTrader 5: conexões assíncronas no lado do cliente usando a API do Windows

WebSocket para MetaTrader 5: conexões assíncronas no lado do cliente usando a API do Windows

Neste artigo, descreve-se em detalhe o desenvolvimento de uma biblioteca DLL personalizada, destinada a simplificar conexões assíncronas no lado do cliente pelo protocolo WebSocket para programas MetaTrader.
preview
De Iniciante a Especialista: Indicador de Força de Suporte e Resistência (SRSI)

De Iniciante a Especialista: Indicador de Força de Suporte e Resistência (SRSI)

Neste artigo, compartilharemos insights sobre como utilizar a programação em MQL5 para identificar níveis de mercado — diferenciando entre níveis de preço mais fracos e mais fortes. Desenvolveremos completamente um indicador funcional de Força de Suporte e Resistência (SRSI).
preview
Introdução às curvas ROC (Receiver Operating Characteristic)

Introdução às curvas ROC (Receiver Operating Characteristic)

As curvas ROC são representações gráficas utilizadas para avaliar o desempenho de classificadores. Apesar de os gráficos ROC serem relativamente simples, existem equívocos e armadilhas comuns ao utilizá-los na prática. Este artigo tem como objetivo fornecer uma introdução aos gráficos ROC como uma ferramenta para profissionais que buscam compreender a avaliação de desempenho de classificadores.
preview
Criando um Painel de Administração de Trading em MQL5 (Parte IX): Organização de Código (III): Módulo de Comunicação

Criando um Painel de Administração de Trading em MQL5 (Parte IX): Organização de Código (III): Módulo de Comunicação

Junte-se a nós para uma discussão aprofundada sobre os mais recentes avanços no design de interfaces em MQL5 enquanto apresentamos o Painel de Comunicações redesenhado e continuamos nossa série sobre a construção do Novo Painel de Administração utilizando princípios de modularização. Desenvolveremos a classe CommunicationsDialog passo a passo, explicando detalhadamente como herdá-la da classe Dialog. Além disso, utilizaremos arrays e a classe ListView em nosso desenvolvimento. Obtenha insights práticos para elevar suas habilidades em desenvolvimento MQL5 — leia o artigo e participe da discussão na seção de comentários!
preview
Do básico ao intermediário: Objetos e sub janelas (II)

Do básico ao intermediário: Objetos e sub janelas (II)

Este artigo explica como capturar e tratar a remoção de objetos do gráfico em MQL5 usando eventos do MetaTrader 5. Ao detectar a exclusão de um objeto criado pelo indicador, o código remove a instância correspondente para evitar inconsistências e sub janelas remanescentes. A abordagem adota nomes únicos e um arquivo de cabeçalho, priorizando simplicidade e previsibilidade do comportamento.
preview
Do básico ao intermediário: Objetos e sub janelas (I)

Do básico ao intermediário: Objetos e sub janelas (I)

O artigo detalha a criação e o posicionamento do objeto OBJ_CHART dentro de sub janelas, destacando nuances entre janela principal e subjanelas. Mostra como integrar indicadores com recursos (#resource, ChartIndicatorAdd) e identificar a sub janela correta por meio do nome curto do indicador. O resultado é um código mais estável, portátil e fácil de reutilizar.
preview
Do básico ao intermediário: Recursos

Do básico ao intermediário: Recursos

Neste artigo você será apresentado a um conceito que pode ser de extrema utilidade em muitos casos. Facilitando em muito o compartilhamento de suas aplicações e projetos. Apesar de não ser um conceito muito simples de ser totalmente explicando em um único artigo. O que será explicado e exposto aqui, já nos irá permitir fazer diversas coisas no futuro. Inclusive algumas que de outra maneira não seriam possíveis de serem feitas. Justamente por que este artigo ainda não havia sido publicado, para que você, pudesse ter um material de apoio e uma base inicial de estudo.
preview
Multiple Symbol Analysis With Python And MQL5 (Part 3): Taxas de Câmbio Triangulares

Multiple Symbol Analysis With Python And MQL5 (Part 3): Taxas de Câmbio Triangulares

Traders frequentemente enfrentam drawdowns causados por sinais falsos, enquanto esperar por confirmação pode levar à perda de oportunidades. Este artigo apresenta uma estratégia de trading triangular utilizando a cotação da Prata em Dólares (XAGUSD) e em Euros (XAGEUR), juntamente com a taxa de câmbio EURUSD, para filtrar ruído. Ao aproveitar relações entre mercados, traders podem descobrir sentimento oculto do mercado e refinar suas entradas em tempo real.
preview
O Filtro de Kalman para Estratégias de Reversão à Média no Forex

O Filtro de Kalman para Estratégias de Reversão à Média no Forex

O filtro de Kalman é um algoritmo recursivo utilizado em trading algorítmico para estimar o verdadeiro estado de uma série temporal financeira ao filtrar o ruído dos movimentos de preço. Ele atualiza dinamicamente as previsões com base em novos dados de mercado, tornando-se valioso para estratégias adaptativas como reversão à média. Este artigo primeiro apresenta o filtro de Kalman, abordando seu cálculo e implementação. Em seguida, aplicamos o filtro a uma estratégia clássica de reversão à média no forex como exemplo. Por fim, realizamos diversas análises estatísticas comparando o filtro com uma média móvel em diferentes pares de forex.
preview
Desenvolvendo um EA multimoeda (Parte 28): Adicionando um gerenciador de fechamento de posições

Desenvolvendo um EA multimoeda (Parte 28): Adicionando um gerenciador de fechamento de posições

Ao executar muitas estratégias em paralelo, pode surgir a necessidade de, de tempos em tempos, fechar todas as posições abertas e reiniciar as estratégias. O código já escrito permite implementar esse comportamento apenas em conjunto com manipulações manuais. Vamos tentar automatizar essa parte.
preview
Componentes View e Controller para tabelas no paradigma MVC em MQL5: Contêineres

Componentes View e Controller para tabelas no paradigma MVC em MQL5: Contêineres

No artigo será analisada a criação do elemento de controle "Contêiner" com a possibilidade de rolar o seu conteúdo. Durante o processo, serão aperfeiçoadas classes já prontas de elementos de controle da biblioteca gráfica.
preview
Desenvolvimento do Toolkit de Análise de Price Action (Parte 15): Introduzindo a Teoria dos Quartos (I) — Script Quarters Drawer

Desenvolvimento do Toolkit de Análise de Price Action (Parte 15): Introduzindo a Teoria dos Quartos (I) — Script Quarters Drawer

Pontos de suporte e resistência são níveis críticos que sinalizam possíveis reversões e continuações de tendência. Embora identificar esses níveis possa ser desafiador, uma vez que você os localiza, estará bem preparado para navegar no mercado. Para obter ajuda adicional, confira a ferramenta Quarters Drawer apresentada neste artigo; ela ajudará você a identificar tanto níveis primários quanto secundários de suporte e resistência.
preview
Do básico ao intermediário: Sub Janelas (IV)

Do básico ao intermediário: Sub Janelas (IV)

Neste artigo iremos ver que nem tudo é como muitos pensam ser no inicio. Uma das coisas mais interessantes em utilizar a programação é o fato de que podemos garantir que as coisas sempre serão da forma como as planejamos. Então leiam este artigo com atenção, para que possam aprender alguns dos conceitos mais confusos envolvidos no uso de sub janelas. Se você entender o que será explicado aqui, irá conseguir fazer compreender diversas coisas que iremos fazer futuramente.
preview
Construindo Expert Advisors Auto Otimizáveis em MQL5 (Parte 6): Prevenção de Stop Out

Construindo Expert Advisors Auto Otimizáveis em MQL5 (Parte 6): Prevenção de Stop Out

Junte-se a nós na discussão de hoje enquanto buscamos um procedimento algorítmico para minimizar o número total de vezes em que somos estopados em negociações vencedoras. O problema que enfrentamos é significativamente desafiador, e a maioria das soluções apresentadas em discussões da comunidade carece de regras fixas e bem definidas. Nossa abordagem algorítmica para resolver o problema aumentou a lucratividade de nossas negociações e reduziu nossa perda média por operação. No entanto, ainda há avanços a serem feitos para filtrar completamente todas as negociações que serão estopadas; nossa solução é um bom primeiro passo para qualquer pessoa experimentar.
preview
Criando um Painel Administrador de Trading em MQL5 (Parte IX): Organização de Código (II): Modularização

Criando um Painel Administrador de Trading em MQL5 (Parte IX): Organização de Código (II): Modularização

Nesta discussão, damos um passo adiante ao dividir nosso programa MQL5 em módulos menores e mais gerenciáveis. Esses componentes modulares serão então integrados ao programa principal, melhorando sua organização e capacidade de manutenção. Essa abordagem simplifica a estrutura do programa principal e torna os componentes individuais reutilizáveis em outros Expert Advisors (EAs) e no desenvolvimento de indicadores. Ao adotar esse design modular, criamos uma base sólida para melhorias futuras, beneficiando tanto nosso projeto quanto a comunidade mais ampla de desenvolvedores.
preview
Do básico ao intermediário: Sub Janelas (III)

Do básico ao intermediário: Sub Janelas (III)

Este texto detalha o uso de sub janelas em indicadores MQL5: criação básica, detecção de instâncias e prevenção de duplicações. Aborda INDICATOR_SHORTNAME, consulta de janelas/indicadores do gráfico e a diferença entre exibição no gráfico principal e em janela separada. Mostra ainda como definir altura e limites da sub janela para padronizar a interface e facilitar a disposição de objetos.
preview
Do básico ao intermediário: Sub Janelas (II)

Do básico ao intermediário: Sub Janelas (II)

O artigo aprofunda o uso de sub janelas no MetaTrader 5, mostrando como a direção do cálculo em OnCalculate afeta buffers e a plotagem de médias. Explica na prática o encadeamento de indicadores com FIRST INDICATOR’S DATA e PREVIOUS INDICATOR’S DATA, o impacto na remoção em cadeia e o comportamento de indicatorseparatewindow. O leitor aprende a diagnosticar falhas de exibição e a estruturar indicadores que funcionam corretamente em sub janelas.
preview
Testes de Robustez em Expert Advisors

Testes de Robustez em Expert Advisors

No desenvolvimento de estratégias, há muitos detalhes complexos a serem considerados, muitos dos quais não são destacados para traders iniciantes. Como resultado, muitos traders, eu incluído, tiveram de aprender essas lições da maneira mais difícil. Este artigo é baseado em minhas observações sobre armadilhas comuns que a maioria dos traders iniciantes encontra ao desenvolver estratégias em MQL5. Ele oferecerá uma variedade de dicas, truques e exemplos para ajudar a identificar a desqualificação de um EA e testar a robustez dos nossos próprios EAs de uma forma fácil de implementar. O objetivo é educar os leitores, ajudando-os a evitar futuros golpes ao comprar EAs, bem como a prevenir erros no desenvolvimento de suas próprias estratégias.
preview
Do básico ao intermediário: Sub Janelas (I)

Do básico ao intermediário: Sub Janelas (I)

Aqui iremos começar a ver como trabalhar com sub janelas no MetaTrader 5. Usando para isto o MQL5. Porém, como este é um assunto bem longo e com diversas coisas mais ou menos complicadas, devido a algumas questões práticas. Sendo assim faremos apenas uma breve a rápida introdução ao assunto. No entanto, apesar disto, é necessário que você entenda o que será mostrado neste artigo, meu caro leitor. Pois isto poderá fazer uma enorme diferença no seu futuro.
preview
Do básico ao intermediário: Indicadores técnico (II)

Do básico ao intermediário: Indicadores técnico (II)

Neste artigo mostramos como criar um indicador em MQL5 que desenha múltiplas médias móveis no mesmo gráfico, reduzindo código duplicado. São usados iMA, buffers de indicador, CopyBuffer, PlotIndexSetInteger/String e uma estrutura constante que concentra períodos, métodos e cores. O dimensionamento de indicatorbuffers e indicatorplots é derivado de Averange.Size(). O resultado facilita manutenção e permite adicionar ou remover médias alterando apenas uma lista.
preview
Desenvolvendo um EA multimoeda (Parte 27): Componente para exibição de texto multilinha

Desenvolvendo um EA multimoeda (Parte 27): Componente para exibição de texto multilinha

Quando surge a necessidade de exibir informações textuais no gráfico, podemos utilizar a função Comment(). Porém, suas possibilidades são bastante limitadas. Por isso, no âmbito deste artigo, criaremos nosso próprio componente, uma janela de diálogo em tela cheia, capaz de exibir texto multilinha com configurações flexíveis de fonte e suporte a rolagem.
preview
Componentes View e Controller para tabelas no paradigma MVC em MQL5: Elementos de controle simples

Componentes View e Controller para tabelas no paradigma MVC em MQL5: Elementos de controle simples

No artigo são analisados elementos de controle simples como partes constituintes de elementos gráficos mais complexos do componente View no contexto da implementação de tabelas no paradigma MVC (Model-View-Controller). Foi implementado o funcional básico do componente Controller para a interação interativa dos elementos com o usuário e entre si. Este é o segundo artigo dedicado ao componente View e o quarto da série de artigos sobre a criação de tabelas para o terminal cliente MetaTrader 5.
preview
Do básico ao intermediário: Indicadores técnicos (I)

Do básico ao intermediário: Indicadores técnicos (I)

Neste artigo veremos o básico sobre como utilizar indicadores técnicos que estão presentes e são mantidos pelo próprio MetaTrader 5. Saber, entender e conhecer este tipo de indicador pode vir a tornar seu trabalho de implementar algo, em uma tarefa muito mais simples, rápida e eficiente. Visto que você não precisa se preocupar com a parte referente aos cálculos a serem efetuados. A própria plataforma se encarrega de fazer isto para nós.
preview
Dominando Registros de Log (Parte 5): Otimizando o Handler com Cache e Rotação

Dominando Registros de Log (Parte 5): Otimizando o Handler com Cache e Rotação

Este artigo aprimora a biblioteca de logging adicionando formatadores nos handlers, a classe CIntervalWatcher para gerenciar ciclos de execução, otimização com cache e rotação de arquivos, testes de desempenho e exemplos práticos. Com essas melhorias, garantimos um sistema de logging eficiente, escalável e adaptável a diferentes cenários de desenvolvimento.
preview
Criando um Painel de Administração de Trading em MQL5 (Parte IX): Organização de Código (I)

Criando um Painel de Administração de Trading em MQL5 (Parte IX): Organização de Código (I)

Esta discussão aprofunda-se nos desafios encontrados ao trabalhar com grandes bases de código. Vamos explorar as melhores práticas para organização de código em MQL5 e implementar uma abordagem prática para aprimorar a legibilidade e a escalabilidade do código-fonte do nosso Painel de Administração de Trading. Além disso, buscamos desenvolver componentes de código reutilizáveis que possam potencialmente beneficiar outros desenvolvedores no desenvolvimento de seus algoritmos. Continue lendo e participe da discussão.
preview
Engenharia de Recursos com Python e MQL5 (Parte III): Ângulo do Preço (2) Coordenadas Polares

Engenharia de Recursos com Python e MQL5 (Parte III): Ângulo do Preço (2) Coordenadas Polares

Neste artigo, fazemos nossa segunda tentativa de converter as variações nos níveis de preço em qualquer mercado em uma variação correspondente de ângulo. Desta vez, selecionamos uma abordagem matematicamente mais sofisticada do que a escolhida em nossa primeira tentativa, e os resultados que obtivemos sugerem que a mudança de abordagem pode ter sido a decisão correta Junte-se a nós hoje, enquanto discutimos como podemos usar coordenadas polares para calcular o ângulo formado pelas variações nos níveis de preço, de forma significativa, independentemente de qual mercado você esteja analisando.
preview
Desenvolvimento do Kit de Ferramentas de Análise de Price Action (Parte 11): EA de Sinal Heikin Ashi

Desenvolvimento do Kit de Ferramentas de Análise de Price Action (Parte 11): EA de Sinal Heikin Ashi

O MQL5 oferece infinitas oportunidades para desenvolver sistemas de negociação automatizados adaptados às suas preferências. Você sabia que ele pode até realizar cálculos matemáticos complexos? Neste artigo, apresentamos a técnica japonesa Heikin-Ashi como uma estratégia de negociação automatizada.
preview
Do básico ao intermediário: Sobrecarga de operadores (VI)

Do básico ao intermediário: Sobrecarga de operadores (VI)

Aqui iremos implementar a exclusão via sobrecarga de operador. E este com toda a certeza será um artigo, no qual muitos precisaram estudar por um longo período. Isto a fim de conseguir assimilar tudo o que será mostrado aqui. Mas quero lembrar a você, que o que veremos aqui, será apenas uma pequena e insignificante parte de tudo aquilo que é chamado programação.
preview
Construindo Expert Advisors Auto-Otimizáveis em MQL5 (Parte 5): Regras de Negociação Auto Adaptativas

Construindo Expert Advisors Auto-Otimizáveis em MQL5 (Parte 5): Regras de Negociação Auto Adaptativas

As melhores práticas, que definem como usar um indicador com segurança, nem sempre são fáceis de seguir. Condições de mercado calmas podem, surpreendentemente, produzir leituras no indicador que não se qualificam como um sinal de negociação, levando à perda de oportunidades para traders algorítmicos. Este artigo irá sugerir uma solução potencial para esse problema, à medida que discutimos como construir aplicações de negociação capazes de adaptar suas regras de negociação aos dados de mercado disponíveis.
preview
Do básico ao intermediário: Sobrecarga de operadores (V)

Do básico ao intermediário: Sobrecarga de operadores (V)

Neste artigo iremos ver como podemos manipular um código a fim de implementar algo completamente diferente daquilo que muitos acreditam ser possível ser feito no MQL5. Uma observação importante: Para entender de maneira adequada o que será visto aqui, é necessário que os conceitos vistos nos artigos anteriores tenham sido devidamente compreendidos.
preview
Componente View para tabelas no paradigma MVC em MQL5: elemento gráfico básico

Componente View para tabelas no paradigma MVC em MQL5: elemento gráfico básico

O artigo analisa o processo de desenvolvimento de um elemento gráfico básico para o componente View no contexto da implementação de tabelas no paradigma MVC (Model-View-Controller) na linguagem MQL5. Este é o primeiro artigo dedicado ao componente View e o terceiro da série de artigos sobre a criação de tabelas para o terminal cliente MetaTrader 5.
preview
Mecanismos de gating em aprendizado por ensemble

Mecanismos de gating em aprendizado por ensemble

Neste artigo, continuamos nossa exploração de modelos ensemble discutindo o conceito de gates, especificamente como eles podem ser úteis na combinação das saídas dos modelos para aprimorar a precisão das previsões ou a generalização do modelo.
preview
A Estratégia de Negociação do Inverse Fair Value Gap

A Estratégia de Negociação do Inverse Fair Value Gap

Um inverse fair value gap (IFVG) ocorre quando o preço retorna a um fair value gap previamente identificado e, em vez de apresentar a reação esperada de suporte ou resistência, falha em respeitá-lo. Essa falha pode sinalizar uma possível mudança na direção do mercado e oferecer uma vantagem contrária de negociação. Neste artigo, vou apresentar minha abordagem desenvolvida por mim para quantificar e utilizar o inverse fair value gap como uma estratégia para expert advisors do MetaTrader 5.
preview
Dominando Registros de Log (Parte 4): Salvando logs em arquivos

Dominando Registros de Log (Parte 4): Salvando logs em arquivos

Neste artigo, ensinarei operações básicas com arquivos e como configurar um handler flexível para personalização. Atualizaremos a classe CLogifyHandlerFile para gravar logs diretamente no arquivo. Realizaremos um teste de desempenho simulando uma estratégia no EURUSD por uma semana, gerando logs a cada tick, com um tempo total de 5 minutos e 11 segundos. O resultado será comparado em um artigo futuro, onde implementaremos um sistema de cache para melhorar o desempenho.
preview
Construindo Expert Advisors Auto-Otimizáveis em MQL5 (Parte 4): Dimensionamento Dinâmico de Posição

Construindo Expert Advisors Auto-Otimizáveis em MQL5 (Parte 4): Dimensionamento Dinâmico de Posição

Empregar com sucesso o trading algorítmico exige aprendizado contínuo e interdisciplinar. No entanto, a gama infinita de possibilidades pode consumir anos de esforço sem gerar resultados tangíveis. Para lidar com isso, propomos uma estrutura que introduz complexidade de forma gradual, permitindo que os traders refinem suas estratégias de maneira iterativa, em vez de dedicar tempo indefinido a resultados incertos.
preview
MQL5 Trading Toolkit (Parte 7): Expandindo a Biblioteca EX5 de Gerenciamento de Histórico com as Funções da Última Ordem Pendente Cancelada

MQL5 Trading Toolkit (Parte 7): Expandindo a Biblioteca EX5 de Gerenciamento de Histórico com as Funções da Última Ordem Pendente Cancelada

Aprenda como concluir a criação do módulo final na biblioteca History Manager EX5, com foco nas funções responsáveis por lidar com a ordem pendente cancelada mais recente. Isso fornecerá a você as ferramentas para recuperar e armazenar de forma eficiente os principais detalhes relacionados às ordens pendentes canceladas com MQL5.
preview
Implementação do mecanismo de breakeven em MQL5 (Parte 1): Classe base e modo de breakeven por pontos fixos

Implementação do mecanismo de breakeven em MQL5 (Parte 1): Classe base e modo de breakeven por pontos fixos

Neste artigo, analisamos a aplicação do mecanismo de breakeven (ponto de equilíbrio) em estratégias automatizadas na linguagem MQL5. Começaremos com uma explicação simples do que é o modo de breakeven, como ele é implementado e quais são suas possíveis variações. Em seguida, essa funcionalidade será integrada ao EA Order Blocks, criado por nós no último artigo sobre gerenciamento de riscos. Para avaliar a eficácia, faremos dois backtests sob determinadas condições: um com a aplicação do mecanismo de breakeven e outro, sem.
preview
Do básico ao intermediário: Sobrecarga de operadores (IV)

Do básico ao intermediário: Sobrecarga de operadores (IV)

Neste artigo faremos uma primeira abordagem a fim de trabalhar e demonstrar como podemos implementar a sobrecarga do operador subscrito e também do operador de atribuição. Tentando com isto trazer uma abordagem prática e que fosse interessante para todos. Porém o que será visto aqui, é apenas uma parte daquilo que pretendo ainda mostrar e que está diretamente ligado a sobrecarga de tais operadores.