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
Explorando Técnicas Avançadas de Aprendizado de Máquina na Estratégia de Rompimento da Caixa de Darvas

Explorando Técnicas Avançadas de Aprendizado de Máquina na Estratégia de Rompimento da Caixa de Darvas

A estratégia de rompimento da Caixa de Darvas, criada por Nicolas Darvas, é uma abordagem de negociação técnica que identifica potenciais sinais de compra quando o preço de uma ação sobe acima de um intervalo definido de "caixa", sugerindo forte momentum de alta. Neste artigo, aplicaremos esse conceito de estratégia como exemplo para explorar três técnicas avançadas de aprendizado de máquina. Estas incluem usar um modelo de aprendizado de máquina para gerar sinais em vez de filtrar negociações, empregar sinais contínuos em vez de discretos, e utilizar modelos treinados em diferentes períodos gráficos para confirmar negociações.
preview
Do iniciante ao especialista: Criando um EA animado de notícias em MQL5 (III): Análise de indicadores

Do iniciante ao especialista: Criando um EA animado de notícias em MQL5 (III): Análise de indicadores

Neste artigo, daremos continuidade à apresentação do EA "manchetes", apresentando uma faixa especial de "Análise de indicadores" (indicator insights): uma exibição compacta, no gráfico, dos principais sinais técnicos gerados por indicadores populares, como RSI, MACD, Stochastic e CCI. Essa abordagem elimina a necessidade de várias subjanelas de indicadores no terminal MetaTrader 5, mantendo sua área de trabalho limpa e eficiente. Usando a API MQL5 para acessar dados dos indicadores em segundo plano, podemos processar e visualizar informações de mercado em tempo real com lógica personalizada.
preview
Do básico ao intermediário: Objetos e sub janelas (II)

Do básico ao intermediário: Objetos e sub janelas (II)

Este artigo explica como capturar e tratar a remoção de objetos do gráfico em MQL5 usando eventos do MetaTrader 5. Ao detectar a exclusão de um objeto criado pelo indicador, o código remove a instância correspondente para evitar inconsistências e sub janelas remanescentes. A abordagem adota nomes únicos e um arquivo de cabeçalho, priorizando simplicidade e previsibilidade do comportamento.
preview
Transferência de dados de ticks do MetaTrader para Python via sockets usando serviços MQL5

Transferência de dados de ticks do MetaTrader para Python via sockets usando serviços MQL5

Às vezes, nem tudo pode ser implementado em MQL5. Mesmo que seja possível converter bibliotecas modernas já disponíveis para MQL5, isso levará muito tempo. Neste artigo, tentaremos contornar a dependência do Windows com o uso de serviços MQL5, transmitindo dados de ticks (bid, ask e time) para uma aplicação Python por meio de sockets.
preview
Do iniciante ao especialista: Reporting EA - Configuração do fluxo de trabalho

Do iniciante ao especialista: Reporting EA - Configuração do fluxo de trabalho

As corretoras frequentemente fornecem relatórios de contas de negociação em intervalos regulares, com base em uma programação predefinida. Essas empresas, por meio de suas APIs, têm acesso à atividade da sua conta e ao histórico de negociação, o que permite que elas criem relatórios de desempenho para você. De modo semelhante, o terminal MetaTrader 5 armazena registros detalhados da sua atividade de negociação, que podem ser aproveitados com MQL5 para criar relatórios totalmente personalizáveis e configurar formas de envio personalizadas.
preview
Redes neurais em trading: Desvendando os componentes estruturais (Encoder)

Redes neurais em trading: Desvendando os componentes estruturais (Encoder)

Propomos dar continuação à implementação do framework SCNN, que combina flexibilidade e interpretabilidade, permitindo isolar com precisão os componentes estruturais da série temporal. O artigo detalha os mecanismos de normalização adaptativa e de atenção, o que confere ao modelo maior robustez diante de condições de mercado em constante mudança.
preview
Construindo Expert Advisors Autootimizáveis em MQL5 (Parte 6): Regras de Trading Autoajustáveis (II)

Construindo Expert Advisors Autootimizáveis em MQL5 (Parte 6): Regras de Trading Autoajustáveis (II)

Este artigo explora a otimização dos níveis e períodos do RSI para obter melhores sinais de trading. Introduzimos métodos para estimar valores ótimos do RSI e automatizar a seleção de períodos usando busca em grade e modelos estatísticos. Por fim, implementamos a solução em MQL5 enquanto utilizamos Python para análise. Nossa abordagem busca ser pragmática e direta para ajudá-lo a resolver problemas potencialmente complicados, com simplicidade.
preview
Do básico ao intermediário: Arquivo template (II)

Do básico ao intermediário: Arquivo template (II)

O artigo mostra como aplicar indicadores a gráficos criados por OBJ_CHART usando templates, quando ChartIndicatorAdd não funciona nesse contexto. Explicamos como salvar um template com o indicador, recuperar o ID do gráfico e aplicar ChartApplyTemplate ao destino correto. Você aprenderá a integrar indicadores como recurso, automatizar a configuração do gráfico embutido e entender limitações práticas, como a não listagem de indicadores na janela padrão.
preview
Superando as limitações do aprendizado de máquina (Parte 1): carência de métricas compatíveis

Superando as limitações do aprendizado de máquina (Parte 1): carência de métricas compatíveis

Neste artigo, mostramos que parte dos problemas que enfrentamos está enraizada em seguir cegamente as "melhores práticas". Ao apresentar ao leitor evidências simples, baseadas no mercado real, explicaremos por que devemos evitar esse comportamento e, em vez disso, adotar boas práticas baseadas em domínios específicos, caso nossa comunidade queira ter alguma chance de recuperar o potencial oculto da IA.
preview
Redes neurais em trading: Modelo de consultas temporais (Final)

Redes neurais em trading: Modelo de consultas temporais (Final)

Apresentamos a etapa final de implementação e teste do framework TQNet, na qual a teoria se encontra com a prática real de trading. Percorreremos o caminho do treinamento histórico até o teste de estresse em dados recentes de mercado, avaliando a robustez e a precisão do modelo. Os resultados finais não são apenas números frios, mas também uma demonstração clara do valor prático da abordagem proposta.
preview
Redes neurais em trading: modelo de difusão adaptativa em grafos (módulo de atenção)

Redes neurais em trading: modelo de difusão adaptativa em grafos (módulo de atenção)

Neste artigo, examinaremos em detalhes a implementação prática dos componentes-chave do framework SAGDFN. Mostraremos como são estruturadas a atenção esparsa e a seleção de vizinhos significativos para a previsão de séries temporais. As abordagens apresentadas demonstram um equilíbrio entre a precisão das previsões e a eficiência computacional.
preview
Análise da variação por hora dos símbolos de negociação e de seus spreads no MetaTrader 5

Análise da variação por hora dos símbolos de negociação e de seus spreads no MetaTrader 5

O indicador de índice de sazonalidade ProSpread com média móvel é uma ferramenta de análise técnica que identifica padrões sazonais de movimento dos preços, analisa o comportamento dos preços em horários específicos de negociação, pode trabalhar tanto com um único instrumento quanto com o spread entre dois ativos e também representa visualmente a probabilidade estatística de movimentos direcionados.
preview
Previsão da distribuição condicional com uma MLP

Previsão da distribuição condicional com uma MLP

Neste artigo, analisaremos um modelo de regressão baseado em MLP que prevê não apenas a esperança matemática condicional, mas também a variância condicional. Em outras palavras, treinaremos nossa rede para prever toda a distribuição dos preços futuros com base em um vetor de atributos de entrada. Para isso, porém, precisaremos implementar nossa própria função de perda.
preview
Equipe de agentes de IA com rotação baseada no lucro: a evolução de um sistema de trading vivo em MQL5

Equipe de agentes de IA com rotação baseada no lucro: a evolução de um sistema de trading vivo em MQL5

Gestão financeira como ecossistema: sete traders de IA, cada um com personalidade e estratégia próprias, em vez de um único algoritmo. Eles competem pelo capital, aprendem com os erros e tomam decisões em conjunto. O artigo apresenta os princípios de funcionamento do sistema Modern RL Trader, no qual o código é dotado de consciência e emoções, dando origem a uma inteligência de trading viva e em constante evolução.
preview
Rede neural na prática: Lendo PNG do MNIST

Rede neural na prática: Lendo PNG do MNIST

Aqui veremos como implementar um algorítimo simples de leitura de imagens no formato PNG. Conseguir efetuar a leitura do conteúdo destas imagens será importante para podermos avançar no desenvolvimento de uma topologia de rede perceptron. Isto por conta de que começaremos a fazer uso do banco de dados MNIST no treinamento da rede que será implementada.
preview
Machine Learning e Data Science (Parte 40): Uso dos níveis de Fibonacci em dados para machine learning

Machine Learning e Data Science (Parte 40): Uso dos níveis de Fibonacci em dados para machine learning

Os níveis de retração de Fibonacci são uma ferramenta popular na análise técnica. Eles são usados para identificar possíveis zonas de reversão. Neste artigo, veremos como esses níveis de retração podem ser transformados em variáveis-alvo para modelos de machine learning, ajudando-os a compreender melhor o mercado.
preview
Do básico ao intermediário: Arquivo template (I)

Do básico ao intermediário: Arquivo template (I)

O artigo explica como transferir configurações do gráfico principal para um gráfico embutido em OBJCHART, considerando que apenas parte do template é herdada. Mostramos como sincronizar cores e propriedades, reagir a mudanças de tamanho e aplicar ajustes ao gráfico interno usando seu chart ID e chamadas explícitas de atualização. O leitor aprende a reproduzir a aparência e o comportamento do gráfico principal no OBJCHART de forma previsível.
preview
Otimização por Comunidade de Cientistas - Community of Scientist Optimization (CoSO): Prática

Otimização por Comunidade de Cientistas - Community of Scientist Optimization (CoSO): Prática

Continuação do tema de otimização por comunidade científica. O CoSO não deve ser tratado como uma solução pronta, mas como uma plataforma de pesquisa promissora. Com o refinamento adequado, o CoSO pode encontrar seu nicho em tarefas em que a adaptabilidade e a robustez a mudanças sejam importantes, e quando o tempo de processamento não for crítico.
preview
Redes neurais em trading: Desvendando os componentes estruturais da série (SCNN)

Redes neurais em trading: Desvendando os componentes estruturais da série (SCNN)

Vamos conhecer o framework inovador SCNN, que leva a análise de séries temporais a um novo nível ao separar claramente os dados em componentes de longo prazo, sazonais, de curto prazo e residuais. Essa abordagem aumenta significativamente a precisão da previsão, permitindo que o modelo se adapte a uma dinâmica de mercado complexa e em constante mudança.
preview
Técnicas de reamostragem para avaliação de previsão e classificação em MQL5

Técnicas de reamostragem para avaliação de previsão e classificação em MQL5

Neste artigo, exploraremos e implementaremos métodos para avaliar a qualidade de modelos que utilizam um único conjunto de dados tanto para treinamento quanto para validação.
preview
Redes neurais em trading: uma visão unificada do espaço e do tempo (final)

Redes neurais em trading: uma visão unificada do espaço e do tempo (final)

O framework Extralonger demonstra uma capacidade única de integrar fatores espaciais e temporais em um único modelo, favorecendo previsões de alta precisão. Sua arquitetura permite adaptar-se a diferentes horizontes de previsão e instrumentos financeiros, mantendo a transparência e a capacidade de controle do sistema.
preview
Engenharia de Atributos com Python e MQL5 (Parte IV): Reconhecimento de Padrões de Candlestick com Regressão UMAP

Engenharia de Atributos com Python e MQL5 (Parte IV): Reconhecimento de Padrões de Candlestick com Regressão UMAP

Técnicas de redução de dimensionalidade são amplamente utilizadas para melhorar o desempenho de modelos de machine learning. Vamos discutir uma técnica relativamente nova conhecida como Uniform Manifold Approximation and Projection (UMAP). Essa nova técnica oi desenvolvida explicitamente para superar as limitações de métodos tradicionais que criam artefatos e distorções nos dados. UMAP é uma poderosa técnica de redução de dimensionalidade e nos ajuda a agrupar candlesticks semelhantes de uma maneira nova e eficaz, reduzindo nossas taxas de erro em dados out-of-sample e melhorando nosso desempenho de trading.
preview
Equação simbólica para prever o preço com SymPy

Equação simbólica para prever o preço com SymPy

O artigo apresenta uma abordagem interessante para o trading algorítmico, baseada em equações matemáticas simbólicas, em vez das tradicionais "caixas-pretas" do machine learning. O autor mostra como transformar redes neurais pouco transparentes em fórmulas matemáticas legíveis usando a biblioteca SymPy e regressão polinomial, o que permite compreender por completo a lógica por trás das decisões de trading. A abordagem combina o poder computacional do ML com a transparência dos métodos clássicos, permitindo que o trader analise, ajuste e adapte os modelos em tempo real.
preview
Rede neural na prática: Retro propagação manual

Rede neural na prática: Retro propagação manual

Neste artigo, começaremos a ter uma base de como a retro propagação funciona. Entender esta base, é necessária para se conseguir compreender, como diversos perceptrons conseguem ajustar seus parâmetros individualmente, mesmo quando temos uma quantidade arbitrária deles presentes em uma rede. O objetivo aqui, não será implementar a retro propagação, mas criar um mecanismo simples para que você consiga entender como ela funciona.
preview
Desenvolvendo uma Estratégia de Pullback: Validação

Desenvolvendo uma Estratégia de Pullback: Validação

A etapa de validação de um pullback avança com inclinação das EMAs, limites mínimo e máximo de distância por ATR, janela flexível do gatilho ATR e Walk-Forward Efficiency. As baterias comparam componentes e medem continuidade fora da amostra, dependência exclusiva da gestão. O resultado destaca plataformas paramétricas e critérios práticos para selecionar candidatos e evitar sobreajuste.
preview
Desenvolvendo um EA Dinâmico para Múltiplos Pares (Parte 2): Diversificação e Otimização de Portfólio

Desenvolvendo um EA Dinâmico para Múltiplos Pares (Parte 2): Diversificação e Otimização de Portfólio

A Diversificação e Otimização de Portfólio distribui estrategicamente os investimentos entre múltiplos ativos para minimizar o risco, ao mesmo tempo em que seleciona a combinação ideal de ativos para maximizar os retornos com base em métricas de desempenho ajustadas ao risco.
preview
Algoritmo do Bisão: Bison Algorithm (BIA)

Algoritmo do Bisão: Bison Algorithm (BIA)

O novo método de otimização Bison Algorithm (BIA) combina duas estratégias inspiradas no comportamento dos bisões para resolver problemas contínuos com uma única função objetivo. O BIA se baseia em dois princípios fundamentais observados no comportamento dos bisões: a capacidade de deslocamento dinâmico e a estratégia defensiva.
preview
Algoritmo de sistema artificial de circulação coronariana (Artificial Coronary Circulation System, ACCS)

Algoritmo de sistema artificial de circulação coronariana (Artificial Coronary Circulation System, ACCS)

Algoritmo meta-heurístico que simula o crescimento das artérias coronárias do coração humano para resolver problemas de otimização. Utiliza os princípios da angiogênese (crescimento de novos vasos), da bifurcação (ramificação) e da poda de ramos fracos para buscar soluções ótimas em um espaço multidimensional. Os testes de sua eficiência em uma ampla variedade de problemas produziram resultados inesperados.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 58): Aprendizado por Reforço (DDPG) com Padrões de Média Móvel e Oscilador Estocástico

Técnicas do MQL5 Wizard que você deve conhecer (Parte 58): Aprendizado por Reforço (DDPG) com Padrões de Média Móvel e Oscilador Estocástico

A Média Móvel e o Oscilador Estocástico são indicadores muito comuns cujos padrões coletivos exploramos no artigo anterior, por meio de uma rede de aprendizado supervisionado, para verificar quais “padrões permaneceriam consistentes”. Levamos nossas análises daquele artigo um passo adiante ao considerar os efeitos que o aprendizado por reforço, quando utilizado com essa rede treinada, teria sobre o desempenho. Os leitores devem observar que nossos testes foram realizados em uma janela de tempo muito limitada. Ainda assim, continuamos a aproveitar os requisitos mínimos de codificação proporcionados pelo MQL5 Wizard para demonstrar isso.
preview
Redes neurais em trading: Treinamento de modelos spiking profundos (Integração de spikes)

Redes neurais em trading: Treinamento de modelos spiking profundos (Integração de spikes)

O artigo apresenta uma implementação prática, em MQL5, dos principais componentes do framework SEW-ResNet. O uso de arrays dinâmicos e mecanismos spiking permite construir a arquitetura do modelo de forma flexível e processar séries temporais financeiras com eficiência. As soluções propostas mostram como o SEW-ResNet pode otimizar os cálculos e melhorar a extração de atributos relevantes.
preview
Redes neurais em trading: decomposição em vez de aumento de escala (SSCNN)

Redes neurais em trading: decomposição em vez de aumento de escala (SSCNN)

Neste artigo, iniciamos o estudo do framework SSCNN, uma solução arquitetural moderna para análise de séries temporais que combina precisão, estrutura bem definida e alta eficiência computacional. Examinaremos seus aspectos teóricos de forma sequencial, destacaremos as principais diferenças em relação a seus predecessores e iniciaremos a implementação prática dos componentes básicos no ambiente MQL5.
preview
Do básico ao intermediário: Arquivo template (III)

Do básico ao intermediário: Arquivo template (III)

No passado, publiquei um artigo que gerou muita confusão e proporcionou pouco entendimento por parte de muitos que o leram. Pois bem, neste artigo, vamos rever de forma muito mais bem explicada, exatamente aquele conceito que outrora não fazia nenhum sentido. Ou seja, vamos ver como colocar mais de um indicador em uma única sub janela de forma que eles sejam facilmente lidos e compreendidos.
preview
Superando as limitações do aprendizado de máquina (Parte 2): falta de reprodutibilidade

Superando as limitações do aprendizado de máquina (Parte 2): falta de reprodutibilidade

O artigo examina por que os resultados de trading podem variar significativamente entre corretoras, mesmo usando a mesma estratégia e o mesmo símbolo financeiro, devido à precificação descentralizada e às divergências nos dados. Este artigo ajuda os desenvolvedores MQL5 a entender por que seus produtos podem receber avaliações mistas no MQL5 Marketplace e incentiva os desenvolvedores a adaptar suas abordagens a corretoras específicas para garantir resultados transparentes e reproduzíveis. Se amplamente adotada, essa pode se tornar uma prática recomendada importante e bastante especializada, capaz de beneficiar nossa comunidade.
preview
Treinamento de um U-Transformer não linear nos resíduos de um modelo autorregressivo linear

Treinamento de um U-Transformer não linear nos resíduos de um modelo autorregressivo linear

O artigo apresenta um sistema híbrido inovador para previsão de taxas de câmbio, que combina um modelo autorregressivo linear com a arquitetura U-Transformer para análise dos resíduos. O sistema alterna automaticamente entre as fontes de sinais conforme a qualidade de cada uma e inclui uma lógica de negociação completa, com estratégias de averaging/pyramiding. A principal vantagem da abordagem está no fato de a rede neural ser treinada nos resíduos do modelo linear, o que simplifica a tarefa e reduz o risco de sobreajuste. A implementação foi feita integralmente em MQL5 e está pronta para uso em negociação real, com adaptação automática às mudanças nas condições de mercado.
preview
Redes neurais em trading: sinais de negociação robustos em qualquer regime de mercado (Conclusão)

Redes neurais em trading: sinais de negociação robustos em qualquer regime de mercado (Conclusão)

O artigo examina em detalhes a integração das abordagens do framework ST-Expert à arquitetura Extralonger, o que permite analisar simultaneamente as representações temporais e espaciais dos dados. São apresentados resultados de testes com dados históricos reais, que demonstram a eficácia do modelo e sua robustez diante de anomalias do mercado. Também é descrita a estrutura modular do framework, que garante a reprodutibilidade, oferece flexibilidade para pesquisas e permite otimizar seus componentes de forma gradual.
preview
Sistema de autoaprendizado por reforço para trading algorítmico em MQL5

Sistema de autoaprendizado por reforço para trading algorítmico em MQL5

Neste artigo, desenvolvemos um sistema multiagente de aprendizado de máquina para trading algorítmico no MetaTrader 5 com base em aprendizado por reforço. O sistema possui uma arquitetura de três níveis: os neurônios de memória armazenam a experiência, os agentes tomam decisões de forma independente e a inteligência coletiva combina essas decisões por meio de votação ponderada. O sistema se aperfeiçoa continuamente por meio de Q-learning, pruning de neurônios ineficientes e redução evolutiva do nível de exploração.
preview
Técnicas do MQL5 Wizard que você deve saber (Parte 59): Aprendizado por Reforço (DDPG) com Padrões da Média Móvel e do Oscilador Estocástico

Técnicas do MQL5 Wizard que você deve saber (Parte 59): Aprendizado por Reforço (DDPG) com Padrões da Média Móvel e do Oscilador Estocástico

Continuamos nosso último artigo sobre DDPG com indicadores de Média Móvel e Estocástico, examinando outras classes-chave de Aprendizado por Reforço cruciais para a implementação do DDPG. Embora estejamos codificando principalmente em Python, será exportado para o formato ONNX para o MQL5, onde a integraremos como um recurso em um Expert Advisor montado pelo Wizard.
preview
Redes neurais em trading: Dos transformers aos neurônios spiking (Componentes principais)

Redes neurais em trading: Dos transformers aos neurônios spiking (Componentes principais)

Apresentamos ao leitor uma implementação das abordagens do framework SpikingBrain com base em atenção linear recorrente com gates, analisada em detalhes neste artigo. Os algoritmos de propagação para frente, propagação dos gradientes e atualização dos pesos proporcionam um processamento eficiente de séries temporais financeiras e permitem colocar em prática as principais ideias do framework.
preview
Desenvolvemos um gerenciador de terminais (Parte 2): Execução de várias instâncias

Desenvolvemos um gerenciador de terminais (Parte 2): Execução de várias instâncias

Passamos a usar várias instâncias do terminal no servidor, criando um painel de controle simples para iniciá-las e encerrá-las. Agora chegou a hora de ampliar a funcionalidade e avançar para as próximas etapas, implementando recursos mais complexos, como o gerenciamento de várias instâncias, o armazenamento de estado, a integração com a API do MetaTrader 5 e uma interface web com informações completas sobre os terminais.
preview
Do iniciante ao especialista: Criação de um EA de notícias animado em MQL5(V): sistema de lembretes de eventos

Do iniciante ao especialista: Criação de um EA de notícias animado em MQL5(V): sistema de lembretes de eventos

Nesta discussão, veremos aprimoramentos adicionais, ao integrarmos uma lógica avançada de alertas para os eventos do calendário econômico exibidos pelo EA "Manchetes de notícias". Esse aprimoramento é decisivo, pois garante que os usuários recebam notificações em tempo hábil pouco antes dos principais eventos programados. Acompanhe esta discussão para saber mais.