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
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
Migrando para o MQL5 Algo Forge (Parte 3): Uso de repositórios de terceiros em seu próprio projeto

Migrando para o MQL5 Algo Forge (Parte 3): Uso de repositórios de terceiros em seu próprio projeto

Vamos analisar como já é possível conectar código de terceiros de qualquer repositório no armazenamento MQL5 Algo Forge ao seu projeto. Neste artigo, finalmente chegamos a uma tarefa promissora, mas também mais complexa: como, na prática, integrar e utilizar em seu projeto bibliotecas de repositórios alheios no MQL5 Algo Forge.
preview
Negociando com o Calendário Econômico do MQL5 (Parte 3): Adicionando Filtros de Moeda, Importância e Tempo

Negociando com o Calendário Econômico do MQL5 (Parte 3): Adicionando Filtros de Moeda, Importância e Tempo

Neste artigo, implementamos filtros no painel do Calendário Econômico do MQL5 para refinar a exibição dos eventos de notícias por moeda, importância e tempo. Primeiro, estabelecemos critérios de filtro para cada categoria e depois os integramos ao painel para exibir apenas os eventos relevantes. Por fim, garantimos que cada filtro seja atualizado dinamicamente para fornecer aos traders insights econômicos focados e em tempo real.
preview
Dominando Registros de Log (Parte 1): Conceitos Fundamentais e Primeiros Passos em MQL5

Dominando Registros de Log (Parte 1): Conceitos Fundamentais e Primeiros Passos em MQL5

Bem-vindo ao início de mais uma jornada! Este artigo abre uma série especial onde criaremos, passo a passo, uma biblioteca para manipulação de logs, feita sob medida para quem desenvolve na linguagem MQL5.
preview
Criando um painel de administração de trading em MQL5 (Parte VII): Usuário confiável, recuperação e criptografia

Criando um painel de administração de trading em MQL5 (Parte VII): Usuário confiável, recuperação e criptografia

Alertas de segurança, como aqueles que aparecem sempre que o gráfico é atualizado, uma nova par é adicionada ao chat do painel administrativo do EA ou o terminal é reiniciado, podem se tornar cansativos. Nesta discussão, vamos analisar e implementar uma função que rastreia o número de tentativas de login para identificar um usuário confiável. Após um determinado número de tentativas malsucedidas, o aplicativo passará para um procedimento avançado de login, que também facilita a recuperação de senha para usuários que possam tê-la esquecido. Além disso, veremos como é possível integrar de forma eficiente a criptografia no painel administrativo para aumentar a segurança.
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
Simulação de mercado: Position View (XI)

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

Neste artigo, mostrarei como você, meu caro e estimado leitor, pode sem muito esforço. Conseguir modificar o indicador de posição a fim de que ele venha a ser capaz de fazer bem mais coisas, do que originalmente era capaz de fazer. Veremos como incluir a capacidade de podermos mover tanto os preços, quanto também criar as linhas de preço. E isto diretamente no gráfico. Algo que muitos imaginariam ser extremamente complicado e de difícil solução. Porém você notará que faremos tudo isto, com muita facilidade e com um mínimo de esforço. Tudo que será preciso fazer é parar e pensar um pouco.
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
Recursos do Assistente MQL5 que você precisa conhecer (Parte 49): Aprendizado por reforço e otimização proximal de política

Recursos do Assistente MQL5 que você precisa conhecer (Parte 49): Aprendizado por reforço e otimização proximal de política

A otimização proximal de política (Proximal Policy Optimization) é mais um algoritmo de aprendizado por reforço, que atualiza a política, muitas vezes em forma de rede, em passos muito pequenos para garantir a estabilidade do modelo. Como de costume, vamos analisar como esse algoritmo pode ser aplicado em um EA construído com a ajuda do Assistente.
preview
Informações detalhadas sobre trading baseado em volume: Indo além dos gráficos OHLC

Informações detalhadas sobre trading baseado em volume: Indo além dos gráficos OHLC

Um sistema de trading algorítmico que combina análise de volume com métodos de machine learning, em especial com redes neurais LSTM. Diferente das abordagens tradicionais de trading, que se concentram principalmente no movimento dos preços, este sistema enfatiza os padrões de volume e suas derivadas para prever os movimentos do mercado. A metodologia inclui três componentes principais: análise das derivadas do volume (primeira e segunda derivada), previsões LSTM para padrões de volume e indicadores técnicos tradicionais.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 48): Alligator de Bill Williams

Técnicas do MQL5 Wizard que você deve conhecer (Parte 48): Alligator de Bill Williams

O Indicador Alligator, que foi idealizado por Bill Williams, é um indicador versátil de identificação de tendências que fornece sinais claros e é frequentemente combinado com outros indicadores. As classes e a montagem do wizard MQL5 nos permitem testar uma variedade de sinais com base em padrões e, portanto, consideramos também este indicador.
preview
De Python para MQL5: Uma Jornada em Sistemas de Trading Inspirados na Computação Quântica

De Python para MQL5: Uma Jornada em Sistemas de Trading Inspirados na Computação Quântica

O artigo explora o desenvolvimento de um sistema de trading inspirado na computação quântica, fazendo a transição de um protótipo em Python para uma implementação em MQL5 para trading no mundo real. O sistema utiliza princípios da computação quântica, como superposição e emaranhamento, para analisar estados de mercado, embora rode em computadores clássicos usando simuladores quânticos. Os principais recursos incluem um sistema de três qubits para analisar oito estados de mercado simultaneamente, períodos de análise de 24 horas e sete indicadores técnicos para análise de mercado. Embora as taxas de acurácia possam parecer modestas, elas fornecem uma vantagem significativa quando combinadas com estratégias adequadas de gerenciamento de risco.
preview
Criando um painel de administração de trading em MQL5 (Parte VI): Painel de controle de trading (II)

Criando um painel de administração de trading em MQL5 (Parte VI): Painel de controle de trading (II)

Neste artigo, vamos melhorar o painel de controle de trading do nosso painel administrativo multifuncional. Apresentaremos uma função auxiliar poderosa, que simplifica o código, tornando-o mais legível, fácil de manter e eficiente. Também mostraremos como integrar botões adicionais e aprimorar facilmente a interface para atender a um espectro mais amplo de tarefas de trading. Seja para gerenciar posições, ajustar ordens ou facilitar a interação com o usuário, este guia ajudará você a desenvolver um painel de controle de trading confiável e prático.
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
Criando um Painel de Administração de Trading em MQL5 (Parte VI): Interface de Funções Múltiplas (I)

Criando um Painel de Administração de Trading em MQL5 (Parte VI): Interface de Funções Múltiplas (I)

O papel do Administrador de Trading vai além das comunicações via Telegram; ele também pode realizar várias atividades de controle, incluindo gerenciamento de ordens, acompanhamento de posições e personalização da interface. Neste artigo, compartilharemos insights práticos sobre como expandir nosso programa para suportar múltiplas funcionalidades em MQL5. Esta atualização tem como objetivo superar a limitação atual do Painel de Administração de se concentrar principalmente na comunicação, permitindo que ele lide com uma gama mais ampla de tarefas.
preview
Informação mútua como critério para seleção progressiva de características

Informação mútua como critério para seleção progressiva de características

Neste artigo apresentamos a implementação da seleção progressiva de características em MQL5, baseada na informação mútua entre o conjunto ótimo de preditores e a variável alvo.
preview
Negociando com o Calendário Econômico MQL5 (Parte 2): Criando um Painel de Notícias

Negociando com o Calendário Econômico MQL5 (Parte 2): Criando um Painel de Notícias

Neste artigo, criamos um painel prático de notícias usando o Calendário Econômico MQL5 para aprimorar nossa estratégia de negociação. Começamos projetando o layout, focando em elementos-chave como nomes dos eventos, importância e horário, antes de avançar para a configuração dentro do MQL5. Por fim, implementamos um sistema de filtragem para exibir apenas as notícias mais relevantes, dando aos traders acesso rápido a eventos econômicos impactantes.
preview
Desenvolvimento de ferramentas para análise do movimento de preços (Parte 2): Script de comentários analíticos

Desenvolvimento de ferramentas para análise do movimento de preços (Parte 2): Script de comentários analíticos

Dando continuidade ao nosso trabalho para simplificar a interação com o comportamento do preço, temos o prazer de apresentar mais uma ferramenta que pode melhorar significativamente sua análise de mercado e ajudar na tomada de decisões bem fundamentadas. Esta ferramenta exibe indicadores técnicos importantes, como os preços do dia anterior, níveis significativos de suporte e resistência, além do volume de negociação, gerando automaticamente dicas visuais no gráfico.
preview
Ciência de dados e aprendizado de máquina (Parte 32): Como manter a relevância de modelos de IA com treinamento on-line

Ciência de dados e aprendizado de máquina (Parte 32): Como manter a relevância de modelos de IA com treinamento on-line

No mundo em constante transformação do trading, adaptar-se às mudanças do mercado é simplesmente uma necessidade. Todos os dias surgem novos padrões e tendências, o que torna difícil até mesmo para os modelos mais avançados de aprendizado de máquina manterem sua eficácia diante de condições em mutação. Neste artigo, vamos falar sobre como manter os modelos relevantes e capazes de reagir a novos dados de mercado por meio de reeducação automática.
preview
Automatização de estratégias de trading com MQL5 (Parte 1): Sistema Profitunity (Trading Chaos de Bill Williams)

Automatização de estratégias de trading com MQL5 (Parte 1): Sistema Profitunity (Trading Chaos de Bill Williams)

Neste artigo exploraremos o sistema Profitunity de autoria de Bill Williams, destrinchando seus principais componentes e sua abordagem única para operar em condições caóticas de mercado. Demonstramos para o leitor a implementação da estratégia na linguagem de programação MQL5, com ênfase na automatização dos principais indicadores e sinais de entrada/saída. Finalmente, testaremos e otimizaremos a estratégia, analisando em detalhes sua eficácia em diferentes cenários de mercado.
preview
Simulação de mercado: Position View (X)

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

Precisamos de fato, de algum meio para conseguir lidar com os objetos gráficos que serão criados. A proposta mostrada no artigo anterior, se encaixa perfeitamente bem, em alguns cenários. No entanto, aqui, precisamos de algo um pouco mais elaborado. Isto devido a natureza do problema com que estamos lidando. Assim sendo, não tentaremos de maneira alguma substituir os mecanismos que estão presentes no MetaTrader 5. Isto para conseguir lidar com o ZOrder, além é claro, verificar qual objeto está em primeiro plano ou encoberto por outro objeto. Vamos fazer algo completamente diferente. Aqui vou mostrar quais as modificações que precisam ser feitas no código a fim de conseguir, tirar de alguma forma, proveito do que o MetaTrader 5, já faz para nos.
preview
Do básico ao intermediário: Filas, Listas e Árvores (II)

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

Este é um artigo do qual você meu caro leitor, deverá estudar com muita calma. Isto devido ao tipo de coisa que será explicado nele. Apesar de termos procurando manter as coisas o mais simples e didáticas quanto foi possível ser feito. O conteúdo apresentado aqui, é sem sobra de dúvida algo muito complicado para quem está iniciando na programação. Mas isto não é motivo para que você venha a desanimar ou ignorar o que está sendo explicado aqui. Já que este artigo fará um elo, entre dois assuntos completamente diferentes, porém intimamente ligados.
preview
Observador Connexus (Parte 8): Adicionando Request Observer (Observador de requisições)

Observador Connexus (Parte 8): Adicionando Request Observer (Observador de requisições)

Nesta parte final da nossa série sobre a biblioteca Connexus, analisamos a implementação do padrão Observador, além dos principais refatoramentos nos caminhos dos arquivos e nomes dos métodos. Esta série apresenta todo o desenvolvimento do Connexus, criado para simplificar a interação HTTP em aplicativos complexos.
preview
Migrando para o MQL5 Algo Forge (Parte 2): Trabalhando com múltiplos repositórios

Migrando para o MQL5 Algo Forge (Parte 2): Trabalhando com múltiplos repositórios

Vamos analisar uma das possíveis abordagens para organizar o armazenamento do código-fonte de um projeto em um repositório público. Utilizando a distribuição em diferentes branches, criaremos regras claras e práticas para o desenvolvimento do projeto.
preview
Técnicas do Assistente MQL5 que você deve conhecer (Parte 46): Ichimoku

Técnicas do Assistente MQL5 que você deve conhecer (Parte 46): Ichimoku

O Ichimuko Kinko Hyo é um renomado indicador japonês que serve como um sistema de identificação de tendência. Examinamos isso, padrão por padrão, como foi o caso em artigos semelhantes anteriores, e também avaliamos suas estratégias e relatórios de teste com a ajuda das classes e montagem da biblioteca wizard do MQL5.
preview
Recursos do Assistente MQL5 que você precisa conhecer (Parte 47): Aprendizado por reforço (algoritmo de diferenças temporais)

Recursos do Assistente MQL5 que você precisa conhecer (Parte 47): Aprendizado por reforço (algoritmo de diferenças temporais)

Temporal Difference (TD, diferenças temporais) é mais um algoritmo de aprendizado por reforço, que atualiza os valores Q com base na diferença entre as recompensas previstas e as recompensas reais durante o treinamento do agente. A ênfase está na atualização dos valores Q sem considerar necessariamente seus pares "estado-ação" (state-action). Como de costume, veremos como esse algoritmo pode ser aplicado em um EA, criado com a ajuda do Assistente.
preview
Migrando para o MQL5 Algo Forge (Parte 1): Criando o repositório principal

Migrando para o MQL5 Algo Forge (Parte 1): Criando o repositório principal

Ao trabalharem em projetos no MetaEditor, os desenvolvedores se deparam com a necessidade de gerenciar versões do código. Apesar dos planos de migração para o Git e do lançamento do MQL5 Algo Forge, a integração ainda não foi concluída. Este artigo discute maneiras de tornar o trabalho com as ferramentas atuais mais prático.
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.
preview
Reimaginando Estratégias Clássicas (Parte XI): Cruzamento de Médias Móveis (II)

Reimaginando Estratégias Clássicas (Parte XI): Cruzamento de Médias Móveis (II)

As médias móveis e o oscilador estocástico podem ser usados para gerar sinais de negociação de tendência. No entanto, esses sinais só serão observados após a ação do preço ter ocorrido. Podemos superar efetivamente essa defasagem inerente dos indicadores técnicos usando IA. Este artigo ensinará como criar um Expert Advisor totalmente autônomo com IA, de forma a melhorar qualquer uma de suas estratégias de negociação existentes. Até mesmo a estratégia de negociação mais antiga possível pode ser aprimorada.
preview
Engenharia de Recursos com Python e MQL5 (Parte II): Ângulo de Preço

Engenharia de Recursos com Python e MQL5 (Parte II): Ângulo de Preço

Existem muitas postagens no Fórum MQL5 pedindo ajuda para calcular a inclinação das mudanças de preço. Este artigo demonstrará uma forma possível de calcular o ângulo formado pelas variações de preço em qualquer mercado que você deseje negociar. Além disso, responderemos se desenvolver esse novo recurso vale o esforço e o tempo adicionais investidos. Vamos explorar se a inclinação do preço pode melhorar a precisão de algum dos nossos modelos de IA ao prever o par USDZAR no M1.
preview
Negociação de notícias facilitada (parte 5): realizando negociações (II)

Negociação de notícias facilitada (parte 5): realizando negociações (II)

Este artigo expandirá a classe de gerenciamento de trades para incluir ordens buy-stop e sell-stop para operar em eventos de notícias e implementará uma restrição de expiração nessas ordens para evitar qualquer negociação durante a noite. Uma função de slippage será incorporada ao expert para tentar prevenir ou minimizar possíveis deslizes que podem ocorrer ao usar ordens stop no trading, especialmente durante eventos de notícias.
preview
Simulação de mercado: Position View (IX)

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

Neste artigo, que será um artigo divisor de águas. Vamos começar a explorar de maneira um pouco mais profunda a interação entre as aplicações que estão sendo desenvolvidas para dar suporte total ao sistema de replay/simulação. Aqui vamos analisar um problema. Este tem de um lado, algo bastante chato, mas de outro algo muito interessante de explicar como resolver. E o problema é: Como fazer para adicionar as linhas de take profit e stop loss, depois que elas foram removidas? Isto sem usar o terminal, mas sim fazendo a operação direto no gráfico. Bem isto de fato é algo, a primeira vista simples. Porém existem alguns percalços a serem superados.
preview
Do básico ao intermediário: Filas, Listas e Árvores (I)

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

Neste artigo começaremos a explorar uma pequena série de conceitos, que é de suma importância para quem realmente deseja aprender a programar da maneira correta. Com se trata de algo que a principio pode ser muito complicado. Apesar de usar coisas simples. Iremos ver isto aos poucos. Então aqui iremos começar a ver o que seria filas de dados.
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
Expert Advisor Auto-Otimizável com MQL5 e Python (Parte VI): Aproveitando o Deep Double Descent

Expert Advisor Auto-Otimizável com MQL5 e Python (Parte VI): Aproveitando o Deep Double Descent

O aprendizado de máquina tradicional ensina os praticantes a serem vigilantes para não superajustar (overfitting) seus modelos. No entanto, essa ideologia está sendo desafiada por novas descobertas publicadas por pesquisadores diligentes de Harvard, que identificaram que o que parece ser overfitting pode, em certas circunstâncias, ser resultado de encerrar prematuramente os procedimentos de treinamento. Demonstramos como podemos usar as ideias publicadas no artigo de pesquisa para melhorar nosso uso de IA na previsão de retornos de mercado.
preview
Engenharia de Features com Python e MQL5 (Parte I): Previsão de Médias Móveis para Modelos de IA de Longo Alcance

Engenharia de Features com Python e MQL5 (Parte I): Previsão de Médias Móveis para Modelos de IA de Longo Alcance

As médias móveis são, de longe, os melhores indicadores para nossos modelos de IA preverem. No entanto, podemos melhorar ainda mais nossa precisão transformando cuidadosamente nossos dados. Este artigo demonstrará como você pode construir Modelos de IA capazes de prever mais longe no futuro do que você talvez pratique atualmente, sem quedas significativas nos níveis de precisão. É realmente notável como as médias móveis são úteis.
preview
Criação de uma estratégia de retorno à média com base em aprendizado de máquina

Criação de uma estratégia de retorno à média com base em aprendizado de máquina

Neste artigo, é proposto um novo método para criar sistemas de trading baseados em aprendizado de máquina, utilizando clusterização e anotação de trades para estratégias de retorno à média.
preview
Algoritmo de Otimização de Bilhar — Billiards Optimization Algorithm (BOA)

Algoritmo de Otimização de Bilhar — Billiards Optimization Algorithm (BOA)

Inspirado no jogo clássico de bilhar, o método BOA modela o processo de busca por soluções ótimas como uma partida em que as bolas tentam cair nas caçapas, que simbolizam os melhores resultados. Neste artigo, analisaremos os fundamentos do funcionamento do BOA, seu modelo matemático e sua eficácia na resolução de diferentes problemas de otimização.
preview
Redes neurais em trading: Integração da teoria do caos na previsão de séries temporais (Attraos)

Redes neurais em trading: Integração da teoria do caos na previsão de séries temporais (Attraos)

O Attraos é um framework que integra a teoria do caos à previsão de séries temporais de longo prazo, tratando-as como projeções de sistemas dinâmicos caóticos multidimensionais. Por meio da invariância do atrator, o modelo aplica a reconstrução do espaço de fases e a memória dinâmica com múltiplas resoluções para preservar estruturas históricas.
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.