Artigos sobre programação nas linguagens MQL4 e 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
Reconhecimento de Padrões Usando Dynamic Time Warping em MQL5

Reconhecimento de Padrões Usando Dynamic Time Warping em MQL5

Neste artigo, discutimos o conceito de dynamic time warping como uma forma de identificar padrões preditivos em séries temporais financeiras. Veremos como ele funciona e também apresentaremos sua implementação em MQL5 puro.
preview
Redes neurais em trading: Abordagem sem máscara para previsão do movimento de preços

Redes neurais em trading: Abordagem sem máscara para previsão do movimento de preços

Neste artigo, apresentamos o método Mask-Attention-Free Transformer (MAFT) e sua aplicação na área de trading. Ao contrário dos Transformers tradicionais, que exigem mascaramento de dados ao processar sequências, o MAFT otimiza o processo de atenção, eliminando a necessidade de mascaramento, o que melhora significativamente a eficiência computacional.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 50): Awesome Oscillator

Técnicas do MQL5 Wizard que você deve conhecer (Parte 50): Awesome Oscillator

O Awesome Oscillator é outro indicador de Bill Williams que é usado para medir o momentum. Ele pode gerar múltiplos sinais e, portanto, revisamos estes com base em padrões, como em artigos anteriores, aproveitando as classes e a montagem do MQL5 wizard.
preview
Algoritmo de otimização Royal Flush — Royal Flush Optimization (RFO)

Algoritmo de otimização Royal Flush — Royal Flush Optimization (RFO)

O algoritmo Royal Flush Optimization, criado pelo autor, propõe uma nova forma de abordar problemas de otimização, substituindo a codificação binária clássica dos algoritmos genéticos por uma abordagem setorial, inspirada nos princípios do pôquer. O RFO demonstra como a simplificação de princípios fundamentais pode levar à criação de um método de otimização eficaz e prático. O artigo apresenta uma análise detalhada do algoritmo e os resultados dos testes realizados.
preview
Como funções de cem anos atrás podem atualizar suas estratégias de trading

Como funções de cem anos atrás podem atualizar suas estratégias de trading

Neste artigo, vamos falar sobre as funções de Rademacher e Walsh. Vamos explorar formas de aplicar essas funções na análise de séries temporais financeiras, além de considerar diferentes maneiras de usá-las no trading.
preview
Do básico ao intermediário: Template e Typename (IV)

Do básico ao intermediário: Template e Typename (IV)

Aqui neste artigo, iremos ver de forma bem didática, como resolver um problema que foi demonstrado no final do artigo anterior. Onde estaríamos tentando fazer com que um template de tipo fosse criado, a fim de que fosse possível criar um template de uma união de dados.
preview
Do básico ao intermediário: Estruturas (V)

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

Neste artigo veremos como é feita a sobrecarga de um código estrutural. Sei que isto, é um tanto quanto difícil de entender no começo. Principalmente se você está vendo isto pela primeira vez. Porém, é muito importante que você procure assimilar estes conceitos e entender muito bem o que se passa aqui, antes de procurar se aventurar em coisas ainda mais complicadas e elaboradas.
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
Algoritmo de busca orbital atômica — Atomic Orbital Search (AOS): Modificação

Algoritmo de busca orbital atômica — Atomic Orbital Search (AOS): Modificação

Na segunda parte do artigo, continuaremos o desenvolvimento da versão modificada do algoritmo AOS (Atomic Orbital Search), focando em operadores específicos para aumentar sua eficiência e adaptabilidade. Após analisar as bases e mecânicas do algoritmo, discutiremos ideias para melhorar o desempenho e a capacidade de análise de espaços de soluções complexos, propondo novas abordagens para expandir sua funcionalidade como ferramenta de otimização.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 22): GANs Condicionais

Técnicas do MQL5 Wizard que você deve conhecer (Parte 22): GANs Condicionais

Redes Generativas Adversariais são uma combinação de Redes Neurais que treinam entre si para obter resultados mais precisos. Adotamos o tipo condicional dessas redes ao buscarmos uma possível aplicação na previsão de séries temporais financeiras dentro de uma Classe de Sinais de Expert.
preview
Desenvolvendo um EA multimoeda (Parte 20): Organizando o pipeline de etapas de otimização automática de projetos (I)

Desenvolvendo um EA multimoeda (Parte 20): Organizando o pipeline de etapas de otimização automática de projetos (I)

Já criamos diversos componentes que facilitam o processo de otimização automática. Durante sua criação, seguimos a ciclicidade tradicional: desde a criação do código funcional mínimo até a refatoração e a obtenção de um código melhorado. Agora é hora de organizar nossa base de dados, que também é um componente-chave no sistema que estamos criando.
preview
Simulação de mercado: Iniciando o SQL no MQL5 (IV)

Simulação de mercado: Iniciando o SQL no MQL5 (IV)

Muitos costuma subutilizar o SQL, ou mesmo não fazer uso dele, devido a uma má compreensão de como ele realmente funciona. Quando pesquisamos dentro de um banco de dados SQL. Não queremos necessariamente saber de uma resposta genérica. Podemos em alguns casos, estar buscando uma resposta bastante objetiva e prática. Se você criar um banco de dados, com uma certa estruturação e modelagem. Poderá colocar, virtualmente qualquer tipo de informação dentro do banco de dados.
preview
Construindo um Modelo de Restrição de Tendência com Candlestick (Parte 9): Expert Advisor de Múltiplas Estratégias (I)

Construindo um Modelo de Restrição de Tendência com Candlestick (Parte 9): Expert Advisor de Múltiplas Estratégias (I)

Hoje, vamos explorar as possibilidades de incorporar múltiplas estratégias em um Expert Advisor (EA) usando MQL5. Os Expert Advisors oferecem capacidades mais amplas do que apenas indicadores e scripts, permitindo abordagens de negociação mais sofisticadas que podem se adaptar às mudanças das condições do mercado. Confira mais na discussão deste artigo.
preview
Avaliação da qualidade da negociação de spreads por fatores de sazonalidade no mercado Forex no terminal MetaTrader 5

Avaliação da qualidade da negociação de spreads por fatores de sazonalidade no mercado Forex no terminal MetaTrader 5

O artigo aborda a avaliação da qualidade de uma abordagem de negociação sazonal no timeframe diário, tanto para símbolos individuais quanto para spreads. É dada atenção especial à identificação de ciclos mensais recorrentes e às possibilidades de sua aplicação na negociação ao longo do ano corrente.
preview
Do básico ao intermediário: Eventos (II)

Do básico ao intermediário: Eventos (II)

Neste artigo iremos ver que nem sempre precisamos implementar as coisas de uma ou de outra maneira. Existem maneiras alternativas de se fazer as coisas. Entender conceitos que foram explicados em artigos anteriores é primordial para conseguir compreender adequadamente o que será visto neste artigo. O conteúdo exposto aqui, visa e tem como objetivo, pura e simplesmente a didática. De modo algum deve ser encarado como uma aplicação final, onde o objetivo não seja o estudo dos conceitos aqui mostrados.
preview
Do básico ao intermediário: Acesso aleatório (II)

Do básico ao intermediário: Acesso aleatório (II)

Neste artigo iremos ver como duas abordagens ligeiramente diferentes podem ter um impacto muito grande em todo uma metodologia de implementação. Tanto pelo ponto de vista de performance, quanto pelo ponto de vista de como acessos ao disco devem ser pensados a fim de evitar problemas de compatibilidade entre diferentes aplicações.
preview
Mineração de dados da CFTC em Python e modelo de IA com base neles

Mineração de dados da CFTC em Python e modelo de IA com base neles

Vamos tentar minerar dados da CFTC, carregar os relatórios COT e TFF via Python, conectar isso às cotações do MetaTrader 5 e a um modelo de IA e obter previsões. O que são os relatórios COT no mercado Forex? Como usar os relatórios COT e TFF para previsão?
preview
Redes neurais de maneira fácil (Parte 78): Detecção de objetos baseada em Transformador (DFFT)

Redes neurais de maneira fácil (Parte 78): Detecção de objetos baseada em Transformador (DFFT)

Neste artigo, proponho olhar a questão da construção de uma estratégia de trading de outra perspectiva. Em vez de prever o movimento futuro dos preços, tentaremos construir um sistema de trading baseado na análise de dados históricos.
preview
Análise de Múltiplos Símbolos com Python e MQL5 (Parte II): Análise de Componentes Principais para Otimização de Portfólio

Análise de Múltiplos Símbolos com Python e MQL5 (Parte II): Análise de Componentes Principais para Otimização de Portfólio

Gerenciar o risco da conta de negociação é um desafio para todos os traders. Como podemos desenvolver aplicações de trading que aprendam dinamicamente modos de risco alto, médio e baixo para vários símbolos no MetaTrader 5? Usando PCA, ganhamos mais controle sobre a variância do portfólio. Vou demonstrar como criar aplicações que aprendem esses três modos de risco a partir de dados de mercado obtidos do MetaTrader 5.
preview
Redes neurais em trading: Extração eficiente de características para classificação precisa (Mantis)

Redes neurais em trading: Extração eficiente de características para classificação precisa (Mantis)

Conheça o Mantis, um modelo fundamental leve para classificação de séries temporais baseado em Transformer, com pré-treinamento contrastivo e atenção híbrida, que garantem precisão recorde e escalabilidade.
preview
Introdução ao MQL5 (Parte 13): Um Guia para Iniciantes na Criação de Indicadores Personalizados (II)

Introdução ao MQL5 (Parte 13): Um Guia para Iniciantes na Criação de Indicadores Personalizados (II)

Este artigo orienta você na construção de um indicador Heikin Ashi personalizado do zero e demonstra como integrar indicadores personalizados em um EA. Ele aborda cálculos de indicadores, lógica de execução de trades e técnicas de gerenciamento de risco para aprimorar estratégias de negociação automatizadas.
preview
Redes neurais de maneira fácil (Parte 69): restrição de política comportamental com base na densidade de dados off-line (SPOT)

Redes neurais de maneira fácil (Parte 69): restrição de política comportamental com base na densidade de dados off-line (SPOT)

No aprendizado off-line, utilizamos um conjunto de dados fixo, e isso não abrange toda a variedade do ambiente. Durante o processo de treinamento, nosso Agente pode gerar ações fora desse conjunto. Sem feedback do ambiente, a precisão dessas ações é duvidosa. Manter a política do Agente dentro do conjunto de treinamento se torna importante para confiar nos resultados. Vamos falar mais sobre isso aqui neste artigo.
preview
Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 11): Paredes numéricas

Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 11): Paredes numéricas

As paredes numéricas (Number Walls) são uma variante do registrador de deslocamento com realimentação linear (Linear Shift Back Registers), que avalia previamente sequências para previsibilidade verificando a convergência. Vamos ver como essas ideias podem ser usadas no MQL5.
preview
O Método de Agrupamento para Manipulação de Dados: Implementando o Algoritmo Iterativo Multicamadas em MQL5

O Método de Agrupamento para Manipulação de Dados: Implementando o Algoritmo Iterativo Multicamadas em MQL5

Neste artigo, descrevemos a implementação do Algoritmo Iterativo Multicamadas do Método de Agrupamento para Manipulação de Dados em MQL5.
preview
Redes neurais em trading: Transformer para nuvens de pontos (Pointformer)

Redes neurais em trading: Transformer para nuvens de pontos (Pointformer)

Neste artigo, falaremos sobre os algoritmos que utilizam métodos de atenção para resolver tarefas de detecção de objetos em nuvens de pontos. A detecção de objetos em nuvens de pontos é de grande importância para diversas aplicações práticas.
preview
Redes neurais em trading: Modelo multidimensional de ponta a ponta para previsão de séries temporais (Componentes principais)

Redes neurais em trading: Modelo multidimensional de ponta a ponta para previsão de séries temporais (Componentes principais)

Apresentamos a nova implementação dos principais componentes do framework GinAR, um algoritmo adaptativo para trabalhar com séries temporais baseadas em grafos. Neste artigo, analisamos passo a passo a arquitetura e os algoritmos de propagação para frente e de retropropagação do erro.
preview
Simulação de mercado: Position View (XII)

Simulação de mercado: Position View (XII)

No artigo, você aprenderá como criar uma indicação visual na sua plataforma de trading para saber se você está em uma posição comprada ou vendida no gráfico, sem precisar acessar o terminal. Além disso, o texto aborda a implementação de uma funcionalidade que melhora a visualização ao mover linhas de take profit e stop loss, ocultando a linha de preço do mouse durante a movimentação para evitar confusões. A leitura oferece insights práticos para customizar sistemas de simulação de mercado.
preview
Reimaginando estratégias clássicas (Parte III): Prevendo máximas mais altas e mínimas mais baixas

Reimaginando estratégias clássicas (Parte III): Prevendo máximas mais altas e mínimas mais baixas

Neste artigo, analisamos empiricamente estratégias de trading clássicas para verificar se é possível aprimorá-las com inteligência artificial (IA). Utilizaremos o modelo de Análise Discriminante Linear (Linear Discriminant Analysis) para tentar prever máximas mais altas e mínimas mais baixas.
preview
Construção de previsões econômicas: potencialidades do Python

Construção de previsões econômicas: potencialidades do Python

Como utilizar os dados econômicos do Banco Mundial para fazer previsões? O que acontece se combinarmos modelos de IA com economia?
preview
MQL5 Trading Toolkit (Parte 4): Desenvolvendo uma Biblioteca EX5 de Gerenciamento de Histórico

MQL5 Trading Toolkit (Parte 4): Desenvolvendo uma Biblioteca EX5 de Gerenciamento de Histórico

Aprenda a recuperar, processar, classificar, ordenar, analisar e gerenciar posições fechadas, ordens e históricos de negociações usando MQL5, criando uma ampla biblioteca EX5 de Gerenciamento de Histórico com um método detalhado passo a passo.
preview
Migrando para o MQL5 Algo Forge (Parte 4): Trabalhando com versões e lançamentos

Migrando para o MQL5 Algo Forge (Parte 4): Trabalhando com versões e lançamentos

Vamos continuar o desenvolvimento dos projetos Simple Candles e Adwizard, detalhando os aspectos do uso do sistema de controle de versão e do repositório MQL5 Algo Forge.
preview
Simulação de mercado: Position View (XV)

Simulação de mercado: Position View (XV)

Neste artigo, tentarei explicar da forma o mais simples possível como você pode fazer uso de troca de mensagens entre aplicações. Isto para que consiga de fato, desenvolver algo realmente funcional e de maneira o mais simples e eficaz quando for possível ser feito. Não sei se de fato conseguirei passar a ideia por detrás do conceito. Já que ele não é tão simples de ser entendido e compreendido por parte de quem o está vendo pela primeira vez. Aproveitando mostrarei como você pode fazer, para conseguir modificar o sistema de replay/simulador, a fim de poder depurar um Expert Advisor ou um outro código qualquer que você esteja criando. Isto de maneira igualmente simples e direta.
preview
Algoritmos de otimização populacional: Resistência a ficar preso em extremos locais (Parte I)

Algoritmos de otimização populacional: Resistência a ficar preso em extremos locais (Parte I)

Este artigo apresenta um experimento único que visa examinar o comportamento dos algoritmos de otimização populacional no contexto de sua capacidade de escapar eficientemente de mínimos locais quando a diversidade populacional é baixa e alcançar máximos globais. Trabalhar nessa direção fornecerá uma visão mais aprofundada sobre quais algoritmos específicos podem continuar sua busca com sucesso usando coordenadas definidas pelo usuário como ponto de partida e quais fatores influenciam seu sucesso.
preview
Arbitragem no trading Forex: Análise dos movimentos de moedas sintéticas e seu retorno à média

Arbitragem no trading Forex: Análise dos movimentos de moedas sintéticas e seu retorno à média

Neste artigo, tentaremos analisar os movimentos das moedas sintéticas na integração Python + MQL5 e entender até que ponto a arbitragem ainda é viável no Forex atualmente. Além disso: apresentaremos um código pronto em Python para análise de moedas sintéticas e explicaremos em detalhes o que são essas moedas no mercado Forex.
preview
DoEasy. Funções de Serviço (Parte 3): Padrão "Barra Externa"

DoEasy. Funções de Serviço (Parte 3): Padrão "Barra Externa"

Neste artigo, desenvolveremos o padrão Price Action "Barra Externa" na biblioteca DoEasy e otimizaremos os métodos de acesso ao gerenciamento de padrões de preço. Além disso, realizaremos correções de erros e melhorias identificadas durante os testes da biblioteca.
preview
Redes neurais em trading: Injeção de informação global em canais independentes (InjectTST)

Redes neurais em trading: Injeção de informação global em canais independentes (InjectTST)

A maioria dos métodos modernos de previsão de séries temporais multimodais utiliza a abordagem de canais independentes, ignorando a dependência natural entre os diferentes canais de uma série temporal. Para melhorar a eficiência dos modelos, é fundamental utilizar equilibradamente duas abordagens: canais independentes e mistos.
preview
Automatizando Estratégias de Trading em MQL5 (Parte 6): Dominando a Detecção de Order Blocks para Trading com Smart Money

Automatizando Estratégias de Trading em MQL5 (Parte 6): Dominando a Detecção de Order Blocks para Trading com Smart Money

Neste artigo, automatizamos a detecção de order blocks em MQL5 usando análise pura de price action. Definimos os order blocks, implementamos sua detecção e integramos a execução automatizada de trades. Por fim, realizamos o backtest da estratégia para avaliar seu desempenho.
preview
Redes neurais em trading: Representação adaptativa de grafos (NAFS)

Redes neurais em trading: Representação adaptativa de grafos (NAFS)

Apresentamos o método NAFS (Node-Adaptive Feature Smoothing), uma abordagem não paramétrica para criar representações de nós que não requer o treinamento de parâmetros. O NAFS extrai as características de cada nó considerando seus vizinhos e, então, combina essas características de forma adaptativa para formar a representação final.
preview
Simulação de mercado: Iniciando o SQL no MQL5 (V)

Simulação de mercado: Iniciando o SQL no MQL5 (V)

No artigo anterior mostrei como você deveria proceder, a fim de conseguir adicionar o mecanismo de pesquisa. Isto para que dentro do código MQL5, você pudesse de fato fazer uso pleno do SQL. A fim de conseguir obter os resultados quando for usar o comando SELECT FROM do SQL. Mas ficou faltando falar da última função que precisamos implementar. Esta é a função DatabaseReadBind. E como para entender ela adequadamente é algo que exigirá um pouco mais de explicações. Ficou decidido que isto seria feito, não naquele artigo anterior, mas sim neste daqui. Já que o assunto é bem extenso.
preview
Seleção de características passo a passo em MQL5

Seleção de características passo a passo em MQL5

Neste artigo, apresentamos uma versão modificada da seleção de características passo a passo, implementada em MQL5. Essa abordagem é baseada nas técnicas descritas em Modern Data Mining Algorithms in C++ and CUDA C de Timothy Masters.