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
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
Algoritmos de otimização populacionais: Algoritmo de mudas, semeadura e crescimento (SSG)

Algoritmos de otimização populacionais: Algoritmo de mudas, semeadura e crescimento (SSG)

O algoritmo de “mudas, semeadura e crescimento” (Saplings Sowing and Growing up, SSG) é inspirado em um dos organismos mais resistentes do planeta, um exemplo notável de sobrevivência em inúmeras condições.
preview
Desenvolvendo um sistema de Replay (Parte 39): Pavimentando o Terreno (III)

Desenvolvendo um sistema de Replay (Parte 39): Pavimentando o Terreno (III)

Antes de começarmos a segunda fase de desenvolvimento, é preciso reforçar algumas ideias. Então você sabe como forçar o MQL5 a fazer o que é preciso ser feito ?!?! Já tentou ir além do que a documentação informar ?!?! Se não. Se prepare. Pois irei começar a fazer coisas muito além do que grande parte faz normalmente.
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
Criando um Expert Advisor simples multimoeda usando MQL5 (Parte 2): Sinais do indicador - Parabolic SAR multiframe

Criando um Expert Advisor simples multimoeda usando MQL5 (Parte 2): Sinais do indicador - Parabolic SAR multiframe

Neste artigo, por EA multimoeda, entendemos um robô investidor ou um robô de negociação que pode negociar (abrir/fechar ordens, gerenciar ordens como trailing-stop-loss e trailing profit) mais de um par de moedas em um gráfico. Desta vez, usaremos apenas um indicador, o Parabolic SAR ou iSAR, em vários timeframes, começando com PERIOD_M15 e terminando com PERIOD_D1.
preview
Regressão rede elástica usando descida de coordenadas no MQL5

Regressão rede elástica usando descida de coordenadas no MQL5

Neste artigo, exploraremos a implementação prática da regressão rede elástica (elastic net regularization) para minimizar o sobreajuste e, ao mesmo tempo, separar automaticamente preditores úteis daqueles que possuem pouca força preditiva.
preview
Desenvolvendo um sistema de Replay (Parte 45): Projeto do Chart Trade (IV)

Desenvolvendo um sistema de Replay (Parte 45): Projeto do Chart Trade (IV)

O principal neste artigo, é justamente a apresentação e explicação da classe C_ChartFloatingRAD. Temos o indicador Chart Trade, funcionando de uma maneira bastante interessante. No entanto, se você notará que ainda temos um numero bastante reduzido de objetos no gráfico. E mesmo assim temos exatamente o comportamento esperado. Podendo editar os valores presentes no indicador. A pergunta é: Como isto é possível ?!?! Neste artigo você começará a entender isto.
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
Algoritmos de otimização populacionais: algoritmo de otimização de forrageamento bacteriano (BFO)

Algoritmos de otimização populacionais: algoritmo de otimização de forrageamento bacteriano (BFO)

A base da estratégia de forrageamento de E. coli (E. coli) inspirou cientistas a desenvolverem o algoritmo de otimização BFO. Esse algoritmo apresenta ideias originais e abordagens promissoras para otimização e merece um estudo mais aprofundado.
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
Algoritmos populacionais de otimização: Evolução diferencial (Differential Evolution, DE)

Algoritmos populacionais de otimização: Evolução diferencial (Differential Evolution, DE)

Neste artigo, falaremos sobre o algoritmo que apresenta os resultados mais contraditórios de todos os examinados anteriormente, o de evolução diferencial (DE).
preview
Permutação das barras de preços no MQL5

Permutação das barras de preços no MQL5

Neste artigo, apresentamos um algoritmo de permutação das barras de preços e detalhamos como os testes de permutação podem ser usados para identificar casos em que o desempenho de uma estratégia é inventado com o objetivo de enganar potenciais compradores de Expert Advisors.
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
DoEasy. Controles (Parte 17): Recorte de seções invisíveis de objetos, objetos-botões WinForms auxiliares com setas

DoEasy. Controles (Parte 17): Recorte de seções invisíveis de objetos, objetos-botões WinForms auxiliares com setas

Neste artigo vamos criar funcionalidade para esconder seções de objetos que ultrapassam as margens de seu contêiner e vamos elaborar objetos-botões auxiliares com setas para usá-los como parte de outros objetos WinForms.
preview
DoEasy. Controles (Parte 9): Reorganizando métodos de objetos WinForms, controles "RadioButton" e "Button"

DoEasy. Controles (Parte 9): Reorganizando métodos de objetos WinForms, controles "RadioButton" e "Button"

No artigo de hoje, organizaremos os nomes dos métodos das classes dos objetos WinForms e criaremos os objetos WinForms Button e RadioButton.
preview
Desenvolvendo um agente de Aprendizado por Reforço em MQL5 com Integração RestAPI (Parte 4): Organizando Funções em Classes no MQL5

Desenvolvendo um agente de Aprendizado por Reforço em MQL5 com Integração RestAPI (Parte 4): Organizando Funções em Classes no MQL5

Este artigo examina a transição da codificação procedural para a Programação Orientada a Objetos (POO) no MQL5, com foco na integração com REST APIs. Discutimos como organizar funções de requisições HTTP (GET e POST) em classes, ressaltando vantagens como encapsulamento, modularidade e facilidade de manutenção. A refatoração de código é detalhada, mostrando a substituição de funções isoladas por métodos de classes. O artigo inclui exemplos práticos e testes.
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
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
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 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
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
Algoritmos de otimização populacionais: algoritmo de gotas de água inteligentes (Intelligent Water Drops, IWD)

Algoritmos de otimização populacionais: algoritmo de gotas de água inteligentes (Intelligent Water Drops, IWD)

Neste artigo é analisado um algoritmo interessante chamado de gotas de água inteligentes (IWD), inspirado na natureza inanimada, que simula o processo de formação do leito de um rio. As ideias desse algoritmo permitiram melhorar significativamente o líder anterior da classificação, o SDS, e o novo líder (SDSm modificado), como de costume, pode ser encontrado no arquivo do artigo.
preview
Algoritmos de otimização populacionais: Algoritmo de pesquisa gravitacional (GSA)

Algoritmos de otimização populacionais: Algoritmo de pesquisa gravitacional (GSA)

O GSA é um algoritmo populacional inspirado na natureza inanimada. Sua capacidade de modelar com alta precisão a interação entre corpos físicos, através da lei da gravidade de Newton incorporada no algoritmo, permite contemplar um espetáculo fascinante de dança entre sistemas planetários e aglomerados galácticos, representado de forma impressionante em animações. Hoje vamos discutir um dos algoritmos de otimização mais interessantes e originais. Um simulador de movimento de objetos espaciais está incluído.
preview
DoEasy. Controles (Parte 15): Objeto WinForms TabControl - múltiplas fileiras de cabeçalhos de guias, métodos de manuseio de guias

DoEasy. Controles (Parte 15): Objeto WinForms TabControl - múltiplas fileiras de cabeçalhos de guias, métodos de manuseio de guias

Neste artigo, continuaremos trabalhando no objeto WinForm TabControl, e para tal criaremos a classe do objeto-campo de guia, tornaremos possível colocar cabeçalhos de guias em várias linhas e adicionaremos métodos para trabalhar com as guias do objeto.
preview
Desenvolvendo um sistema de Replay (Parte 47): Projeto do Chart Trade (VI)

Desenvolvendo um sistema de Replay (Parte 47): Projeto do Chart Trade (VI)

Finalmente o Indicador Chart Trade passa a se comunicar com algum Expert Advisor, podendo lançar as informações de modo interativo. Então neste artigo iremos finalizar, o indicador Chart Trade, o tornando funcional a ponto de podermos usá-lo em conjunto com algum Expert Advisor. O que iremos fazer, irá nos permitir, acessar e trabalhar com o indicador, como se ele estivesse de fato ligado ao Expert Advisor. Mas vamos fazer isto de uma maneira, bem mais interessante do que foi feito lá no passado.
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
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
Teoria das Categorias em MQL5 (Parte 4): Intervalos, experimentos e composições

Teoria das Categorias em MQL5 (Parte 4): Intervalos, experimentos e composições

A teoria das categorias representa um segmento diversificado e em constante expansão da matemática, que até agora está relativamente pouco explorado na comunidade MQL5. Esta série de artigos tem como objetivo descrever alguns de seus conceitos a fim de criar uma biblioteca aberta e utilizar ainda mais essa seção notável na criação de estratégias de negociação.
preview
DoEasy. Controles (Parte 25): Objeto WinForms Tooltip

DoEasy. Controles (Parte 25): Objeto WinForms Tooltip

Neste artigo, começaremos a desenvolver o controle Tooltip (dica de ferramenta) e começaremos a criar novas primitivas gráficas para a biblioteca. Naturalmente, nem todo elemento tem uma dica de ferramenta, mas todo objeto gráfico pode ter uma.
preview
Algoritmos de otimização populacionais: otimização de dinâmica espiral (Spiral Dynamics Optimization, SDO)

Algoritmos de otimização populacionais: otimização de dinâmica espiral (Spiral Dynamics Optimization, SDO)

Neste artigo examinaremos a otimização de dinâmica espiral (SDO), um algoritmo de otimização baseado nos padrões de trajetórias espirais presentes na natureza, como nas conchas de moluscos. O algoritmo proposto pelos autores foi completamente repensado e modificado por mim, e o artigo discutirá por que essas mudanças foram necessárias.