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
Simulação de mercado (Parte 14): Sockets (VIII)

Simulação de mercado (Parte 14): Sockets (VIII)

Muitos poderiam sugerir, que deveríamos abandonar o Excel, e usar o Python pura e simplesmente. Fazendo uso de alguns pacotes que permitiriam ao Python criar um arquivo de Excel, para que pudéssemos analisar os resultados depois. Mas como foi dito no artigo anterior, apesar desta solução ser a mais simples, pelo ponto de vista de muitos programadores. Ela de fato, não será bem vista, pelos olhos de alguns usuários. E nesta história toda, o usuário tem sempre razão. Você como programador deve, encontrar alguma forma ou alguma maneira de fazer as coisas funcionarem.
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.
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
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
Otimização extrema — Extremal Optimization (EO)

Otimização extrema — Extremal Optimization (EO)

Neste artigo, é analisado o algoritmo Extremal Optimization (EO), um método de otimização inspirado no modelo de criticidade auto-organizada de Bak-Sneppen, no qual a evolução ocorre por meio da eliminação dos piores componentes do sistema. A versão populacional modificada do algoritmo se afasta dos princípios teóricos em favor da eficiência prática, o que leva à criação de poderosas ferramentas computacionais.
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
Redes neurais em trading: Modelo adaptativo multiagente (Conclusão)

Redes neurais em trading: Modelo adaptativo multiagente (Conclusão)

No artigo anterior, conhecemos o framework adaptativo multiagente MASA, que combina abordagens de aprendizado por reforço com estratégias adaptativas, garantindo um equilíbrio harmônico entre lucratividade e riscos em condições turbulentas de mercado. Implementamos o funcional de agentes individuais deste framework, e neste artigo continuaremos o trabalho iniciado, levando-o à sua conclusão lógica.
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
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: 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 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
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
Redes neurais de maneira fácil (Parte 95): Redução do consumo de memória em modelos Transformer

Redes neurais de maneira fácil (Parte 95): Redução do consumo de memória em modelos Transformer

Os modelos baseados na arquitetura Transformer demonstram alta eficiência, mas seu uso é dificultado pelos altos custos de recursos, tanto na fase de treinamento quanto durante a utilização prática. Neste artigo, proponho conhecer algoritmos que permitem reduzir o uso de memória por esses modelos.
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
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
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
MQL5 Trading Toolkit (Parte 4): Desenvolvendo uma Biblioteca EX5 de Gerenciamento de Histórico

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

Aprenda a recuperar, processar, classificar, ordenar, analisar e gerenciar posições fechadas, ordens e históricos de negociações usando MQL5, criando uma ampla biblioteca EX5 de Gerenciamento de Histórico com um método detalhado passo a passo.
preview
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
Desenvolvendo um sistema de Replay (Parte 54): O nascimento do primeiro módulo

Desenvolvendo um sistema de Replay (Parte 54): O nascimento do primeiro módulo

Neste artigo, iremos ver como construir o primeiro dos módulos, realmente funcional a fim de ser utilizado no sistema de replay / simulador. Além de ter como proposito geral servir para outras coisas também. O módulo que será construído aqui será o do indicador de mouse.
preview
Do básico ao intermediário: Array e String (III)

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

Neste artigo iremos ver duas coisas. A primeira é como a biblioteca padrão consegue transformar valores binários em outras formas de representação, como octal, decimal e hexadecimal. A segunda coisa será a de como poderíamos com o conhecimento mostrado até aqui, definir uma largura para nossa senha, baseada em uma frase secreta. O conteúdo exposto aqui, visa e tem como objetivo, pura e simplesmente a didática. De modo algum deve ser encarado como sendo, uma aplicação cuja finalidade não venha a ser o aprendizado e estudo dos conceitos mostrados.
preview
Automatizando Estratégias de Trading em MQL5 (Parte 5): Desenvolvendo a Estratégia Adaptive Crossover RSI Trading Suite

Automatizando Estratégias de Trading em MQL5 (Parte 5): Desenvolvendo a Estratégia Adaptive Crossover RSI Trading Suite

Neste artigo, desenvolvemos o Sistema Adaptive Crossover RSI Trading Suite, que utiliza cruzamentos de médias móveis de 14 e 50 períodos para geração de sinais, confirmados por um filtro de RSI de 14 períodos. O sistema inclui um filtro de dias de negociação, setas de sinal com anotações e um painel em tempo real para monitoramento. Essa abordagem garante precisão e adaptabilidade no trading automatizado.
preview
Automatizando Estratégias de Trading em MQL5 (Parte 10): Desenvolvendo a Estratégia Trend Flat Momentum

Automatizando Estratégias de Trading em MQL5 (Parte 10): Desenvolvendo a Estratégia Trend Flat Momentum

Neste artigo, desenvolvemos um Expert Advisor em MQL5 para a estratégia Trend Flat Momentum. Combinamos um cruzamento de duas médias móveis com filtros de momentum RSI e CCI para gerar sinais de negociação. Também abordamos backtesting e possíveis melhorias para desempenho em condições reais de mercado.
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
Funcionalidades do Assistente MQL5 que você precisa conhecer (Parte 30): Normalização em Lote no Aprendizado de Máquina

Funcionalidades do Assistente MQL5 que você precisa conhecer (Parte 30): Normalização em Lote no Aprendizado de Máquina

A normalização em lote é um pré-processamento dos dados antes de sua entrada em um algoritmo de aprendizado de máquina, como uma rede neural. Ao aplicá-la, é essencial levar em conta o tipo de ativação que será usado pelo algoritmo. Exploraremos diferentes abordagens para extrair vantagens com um EA construído no Assistente.
preview
Do básico ao intermediário: Estruturas (III)

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

Neste artigo vamos ver o que seria de fato um código estruturado. Muita gente confunde código estruturado com um código organizado. No entanto, existe uma diferença entre ambos conceitos. E isto será explicando neste artigo. Apesar da aparente complexidade que será notada no primeiro contato com este tipo de codificação, procurei abordar o tema da melhor maneira possível. Mas este artigo é apenas o primeiro passo para algo ainda maior.
preview
Neurônio biológico para previsão de séries temporais financeiras

Neurônio biológico para previsão de séries temporais financeiras

Estamos construindo um sistema de neurônios biologicamente fiel para prever séries temporais. A introdução de um meio semelhante ao plasma na arquitetura da rede neural criou uma espécie de "inteligência coletiva", onde cada neurônio influencia o funcionamento do sistema não apenas por meio de conexões diretas, mas também por meio de interações eletromagnéticas de longo alcance. Como esse sistema neural modelando o cérebro irá se comportar no mercado?
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
Redes neurais em trading: Otimização de LSTM para fins de previsão de séries temporais multivariadas (DA-CG-LSTM)

Redes neurais em trading: Otimização de LSTM para fins de previsão de séries temporais multivariadas (DA-CG-LSTM)

Este artigo apresenta o algoritmo DA-CG-LSTM, que propõe novas abordagens para análise e previsão de séries temporais. Você verá como mecanismos de atenção inovadores e a flexibilidade da arquitetura contribuem para o aumento da precisão das previsões.
preview
Mineração de dados da CFTC em Python e modelo de IA com base neles

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

Vamos tentar minerar dados da CFTC, carregar os relatórios COT e TFF via Python, conectar isso às cotações do MetaTrader 5 e a um modelo de IA e obter previsões. O que são os relatórios COT no mercado Forex? Como usar os relatórios COT e TFF para previsão?
preview
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
Hibridização de algoritmos populacionais. Estruturas sequenciais e paralelas

Hibridização de algoritmos populacionais. Estruturas sequenciais e paralelas

Aqui, vamos mergulhar no mundo da hibridização de algoritmos de otimização, analisando três tipos principais: mistura de estratégias, hibridização sequencial e paralela. Realizaremos uma série de experimentos combinando e testando algoritmos de otimização relevantes.
preview
Do básico ao intermediário: Array (IV)

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

Neste artigo iremos ver como podemos fazer algo muito parecido com o encontrado em linguagens como C, C++ e Java. Onde podemos enviar um número quase infinito de parâmetros para dentro de uma função ou procedimento. Apesar de aparentemente ser um tópico avançado. Na minha visão, o que será visto aqui, pode muito bem ser implementado por qualquer iniciante. Desde que ele tenha compreendido os conceitos vistos arteriormente. O conteúdo exposto aqui, visa e tem como objetivo, pura e simplesmente a didática. De modo algum deve ser encarado como sendo, uma aplicação cuja finalidade não venha a ser o aprendizado e estudo dos conceitos mostrados.
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
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
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
Técnicas do MQL5 Wizard que você deve conhecer (Parte 56): Fractais de Bill Williams

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

Os Fractais de Bill Williams são um indicador poderoso que é fácil de ignorar quando inicialmente observado em um gráfico de preços. Ele parece muito carregado e provavelmente não é suficientemente incisivo. Nosso objetivo é remover essa impressão sobre este indicador, examinando o que seus diversos padrões podem realizar quando avaliados com testes forward walk em todos eles, utilizando um Expert Advisor montado pelo Wizard.
preview
Desenvolvimento de estratégias de trading de tendência baseadas em aprendizado de máquina

Desenvolvimento de estratégias de trading de tendência baseadas em aprendizado de máquina

Neste artigo é proposto um método original para o desenvolvimento de estratégias de tendência. Você aprenderá como é possível fazer a anotação dos exemplos de treinamento e treinar classificadores com base neles. O resultado final são sistemas de trading prontos para uso, operando sob o controle do terminal MetaTrader 5.
preview
Redes neurais em trading: Previsão de séries temporais com o auxílio da decomposição modal adaptativa (ACEFormer)

Redes neurais em trading: Previsão de séries temporais com o auxílio da decomposição modal adaptativa (ACEFormer)

Propomos conhecer a arquitetura ACEFormer, uma solução moderna que combina a eficiência da atenção probabilística com a decomposição adaptativa de séries temporais. O material será útil para quem busca um equilíbrio entre desempenho computacional e precisão de previsão nos mercados financeiros.
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
Teoria das Categorias em MQL5 (Parte 21): Transformações naturais com LDA

Teoria das Categorias em MQL5 (Parte 21): Transformações naturais com LDA

Este artigo, o 21º de nossa série, continua nossa análise das transformações naturais e de como elas podem ser implementadas usando a análise discriminante linear. Assim como no artigo anterior, a implementação é apresentada no formato de uma classe de sinal.