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
Desenvolvimento de um sistema de monitoramento de entradas de swing (EA)

Desenvolvimento de um sistema de monitoramento de entradas de swing (EA)

À medida que o ano se aproxima do fim, traders de longo prazo costumam refletir sobre o histórico do mercado para analisar seu comportamento e tendências, visando projetar potenciais movimentos futuros. Neste artigo, exploraremos o desenvolvimento de um Expert Advisor (EA) de monitoramento de entradas de longo prazo usando MQL5. O objetivo é abordar o desafio das oportunidades de negociação de longo prazo perdidas devido ao trading manual e à ausência de sistemas automatizados de monitoramento. Usaremos um dos pares mais negociados como exemplo para estruturar e desenvolver nossa solução de forma eficaz.
preview
Redes neurais em trading: Ator–Diretor–Crítico (Conclusão)

Redes neurais em trading: Ator–Diretor–Crítico (Conclusão)

O framework Actor–Director–Critic representa uma evolução da arquitetura clássica de aprendizado por agentes. O artigo apresenta uma experiência prática de sua implementação e adaptação às condições dos mercados financeiros.
preview
Redes Generativas Adversariais (GANs) para Dados Sintéticos em Modelagem Financeira (Parte 1): Introdução às GANs e Dados Sintéticos em Modelagem Financeira

Redes Generativas Adversariais (GANs) para Dados Sintéticos em Modelagem Financeira (Parte 1): Introdução às GANs e Dados Sintéticos em Modelagem Financeira

Este artigo introduz os traders às Redes Generativas Adversariais (GANs) para geração de dados financeiros sintéticos, abordando limitações de dados no treinamento de modelos. Ele cobre os fundamentos das GANs, implementações em Python e MQL5, e aplicações práticas em finanças, capacitando traders a aumentar a precisão e a robustez dos modelos por meio de dados sintéticos.
preview
Do básico ao intermediário: Filas, Listas e Árvores (III)

Do básico ao intermediário: Filas, Listas e Árvores (III)

Neste artigo iremos dar o que será o próximo passo a fim de implementar e entender o que seria e como funciona uma lista encadeada. Apesar do conteúdo aqui, ser de certa maneira bastante denso e confuso para quem está iniciando. Procurei deixar as coisas o mais didática possível. Assim, você conseguirá entender por que e quando usar uma lista encadeada.
preview
Construindo Expert Advisors Auto-Otimizáveis em MQL5 (Parte 4): Dimensionamento Dinâmico de Posição

Construindo Expert Advisors Auto-Otimizáveis em MQL5 (Parte 4): Dimensionamento Dinâmico de Posição

Empregar com sucesso o trading algorítmico exige aprendizado contínuo e interdisciplinar. No entanto, a gama infinita de possibilidades pode consumir anos de esforço sem gerar resultados tangíveis. Para lidar com isso, propomos uma estrutura que introduz complexidade de forma gradual, permitindo que os traders refinem suas estratégias de maneira iterativa, em vez de dedicar tempo indefinido a resultados incertos.
preview
Desenvolvendo um EA multimoeda (Parte 27): Componente para exibição de texto multilinha

Desenvolvendo um EA multimoeda (Parte 27): Componente para exibição de texto multilinha

Quando surge a necessidade de exibir informações textuais no gráfico, podemos utilizar a função Comment(). Porém, suas possibilidades são bastante limitadas. Por isso, no âmbito deste artigo, criaremos nosso próprio componente, uma janela de diálogo em tela cheia, capaz de exibir texto multilinha com configurações flexíveis de fonte e suporte a rolagem.
preview
Corpo em Connexus (Parte 4): Adicionando suporte ao corpo de requisições HTTP

Corpo em Connexus (Parte 4): Adicionando suporte ao corpo de requisições HTTP

Neste artigo, abordamos o conceito de corpo nas requisições HTTP, que é necessário para o envio de dados como JSON e texto simples. Discutimos e explicamos como usá-lo corretamente junto com os cabeçalhos apropriados. Também introduzimos a classe ChttpBody, que faz parte da biblioteca Connexus e que irá simplificar o trabalho com o corpo das requisições.
preview
Criando um Painel de Administração de Trading em MQL5 (Parte IX): Organização de Código (I)

Criando um Painel de Administração de Trading em MQL5 (Parte IX): Organização de Código (I)

Esta discussão aprofunda-se nos desafios encontrados ao trabalhar com grandes bases de código. Vamos explorar as melhores práticas para organização de código em MQL5 e implementar uma abordagem prática para aprimorar a legibilidade e a escalabilidade do código-fonte do nosso Painel de Administração de Trading. Além disso, buscamos desenvolver componentes de código reutilizáveis que possam potencialmente beneficiar outros desenvolvedores no desenvolvimento de seus algoritmos. Continue lendo e participe da discussão.
preview
Desenvolvimento de um Kit de Ferramentas para Análise da Ação do Preço (Parte 6): Mean Reversion Signal Reaper

Desenvolvimento de um Kit de Ferramentas para Análise da Ação do Preço (Parte 6): Mean Reversion Signal Reaper

Embora alguns conceitos possam parecer simples à primeira vista, trazê-los à prática pode ser bastante desafiador. No artigo abaixo, levaremos você a uma jornada pela nossa abordagem inovadora para automatizar um Expert Advisor (EA) que analisa o mercado de forma eficiente utilizando uma estratégia de reversão à média. Junte-se a nós enquanto desvendamos as complexidades desse empolgante processo de automação.
preview
Do básico ao intermediário: Indicadores técnico (II)

Do básico ao intermediário: Indicadores técnico (II)

Neste artigo mostramos como criar um indicador em MQL5 que desenha múltiplas médias móveis no mesmo gráfico, reduzindo código duplicado. São usados iMA, buffers de indicador, CopyBuffer, PlotIndexSetInteger/String e uma estrutura constante que concentra períodos, métodos e cores. O dimensionamento de indicatorbuffers e indicatorplots é derivado de Averange.Size(). O resultado facilita manutenção e permite adicionar ou remover médias alterando apenas uma lista.
preview
Automatizando Estratégias de Trading em MQL5 (Parte 4): Construindo um Sistema de Recuperação por Zonas em Múltiplos Níveis

Automatizando Estratégias de Trading em MQL5 (Parte 4): Construindo um Sistema de Recuperação por Zonas em Múltiplos Níveis

Neste artigo, desenvolvemos um Sistema de Recuperação por Zonas em Múltiplos Níveis em MQL5 que utiliza o RSI para gerar sinais de negociação. Cada instância de sinal é adicionada dinamicamente a uma estrutura de array, permitindo que o sistema gerencie múltiplos sinais simultaneamente dentro da lógica de Zone Recovery. Por meio dessa abordagem, demonstramos como lidar de forma eficaz com cenários complexos de gerenciamento de trades, mantendo ao mesmo tempo um design de código escalável e robusto.
preview
Mineração de dados dos balanços dos bancos centrais e obtenção de um panorama da liquidez global

Mineração de dados dos balanços dos bancos centrais e obtenção de um panorama da liquidez global

A mineração de dados dos balanços dos bancos centrais permite obter um panorama da liquidez global do mercado Forex e das principais moedas. Nós unificamos dados do Fed, do BCE, do BOJ e do PBoC em um índice composto e aplicamos aprendizado de máquina para identificar padrões ocultos. Essa abordagem transforma um fluxo bruto de dados em sinais reais de trading, conectando a análise fundamentalista e a análise técnica.
preview
Indicador do modelo CAPM no mercado Forex

Indicador do modelo CAPM no mercado Forex

Adaptação do modelo clássico CAPM para o mercado cambial Forex em MQL5. O indicador calcula a rentabilidade esperada e o prêmio de risco com base na volatilidade histórica. Os indicadores aumentam nos picos e nas depressões, refletindo os princípios fundamentais de precificação. Aplicação prática para estratégias contra a tendência e de seguimento de tendência, levando em conta a dinâmica da relação entre risco e rentabilidade em tempo real. Inclui o aparato matemático e a implementação técnica.
preview
Solicitação no Connexus (Parte 6): Criando uma Requisição e Resposta HTTP

Solicitação no Connexus (Parte 6): Criando uma Requisição e Resposta HTTP

Neste sexto artigo da série da biblioteca Connexus, focamos em uma requisição HTTP completa, cobrindo cada componente que compõe uma requisição. Criamos uma classe que representa a requisição como um todo, o que nos ajudou a reunir as classes criadas anteriormente.
preview
Do básico ao intermediário: Filas, Listas e Árvores (IV)

Do básico ao intermediário: Filas, Listas e Árvores (IV)

Neste artigo iremos finalizar a parte referente a implementação e explicação sobre o que seria uma lista encadeada. Porém a implementação mostrada aqui, não irá mostrar um certo detalhe que podemos fazer dentro de uma lista encadeada. Isto será visto futuramente em um outro artigo.
preview
Processos gaussianos em aprendizado de máquina: modelo de regressão em MQL5

Processos gaussianos em aprendizado de máquina: modelo de regressão em MQL5

Neste artigo, examinaremos os fundamentos dos processos gaussianos (PG) como um modelo probabilístico de aprendizado de máquina e demonstraremos sua aplicação em tarefas de regressão usando dados sintéticos como exemplo.
preview
Cliente no Connexus (Parte 7): Adicionando a camada de cliente

Cliente no Connexus (Parte 7): Adicionando a camada de cliente

Neste artigo, continuamos o desenvolvimento da biblioteca Connexus. Neste capítulo, criamos a classe CHttpClient, responsável por enviar a requisição e receber a ordem. Também abordamos o conceito de mocks, separando a biblioteca da função WebRequest, o que garante maior flexibilidade para os usuários.
preview
Gerenciamento de riscos (Parte 3): Criação da classe principal de gerenciamento de riscos

Gerenciamento de riscos (Parte 3): Criação da classe principal de gerenciamento de riscos

Neste artigo começaremos a criação da classe principal de gerenciamento de riscos, que será o elemento chave para o controle de riscos no sistema. Vamos nos concentrar na construção das bases, na definição das principais estruturas, variáveis e funções. Além disso, implementaremos os métodos necessários para atribuir valores de lucro máximo e prejuízo máximo, estabelecendo assim o alicerce do gerenciamento de riscos.
preview
Reimaginando Estratégias Clássicas em MQL5 (Parte III): Previsão do FTSE 100

Reimaginando Estratégias Clássicas em MQL5 (Parte III): Previsão do FTSE 100

Nesta série de artigos, vamos revisitar estratégias de negociação já conhecidas para investigar se podemos aprimorá-las utilizando IA. No artigo de hoje, exploraremos o FTSE 100 e tentaremos prever o índice utilizando uma parte das ações individuais que compõem esse índice.
preview
Simplificando a negociação com base em notícias (Parte 6): Executando trades (III)

Simplificando a negociação com base em notícias (Parte 6): Executando trades (III)

Neste artigo será implementada a ordenação de notícias para eventos econômicos individuais com base em seus identificadores. Além disso, as consultas SQL anteriores serão aprimoradas para fornecer informações adicionais ou reduzir o tempo de execução da consulta. O código criado nos artigos anteriores se tornará funcional.
preview
Do básico ao intermediário: Filas, Listas e Árvores (V)

Do básico ao intermediário: Filas, Listas e Árvores (V)

Neste artigo começamos a trabalhar com a implementação do mecanismo de árvore. Como sei que este mecanismo pode ser extremamente complicado de ser compreendido e assimilado, no começo do aprendizado. Iremos implementar as coisas com calma e devagar. Assim todos irão conseguir entender como uma árvore funciona e qual o melhor momento para utiliza-la.
preview
Visão computacional para trading (Parte 2): complexificando a arquitetura até a análise 2D de imagens RGB

Visão computacional para trading (Parte 2): complexificando a arquitetura até a análise 2D de imagens RGB

Visão computacional para trading, como funciona e como é desenvolvida passo a passo. Criamos um algoritmo de reconhecimento de imagens RGB de gráficos de preços com um mecanismo de atenção e uma camada LSTM bidirecional. Como resultado, obtemos um modelo funcional de previsão do preço do euro-dólar com precisão de até 55% no conjunto de validação.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 34): Embedding de Preços com um RBM Não Convencional

Técnicas do MQL5 Wizard que você deve conhecer (Parte 34): Embedding de Preços com um RBM Não Convencional

Máquinas de Boltzmann Restritas são uma forma de rede neural que foi desenvolvida no meio da década de 1980, numa época em que os recursos computacionais eram extremamente caros. No início, ela dependia de Gibbs Sampling e Divergência Contrastiva para reduzir a dimensionalidade ou capturar as probabilidades/propriedades ocultas sobre os conjuntos de dados de treinamento de entrada. Examinamos como o Backpropagation pode realizar de forma similar quando o RBM 'embebe' os preços para um Multi-Layer-Perceptron de previsão.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 35): Regressão por Vetores de Suporte

Técnicas do MQL5 Wizard que você deve conhecer (Parte 35): Regressão por Vetores de Suporte

A Regressão por Vetores de Suporte é uma maneira idealista de encontrar uma função ou 'hiperplano' que melhor descreva a relação entre dois conjuntos de dados. Tentamos explorar isso na previsão de séries temporais dentro das classes personalizadas do MQL5 wizard.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 51): Aprendizado por Reforço com SAC

Técnicas do MQL5 Wizard que você deve conhecer (Parte 51): Aprendizado por Reforço com SAC

Soft Actor Critic é um algoritmo de Aprendizado por Reforço que utiliza 3 redes neurais. Uma rede ator e 2 redes críticas. Esses modelos de aprendizado de máquina são combinados em uma parceria mestre-escravo onde as redes críticas são modeladas para melhorar a precisão de previsão da rede ator. Ao mesmo tempo em que introduzimos ONNX nesta série, exploramos como essas ideias podem ser colocadas à prova como um sinal personalizado de um Expert Advisor montado pelo wizard.
preview
Do básico ao intermediário: Sub Janelas (III)

Do básico ao intermediário: Sub Janelas (III)

Este texto detalha o uso de sub janelas em indicadores MQL5: criação básica, detecção de instâncias e prevenção de duplicações. Aborda INDICATOR_SHORTNAME, consulta de janelas/indicadores do gráfico e a diferença entre exibição no gráfico principal e em janela separada. Mostra ainda como definir altura e limites da sub janela para padronizar a interface e facilitar a disposição de objetos.
preview
Do básico ao intermediário: Indicadores técnicos (I)

Do básico ao intermediário: Indicadores técnicos (I)

Neste artigo veremos o básico sobre como utilizar indicadores técnicos que estão presentes e são mantidos pelo próprio MetaTrader 5. Saber, entender e conhecer este tipo de indicador pode vir a tornar seu trabalho de implementar algo, em uma tarefa muito mais simples, rápida e eficiente. Visto que você não precisa se preocupar com a parte referente aos cálculos a serem efetuados. A própria plataforma se encarrega de fazer isto para nós.
preview
Codificação ordinal de variáveis nominais

Codificação ordinal de variáveis nominais

Neste artigo, discutiremos e demonstraremos como transformar variáveis nominais em formatos numéricos adequados para algoritmos de aprendizado de máquina, utilizando tanto Python quanto MQL5.
preview
Redes neurais em trading: generalização de séries temporais sem vinculação a dados (Mamba4Cast)

Redes neurais em trading: generalização de séries temporais sem vinculação a dados (Mamba4Cast)

Neste artigo, conhecemos o framework Mamba4Cast e analisamos em detalhe um de seus componentes-chave, a codificação posicional baseada em marcas temporais. É mostrado como é formada a incorporação temporal levando em conta a estrutura de calendário dos dados.
preview
Simulação de mercado: A união faz a força (II)

Simulação de mercado: A união faz a força (II)

Até o momento, a aplicação que estava sendo desenvolvida nesta sequência de artigos. Visava apenas e tão somente simular a parte gráfica. Mas para um sistema mais completo, onde temos a possibilidade de experimentar um Expert Advisor dentro do serviço de replay/simulador. Precisamos também fazer a simulação do servidor de negociação. Você notará, que a simulação usará o mínimo do mínimo possível. Mas se você, meu caro leitor, desejar, poderá completar as partes que faltam. Mas como isto não fará diferença para o que estou disposto a mostrar. Já temos mais do que o suficiente para desenvolver o que foi planejado.
preview
Do básico ao intermediário: Sobrecarga de operadores (I)

Do básico ao intermediário: Sobrecarga de operadores (I)

Neste artigo começaremos a ver como seria a implementação da chamada sobrecarga de operadores. Iremos começar vendo a motivação por detrás de tal implementação. Assim como também veremos que nem sempre as coisas são tão complicadas como parecem.
preview
Rede neural na prática: O caso da porta XOR

Rede neural na prática: O caso da porta XOR

Neste artigo tentarei mostrar a você, meu caro leitor, que nem tudo é como parece. Muitas das vezes somos levados a pensar que as coisas são de uma dada maneira, quando na verdade, podemos estar sendo levados a pensar algo que não necessariamente é verdade. Redes neurais, são de longe um dos assuntos mais interessantes em termos gerais. Tanto pelo ponto de vista matemático, eletrônico ou mesmo de software. Porém, diferente do que muitos acreditam ou pregam. Redes neurais não são nem de longe, a questão e solução definitiva. São apenas um ramo de pesquisa, no qual devemos sempre estar estudando e procurando nos informar sobre o que acontece nos bastidores.
preview
Rede neural na prática: Gradiente Descendente

Rede neural na prática: Gradiente Descendente

Neste artigo, tentarei apresentar, de forma o mais simplificada e didática, quanto foi possível fazer, uma das questões mais controvérsias quando o assunto é rede neural. Que é justamente como procurar o melhor ponto possível, ou menor custo de uma função. Mostrarei a diferença que existe entre uma regressão linear e um gradiente descendente. Ambos casos bastante simples e voltados para mostrar que nem sempre o que parece obvio, realmente é o melhor caminho.
preview
Algoritmo do camelo — Camel Algorithm (CA)

Algoritmo do camelo — Camel Algorithm (CA)

O Algoritmo do camelo, desenvolvido em 2016, modela o comportamento dos camelos no deserto para resolver problemas de otimização, levando em conta fatores de temperatura, reservas e resistência. Neste trabalho é apresentada ainda uma versão modificada dele (CAm), com melhorias-chave, como a aplicação da distribuição gaussiana na geração de soluções e a otimização dos parâmetros do efeito de oásis.
preview
Do básico ao intermediário: Sobrecarga de operadores (IV)

Do básico ao intermediário: Sobrecarga de operadores (IV)

Neste artigo faremos uma primeira abordagem a fim de trabalhar e demonstrar como podemos implementar a sobrecarga do operador subscrito e também do operador de atribuição. Tentando com isto trazer uma abordagem prática e que fosse interessante para todos. Porém o que será visto aqui, é apenas uma parte daquilo que pretendo ainda mostrar e que está diretamente ligado a sobrecarga de tais operadores.
preview
Redes neurais em trading: Extração eficiente de características para classificação precisa (Construção de objetos)

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

Mantis é uma ferramenta universal para análise profunda de séries temporais, escalável de forma flexível para quaisquer cenários financeiros. Saiba como a combinação de patching, convoluções locais e atenção cruzada permite obter uma interpretação de alta precisão dos padrões de mercado.
preview
Desenvolvimento do Kit de Ferramentas de Análise de Price Action (Parte 11): EA de Sinal Heikin Ashi

Desenvolvimento do Kit de Ferramentas de Análise de Price Action (Parte 11): EA de Sinal Heikin Ashi

O MQL5 oferece infinitas oportunidades para desenvolver sistemas de negociação automatizados adaptados às suas preferências. Você sabia que ele pode até realizar cálculos matemáticos complexos? Neste artigo, apresentamos a técnica japonesa Heikin-Ashi como uma estratégia de negociação automatizada.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 54): Aprendizado por Reforço com SAC híbrido e Tensores

Técnicas do MQL5 Wizard que você deve conhecer (Parte 54): Aprendizado por Reforço com SAC híbrido e Tensores

Soft Actor Critic é um algoritmo de Aprendizado por Reforço que analisamos em um artigo anterior, onde também introduzimos Python e ONNX nesta série como abordagens eficientes para treinar redes. Retomamos o algoritmo com o objetivo de explorar tensores, grafos computacionais que frequentemente são utilizados em Python.
preview
Análise espectral singular unidimensional

Análise espectral singular unidimensional

O artigo aborda os aspectos teóricos e práticos do método de análise espectral singular (SSA), que constitui um método eficaz de análise de séries temporais e permite representar a estrutura complexa da série como uma decomposição em componentes simples, tais como tendência, oscilações sazonais (periódicas) e ruído.
preview
Dominando Operações de Arquivos em MQL5: Do I/O Básico à Construção de um Leitor CSV Personalizado

Dominando Operações de Arquivos em MQL5: Do I/O Básico à Construção de um Leitor CSV Personalizado

Este artigo aborda técnicas essenciais de manipulação de arquivos em MQL5, abrangendo logs de operações, processamento de CSV e integração de dados externos. Ele oferece tanto compreensão conceitual quanto orientação prática de codificação. Os leitores aprenderão a construir uma classe personalizada de importação CSV passo a passo, adquirindo habilidades práticas para aplicações reais.