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
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
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 23): apurando os objetos WinForms TabControl e SplitContainer

DoEasy. Controles (Parte 23): apurando os objetos WinForms TabControl e SplitContainer

Neste artigo, incluiremos novos eventos de mouse relacionados aos limites das áreas de trabalho dos objetos WinForms e corrigiremos algumas falhas na funcionalidade dos controles TabControl e SplitContainer.
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 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
DoEasy. Controles (Parte 20): Objeto WinForms SplitContainer

DoEasy. Controles (Parte 20): Objeto WinForms SplitContainer

Hoje começaremos a desenvolver o controle SplitContainer a partir da caixa de ferramentas do MS Visual Studio. Este elemento consiste em dois painéis separados por um separador móvel vertical ou horizontal.
preview
Simulação de mercado (Parte 11): Sockets (V)

Simulação de mercado (Parte 11): Sockets (V)

Vamos começar a implementar a comunicação entre o Excel e o MetaTrader 5. Mas antes é preciso entender algumas coisas importantes. Isto para que não venha a ficar coçando a cabeça tentando entender por que as coisas funcionam ou não. Mas antes que você venha a torcer o nariz para a integração entre o Python e o Excel. Vamos ver como podemos usar o xlwings, a fim de poder controlar de alguma forma o MetaTrader 5. Isto através do Excel. O que irei mostrar aqui será como foco principal a didática. Não ache que podemos fazer apenas o que mostrarei.
preview
Teoria das Categorias em MQL5 (Parte 11): Grafos

Teoria das Categorias em MQL5 (Parte 11): Grafos

Esse artigo é uma continuação da série sobre como implementar a teoria das categorias no MQL5. Aqui consideramos como a teoria dos grafos pode ser integrada com monoides e outras estruturas de dados ao desenvolver uma estratégia para fechar um sistema de negociação.
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
Algoritmos de otimização populacionais: Algoritmo de evolução da mente (Mind Evolutionary Computation, MEC)

Algoritmos de otimização populacionais: Algoritmo de evolução da mente (Mind Evolutionary Computation, MEC)

Este artigo discute um algoritmo da família MEC, denominado algoritmo simples de evolução da mente (Simple MEC, SMEC). O algoritmo se destaca pela beleza da ideia subjacente e pela simplicidade de implementação.
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
Desenvolvendo um sistema de Replay (Parte 77): Um novo Chart Trade (IV)

Desenvolvendo um sistema de Replay (Parte 77): Um novo Chart Trade (IV)

Neste artigo, explicarei alguns detalhes e cuidados que você teve tomar quando for criar um protocolo de comunicação. São coisas bem básicas e simples. Não irei de fato pegar pesado neste artigo. Mas é preciso que você entenda o conteúdo deste artigo para entender o que acontecerá no receptor.
preview
DoEasy. Controles (Parte 5): Objeto base WinForms, controle Painel, parâmetro AutoSize

DoEasy. Controles (Parte 5): Objeto base WinForms, controle Painel, parâmetro AutoSize

Neste artigo, criaremos um objeto que serve de base para todos os objetos WinForms da biblioteca e começaremos a preparar a propriedade AutoSize do objeto WinForms "Painel", que dimensiona automaticamente o objeto de acordo com seu conteúdo.
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
Gráficos na biblioteca DoEasy (Parte 100): Eliminando bugs ao trabalhar com objetos gráficos padrão estendidos

Gráficos na biblioteca DoEasy (Parte 100): Eliminando bugs ao trabalhar com objetos gráficos padrão estendidos

Hoje vamos retocar e eliminar falhas evidentes ao trabalhar com objetos gráficos estendidos (e padrão) e com objetos-formas na tela, além disso vamos consertar os erros observados durante os testes no último artigo. E assim vamos concluir esta seção da descrição da biblioteca.
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
Fatorando Matrizes — Uma modelagem mais prática

Fatorando Matrizes — Uma modelagem mais prática

Muito provavelmente você não tenha se dado conta, que a modelagem das matrizes estava um tanto quanto estranha. Já que não havia a indicação de linhas e colunas, mas apenas indicações de colunas. O que é muito estranho, quando se está lendo um código, que faz fatorações de matrizes. E se você estava esperando ver linhas e colunas sendo indicadas. Pode acabar ficando bastante confuso, no momento de tentar implementar a fatoração. Além do mais, aquela forma de modelar as matrizes, não é nem de longe a melhor maneira. Isto por que, quando modelamos matrizes daquela maneira, passamos a ter uma certa limitação, que nos obriga a usar outras técnicas, ou funções, que não seriam de fato necessárias. Isto quando a modelagem é feita de uma maneira um pouco mais adequada.
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

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
Algoritmos de otimização populacional: sistema imune micro-artificial (Micro Artificial Immune System, Micro-AIS)

Algoritmos de otimização populacional: sistema imune micro-artificial (Micro Artificial Immune System, Micro-AIS)

Este artigo fala sobre um método de otimização baseado nos princípios de funcionamento do sistema imunológico do organismo — Micro Artificial Immune System (Micro-AIS) — uma modificação do AIS. O Micro-AIS utiliza um modelo mais simples do sistema imunológico e operações mais simples de processamento de informações imunológicas. O artigo também aborda as vantagens e desvantagens do Micro-AIS em comparação com o AIS tradicional.
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
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
Criando um Painel de Administração de Trading em MQL5 (Parte VI): Interface de Funções Múltiplas (I)

Criando um Painel de Administração de Trading em MQL5 (Parte VI): Interface de Funções Múltiplas (I)

O papel do Administrador de Trading vai além das comunicações via Telegram; ele também pode realizar várias atividades de controle, incluindo gerenciamento de ordens, acompanhamento de posições e personalização da interface. Neste artigo, compartilharemos insights práticos sobre como expandir nosso programa para suportar múltiplas funcionalidades em MQL5. Esta atualização tem como objetivo superar a limitação atual do Painel de Administração de se concentrar principalmente na comunicação, permitindo que ele lide com uma gama mais ampla de tarefas.
preview
Do básico ao intermediário: Passagem por valor ou por referência

Do básico ao intermediário: Passagem por valor ou por referência

Neste artigo você entenderá na prática a diferença entre passagem por valor e passagem por referência. Apesar de ser algo aparentemente simples e que não causa problemas. Muitos programadores com uma boa carga de experiência costumam tomar verdadeiras surras de seus códigos, justamente por conta deste pequeno detalhe. Saber quando, como e porque usar uma passagem por valor ou uma passagem por referência, fará grande diferença na sua vida como programador. 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
Reimaginando Estratégias Clássicas (Parte II): Rompimentos das Bandas de Bollinger

Reimaginando Estratégias Clássicas (Parte II): Rompimentos das Bandas de Bollinger

Este artigo explora uma estratégia de trading que integra a Análise Discriminante Linear (LDA) com Bandas de Bollinger, aproveitando previsões de zonas categóricas para gerar sinais estratégicos de entrada no mercado.
preview
Construindo Expert Advisors Auto-otimizantes Com MQL5 E Python (Parte II): Ajustando Redes Neurais Profundas

Construindo Expert Advisors Auto-otimizantes Com MQL5 E Python (Parte II): Ajustando Redes Neurais Profundas

Modelos de aprendizado de máquina vêm com vários parâmetros ajustáveis. Nesta série de artigos, exploraremos como personalizar seus modelos de IA para se ajustar ao seu mercado específico utilizando a biblioteca SciPy.
preview
Aprendendo MQL5 do iniciante ao profissional (Parte VI):  Fundamentos da criação de EAs

Aprendendo MQL5 do iniciante ao profissional (Parte VI): Fundamentos da criação de EAs

O artigo dá continuidade à série para iniciantes. Aqui serão abordados os princípios básicos da construção de EAs. Primeiro, criaremos um EA que operará sem indicadores, usando ordens pendentes, depois, criaremos um segundo EA, baseado no indicador padrão MA, operando com ordens a preço atual. Parto do princípio de que você já não é totalmente iniciante e domina o material dos artigos anteriores.
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
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
Análise pós-fato da negociação: ajustando TrailingStop e novos stops no testador de estratégias

Análise pós-fato da negociação: ajustando TrailingStop e novos stops no testador de estratégias

Seguimos com o tema da análise de negociações realizadas no testador de estratégias para melhorar a qualidade da negociação. Vamos verificar como o uso de diferentes métodos de trailing pode alterar os resultados de negociação já obtidos.
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
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 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
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
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
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
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
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
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
Introdução ao Connexus (Parte 1): Como usar a função WebRequest?

Introdução ao Connexus (Parte 1): Como usar a função WebRequest?

Este artigo é o início de uma série de desenvolvimentos para uma biblioteca chamada “Connexus”, que tem como objetivo facilitar requisições HTTP com MQL5. O objetivo deste projeto é fornecer ao usuário final essa oportunidade e mostrar como usar esta biblioteca auxiliar. Eu procurei torná-lo o mais simples possível para facilitar o estudo e proporcionar a possibilidade de futuros desenvolvimentos.