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
Modelo GRU de Deep Learning com Python para ONNX com EA, e comparação entre modelos GRU e LSTM

Modelo GRU de Deep Learning com Python para ONNX com EA, e comparação entre modelos GRU e LSTM

Vamos guiá-lo por todo o processo de DL com Python para criar um modelo GRU em ONNX, culminando na criação de um Expert Advisor (EA) projetado para negociação, e, posteriormente, comparando o modelo GRU com o modelo LSTM.
preview
Variáveis Avançadas e Tipos de Dados em MQL5

Variáveis Avançadas e Tipos de Dados em MQL5

Variáveis e tipos de dados são tópicos muito importantes não apenas na programação MQL5, mas também em qualquer linguagem de programação. As variáveis e tipos de dados em MQL5 podem ser categorizados como simples e avançados. Neste artigo, identificaremos e aprenderemos sobre os avançados, pois já mencionamos os simples em um artigo anterior.
preview
Negociação algorítmica com MetaTrader 5 e R para iniciantes

Negociação algorítmica com MetaTrader 5 e R para iniciantes

Neste artigo, vamos combinar análise financeira com negociação algorítmica, além de ver como integrar R e MetaTrader 5. Este artigo é um guia para unir a flexibilidade analítica do R com as enormes possibilidades de negociação do MetaTrader 5.
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
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
Redes neurais de maneira fácil (Parte 76): explorando diversos modos de interação (Multi-future Transformer)

Redes neurais de maneira fácil (Parte 76): explorando diversos modos de interação (Multi-future Transformer)

Neste artigo, continuamos o tema de previsão do movimento de preços. E convido você a conhecer a arquitetura do Multi-future Transformer. A ideia principal é decompor a distribuição multimodal do futuro em várias distribuições unimodais, permitindo modelar eficientemente diversos modos de interação entre os agentes na cena.
preview
Trabalho com modelos ONNX nos formatos float16 e float8

Trabalho com modelos ONNX nos formatos float16 e float8

Os formatos de dados utilizados para representar modelos de aprendizado de máquina desempenham um papel fundamental em sua eficiência. Nos últimos anos, surgiram vários novos tipos de dados desenvolvidos especificamente para trabalhar com modelos de aprendizado profundo. Neste artigo, vamos focar em dois novos formatos de dados que se tornaram amplamente utilizados nos modelos modernos.
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
Redes neurais de maneira fácil (Parte 69): restrição de política comportamental com base na densidade de dados off-line (SPOT)

Redes neurais de maneira fácil (Parte 69): restrição de política comportamental com base na densidade de dados off-line (SPOT)

No aprendizado off-line, utilizamos um conjunto de dados fixo, e isso não abrange toda a variedade do ambiente. Durante o processo de treinamento, nosso Agente pode gerar ações fora desse conjunto. Sem feedback do ambiente, a precisão dessas ações é duvidosa. Manter a política do Agente dentro do conjunto de treinamento se torna importante para confiar nos resultados. Vamos falar mais sobre isso aqui neste artigo.
preview
Inferência causal em problemas de classificação de séries temporais

Inferência causal em problemas de classificação de séries temporais

Neste artigo, examinaremos a teoria da inferência causal usando aprendizado de máquina, bem como a implementação de uma abordagem personalizada em Python. A inferência causal e o pensamento causal têm suas raízes na filosofia e psicologia e desempenham um papel importante na nossa compreensão da realidade.
preview
Algoritmos de otimização populacionais: algoritmo genético binário (Binary Genetic Algorithm, BGA). Parte I

Algoritmos de otimização populacionais: algoritmo genético binário (Binary Genetic Algorithm, BGA). Parte I

Neste artigo, vamos realizar um estudo sobre vários métodos aplicados em algoritmos genéticos binários e outros algoritmos populacionais. Vamos examinar os componentes principais do algoritmo, como seleção, crossover e mutação, bem como seu impacto no processo de otimização. Além disso, vamos explorar as formas de representação de informações e seu impacto nos resultados de otimização.
preview
Ciência de dados e aprendizado de máquina (Parte 20): Escolha entre LDA e PCA em tarefas de algotrading no MQL5

Ciência de dados e aprendizado de máquina (Parte 20): Escolha entre LDA e PCA em tarefas de algotrading no MQL5

Neste artigo, vamos considerar métodos de redução de dimensionalidade e sua aplicação no ambiente de trading MQL5. Especificamente, vamos estudar as nuances da Análise Discriminante Linear (LDA) e da Análise de Componentes Principais (PCA), bem como analisar sua influência no desenvolvimento de estratégias e na análise de mercado.
preview
Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 11): Paredes numéricas

Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 11): Paredes numéricas

As paredes numéricas (Number Walls) são uma variante do registrador de deslocamento com realimentação linear (Linear Shift Back Registers), que avalia previamente sequências para previsibilidade verificando a convergência. Vamos ver como essas ideias podem ser usadas no MQL5.
preview
Do básico ao intermediário: Variáveis (II)

Do básico ao intermediário: Variáveis (II)

Neste artigo vamos ver como trabalhar com variáveis do tipo estática. Este tema é um que costuma confundir muitos programadores. Iniciantes e até mesmo com alguma experiência. Já que existem alguns cuidados e macetes a serem observado no uso de tal mecanismo. 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
Algoritmos de otimização populacional: Resistência a ficar preso em extremos locais (Parte I)

Algoritmos de otimização populacional: Resistência a ficar preso em extremos locais (Parte I)

Este artigo apresenta um experimento único que visa examinar o comportamento dos algoritmos de otimização populacional no contexto de sua capacidade de escapar eficientemente de mínimos locais quando a diversidade populacional é baixa e alcançar máximos globais. Trabalhar nessa direção fornecerá uma visão mais aprofundada sobre quais algoritmos específicos podem continuar sua busca com sucesso usando coordenadas definidas pelo usuário como ponto de partida e quais fatores influenciam seu sucesso.
preview
Aprenda a operar a Fair Value Gap (FVG)/Imbalances passo a passo: Uma abordagem do conceito de Smart Money

Aprenda a operar a Fair Value Gap (FVG)/Imbalances passo a passo: Uma abordagem do conceito de Smart Money

Um guia passo a passo para criar e implementar um algoritmo de negociação automatizado em MQL5 com base na estratégia de Fair Value Gap (FVG). Um tutorial detalhado sobre como criar um expert advisor que pode ser útil tanto para iniciantes quanto para traders experientes.
preview
Do básico ao intermediário: Comando WHILE e DO WHILE

Do básico ao intermediário: Comando WHILE e DO WHILE

Neste artigo, vermos de maneira prática e bastante didática o primeiro comando de laço. Apesar de muitos iniciantes temerem nas bases quando precisa criar laços. Saber como fazer isto de maneira adequada e segura. É algo que somente a experiência e prática irá lhe fornecer. Mas quem sabe, eu possa lhe ajudar a reduzir as dores e sofrimento. Isto lhe mostrando os principais problemas e cuidados a serem tomados quando for utilizar laços em seus códigos. 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
Desenvolvimento de um Cliente MQTT para o MetaTrader 5: Metodologia TDD (Parte 5)

Desenvolvimento de um Cliente MQTT para o MetaTrader 5: Metodologia TDD (Parte 5)

Este artigo é a quinta parte de uma série que descreve as etapas de desenvolvimento de um cliente MQL5 nativo para o protocolo MQTT 5.0. Nesta parte, vamos detalhar a estrutura dos pacotes PUBLISH, configuraremos seus flags de publicação, codificaremos os nomes dos tópicos e estabeleceremos identificadores de pacotes quando necessário.
preview
Redes neurais de maneira fácil (Parte 74): previsão adaptativa de trajetórias

Redes neurais de maneira fácil (Parte 74): previsão adaptativa de trajetórias

Proponho a você conhecer um método bastante eficaz de previsão de trajetórias multiagentes, que é capaz de se adaptar a diferentes condições ambientais.
preview
Classe base de algoritmos populacionais como alicerce para otimização eficiente

Classe base de algoritmos populacionais como alicerce para otimização eficiente

Uma tentativa única de pesquisa para combinar uma série de algoritmos populacionais em uma única classe com o objetivo de simplificar a aplicação dos métodos de otimização. Essa abordagem não apenas abre possibilidades para o desenvolvimento de novos algoritmos, incluindo variantes híbridas, mas também estabelece um banco de testes básico universal. Este banco se torna uma ferramenta chave para a escolha do algoritmo ideal, dependendo da tarefa específica em questão.
preview
Do básico ao intermediário: Comando IF ELSE

Do básico ao intermediário: Comando IF ELSE

Neste artigo iremos ver como trabalhar com o comando IF e seu parceiro ELSE. Este que é o comando mais importante e significativo que existe em qualquer linguagem de programação. Porém apesar de ser muito simples de ser usado. O mesmo as vezes causa alguma confusão quando nos falta experiência no seu uso e nos conceitos a serem utilizados no mesmo. 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
Um algoritmo de seleção de características usando aprendizado baseado em energia em MQL5 puro

Um algoritmo de seleção de características usando aprendizado baseado em energia em MQL5 puro

Neste artigo, apresentamos a implementação de um algoritmo de seleção de características descrito em um artigo acadêmico intitulado "FREL: Um algoritmo estável de seleção de características", chamado de Ponderação de Características como Aprendizado Baseado em Energia Regularizada.
preview
Anotação de dados na análise de série temporal (Parte 6): Aplicação e teste de EA com ONNX

Anotação de dados na análise de série temporal (Parte 6): Aplicação e teste de EA com ONNX

Nesta série de artigos, apresentamos vários métodos de anotação de séries temporais, que podem criar dados adequados à maioria dos modelos de inteligência artificial (IA). A anotação de dados direcionada pode tornar o modelo de IA treinado mais alinhado aos objetivos e tarefas do usuário, aumentar a precisão do modelo e até ajudar o modelo a alcançar um salto qualitativo!
preview
Redes neurais de maneira fácil (Parte 72): previsão de trajetórias em condições de ruído

Redes neurais de maneira fácil (Parte 72): previsão de trajetórias em condições de ruído

A qualidade da previsão de estados futuros desempenha um papel importante no método Goal-Conditioned Predictive Coding, com o qual nos familiarizamos no artigo anterior. Neste artigo, quero apresentar a vocês um algoritmo capaz de aumentar significativamente a qualidade da previsão em ambientes estocásticos, que incluem os mercados financeiros.
preview
O Método de Agrupamento para Manipulação de Dados: Implementando o Algoritmo Iterativo Multicamadas em MQL5

O Método de Agrupamento para Manipulação de Dados: Implementando o Algoritmo Iterativo Multicamadas em MQL5

Neste artigo, descrevemos a implementação do Algoritmo Iterativo Multicamadas do Método de Agrupamento para Manipulação de Dados em MQL5.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 13): DBSCAN para a Classe de Sinais de Expert

Técnicas do MQL5 Wizard que você deve conhecer (Parte 13): DBSCAN para a Classe de Sinais de Expert

Clustering Espacial Baseado em Densidade para Aplicações com Ruído é uma forma não supervisionada de agrupar dados que dificilmente requer parâmetros de entrada, exceto por apenas 2, o que, quando comparado a outras abordagens como k-means, é uma vantagem. Vamos explorar como isso pode ser construtivo para testar e, eventualmente, negociar com Expert Advisers montados no Wizard.
preview
Algoritmos de otimização de população: Resistência a ficar preso em extremos locais (Parte II)

Algoritmos de otimização de população: Resistência a ficar preso em extremos locais (Parte II)

Continuamos nosso experimento que visa examinar o comportamento dos algoritmos de otimização de população no contexto de sua capacidade de escapar eficientemente de mínimos locais quando a diversidade da população é baixa e alcançar máximos globais. Os resultados da pesquisa são fornecidos.
preview
Vantagens do Assistente MQL5 que você precisa saber (Parte 12): Polinômio de Newton

Vantagens do Assistente MQL5 que você precisa saber (Parte 12): Polinômio de Newton

O polinômio de Newton, que cria equações quadráticas a partir de um conjunto de vários pontos, é uma abordagem arcaica, mas interessante para a análise de séries temporais. Neste artigo, tentaremos explorar quais aspectos dessa abordagem podem ser úteis para os traders, bem como eliminar suas limitações.
preview
Algoritmos de otimização populacionais: objetos de busca multissociais artificiais (artificial Multi-Social search Objects, MSO)

Algoritmos de otimização populacionais: objetos de busca multissociais artificiais (artificial Multi-Social search Objects, MSO)

Continuação do artigo anterior como desenvolvimento da ideia de grupos sociais. No novo artigo, explora-se a evolução dos grupos sociais utilizando algoritmos de movimentação e memória. Os resultados ajudarão a entender a evolução dos sistemas sociais e aplicá-los na otimização e busca de soluções.
preview
Do básico ao intermediário: Array e Strings (II)

Do básico ao intermediário: Array e Strings (II)

Neste artigo, irei demostrar que apesar de ainda estamos em um nível iniciante, e bem básico. Já conseguimos implementar algum tipo de aplicação interessante. No caso iremos criar um gerador de senhas bem simples. Isto de modo a conseguir aplicar alguns conceitos que foram explicados até aqui. Além disto, irei mostrar como você pode desenvolver soluções para alguns problemas especiais.
preview
Algoritmos de otimização populacionais: evolução de grupos sociais (Evolution of Social Groups, ESG)

Algoritmos de otimização populacionais: evolução de grupos sociais (Evolution of Social Groups, ESG)

Neste artigo, consideraremos o princípio de construção de algoritmos multipopulacionais e, como exemplo desse tipo de algoritmos, analisaremos a Evolução de Grupos Sociais (ESG), um novo algoritmo autoral. Analisaremos os conceitos principais, os mecanismos de interação entre populações e as vantagens desse algoritmo, bem como examinaremos seu desempenho em tarefas de otimização.
preview
Desenvolvendo um EA multimoeda (Parte 8): Realizando testes de carga e processando um novo candle

Desenvolvendo um EA multimoeda (Parte 8): Realizando testes de carga e processando um novo candle

À medida que avançamos, utilizamos cada vez mais instâncias simultâneas de estratégias de negociação em um único EA. Vamos descobrir até quantas instâncias podemos utilizar antes de nos depararmos com limitações de recursos.
preview
Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 10): RBM não convencional

Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 10): RBM não convencional

As máquinas de Boltzmann restritas (Restrictive Boltzmann Machines, RBM) são, em um nível básico, uma rede neural de duas camadas capaz de realizar classificação não supervisionada através da redução de dimensionalidade. Vamos usar seus princípios básicos e ver o que acontece se a desenharmos e a treinarmos de forma não convencional. Será que conseguiremos obter um filtro de sinais útil?
preview
Desenvolvendo um sistema de Replay (Parte 64): Dando play no serviço (V)

Desenvolvendo um sistema de Replay (Parte 64): Dando play no serviço (V)

Neste artigo irei mostrar como corrigir duas falhas que se encontram presentes no código. No entanto tais correções foram explicadas para que você, aspirante a programador, consiga entender que nem sempre as coisas irão acontecer como você havia previsto. Mas isto não é motivo para desespero e sim uma oportunidade de aprendizado. 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
Superando Desafios de Integração com ONNX

Superando Desafios de Integração com ONNX

ONNX é uma ótima ferramenta para integrar códigos complexos de IA entre diferentes plataformas, sendo uma ferramenta excelente, mas que vem com alguns desafios que devem ser superados para aproveitar ao máximo suas capacidades. Neste artigo, discutimos os problemas mais comuns que você pode enfrentar e como mitigá-los.
preview
Arbitragem Estatística com previsões

Arbitragem Estatística com previsões

Vamos explorar a arbitragem estatística, pesquisar com Python símbolos correlacionados e cointegrados, criar um indicador para o coeficiente de Pearson e desenvolver um EA para negociar arbitragem estatística com previsões feitas com Python e modelos ONNX.
preview
Construindo um Modelo de Restrição de Tendência de Candlestick (Parte 2): Mesclando Indicadores Nativos

Construindo um Modelo de Restrição de Tendência de Candlestick (Parte 2): Mesclando Indicadores Nativos

Este artigo foca em aproveitar os indicadores embutidos no MetaTrader 5 para filtrar sinais fora da tendência. Avançando a partir do artigo anterior, exploraremos como fazer isso usando o código MQL5 para comunicar nossa ideia ao programa final.
preview
Data Science e Machine Learning (Parte 22): Aproveitando Redes Neurais Autoencoders para Operações Mais Inteligentes, Movendo-se do Ruído para o Sinal

Data Science e Machine Learning (Parte 22): Aproveitando Redes Neurais Autoencoders para Operações Mais Inteligentes, Movendo-se do Ruído para o Sinal

No mundo acelerado dos mercados financeiros, separar sinais significativos do ruído é crucial para o sucesso nas operações de trading. Ao empregar arquiteturas sofisticadas de redes neurais, os autoencoders se destacam ao descobrir padrões ocultos dentro dos dados de mercado, transformando entradas ruidosas em insights acionáveis. Neste artigo, exploramos como os autoencoders estão revolucionando as práticas de trading, oferecendo aos traders uma ferramenta poderosa para melhorar a tomada de decisões e ganhar uma vantagem competitiva nos mercados dinâmicos de hoje.
preview
Critério de homogeneidade de Smirnov como indicador de não-estacionaridade de séries temporais

Critério de homogeneidade de Smirnov como indicador de não-estacionaridade de séries temporais

Este artigo analisa um dos mais conhecidos critérios de homogeneidade não-paramétricos, o critério de Smirnov. São analisados tanto dados modelados quanto cotações reais. É apresentado um exemplo de construção do indicador de não-estacionaridade (iSmirnovDistance).
preview
Desenvolvendo um sistema de Replay (Parte 67): Refinando o Indicador de controle

Desenvolvendo um sistema de Replay (Parte 67): Refinando o Indicador de controle

Neste artigo mostrarei o que um pouco de refinamento no código é capaz de fazer. Tal refinamento tem como objetivo tornar mais simples o nosso código. Fazer um maior uso das chamadas de biblioteca do MQL5. Mas principalmente fazer com que o nosso código se torne bem mais estável, seguro e fácil de ser usado por outras classe, ou outros códigos que por ventura construiremos. 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.