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
Desenvolvendo um sistema de Replay (Parte 52): Complicando as coisas (IV)

Desenvolvendo um sistema de Replay (Parte 52): Complicando as coisas (IV)

Neste artigo vamos fazer uma mudança no indicador de mouse a fim de poder efetuar a interação com o indicador de controle, já que a interação está sendo feita de forma errática.
preview
Quantificação no aprendizado de máquina (Parte 1): Teoria, exemplo de código, análise da implementação no CatBoost

Quantificação no aprendizado de máquina (Parte 1): Teoria, exemplo de código, análise da implementação no CatBoost

Neste artigo, discutiremos a aplicação teórica da quantização ao construir modelos baseados em árvores. São examinados os métodos de quantização implementados no CatBoost. O material será apresentado em linguagem acessível, sem fórmulas matemáticas complexas.
preview
Recursos do Assistente MQL5 que você precisa conhecer (Parte 40): Parabolic SAR

Recursos do Assistente MQL5 que você precisa conhecer (Parte 40): Parabolic SAR

O Parabolic Stop-and-Reversal (SAR) é um indicador de pontos de confirmação e término de tendência. Como ele detecta tendências com atraso, sua principal função era posicionar ordens stop-loss móveis para posições abertas. Vamos analisar se é possível utilizá-lo como sinal de EA com a ajuda de classes de sinais personalizadas para EAs, montadas usando o Assistente.
preview
Otimização e ajuste fino do código-fonte para melhorar os resultados do backtesting

Otimização e ajuste fino do código-fonte para melhorar os resultados do backtesting

Melhore seu código MQL5 otimizando a lógica, aprimorando os cálculos e reduzindo o tempo de execução para aumentar a precisão do backtesting. Ajuste finamente os parâmetros, otimize loops e elimine ineficiências para melhorar o resultado.
preview
Redes neurais de maneira fácil (Parte 63): pré-treinamento do transformador de decisões não supervisionado (PDT)

Redes neurais de maneira fácil (Parte 63): pré-treinamento do transformador de decisões não supervisionado (PDT)

Continuamos nossa análise, desta vez, explorando a família de transformadores de decisão. Em trabalhos anteriores, já observamos que o treinamento do transformador subjacente à arquitetura desses métodos é bastante desafiador e requer uma grande quantidade de dados de treinamento rotulados. Neste artigo, consideramos um algoritmo para usar trajetórias não rotuladas com o objetivo de pré-treinar modelos.
preview
Ciência de Dados e Aprendizado de Máquina (Parte 19): Supercharge Seus Modelos de IA com AdaBoost

Ciência de Dados e Aprendizado de Máquina (Parte 19): Supercharge Seus Modelos de IA com AdaBoost

AdaBoost, um poderoso algoritmo de boosting projetado para elevar o desempenho dos seus modelos de IA. AdaBoost, abreviação de Adaptive Boosting, é uma técnica sofisticada de aprendizado em conjunto que integra perfeitamente aprendizes fracos, aprimorando sua força preditiva coletiva.
preview
Redes neurais de maneira fácil (Parte 75): aumentando a produtividade dos modelos de previsão de trajetórias

Redes neurais de maneira fácil (Parte 75): aumentando a produtividade dos modelos de previsão de trajetórias

Os modelos que estamos criando estão se tornando cada vez maiores e mais complexos. Com isso, aumentam os custos não apenas para o treinamento, mas também para a operação. Além disso, muitas vezes nos deparamos com situações em que o tempo de tomada de decisão é crítico. E, por isso, voltamos nossa atenção para métodos de otimização de desempenho dos modelos sem perder qualidade.
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
Estratégia da Águia — Eagle Strategy (ES)

Estratégia da Águia — Eagle Strategy (ES)

Eagle Strategy é um algoritmo que imita a estratégia de caça em duas fases da águia: busca global por meio de voos de Lévy pelo método de Mantegna, alternada com intensificação local intensa do algoritmo de vaga-lumes, uma abordagem matematicamente fundamentada para o equilíbrio entre diversificação e intensificação, bem como um conceito bioinspirado que combina dois fenômenos naturais em um único método computacional.
preview
Explorando modelos de regressão para inferência causal e trading

Explorando modelos de regressão para inferência causal e trading

Neste artigo, foi realizado um estudo sobre a possibilidade de aplicar modelos de regressão no trading algorítmico. Os modelos de regressão, diferentemente da classificação binária, permitem criar estratégias de trading mais flexíveis por meio da avaliação quantitativa das variações de preço previstas.
preview
Métodos de discretização dos movimentos de preço em Python

Métodos de discretização dos movimentos de preço em Python

Vamos explorar métodos de discretização de preços com Python + MQL5. Neste artigo, compartilho minha experiência prática no desenvolvimento de uma biblioteca em Python que implementa uma variedade de abordagens para formar barras, desde as clássicas Volume e Range bars até métodos mais exóticos como Renko e Kagi. Barras, candles de três linhas rompidas, range bars — qual é a sua estatística? De que outras formas podemos representar os preços de maneira discreta?
preview
Simulação de mercado: Iniciando o SQL no MQL5 (III)

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

No artigo anterior vimos como poderíamos desenvolver uma classe em MQL5, que seria capaz de nos dar algum suporte. Cuja finalidade, se dá justamente para que possamos colocar o código SQL dentro de um arquivo de script. Isto de forma que não precisaríamos, ter que digitar o mesmo código em uma string, no código MQL5. Mas apesar de daquela solução, ser funcional. Ela contem alguns detalhes, que podemos melhorar e devemos melhorar.
preview
Redes neurais de maneira fácil (Parte 79): consultas agregadas de características (FAQ)

Redes neurais de maneira fácil (Parte 79): consultas agregadas de características (FAQ)

No artigo anterior, nos familiarizamos com um dos métodos de detecção de objetos em imagens. No entanto, o processamento de imagens estáticas é um pouco diferente do trabalho com séries temporais dinâmicas, como aquelas relacionadas à dinâmica dos preços que estamos analisando. Neste artigo, quero apresentar a você o método de detecção de objetos em vídeo, que é mais relevante para a nossa tarefa atual.
preview
Modelos polinomiais no trading

Modelos polinomiais no trading

Este artigo é dedicado aos polinômios ortogonais. Seu uso pode se tornar a base para uma análise mais precisa e eficaz das informações do mercado, permitindo que o trader tome decisões mais fundamentadas.
preview
Gerenciamento de riscos (Parte 2): Implementação do cálculo de lotes na interface gráfica

Gerenciamento de riscos (Parte 2): Implementação do cálculo de lotes na interface gráfica

Neste artigo, analisaremos como aprimorar e aplicar de forma mais eficiente os conceitos apresentados no artigo anterior, utilizando as poderosas bibliotecas de elementos gráficos de controle do MQL5. Conduzirei você passo a passo pelo processo de criação de uma interface gráfica totalmente funcional, explicando o plano de projeto subjacente, bem como o propósito e o princípio de funcionamento de cada método empregado. Além disso, ao final do artigo testaremos o painel criado, a fim de confirmar seu correto funcionamento e sua aderência aos objetivos estabelecidos.
preview
Desenvolvendo um EA multimoeda (Parte 24): Conectando uma nova estratégia (I)

Desenvolvendo um EA multimoeda (Parte 24): Conectando uma nova estratégia (I)

Neste artigo, vamos analisar como conectar uma nova estratégia ao sistema de otimização automática criado. Vamos ver quais EAs precisaremos criar e se será possível evitar alterações nos arquivos da biblioteca Advisor, ou pelo menos reduzi-las ao mínimo.
preview
Gestão de capital no trading e programa de contabilidade pessoal do trader com banco de dados

Gestão de capital no trading e programa de contabilidade pessoal do trader com banco de dados

Como um trader deve gerir seu capital? Como um trader e investidor deve controlar despesas, receitas, ativos e passivos? Eu vou apresentar não apenas um programa de controle, mas sim uma ferramenta que pode se tornar seu guia financeiro confiável no turbulento mar do trading.
preview
Simulação de mercado (Parte 04): Iniciando a classe C_Orders (I)

Simulação de mercado (Parte 04): Iniciando a classe C_Orders (I)

Neste artigo vamos começar a montar a classe C_Orders, para poder enviar pedidos ao servidor de negociação. Vamos fazer isto aos pouco. Já que o intuito será explicar o mais detalhadamente possível como isto será feito, via sistema de mensagens.
preview
Simulação de mercado (Parte 17): Sockets (XI)

Simulação de mercado (Parte 17): Sockets (XI)

Implementar a parte que será executada aqui no MetaTrader 5, está longe de ser complicado. Mas existem diversos cuidados e pontos de atenção a serem observados. Isto para que você caro leitor, consiga de fato fazer com que o sistema funcione. Lembre-se de uma coisa: Você não executará um único programa. Você estará na verdade, executando três programas ao mesmo tempo. E é importante que cada um seja implementado e construído de forma que trabalhem e conversem entre si. Isto sem que eles fiquem completamente sem saber o que cada um está querendo ou desejando fazer.
preview
Visualizações de negociações  no gráfico (Parte 1): Escolha do período para análise

Visualizações de negociações no gráfico (Parte 1): Escolha do período para análise

Estamos escrevendo do zero um script que facilitará a exportação de capturas de tela das negociações para a análise das entradas de trades. Será conveniente exibir todas as informações necessárias sobre uma negociação em um único gráfico, com a possibilidade de desenhar diferentes timeframes.
preview
Do básico ao intermediário: Template e Typename (II)

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

Neste artigo será mostrado como lidar com uma das situações mais chatas e complicadas em termos de programação, que você poderá vir a enfrentar. O uso de tipos diferentes em um mesmo template de função ou procedimento. Apesar de aqui termos focado quase o tempo todo apenas em funções. Tudo que foi visto aqui, serve e pode ser aplicado a procedimentos.
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
Anotação de dados na análise de série temporal (Parte 5): Aplicação e teste de um EA usando Socket

Anotação de dados na análise de série temporal (Parte 5): Aplicação e teste de um EA usando Socket

Nesta série de artigos, apresentamos vários métodos de anotação de séries temporais que podem criar dados compatíveis com a maioria dos modelos de inteligência artificial (IA). A anotação precisa dos dados pode tornar o modelo de IA treinado mais alinhado com os objetivos e tarefas dos usuários, aumentar a precisão do modelo e até ajudar a alcançar uma melhoria significativa na qualidade!
preview
Mecanismos de gating em aprendizado por ensemble

Mecanismos de gating em aprendizado por ensemble

Neste artigo, continuamos nossa exploração de modelos ensemble discutindo o conceito de gates, especificamente como eles podem ser úteis na combinação das saídas dos modelos para aprimorar a precisão das previsões ou a generalização do modelo.
preview
Trading por pares: negociação algorítmica com auto-otimização baseada na diferença de pontuação Z

Trading por pares: negociação algorítmica com auto-otimização baseada na diferença de pontuação Z

Neste artigo, analisaremos o que é o trading por pares e como ocorre a negociação baseada em correlações. Também criaremos um EA para automatizar o trading por pares e adicionaremos a possibilidade de otimização automática desse algoritmo de negociação com base em dados históricos. Além disso, dentro do projeto, aprenderemos a calcular as divergências entre dois pares por meio da pontuação Z.
preview
Movimento do preço: modelos matemáticos e análise técnica

Movimento do preço: modelos matemáticos e análise técnica

A previsão dos movimentos dos pares de moedas é um fator importante de sucesso no trading. Este artigo é dedicado ao estudo de diferentes modelos de movimento do preço, à análise de suas vantagens e desvantagens, bem como à aplicação prática em estratégias de negociação. Serão considerados enfoques que permitem identificar padrões ocultos e aumentar a precisão das previsões.
preview
DoEasy. Controles (Parte 25): Objeto WinForms Tooltip

DoEasy. Controles (Parte 25): Objeto WinForms Tooltip

Neste artigo, começaremos a desenvolver o controle Tooltip (dica de ferramenta) e começaremos a criar novas primitivas gráficas para a biblioteca. Naturalmente, nem todo elemento tem uma dica de ferramenta, mas todo objeto gráfico pode ter uma.
preview
Ciência de dados e aprendizado de máquina (Parte 18): Comparando a eficácia do TruncatedSVD e NMF no tratamento de dados complexos de mercado

Ciência de dados e aprendizado de máquina (Parte 18): Comparando a eficácia do TruncatedSVD e NMF no tratamento de dados complexos de mercado

A decomposição em valores singulares truncada (TruncatedSVD) e a fatoração de matriz não negativa (NMF) são métodos de redução de dimensionalidade. Ambos podem ser bastante úteis ao trabalhar com estratégias de negociação baseadas na análise de dados. Neste artigo, analisamos a aplicabilidade desses métodos no processamento de dados complexos de mercado, incluindo suas capacidades de redução de dimensionalidade para otimizar a análise quantitativa nos mercados financeiros.
preview
Algoritmo de Busca Cooperativa Artificial (Artificial Cooperative Search, ACS)

Algoritmo de Busca Cooperativa Artificial (Artificial Cooperative Search, ACS)

Apresentamos o algoritmo Artificial Cooperative Search (ACS). Este método inovador utiliza uma matriz binária e várias populações dinâmicas, baseadas em relações mutualísticas e cooperação, para encontrar rapidamente e com precisão soluções ótimas. A abordagem única do ACS em relação a "predadores" e "presas" permite alcançar excelentes resultados em problemas de otimização numérica.
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
Desenvolvendo um sistema de Replay (Parte 62): Dando play no serviço (III)

Desenvolvendo um sistema de Replay (Parte 62): Dando play no serviço (III)

Neste artigo começaremos a resolver, o detalhe sobre o excesso de ticks, que pode acometer a aplicação, quando usamos dados reais. Tal excesso faz com que o serviço muitas das vezes dificulta a correta temporização a fim de conseguir construir a barra de um minuto dentro da janela adequada.
preview
Simulação de mercado (Parte 03): Uma questão de performance

Simulação de mercado (Parte 03): Uma questão de performance

Muitas vezes somos obrigados a dar um passo para trás para logo depois dar alguns passos a frente. Neste artigo irei mostrar todas as mudanças que foram necessárias serem feitas para que os indicadores de Mouse e Chart Trade não viessem a ter a sua performance comprometidas. Como bônus irei já apresentar outras mudanças que ocorreram em outros arquivos de cabeçalho, que serão muito usados no futuro.
preview
Redes neurais de maneira fácil (Parte 68): Otimização off-line de políticas baseada em preferências

Redes neurais de maneira fácil (Parte 68): Otimização off-line de políticas baseada em preferências

Desde os primeiros artigos sobre aprendizado por reforço, a gente sempre falou de duas coisas: como explorar o ambiente e definir a função de recompensa. Os artigos mais recentes foram dedicados à exploração durante o aprendizado off-line. Neste aqui, quero apresentar a você um algoritmo em que os autores resolveram deixar de lado a função de recompensa.
preview
Redes neurais de maneira fácil (Parte 94): Otimização da sequência de dados iniciais

Redes neurais de maneira fácil (Parte 94): Otimização da sequência de dados iniciais

Ao trabalhar com séries temporais, geralmente usamos os dados na sequência histórica. Mas isso é realmente o mais eficiente? Há quem acredite que modificar a sequência dos dados iniciais pode aumentar a eficácia dos modelos de aprendizado. Neste artigo, vou apresentar um desses métodos.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 38): Bandas de Bollinger

Técnicas do MQL5 Wizard que você deve conhecer (Parte 38): Bandas de Bollinger

As Bandas de Bollinger são um indicador do tipo Envelope muito comum, utilizado por muitos traders para abrir e fechar operações manualmente. Vamos examinar esse indicador considerando o máximo possível dos diferentes sinais que ele pode gerar e ver como eles podem ser utilizados em um Expert Advisor montado com o wizard.
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
Redes neurais em trading: Otimizando Transformer para previsão de séries temporais (LSEAttention)

Redes neurais em trading: Otimizando Transformer para previsão de séries temporais (LSEAttention)

O framework LSEAttention propõe caminhos para aprimorar a arquitetura Transformer, tendo sido desenvolvido especificamente para a previsão de séries temporais multivariadas de longo prazo. As abordagens sugeridas pelos autores do método permitem resolver problemas comuns no Transformer tradicional, como o colapso entrópico e a instabilidade no treinamento.
preview
Algoritmo da viagem evolutiva no tempo — Time Evolution Travel Algorithm (TETA)

Algoritmo da viagem evolutiva no tempo — Time Evolution Travel Algorithm (TETA)

Meu algoritmo original. Neste artigo é apresentado o Algoritmo da Viagem Evolutiva no Tempo (TETA), inspirado no conceito de universos paralelos e fluxos temporais. A ideia central do algoritmo é que, embora a viagem no tempo no sentido convencional seja impossível, podemos escolher uma sequência de eventos que leva a diferentes realidades.
preview
Desenvolvimento de um sistema personalizado de detecção do regime de mercado em MQL5 (Parte 2): Expert Advisor

Desenvolvimento de um sistema personalizado de detecção do regime de mercado em MQL5 (Parte 2): Expert Advisor

Este artigo descreve em detalhes a criação de um EA adaptativo (MarketRegimeEA) usando o detector de regimes da Parte 1. Ele alterna automaticamente estratégias de negociação e parâmetros de risco para mercados de tendência, mercados laterais ou mercados voláteis. O artigo também inclui otimização prática, tratamento das transições e um indicador para vários timeframes.
preview
Do básico ao intermediário: Array (III)

Do básico ao intermediário: Array (III)

Neste artigo iremos ver como trabalhar com arrays no MQL5, a ponto de transferir informações entre funções e procedimentos, utilizando arrays para isto. O objetivo aqui é lhe preparar para o que será visto e explicado em artigos futuros. No entanto, é extremamente recomendado que você estude muito bem o que será mostrado 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.