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 38): Pavimentando o Terreno (II)

Desenvolvendo um sistema de Replay (Parte 38): Pavimentando o Terreno (II)

Muita gente que se diz programador de MQL5, não tem as bases que estarei apresentando aqui, neste artigo. Muitos consideram o MQL5 algo limitado, mas tudo isto se deve a falta de conhecimento. Então, não fique com vergonha por não saber. Mas tenha vergonha de não perguntar. Mas o simples fato, de forçar, e obrigar o MetaTrader 5 a não permitir que um indicador seja duplicado. Não nos dá de maneira alguma meios de efetivar uma comunicação bilateral entre o indicador e o EA. Ainda estamos um pouco longe disto. Mas o simples fato de que o indicador não estará duplicado no gráfico, já nos garante uma certa tranquilidade.
preview
Desenvolvendo um agente de Aprendizado por Reforço em MQL5.com Integração RestAPI(Parte 2): Funções MQL5 para Interação HTTP com API REST do Jogo da Velha

Desenvolvendo um agente de Aprendizado por Reforço em MQL5.com Integração RestAPI(Parte 2): Funções MQL5 para Interação HTTP com API REST do Jogo da Velha

O artigo detalha como MQL5 pode interagir com Python e FastAPI, usando chamadas HTTP em MQL5 para se comunicar com um jogo da velha em Python. Discute a criação de uma API com FastAPI para essa integração e inclui um script de teste em MQL5, destacando a versatilidade do MQL5, a simplicidade do Python e a eficiência do FastAPI na conexão de diferentes tecnologias para soluções inovadoras.
preview
Desenvolvendo um sistema de Replay (Parte 37): Pavimentando o Terreno (I)

Desenvolvendo um sistema de Replay (Parte 37): Pavimentando o Terreno (I)

Neste artigo iremos começar a fazer algo, que eu gostaria de ter feito a muito mais tempo. No entanto, por falta de "terreno firme", não me sentia seguro para apresentar de forma publica. Mas agora já tenho as bases para poder fazer o que iremos começar a fazer, a partir de agora. É bom que foque ao máximo em compreender o conteúdo deste artigo. E não estou dizendo isto, apenas para que você o leia apenas por ler. Quero e preciso enfatizar que se você não entender este artigo especifico. Poderá abandonar completamente qualquer esperança em compreender o conteúdo dos próximos.
preview
StringFormat(). Visão geral, exemplos de uso prontos

StringFormat(). Visão geral, exemplos de uso prontos

O artigo é uma continuação da revisão da função PrintFormat(). Veremos brevemente a formatação de strings usando StringFormat() e seu uso posterior no programa. Escreveremos modelos para exibir informações sobre um símbolo no log do terminal. Este artigo será útil tanto para iniciantes quanto para desenvolvedores experientes.
preview
Desenvolvendo um sistema de Replay (Parte 36): Ajeitando as coisas (II)

Desenvolvendo um sistema de Replay (Parte 36): Ajeitando as coisas (II)

Uma das coisas que mais pode complicar a nossa vida como programadores é o fato de supor as coisas. Neste artigo mostrarei o perigo de fazer suposições. Tanto na parte da programação em MQL5, onde você supõem que um tipo terá um dado tamanho. Assim como no uso do MetaTrader 5, onde você supõem que servidores diferentes funcionam da mesma forma.
preview
Aprendendo PrintFormat() e obtendo exemplos prontos para uso

Aprendendo PrintFormat() e obtendo exemplos prontos para uso

Este artigo será útil tanto para iniciantes quanto para desenvolvedores experientes. Nele, analisaremos a função PrintFormat(), veremos exemplos de formatação de strings e escreveremos modelos para a exibição de diferentes informações no log do terminal.
preview
Desenvolvendo um sistema de Replay (Parte 35): Ajeitando as coisas (I)

Desenvolvendo um sistema de Replay (Parte 35): Ajeitando as coisas (I)

Temos que corrigir algumas coisas antes de realmente poder continuar. Mas não se trata necessariamente de uma correção e sim de um aperfeiçoamento na forma de gerir e utilizar classe. O motivo é que existem falhas ocorrendo por conta de algum tipo de interação dentro do sistema. Apesar das tentativas de tentar compreender o motivo de algumas das falhas, para assim sana-las. Todas foram frustradas, já que não fazia o mínimo sentido de algumas delas estarem ocorrendo. Quando fazemos uso de ponteiros ou recursão em C / C++, e o programa começa a apresentar falhas.
preview
Desenvolvendo um sistema de Replay (Parte 34): Sistema de Ordens (III)

Desenvolvendo um sistema de Replay (Parte 34): Sistema de Ordens (III)

Vamos neste artigo concluir a primeira fase da construção. Será algo relativamente rápido, mas explicarei detalhes que podem não ter sido comentados no passado. Mas ainda assim aqui explicarei algumas coisas que muitos não entender por que são como são. Um destes casos é o Mouse. Você sabe o motivo de ter que pressionar a tecla Shift ou Ctrl no teclado ?!?!
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
Desenvolvendo um sistema de Replay (Parte 33): Sistema de Ordens (II)

Desenvolvendo um sistema de Replay (Parte 33): Sistema de Ordens (II)

Vamos continuar o desenvolvimento do sistema de ordens. Mas você irá ver que iremos fazer uma reutilização massiva de coisas já vistas em outros artigos. Mesmo assim teremos um bônus neste artigo. Iremos desenvolver, primeiramente um sistema que consiga ser operado junto ao servidor de negociação real, seja usando uma conta demo, seja usando uma conta real. Vamos fazer uso massivo e extensivo da plataforma MetaTrader 5, para nos fornecer todo o suporte do qual precisaremos neste inicio de jornada
preview
Desenvolvendo um sistema de Replay (Parte 32): Sistema de Ordens (I)

Desenvolvendo um sistema de Replay (Parte 32): Sistema de Ordens (I)

De todas as coisas desenvolvidas até aqui. Esta com toda a certeza, vocês também irão notar, e com o tempo irão concordar, que é a mais desafiadora de todas. O que temos de fazer é algo simples. Fazer com que o nosso sistema, simule o que um servidor de negociação efetua na prática. Isto de ter que implementar uma forma de simular, exatamente o que seria feito, pelo servidor de negociação, parece simples. Pelo menos nas palavras. Mas precisamos fazer isto de uma maneira, que para o usuário do sistema de replay / simulação, tudo venha a acontecer, de forma o mais invisível, ou transparente, possível.
DoEasy. Controles (Parte 32): "ScrollBar" horizontal, rolagem com a roda do mouse
DoEasy. Controles (Parte 32): "ScrollBar" horizontal, rolagem com a roda do mouse

DoEasy. Controles (Parte 32): "ScrollBar" horizontal, rolagem com a roda do mouse

Neste artigo, concluiremos o desenvolvimento do funcional do objeto de barra de rolagem horizontal. Vamos habilitar a capacidade de rolar o conteúdo do contêiner movendo o controle deslizante da barra de rolagem e girando a roda do mouse. Além disso, faremos adições à biblioteca para acomodar a nova política de execução de ordens e os novos códigos de erro de tempo de execução no MQL5.
preview
Avaliando modelos ONNX usando métricas de regressão

Avaliando modelos ONNX usando métricas de regressão

A regressão é uma tarefa de prever um valor real a partir de um exemplo não rotulado. Para avaliar a precisão das previsões de modelos de regressão, são utilizadas as chamadas métricas de regressão.
preview
Integrando modelos de ML ao Testador de Estratégias (Conclusão): Implementação de um Modelo de Regressão para Previsão de Preço

Integrando modelos de ML ao Testador de Estratégias (Conclusão): Implementação de um Modelo de Regressão para Previsão de Preço

Este artigo descreve a implementação de um modelo de regressão de árvores de decisão para prever preços de ativos financeiros. Foram realizadas etapas de preparação dos dados, treinamento e avaliação do modelo, com ajustes e otimizações. No entanto, é importante destacar que o modelo é apenas um estudo e não deve ser usado em negociações reais.
preview
Teoria das Categorias em MQL5 (Parte 10): Grupos monoides

Teoria das Categorias em MQL5 (Parte 10): Grupos monoides

Esse artigo é uma continuação da série sobre como implementar a teoria das categorias em MQL5. Nele, consideramos os grupos monoides como um meio de normalizar os conjuntos monoides e permitir uma comparação mais precisa em um espectro mais amplo de conjuntos monoides e tipos de dados.
preview
Representações no domínio da frequência de séries temporais: O espectro de potência

Representações no domínio da frequência de séries temporais: O espectro de potência

Neste artigo, analisaremos os métodos relacionados à análise de séries temporais no domínio da frequência. Ele também se concentrará na utilidade do estudo de funções espectrais de séries temporais na criação de modelos preditivos. Além disso, discutimos algumas perspectivas promissoras para a análise de séries temporais no domínio da frequência usando a transformada discreta de Fourier (DFT).
preview
Implementando um algoritmo de treinamento ARIMA em MQL5

Implementando um algoritmo de treinamento ARIMA em MQL5

Neste artigo, implementaremos um algoritmo que aplica o modelo integrado de autorregressão com média móvel (modelo Box-Jenkins) usando o método de minimização de função de Powell. Box e Jenkins afirmaram que a maioria das séries temporais pode ser modelada usando uma ou ambas das duas estruturas.
preview
Matrizes e vetores em MQL5: funções de ativação

Matrizes e vetores em MQL5: funções de ativação

Neste artigo, descrevemos apenas um aspecto do aprendizado de máquina, em particular as funções de ativação. Em redes neurais artificiais, a função de ativação de neurônio calcula o valor de um sinal de saída com base nos valores de um sinal de entrada ou de um conjunto de sinais de entrada. Vamos mergulhar nos detalhes internos do processo.
preview
Encapsulando modelos ONNX em classes

Encapsulando modelos ONNX em classes

A programação orientada a objetos permite criar códigos mais compactos, fáceis de ler e modificar. Apresentamos um exemplo para três modelos ONNX.
preview
Multibot no MetaTrader: lançando vários robôs a partir de um único gráfico

Multibot no MetaTrader: lançando vários robôs a partir de um único gráfico

Neste artigo, veremos um modelo simples para a criação de um robô universal no MetaTrader que pode ser usado em vários gráficos, mas que é fixado em apenas um gráfico, sem a necessidade de configurar cada instância do robô em cada gráfico individual.
preview
Implementando o fator Janus em MQL5

Implementando o fator Janus em MQL5

Gary Anderson desenvolveu um método de análise de mercado baseado em uma teoria que chamou de fator Janus. Essa teoria descreve um conjunto de indicadores que podem ser usados ​​para identificar tendências e avaliar o risco de mercado. Neste artigo, vamos implementar essas ferramentas no MQL5.
preview
Algoritmos de otimização populacionais: Algoritmo semelhante ao eletromagnetismo (EM)

Algoritmos de otimização populacionais: Algoritmo semelhante ao eletromagnetismo (EM)

O artigo descreve os princípios, os métodos e as possibilidades de aplicação do EM a diferentes problemas de otimização. Ele uma ferramenta de otimização eficiente, capaz de lidar com grandes quantidades de dados e funções multidimensionais.
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
Indicadores baseados na classe CCanvas: Preenchendo canais com transparência

Indicadores baseados na classe CCanvas: Preenchendo canais com transparência

Neste artigo, abordaremos os métodos de criação de indicadores personalizados que são desenhados usando a classe CCanvas da Biblioteca Padrão no MetaTrader 5. Também discutiremos as propriedades dos gráficos para a transformação de coordenadas. Daremos especial atenção aos indicadores que preenchem a área entre duas linhas usando transparência.
preview
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 17): Tiquete e mais tiquetes (I)

Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 17): Tiquete e mais tiquetes (I)

Aqui vamos começar a ver como implementar algo realmente bem interessante e curioso. Mas ao mesmo tempo extremamente complicado por conta de algumas questões que muitos confundem. Mas pior do que as confundir, é o fato de que alguns operadores que se dizem profissionais, não fazem ideia a importância de tais conceitos no mercado de capital. Sim, apesar do foco aqui ser programação, entender algumas questões que envolvem operações em mercados, é de extrema valia para o que iremos começar a implementar aqui.
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 fator de qualidade para os EAs

Desenvolvendo um fator de qualidade para os EAs

Nesse artigo vamos explicar como desenvolver um fator de qualidade para ser retornado pelo seu EA no testador de estratégia. Iremos mostrar duas formas de cálculo conhecidas (Van Tharp e Sunny Harris).
preview
Algoritmos de otimização populacionais: Busca harmônica (Harmony Search, HS)

Algoritmos de otimização populacionais: Busca harmônica (Harmony Search, HS)

Hoje, estudaremos e testaremos o algoritmo de otimização mais avançado, a busca harmônica (HS), que é inspirada no processo de procura da harmonia sonora perfeita. Então, qual algoritmo é agora o líder em nossa classificação?
preview
Redes neurais de retropropagação em matrizes MQL5

Redes neurais de retropropagação em matrizes MQL5

Este artigo trata da teoria e prática do uso do algoritmo de retropropagação de erros no MQL5 através de matrizes. Oferecemos classes prontas e exemplos de scripts, indicadores e EAs.
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
Medindo o valor informativo do Indicador

Medindo o valor informativo do Indicador

O aprendizado de máquina se tornou uma técnica popular de desenvolvimento de estratégias. Na negociação, tradicionalmente, mais atenção é dada à maximização da lucratividade e à precisão das previsões. Enquanto isso, o processamento de dados usado para construir modelos preditivos permanece na periferia. Neste artigo, discutimos o uso do conceito de entropia para avaliar a adequação de indicadores na construção de modelos preditivos, conforme descrito no livro Testing and Tuning Market Trading Systems escrito por Timothy Masters.
preview
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 11): Nascimento do SIMULADOR (I)

Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 11): Nascimento do SIMULADOR (I)

Para poder usar dados que formam barras, precisamos abandonar o replay e começar a desenvolver um simulador. Não sabemos como ela foi criada. Estaremos utilizando as barras de 1 minuto, justamente pelo motivo, de elas nos darem, um nível de complexidade mínimo.
preview
Receitas MQL5 — Banco de dados de eventos macroeconômicos

Receitas MQL5 — Banco de dados de eventos macroeconômicos

Este artigo explora como trabalhar com bancos de dados baseados no mecanismo SQLite. Com o objetivo de oferecer conveniência e utilizar eficientemente os princípios da OOP, foi criada a classe CDatabase. Essa classe é responsável pela criação e gerenciamento de um banco de dados de eventos macroeconômicos. Além disso, são apresentados exemplos de como utilizar diferentes métodos da classe CDatabase.
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 10): Usando apenas dados reais na replay
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 10): Usando apenas dados reais na replay

Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 10): Usando apenas dados reais na replay

Aqui vamos ver como você pode utilizar dados mais fieis ( tickets negociados ) no sistema de replay, sem necessariamente ter que se preocupar se eles estão ou não ajustados.
preview
Desenvolvimento de uma DLL experimental com suporte a multithreading em C++ para MetaTrader 5 no Linux

Desenvolvimento de uma DLL experimental com suporte a multithreading em C++ para MetaTrader 5 no Linux

Este artigo descreve o processo de desenvolvimento para a plataforma MetaTrader 5 exclusivamente em Linux. O produto final funciona tanto no Windows quanto no Linux sem nenhum problema. Veremos o Wine e o Mingw, ferramentas importantes para o desenvolvimento entre plataformas. O Mingw apresenta threads (POSIX e Win32), que você deve levar em conta ao escolher uma ferramenta adequada. Criaremos também uma DLL para testar o conceito e usá-la no código MQL5, comparando o desempenho das duas implementações de threading. O artigo tem como objetivo ser um ponto de partida para a realização de seus próprios experimentos. Depois de ler este artigo, você será capaz de criar ferramentas para o MetaTrader no Linux.
preview
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 09): Eventos Customizados

Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 09): Eventos Customizados

Aqui vamos ver como disparar eventos customizados e melhorar a questão sobre como o indicador informa o status do serviço de replay/simulação.
preview
Algoritmos de otimização populacionais: Otimização de ervas invasivas (IWO)

Algoritmos de otimização populacionais: Otimização de ervas invasivas (IWO)

A surpreendente capacidade das plantas daninhas de sobreviver em uma ampla variedade de condições foi a inspiração para o desenvolvimento de um poderoso algoritmo de otimização. O IWO (Invasive Weed Optimization) é considerado um dos melhores entre os analisados até o momento.
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
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 08): Travando o Indicador

Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 08): Travando o Indicador

Aqui vou mostrar como travar um indicador, usando pura e simplesmente a linguagem MQL5, de uma forma muito interessante e surpreendente.
preview
Algoritmos de otimização populacionais: Algoritmo do morcego

Algoritmos de otimização populacionais: Algoritmo do morcego

Hoje estudaremos o algoritmo do morcego (Bat algorithm, BA), que possui convergência incrível em funções suaves.