Artigos sobre programação na linguagem MQL5

icon

Leia os artigos publicados aqui para aprender MQL5, a linguagem das estratégias de negociação. A maioria desses artigos foi escrita por vocês, membros da MQL5.community. Todos eles estão divididos em categorias para encontrar respostas rápidas relacionadas a aspectos específicos da programação: "Integração", "Testador", "Estratégias de negociação" e muito mais.

Acompanhe as novas publicações e participe de suas discussões no Fórum!

Novo artigo
recentes | melhores
preview
Criando um Expert Advisor simples multimoeda usando MQL5 (Parte 3): Prefixos/sufixos de símbolos e sessão de negociação

Criando um Expert Advisor simples multimoeda usando MQL5 (Parte 3): Prefixos/sufixos de símbolos e sessão de negociação

Recebi comentários de vários colegas traders sobre como usar o Expert Advisor multimoedas que estou analisando com corretoras que usam prefixos e/ou sufixos com nomes de símbolos, bem como sobre como implementar fusos horários de negociação ou sessões de negociação no Expert Advisor.
preview
Estratégia de trading "Captura de Liquidez" (Liquidity Grab)

Estratégia de trading "Captura de Liquidez" (Liquidity Grab)

A estratégia de captura de liquidez é um componente-chave do Smart Money Concepts (SMC), que visa identificar e aproveitar as ações dos participantes institucionais no mercado. Ela envolve mirar áreas de alta liquidez, como zonas de suporte ou resistência, onde ordens de grande volume podem provocar um movimento de preço antes que o mercado retome sua tendência. Este artigo explica em detalhes o conceito de captura de liquidez e descreve o processo de desenvolvimento de um EA para a estratégia de captura de liquidez em MQL5.
preview
EA de grid-hedge modificado em MQL5 (Parte III): Otimização de uma estratégia de cobertura simples (I)

EA de grid-hedge modificado em MQL5 (Parte III): Otimização de uma estratégia de cobertura simples (I)

Na terceira parte, retornamos aos EAs Simple Hedge e Simple Grid, desenvolvidos anteriormente. Agora, vamos melhorar o Simple Hedge EA por meio de análise matemática e abordagem de força bruta (brute force) com o objetivo de otimizar o uso da estratégia. Este artigo se aprofunda na otimização matemática da estratégia, estabelecendo a base para a futura pesquisa de otimização baseada em código nas partes seguintes.
preview
Redes neurais em trading: Resultados práticos do método TEMPO

Redes neurais em trading: Resultados práticos do método TEMPO

Damos continuidade à exploração do método TEMPO. Neste artigo, avaliaremos a eficácia prática das abordagens propostas com base em dados históricos reais.
preview
Introdução ao MQL5 (Parte 4): Estruturas, classes e funções de tempo

Introdução ao MQL5 (Parte 4): Estruturas, classes e funções de tempo

Nesta série, continuamos a desvendar os segredos da programação. No novo artigo, vamos estudar as bases das estruturas, classes e funções de tempo e adquirir novas habilidades para programação eficiente. Este guia pode ser útil não apenas para iniciantes, mas também para desenvolvedores experientes, pois simplifica conceitos complexos, fornecendo informações valiosas para dominar o MQL5. Continue aprendendo coisas novas, aperfeiçoe suas habilidades de programação e domine o mundo da negociação algorítmica.
preview
Data Science e Machine Learning (Parte 21): Desvendando Redes Neurais, Algoritmos de Otimização Desmistificados

Data Science e Machine Learning (Parte 21): Desvendando Redes Neurais, Algoritmos de Otimização Desmistificados

Mergulhe no coração das redes neurais enquanto desmistificamos os algoritmos de otimização usados dentro das redes neurais. Neste artigo, descubra as principais técnicas que desbloqueiam todo o potencial das redes neurais, impulsionando seus modelos a novos patamares de precisão e eficiência.
preview
Experimentos com redes neurais (Parte 4): Padrões

Experimentos com redes neurais (Parte 4): Padrões

As redes neurais são tudo para nós. E vamos verificar na prática se é assim, indagando se MetaTrader 5 é uma ferramenta autossuficiente para implementar redes neurais na negociação. A explicação vai ser simples.
preview
Algoritmo baseado em fractais - Fractal-Based Algorithm (FBA)

Algoritmo baseado em fractais - Fractal-Based Algorithm (FBA)

Um novo método metaheurístico baseado na abordagem fractal de divisão do espaço de busca para resolver tarefas de otimização. O algoritmo identifica e divide sequencialmente áreas promissoras, criando uma estrutura fractal auto-semelhante que concentra os recursos computacionais nos trechos mais promissores. Um mecanismo exclusivo de mutação, direcionado para as melhores soluções, garante um equilíbrio ideal entre diversificação e intensificação do espaço de busca, aumentando significativamente a eficiência do algoritmo.
preview
Redes neurais de maneira fácil (Parte 35): Módulo de curiosidade intrínseca

Redes neurais de maneira fácil (Parte 35): Módulo de curiosidade intrínseca

Continuamos a explorar algoritmos de aprendizado por reforço. Todos os algoritmos que analisamos até agora exigiam a criação de uma política de recompensa de tal forma que o agente pudesse avaliar cada uma de suas ações em cada transição de um estado do sistema para outro. No entanto, essa abordagem é bastante artificial. Na prática, existe um intervalo de tempo entre a ação e a recompensa. Neste artigo, proponho que você se familiarize com um algoritmo de aprendizado de modelo capaz de lidar com diferentes atrasos temporais entre a ação e a recompensa.
preview
Integração de Modelos Ocultos de Markov no MetaTrader 5

Integração de Modelos Ocultos de Markov no MetaTrader 5

Neste artigo, demonstramos como os Modelos Ocultos de Markov, treinados utilizando Python, podem ser integrados em aplicações MetaTrader 5. Os Modelos Ocultos de Markov são uma poderosa ferramenta estatística utilizada para modelar dados de séries temporais, onde o sistema modelado é caracterizado por estados não observáveis (ocultos). Uma premissa fundamental dos HMMs é que a probabilidade de estar em um determinado estado em um momento específico depende do estado do processo no instante anterior.
Gráficos na biblioteca DoEasy (Parte 91): eventos de objetos gráficos padrão no programa Histórico de alterações de nome do objeto
Gráficos na biblioteca DoEasy (Parte 91): eventos de objetos gráficos padrão no programa Histórico de alterações de nome do objeto

Gráficos na biblioteca DoEasy (Parte 91): eventos de objetos gráficos padrão no programa Histórico de alterações de nome do objeto

No artigo, modificaremos a funcionalidade básica para fornecer controle de eventos de objetos gráficos a partir de um programa baseado na biblioteca. Vamos começar criando uma funcionalidade para armazenar o histórico de alterações das propriedades dos objetos gráficos usando a propriedade "Nome do objeto" como exemplo.
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
DoEasy. Controles (Parte 8): Objetos básicos do WinForms por categoria, controles GroupBox e CheckBox

DoEasy. Controles (Parte 8): Objetos básicos do WinForms por categoria, controles GroupBox e CheckBox

Neste artigo, veremos como criar dois objetos WinForms, especificamente GroupBox e CheckBox, e também geraremos objetos básicos para categorias de objetos WinForms. Todos os objetos criados ainda são estáticos, ou seja, não possuem a funcionalidade de interação com o mouse.
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
DoEasy. Controles (Parte 7): Controle "Rótulo"

DoEasy. Controles (Parte 7): Controle "Rótulo"

Neste artigo, criaremos a classe do objeto de controle WinForms "Rótulo". Tal objeto poderá ser posicionado em qualquer lugar de seu contêiner, e sua respectiva funcionalidade replicará parte da funcionalidade do rótulo de texto do MS Visual Studio, para que possamos definir parâmetros de fonte para o texto exibido.
preview
Redes neurais de maneira fácil (Parte 22): Aprendizado não supervisionado de modelos recorrentes

Redes neurais de maneira fácil (Parte 22): Aprendizado não supervisionado de modelos recorrentes

Continuamos a estudar algoritmos de aprendizado não supervisionado. E agora proponho discutir as particularidades por trás do uso de autocodificadores para treinar modelos recorrentes.
Algoritmos de otimização populacional
Algoritmos de otimização populacional

Algoritmos de otimização populacional

Este é um artigo introdutório sobre a classificação do algoritmo de otimização (OA). O artigo tenta criar um banco de teste (um conjunto de funções), que deve ser usado para comparar os OAs e, talvez, identificar o algoritmo mais universal de todos os que são amplamente conhecidos.
preview
Padrões de projeto no MQL5 (Parte I): Padrões criacionais (creational patterns)

Padrões de projeto no MQL5 (Parte I): Padrões criacionais (creational patterns)

Existem métodos que podem ser usados para resolver problemas típicos. Depois de entender como usar esses métodos, você pode então escrever programas de maneira prática e aplicar o conceito DRY ("Don't Repeat Yourself" - "Não se Repita"). Neste contexto, os padrões de projeto são extremamente úteis, pois apresentam soluções para problemas bem descritos e recorrentes.
preview
Teoria das Categorias em MQL5 (Parte 3)

Teoria das Categorias em MQL5 (Parte 3)

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 sequência de artigos visa elucidar algumas das suas concepções com o intuito de constituir uma biblioteca aberta e potencializar ainda mais o uso deste notável setor na elaboração de estratégias de negociação.
preview
Simulação de mercado (Parte 01): Cross Order (I)

Simulação de mercado (Parte 01): Cross Order (I)

Deste artigo em diante iniciaremos a fase dois, na questão sobre replay / simulação de mercado. Então aqui vamos começar mostrando uma possível solução para fazer cruzamento de ordens. Esta solução que mostrarei, não é uma solução definitiva. Ela é apenas uma proposta de solução para o problema que ainda será preciso abordar em breve.
preview
Implementando uma Estratégia de Negociação com Bandas de Bollinger usando MQL5: Um Guia Passo a Passo

Implementando uma Estratégia de Negociação com Bandas de Bollinger usando MQL5: Um Guia Passo a Passo

Um guia passo a passo para implementar um algoritmo de negociação automatizado em MQL5 baseado na estratégia de Bandas de Bollinger. Um tutorial detalhado sobre a criação de um Expert Advisor que pode ser útil para traders.
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
Desenvolvendo um EA multimoeda (Parte 4): Ordens virtuais pendentes e salvamento de estado

Desenvolvendo um EA multimoeda (Parte 4): Ordens virtuais pendentes e salvamento de estado

Ao começar a desenvolver um EA multimoeda, já alcançamos alguns resultados e realizamos várias iterações de melhoria do código. No entanto, nosso EA não podia trabalhar com ordens pendentes e retomar o trabalho após reiniciar o terminal. Vamos adicionar essas funcionalidades.
preview
Desenvolvendo um sistema de Replay (Parte 70): Acertando o tempo (III)

Desenvolvendo um sistema de Replay (Parte 70): Acertando o tempo (III)

Neste artigo mostrarei a maneira correta e funcional de usar a função CustomBookAdd. Apesar de parecer se algo simples, fazer isto tem muitas implicações. Entre elas permitir que digamos ao indicador de mouse, se o ativo customizado está em leilão; Em negociação, ou o mercado está fechado. 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
Teoria das Categorias em MQL5 (Parte 6): produtos fibrados monomórficos e coprodutos fibrados epimórficos

Teoria das Categorias em MQL5 (Parte 6): produtos fibrados monomórficos e coprodutos fibrados epimórficos

A teoria das categorias é um ramo diversificado e em expansão da matemática que só recentemente começou a ser abordado na comunidade MQL5. Esta série de artigos tem como objetivo analisar alguns de seus conceitos para criar uma biblioteca aberta e utilizar ainda mais essa maravilhosa seção na criação de estratégias de negociação.
preview
Redes neurais de maneira fácil (Parte 49): Soft Actor-Critic (SAC)

Redes neurais de maneira fácil (Parte 49): Soft Actor-Critic (SAC)

Continuamos nossa exploração dos algoritmos de aprendizado por reforço na resolução de problemas em espaços de ação contínua. Neste artigo, apresento o algoritmo Soft Actor-Critic (SAC). A principal vantagem do SAC está em sua capacidade de encontrar políticas ótimas que não apenas maximizam a recompensa esperada, mas também têm a máxima entropia (diversidade) de ações.
preview
Usando algoritmos de otimização para configurar parâmetros de EA em tempo real

Usando algoritmos de otimização para configurar parâmetros de EA em tempo real

O artigo discute os aspectos práticos do uso de algoritmos de otimização para encontrar os melhores parâmetros de EA em tempo real, bem como a virtualização das operações de negociação e da lógica do EA. O artigo pode ser usado como instrução para implementar algoritmos de otimização em um EA.
preview
Ciência de Dados e ML (Parte 26): A Batalha Definitiva em Previsão de Séries Temporais — Redes Neurais LSTM vs GRU

Ciência de Dados e ML (Parte 26): A Batalha Definitiva em Previsão de Séries Temporais — Redes Neurais LSTM vs GRU

No artigo anterior, discutimos uma RNN simples que, apesar de sua incapacidade de entender dependências de longo prazo nos dados, conseguiu desenvolver uma estratégia lucrativa. Neste artigo, discutiremos tanto a Memória de Longo e Curto Prazo (LSTM) quanto a Unidade Recorrente com Portões (GRU). Essas duas redes foram introduzidas para superar as limitações de uma RNN simples e superá-la.
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
Indicador de posições históricas no gráfico em forma de diagrama de lucro/prejuízo

Indicador de posições históricas no gráfico em forma de diagrama de lucro/prejuízo

Vamos falar sobre como obter informações sobre posições fechadas usando o histórico de negociações. Vamos criar um indicador simples que mostra um diagrama aproximado de lucro/prejuízo das posições em cada barra.
preview
Usando o Algoritmo de Aprendizado de Máquina PatchTST para Prever a Ação do Preço nas Próximas 24 Horas

Usando o Algoritmo de Aprendizado de Máquina PatchTST para Prever a Ação do Preço nas Próximas 24 Horas

Neste artigo, aplicamos um algoritmo relativamente complexo de rede neural chamado PatchTST, lançado em 2023, para prever a ação do preço nas próximas 24 horas. Usaremos o repositório oficial, faremos algumas modificações, treinaremos um modelo para EURUSD e o aplicaremos para fazer previsões futuras, tanto em Python quanto em MQL5.
preview
Desenvolvendo um sistema de Replay (Parte 69): Acertando o tempo (II)

Desenvolvendo um sistema de Replay (Parte 69): Acertando o tempo (II)

Aqui vamos entender, por que estamos precisamos usar a chamada iSpread. Ao mesmo tempo, vamos entender como o sistema consegue nos informar o tempo restante da barra, quando não temos ticks a serem usados para fazer tal coisa. 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: Definições (II)

Do básico ao intermediário: Definições (II)

Neste artigo iremos ver e explorar um pouco mais sobre a diretiva #define. Só que agora com o foco voltado para a segunda forma de utilização desta diretiva. Ou seja, a criação de macros. Como sei que este material pode vir a ser um pouco complicado no começo. Procurei utilizar uma aplicação que já vem sendo explorada a algum tempo. Então espero que se divirtam com o conteúdo deste artigo.
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
Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 07): Dendrogramas

Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 07): Dendrogramas

A classificação de dados para análise e previsão é uma área muito diversificada do aprendizado de máquina, que compreende um grande número de abordagens e métodos. Neste artigo, examinaremos uma dessas abordagens, nomeadamente o agrupamento hierárquico aglomerativo (Agglomerative Hierarchical Clustering).
preview
Criando um painel dinâmico multissímbolo e multiperíodo do Índice de Força Relativa (RSI) em MQL5

Criando um painel dinâmico multissímbolo e multiperíodo do Índice de Força Relativa (RSI) em MQL5

Este artigo aborda o desenvolvimento de um painel dinâmico multissímbolo e multiperíodo do indicador RSI em MQL5. O painel tem como objetivo fornecer aos traders os valores do RSI em tempo real para diferentes símbolos e períodos gráficos. Ele será equipado com botões interativos, atualizações em tempo real e indicadores de cores para ajudar os traders a tomarem decisões informadas.
preview
Redes neurais de maneira fácil (Parte 30): Algoritmos genéticos

Redes neurais de maneira fácil (Parte 30): Algoritmos genéticos

Hoje quero apresentar-lhes um método de aprendizado um pouco diferente. Pode-se dizer que é emprestado da teoria da evolução de Darwin. É provavelmente menos controlável do que os métodos discutidos anteriormente. Mas, mesmo assim, permite também treinar modelos indiferenciados.
preview
Introdução ao MQL5 (Parte 8): Guia do Iniciante para Construção de Expert Advisors (II)

Introdução ao MQL5 (Parte 8): Guia do Iniciante para Construção de Expert Advisors (II)

Este artigo aborda perguntas comuns de iniciantes nos fóruns de MQL5 e apresenta soluções práticas. Aprenda a realizar tarefas essenciais, como comprar e vender, obter preços de velas e gerenciar aspectos de negociação automatizada, como limites de operações, períodos de negociação e limites de lucro/perda. Receba orientações passo a passo para aprimorar sua compreensão e implementação desses conceitos no MQL5.
preview
Redes neurais de maneira fácil (Parte 48): métodos para reduzir a superestimação dos valores da função Q

Redes neurais de maneira fácil (Parte 48): métodos para reduzir a superestimação dos valores da função Q

No artigo anterior, nós exploramos o método DDPG, projetado para treinar modelos em espaços de ação contínua. No entanto, como outros métodos de aprendizado Q, ele está sujeito ao problema da sobreavaliação dos valores da função Q. Esse problema geralmente leva eventualmente ao treinamento de um agente com uma estratégia não otimizada. Neste artigo, examinaremos algumas abordagens para superar o problema mencionado.
preview
Abordagem quantitativa na gestão de riscos: aplicação do modelo VaR para otimização de portfólio multimoeda com Python e MetaTrader 5

Abordagem quantitativa na gestão de riscos: aplicação do modelo VaR para otimização de portfólio multimoeda com Python e MetaTrader 5

Neste artigo, revelamos o potencial do modelo Value at Risk (VaR) para a otimização de portfólios multimoeda. Utilizando o Python e as funcionalidades do MetaTrader 5, demonstramos como implementar a análise VaR para uma distribuição eficiente de capital e gerenciamento de posições. Desde os fundamentos teóricos até a implementação prática, o artigo abrange todos os aspectos da aplicação de um dos sistemas mais robustos de cálculo de risco — o VaR — no trading algorítmico.