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
Desenvolvendo um sistema de Replay (Parte 60): Dando play no serviço (I)

Desenvolvendo um sistema de Replay (Parte 60): Dando play no serviço (I)

Já faz um bom tempo que estamos mexendo apenas no indicadores. Mas agora chegou a hora de fazer o serviço voltar a executar o seu trabalho, a fim de que possamos ver o gráfico sendo construído com os dados informados. Mas como nem tudo é tão simples, será preciso ver para entender o que nos espera.
preview
Como criar um diário de negociações com MetaTrader e Google Sheets

Como criar um diário de negociações com MetaTrader e Google Sheets

Crie um diário de negociações usando o MetaTrader e o Google Sheets! Você aprenderá como sincronizar seus dados de negociação via HTTP POST e recuperá-los usando requisições HTTP. Ao final, você terá um diário de negociações que ajudará a acompanhar suas operações de forma eficaz e eficiente.
preview
Do básico ao intermediário: Indicador (I)

Do básico ao intermediário: Indicador (I)

Neste artigo criaremos o nosso primeiro indicador totalmente prático e funcional. O objetivo aqui, não é e não será mostrar como se cria de fato uma aplicação. Mas ajudar a você, meu caro leitor, a entender como você pode por conta própria, desenvolver suas próprias ideias. As colocando em prática, de forma segura, simples e prática.
preview
HTTP e Connexus (Parte 2): Entendendo a Arquitetura HTTP e o Design de Bibliotecas

HTTP e Connexus (Parte 2): Entendendo a Arquitetura HTTP e o Design de Bibliotecas

Este artigo explora os fundamentos do protocolo HTTP, cobrindo os principais métodos (GET, POST, PUT, DELETE), códigos de status e a estrutura das URLs. Além disso, apresenta o início da construção da biblioteca Connexus com as classes CQueryParam e CURL, que facilitam a manipulação de URLs e parâmetros de consulta em requisições HTTP.
preview
DoEasy. Controles (Parte 18): Preparando a funcionalidade para rolagem de guias no TabControl

DoEasy. Controles (Parte 18): Preparando a funcionalidade para rolagem de guias no TabControl

Neste artigo colocaremos os botões de controle de rolagem de cabeçalhos no objeto WinForms TabControl caso a fileira de cabeçalhos não se ajuste ao tamanho do controle, e faremos o deslocamento da linha de cabeçalho quando clicamos no cabeçalho de uma guia cortada.
preview
ADAM Populacional (estimativa adaptativa de momentos)

ADAM Populacional (estimativa adaptativa de momentos)

Este artigo apresenta a transformação do conhecido e popular método de otimização por gradiente ADAM em um algoritmo populacional e sua modificação com a introdução de indivíduos híbridos. A nova abordagem permite criar agentes que combinam elementos de soluções bem-sucedidas usando uma distribuição probabilística. A principal inovação é a formação de indivíduos híbridos populacionais, que acumulam de forma adaptativa informações das soluções mais promissoras, aumentando a eficácia da busca em espaços multidimensionais complexos.
preview
Aprendendo MQL5 do iniciante ao profissional (Parte IV): Sobre Arrays, Funções e Variáveis Globais do Terminal

Aprendendo MQL5 do iniciante ao profissional (Parte IV): Sobre Arrays, Funções e Variáveis Globais do Terminal

Este artigo é uma continuação do ciclo para iniciantes. Ele descreve em detalhes arrays de dados, a interação entre dados e funções, bem como variáveis globais do terminal que permitem a troca de dados entre diferentes programas MQL5.
preview
Um algoritmo de seleção de características usando aprendizado baseado em energia em MQL5 puro

Um algoritmo de seleção de características usando aprendizado baseado em energia em MQL5 puro

Neste artigo, apresentamos a implementação de um algoritmo de seleção de características descrito em um artigo acadêmico intitulado "FREL: Um algoritmo estável de seleção de características", chamado de Ponderação de Características como Aprendizado Baseado em Energia Regularizada.
preview
Simplificando a negociação com base em notícias (Parte 2): Gerenciando riscos

Simplificando a negociação com base em notícias (Parte 2): Gerenciando riscos

Neste artigo, adicionaremos herança ao código anterior e ao novo. Implementaremos uma nova estrutura de banco de dados para garantir um bom desempenho. Além disso, criaremos uma classe de gerenciamento de risco para calcular volumes.
preview
Do básico ao intermediário: Ponto Flutuante

Do básico ao intermediário: Ponto Flutuante

Este artigo é uma breve introdução ao que seria o ponto flutuante. Como este conteúdo é muito complicado, aconselho você o ler com calma e atenção. Não espere dominar o sistema de ponto flutuante de maneira rápida. O mesmo somente é dominado com o tempo e experiência de uso. Mas este artigo irá lhe ajudar a entender, por que as vezes sua aplicação, reporta um resultado diferente daquele esperado originalmente. O conteúdo exposto aqui, visa e tem como objetivo, pura e simplesmente a didática. De modo algum deve ser encarado como sendo, uma aplicação cuja finalidade não venha a ser o aprendizado e estudo dos conceitos mostrados.
preview
Do básico ao intermediário: Sobrecarga

Do básico ao intermediário: Sobrecarga

Este talvez será o artigo mais confuso para você iniciante. Já que aqui mostrarei que nem sempre, teremos em um mesmo código, todas funções e procedimentos com nomes exclusivos. Podemos sim ter funções e procedimentos com um mesmo nome e isto é conhecido como sobrecarga. O conteúdo exposto aqui, visa e tem como objetivo, pura e simplesmente a didática. De modo algum deve ser encarado como sendo, uma aplicação cuja finalidade não venha a ser o aprendizado e estudo dos conceitos mostrados.
preview
Desenvolvendo Sistemas de Trading ICT Avançados: Implementando Order Blocks em um Indicador

Desenvolvendo Sistemas de Trading ICT Avançados: Implementando Order Blocks em um Indicador

Neste artigo, vamos aprender a criar um indicador que detecta, desenha e emite alertas sobre a mitigação de order blocks. Também veremos em detalhes como identificar esses blocos no gráfico, configurar alertas precisos e visualizar sua posição utilizando retângulos, para compreender melhor a ação do preço. Este indicador servirá como uma ferramenta-chave para traders que seguem os Smart Money Concepts e a metodologia do Inner Circle Trader.
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
DoEasy. Controles (Parte 28): Estilos de barra no controle ProgressBar

DoEasy. Controles (Parte 28): Estilos de barra no controle ProgressBar

Neste artigo veremos estilos de exibição e texto descritivo para o controle ProgressBar.
preview
Algoritmo de Fechadura Codificada (Code Lock Algorithm, CLA)

Algoritmo de Fechadura Codificada (Code Lock Algorithm, CLA)

Neste artigo, vamos repensar as fechaduras codificadas, transformando-as de mecanismos de proteção em ferramentas para resolver tarefas complexas de otimização. Descubra o mundo das fechaduras codificadas, não como simples dispositivos de segurança, mas como inspiração para uma nova abordagem à otimização. Vamos criar uma população inteira de "fechaduras", onde cada uma representa uma solução única para um problema. Em seguida, desenvolveremos um algoritmo que "destrancará" essas fechaduras e encontrará soluções ideais em várias áreas, desde o aprendizado de máquina até o desenvolvimento de sistemas de trading.
preview
DoEasy. Controles (Parte 30): Animando o controle "ScrollBar"

DoEasy. Controles (Parte 30): Animando o controle "ScrollBar"

Neste artigo continuaremos a desenvolver o controle ScrollBar e começaremos a fazer a funcionalidade de interação com o mouse. Além disso, vamos expandir as listas de bandeiras de status e eventos com o mouse.
preview
DoEasy. Controles (Parte 11): Objetos WinForms - grupos, objeto WinForms CheckedListBox

DoEasy. Controles (Parte 11): Objetos WinForms - grupos, objeto WinForms CheckedListBox

Neste artigo, consideraremos como agrupar objetos WinForms e criar um objeto-lista de objetos CheckBox.
preview
Simulação de mercado (Parte 07): Sockets (I)

Simulação de mercado (Parte 07): Sockets (I)

Soquetes. Você sabe para que eles servem, ou como fazer uso deles no MetaTrader 5? Se a resposta for não, vamos começar aprendendo um pouco sobre eles. Este artigo aqui envolve o básico do básico. Mas como existem diversas maneiras de se fazer a mesma coisa, e o que nos interessa realmente é sempre o resultado. Queria mostrar que sim, existe uma forma simples, de passar dados do MetaTrader 5 para dentro de outros programas, como por exemplo o Excel. Porém, a principal ideia, não é transferir dados do MetaTrader 5, para o Excel. E sim fazer o contrário. Ou seja, transferir dados do Excel, ou de qualquer outro programa, para dentro do MetaTrader 5.
preview
Anotação de dados na análise de série temporal (Parte 4): Decomposição da interpretabilidade usando anotação de dados

Anotação de dados na análise de série temporal (Parte 4): Decomposição da interpretabilidade usando anotação de dados

Esta série de artigos apresenta várias técnicas destinadas a rotular séries temporais, técnicas essas que podem criar dados adequados à maioria dos modelos de inteligência artificial (IA). A rotulação de dados (ou anotação de dados) direcionada pode tornar o modelo de IA treinado mais alinhado aos objetivos e tarefas do usuário, melhorar a precisão do modelo e até mesmo ajudar o modelo a dar um salto qualitativo!
preview
Algoritmos de otimização populacional: simulação de têmpera isotrópica (Simulated Isotropic Annealing, SIA). Parte II

Algoritmos de otimização populacional: simulação de têmpera isotrópica (Simulated Isotropic Annealing, SIA). Parte II

A primeira parte do artigo foi dedicada ao conhecido e popular algoritmo de têmpera simulada, onde foram analisadas suas vantagens e descritos detalhadamente os pontos fracos. A segunda parte do artigo é dedicada a uma transformação radical do algoritmo, seu renascimento em um novo algoritmo de otimização, a simulação de têmpera isotrópica, SIA.
preview
Balanceando riscos ao negociar múltiplos instrumentos simultaneamente

Balanceando riscos ao negociar múltiplos instrumentos simultaneamente

Este artigo permitirá que um iniciante escreva uma implementação de um script do zero para balancear riscos ao negociar múltiplos instrumentos simultaneamente. Além disso, pode dar aos usuários experientes novas ideias para implementar suas soluções em relação às opções propostas neste artigo.
preview
DoEasy. Controles (Parte 10): Objetos WinForms, dando vida à interface

DoEasy. Controles (Parte 10): Objetos WinForms, dando vida à interface

Chegou a hora de dar vida à interface gráfica e criar funcionalidades para a interação de objetos com o usuário e outros objetos. E para que objetos mais complexos funcionem corretamente, já precisamos que os objetos interajam entre si e interajam com o usuário.
preview
Do básico ao intermediário: Comandos BREAK e CONTINUE

Do básico ao intermediário: Comandos BREAK e CONTINUE

Neste artigo veremos como usar os comando RETURN, BREAK e CONTINUE dentro de um laço. Entender o que cada um destes comandos faz no fluxo de execução de um laço é algo muito importante, para que você consiga trabalhar com aplicações mais elaboradas. O conteúdo exposto aqui, visa e tem como objetivo, pura e simplesmente a didática. De modo algum deve ser encarado como sendo, uma aplicação cuja finalidade não venha a ser o aprendizado e estudo dos conceitos mostrados.
preview
Simplificando a negociação com base em notícias (Parte 1): Criando um Banco de Dados

Simplificando a negociação com base em notícias (Parte 1): Criando um Banco de Dados

A negociação de notícias pode ser complicada e esmagadora. Neste artigo, passaremos pelos passos para obter dados de notícias. Além disso, aprenderemos sobre o Calendário Econômico do MQL5 e o que ele tem a oferecer.
preview
Do básico ao intermediário: Estruturas (VII)

Do básico ao intermediário: Estruturas (VII)

Neste artigo, será mostrado como podemos lidar com problemas de forma a estruturar as coisas, a fim de criar uma solução mais fácil e atrativa. Apesar do conteúdo ser voltado para a didática, não representando assim um código real. Os conceitos e conhecimento vistos aqui, precisam de fato ser muito bem assimilados. Isto para que no futuro, você consiga acompanhar os códigos que iremos mostrar.
preview
Construa Consultores Especialistas Autossustentáveis com MQL5 e Python

Construa Consultores Especialistas Autossustentáveis com MQL5 e Python

Neste artigo, discutiremos como podemos construir Consultores Especialistas capazes de selecionar e mudar autonomamente as estratégias de negociação com base nas condições prevalentes do mercado. Vamos aprender sobre Cadeias de Markov e como elas podem ser úteis para nós, como traders algorítmicos.
preview
Colmeia artificial de abelhas — Artificial Bee Hive Algorithm (ABHA): Teoria e métodos

Colmeia artificial de abelhas — Artificial Bee Hive Algorithm (ABHA): Teoria e métodos

Neste artigo, exploramos o algoritmo Artificial Bee Hive Algorithm (ABHA), desenvolvido em 2009. Voltado para a solução de problemas de otimização contínua, o algoritmo é utilizado para encontrar o melhor caminho entre dois pontos. Analisaremos como o ABHA se inspira no comportamento das colônias de abelhas, no qual cada abelha desempenha um papel único que contribui para uma busca mais eficiente por recursos.
preview
Desenvolvendo um sistema de Replay (Parte 73): Uma comunicação inusitada (II)

Desenvolvendo um sistema de Replay (Parte 73): Uma comunicação inusitada (II)

Neste artigo, veremos como transferir informações em tempo real entre o indicador e o serviço, entender por que podem surgir problemas ao modificar o tempo gráfico e como resolvê-los corretamente. Como bônus, você terá acesso à última versão da aplicação de replay/simulador. O conteúdo é exclusivamente didático e não deve ser considerado como uma aplicação para outros fins.
preview
Uma Formulação Genérica de Otimização (GOF) para Implementar Max Personalizado com Restrições

Uma Formulação Genérica de Otimização (GOF) para Implementar Max Personalizado com Restrições

Neste artigo, apresentaremos uma maneira de implementar problemas de otimização com múltiplos objetivos e restrições ao selecionar "Max Personalizado" na aba Configurações do terminal MetaTrader 5. Como exemplo, o problema de otimização pode ser: Maximizar o Fator de Lucro, o Lucro Líquido e o Fator de Recuperação, de modo que o Drawdown seja inferior a 10%, o número de perdas consecutivas seja inferior a 5, e o número de negociações por semana seja superior a 5.
preview
Análise Múltipla de Símbolos com Python e MQL5 (Parte I): Fabricantes de Circuitos Integrados do NASDAQ

Análise Múltipla de Símbolos com Python e MQL5 (Parte I): Fabricantes de Circuitos Integrados do NASDAQ

Junte-se a nós para discutir como você pode usar IA para otimizar o dimensionamento de posições e a quantidade de ordens, a fim de maximizar o retorno do seu portfólio. Vamos mostrar como identificar, de forma algorítmica, um portfólio ideal e adaptar seu portfólio conforme sua expectativa de retorno ou níveis de tolerância ao risco. Nesta discussão, vamos utilizar a biblioteca SciPy e a linguagem MQL5 para criar um portfólio ideal e diversificado usando todos os dados que temos.
preview
DoEasy. Controles (Parte 12): Objeto base lista, objetos WinForms ListBox e ButtonListBox

DoEasy. Controles (Parte 12): Objeto base lista, objetos WinForms ListBox e ButtonListBox

Neste artigo, criaremos um objeto base para listas de objetos WinForms e dois novos objetos, nomeadamente ListBox e ButtonListBox.
preview
Do básico ao intermediário: Array e Strings (I)

Do básico ao intermediário: Array e Strings (I)

Neste artigo, começaremos a ver alguns tipos especiais de dados. Vamos começar definindo o que seria uma string e como usar alguns procedimentos básicos. Isto para que possamos começar a trabalhar com este tipo que é bem curioso. Apesar de em alguns momentos ser um tanto confuso para iniciantes. O conteúdo exposto aqui, visa e tem como objetivo, pura e simplesmente a didática. De modo algum deve ser encarado como sendo, uma aplicação cuja finalidade não venha a ser o aprendizado e estudo dos conceitos mostrados.
preview
Migrando para o MQL5 Algo Forge (Parte 3): Uso de repositórios de terceiros em seu próprio projeto

Migrando para o MQL5 Algo Forge (Parte 3): Uso de repositórios de terceiros em seu próprio projeto

Vamos analisar como já é possível conectar código de terceiros de qualquer repositório no armazenamento MQL5 Algo Forge ao seu projeto. Neste artigo, finalmente chegamos a uma tarefa promissora, mas também mais complexa: como, na prática, integrar e utilizar em seu projeto bibliotecas de repositórios alheios no MQL5 Algo Forge.
preview
Tipo de desenho DRAW_ARROW em indicadores multissímbolos e multiperíodos

Tipo de desenho DRAW_ARROW em indicadores multissímbolos e multiperíodos

No artigo, vamos considerar o desenho de indicadores multissímbolos e multiperíodos com setas. Aprimoraremos os métodos da classe para a correta exibição das setas, que exibem dados dos indicadores de seta calculados em símbolo/período diferentes do símbolo/período do gráfico atual.
preview
Reimaginando Estratégias Clássicas (Parte VII): Mercados de Forex e Análise da Dívida Soberana no USDJPY

Reimaginando Estratégias Clássicas (Parte VII): Mercados de Forex e Análise da Dívida Soberana no USDJPY

No artigo de hoje, analisaremos a relação entre as taxas de câmbio futuras e os títulos do governo. Os títulos estão entre as formas mais populares de títulos de renda fixa e serão o foco da nossa discussão. Junte-se a nós enquanto exploramos se podemos melhorar uma estratégia clássica usando IA.
preview
Algoritmos de otimização populacionais: evolução de grupos sociais (Evolution of Social Groups, ESG)

Algoritmos de otimização populacionais: evolução de grupos sociais (Evolution of Social Groups, ESG)

Neste artigo, consideraremos o princípio de construção de algoritmos multipopulacionais e, como exemplo desse tipo de algoritmos, analisaremos a Evolução de Grupos Sociais (ESG), um novo algoritmo autoral. Analisaremos os conceitos principais, os mecanismos de interação entre populações e as vantagens desse algoritmo, bem como examinaremos seu desempenho em tarefas de otimização.
preview
Do básico ao intermediário: Indicador (IV)

Do básico ao intermediário: Indicador (IV)

Neste artigo, vermos como é fácil de criar e implementar uma metodologia operacional, visando colorir candles. Sendo este um conceito, que diversos operadores apreciam imensamente. Porém, é preciso se tomar cuidado ao implementar tal tipo de coisa. Isto para que as barras, ou candles, mantenham a sua aparência original. Visando assim não prejudicar a leitura que muitos operadores fazem candle a candle.
preview
Usando PSAR, Heiken Ashi e Aprendizado Profundo Juntos para Operações de Trading

Usando PSAR, Heiken Ashi e Aprendizado Profundo Juntos para Operações de Trading

Este projeto explora a fusão entre aprendizado profundo e análise técnica para testar estratégias de trading no mercado de câmbio (forex). Um script em Python é usado para experimentação rápida, utilizando um modelo ONNX juntamente com indicadores tradicionais como PSAR, SMA e RSI para prever movimentos do par EUR/USD. Um script em MetaTrader 5 então leva essa estratégia para um ambiente ao vivo, usando dados históricos e análise técnica para tomar decisões de trading mais informadas. Os resultados do backtesting indicam uma abordagem cautelosa, porém consistente, com foco em gestão de risco e crescimento estável em vez da busca agressiva por lucros.
preview
Algoritmos de otimização populacionais: algoritmo genético binário (Binary Genetic Algorithm, BGA). Parte I

Algoritmos de otimização populacionais: algoritmo genético binário (Binary Genetic Algorithm, BGA). Parte I

Neste artigo, vamos realizar um estudo sobre vários métodos aplicados em algoritmos genéticos binários e outros algoritmos populacionais. Vamos examinar os componentes principais do algoritmo, como seleção, crossover e mutação, bem como seu impacto no processo de otimização. Além disso, vamos explorar as formas de representação de informações e seu impacto nos resultados de otimização.
preview
Analisando exemplos de estratégias de trading no terminal do cliente

Analisando exemplos de estratégias de trading no terminal do cliente

O artigo examina, com base em diagramas de blocos, a lógica dos Expert Advisors (EAs) educacionais incluídos no terminal, localizados na pasta Experts > Free Robots, que operam com padrões de velas.