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
DoEasy. Controles (Parte 23): apurando os objetos WinForms TabControl e SplitContainer

DoEasy. Controles (Parte 23): apurando os objetos WinForms TabControl e SplitContainer

Neste artigo, incluiremos novos eventos de mouse relacionados aos limites das áreas de trabalho dos objetos WinForms e corrigiremos algumas falhas na funcionalidade dos controles TabControl e SplitContainer.
preview
Construindo um Modelo de Restrição de Tendência de Candlestick (Parte 4): Personalizando o Estilo de Exibição para Cada Onda de Tendência

Construindo um Modelo de Restrição de Tendência de Candlestick (Parte 4): Personalizando o Estilo de Exibição para Cada Onda de Tendência

Neste artigo, exploraremos as capacidades da poderosa linguagem MQL5 na criação de vários estilos de indicadores no MetaTrader 5. Também analisaremos os scripts e como eles podem ser utilizados em nosso modelo.
preview
Data Science e ML (Parte 30): O Casal Poderoso para Prever o Mercado de Ações, Redes Neurais Convolucionais (CNNs) e Redes Neurais Recorrentes (RNNs)

Data Science e ML (Parte 30): O Casal Poderoso para Prever o Mercado de Ações, Redes Neurais Convolucionais (CNNs) e Redes Neurais Recorrentes (RNNs)

Neste artigo, exploramos a integração dinâmica das Redes Neurais Convolucionais (CNNs) e das Redes Neurais Recorrentes (RNNs) na previsão do mercado de ações. Aproveitando a capacidade das CNNs de extrair padrões e a proficiência das RNNs em lidar com dados sequenciais. Vamos ver como essa combinação poderosa pode aumentar a precisão e eficiência dos algoritmos de negociação.
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
DoEasy. Controles (Parte 5): Objeto base WinForms, controle Painel, parâmetro AutoSize

DoEasy. Controles (Parte 5): Objeto base WinForms, controle Painel, parâmetro AutoSize

Neste artigo, criaremos um objeto que serve de base para todos os objetos WinForms da biblioteca e começaremos a preparar a propriedade AutoSize do objeto WinForms "Painel", que dimensiona automaticamente o objeto de acordo com seu conteúdo.
preview
Desenvolvendo um EA multimoeda (Parte 3): Revisão da arquitetura

Desenvolvendo um EA multimoeda (Parte 3): Revisão da arquitetura

Nós já avançamos um pouco no desenvolvimento de um EA multimoeda com várias estratégias funcionando em paralelo. Com base na experiência acumulada, vamos revisar a arquitetura da nossa solução e tentar melhorá-la, antes que avancemos muito.
preview
Desenvolvimento de um Cliente MQTT para o MetaTrader 5: metodologia TDD (Parte 3)

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

Este artigo faz parte de uma série que descreve as etapas do desenvolvimento de um cliente MQL5 nativo para o protocolo MQTT. Nesta parte, descrevemos em detalhes como aplicar o princípio do desenvolvimento orientado por testes para implementar a troca de pacotes CONNECT/CONNACK. Ao final desta etapa, nosso cliente DEVE ser capaz de agir apropriadamente ao trabalhar com todos os possíveis resultados do servidor ao tentar se conectar.
preview
DoEasy. Funções de serviço (Parte 2): Padrão "Barra Interna"

DoEasy. Funções de serviço (Parte 2): Padrão "Barra Interna"

Neste artigo, continuaremos a explorar os padrões de preço na biblioteca DoEasy. Vamos desenvolver a classe do padrão "Barra Interna" das formações Price Action.
preview
Teoria das Categorias em MQL5 (Parte 2)

Teoria das Categorias em MQL5 (Parte 2)

A Teoria das Categorias é um ramo diverso da Matemática e em expansão, sendo uma área relativamente recente na comunidade MQL5. Esta série de artigos visa introduzir e examinar alguns de seus conceitos com o objetivo geral de estabelecer uma biblioteca aberta que atraia comentários e discussões enquanto esperamos promover o uso deste campo notável no desenvolvimento da estratégia dos traders.
preview
Desenvolvimento de um Cliente MQTT para o MetaTrader 5: Metodologia TDD (Parte 2)

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

Este artigo faz parte de uma série que descreve as etapas do desenvolvimento de um cliente MQL5 nativo para o protocolo MQTT. Nesta parte, descrevemos como está organizando nosso código, os primeiros arquivos de cabeçalho e classes, e como escrever testes. Este artigo também inclui notas breves sobre o desenvolvimento orientado por testes (Test-Driven Development) e sua aplicação neste projeto.
preview
Criando um Expert Advisor Integrado ao Telegram em MQL5 (Parte 6): Adicionando Botões Inline Interativos

Criando um Expert Advisor Integrado ao Telegram em MQL5 (Parte 6): Adicionando Botões Inline Interativos

Neste artigo, integramos botões inline interativos em um Expert Advisor MQL5, permitindo controle em tempo real via Telegram. Cada clique em um botão dispara ações específicas e envia respostas de volta ao usuário. Também modularizamos funções para lidar com mensagens do Telegram e consultas de callback de forma eficiente.
preview
Teoria das Categorias em MQL5 (Parte 15): Funtores com grafos

Teoria das Categorias em MQL5 (Parte 15): Funtores com grafos

Este artigo continua a série sobre a implementação da teoria de categorias no MQL5, ele aborda os funtores como uma ponte entre grafos e conjuntos. Nesse escopo, voltaremos a analisar os dados de calendário e, apesar de suas limitações no uso do testador de estratégias, justificaremos o uso de funtores na previsão de volatilidade mediante correlação.
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
Desenvolvimento e teste de sistemas de negociação Aroon

Desenvolvimento e teste de sistemas de negociação Aroon

Nesta artigo, aprenderemos como construir um sistema de negociação Aroon, estudando os fundamentos dos indicadores e as etapas necessárias para criar um sistema de negociação baseado no indicador Aroon. Depois de criar este sistema de negociação, verificaremos se ele pode ser lucrativo ou se necessita de otimização adicional.
preview
Algoritmo de tribo artificial (Artificial Tribe Algorithm, ATA)

Algoritmo de tribo artificial (Artificial Tribe Algorithm, ATA)

O artigo analisa em detalhes os componentes-chave e as inovações do algoritmo de otimização ATA, que é um método evolutivo com um sistema de comportamento duplo único, que se adapta conforme a situação. Utilizando cruzamento para uma diversificação aprofundada, e migração para busca quando há estagnação em ótimos locais, o ATA combina aprendizado individual e social.
preview
Funções de ativação de neurônios durante o aprendizado: chave para uma convergência rápida?

Funções de ativação de neurônios durante o aprendizado: chave para uma convergência rápida?

Este trabalho apresenta uma análise da interação entre diferentes funções de ativação e algoritmos de otimização no contexto do treinamento de redes neurais. A atenção principal está voltada para a comparação entre o ADAM clássico e sua versão populacional ao lidar com uma ampla gama de funções de ativação, incluindo as funções oscilatórias ACON e Snake. Mediante uma arquitetura MLP minimalista (1-1-1) e um único exemplo de treino, isola-se a influência das funções de ativação no processo de otimização, eliminando interferências de outros fatores. Propomos um método de controle dos pesos da rede por meio dos limites das funções de ativação e um mecanismo de reflexão de pesos, permitindo evitar problemas de saturação e estagnação no aprendizado.
preview
Fatorando Matrizes — Uma modelagem mais prática

Fatorando Matrizes — Uma modelagem mais prática

Muito provavelmente você não tenha se dado conta, que a modelagem das matrizes estava um tanto quanto estranha. Já que não havia a indicação de linhas e colunas, mas apenas indicações de colunas. O que é muito estranho, quando se está lendo um código, que faz fatorações de matrizes. E se você estava esperando ver linhas e colunas sendo indicadas. Pode acabar ficando bastante confuso, no momento de tentar implementar a fatoração. Além do mais, aquela forma de modelar as matrizes, não é nem de longe a melhor maneira. Isto por que, quando modelamos matrizes daquela maneira, passamos a ter uma certa limitação, que nos obriga a usar outras técnicas, ou funções, que não seriam de fato necessárias. Isto quando a modelagem é feita de uma maneira um pouco mais adequada.
preview
Desenvolvendo um sistema de Replay (Parte 77): Um novo Chart Trade (IV)

Desenvolvendo um sistema de Replay (Parte 77): Um novo Chart Trade (IV)

Neste artigo, explicarei alguns detalhes e cuidados que você teve tomar quando for criar um protocolo de comunicação. São coisas bem básicas e simples. Não irei de fato pegar pesado neste artigo. Mas é preciso que você entenda o conteúdo deste artigo para entender o que acontecerá no receptor.
preview
Redes neurais de maneira fácil (Parte 65): aprendizado supervisionado ponderado por distância (DWSL)

Redes neurais de maneira fácil (Parte 65): aprendizado supervisionado ponderado por distância (DWSL)

Neste artigo, convido você a conhecer um algoritmo interessante que se situa na interseção entre os métodos de aprendizado supervisionado e de reforço.
preview
Redes neurais em trading: Representação linear por partes de séries temporais

Redes neurais em trading: Representação linear por partes de séries temporais

Este artigo é um pouco diferente dos trabalhos anteriores desta série. Nele, discutiremos uma representação alternativa de séries temporais. A representação linear por partes de séries temporais é um método de aproximação de séries temporais usando funções lineares em pequenos intervalos.
preview
Algoritmos de otimização populacionais: algoritmo genético binário (Binary Genetic Algorithm, BGA). Parte II

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

Neste artigo, vamos considerar o algoritmo genético binário (BGA), que modela os processos naturais que ocorrem no material genético dos seres vivos na natureza.
preview
Desenvolvendo um sistema de Replay (Parte 60): Dando play no serviço (I)

Desenvolvendo um sistema de Replay (Parte 60): Dando play no serviço (I)

Já faz um bom tempo que estamos mexendo apenas no indicadores. Mas agora chegou a hora de fazer o serviço voltar a executar o seu trabalho, a fim de que possamos ver o gráfico sendo construído com os dados informados. Mas como nem tudo é tão simples, será preciso ver para entender o que nos espera.
preview
Indicador de previsão ARIMA em MQL5

Indicador de previsão ARIMA em MQL5

Neste artigo, criamos um indicador de previsão ARIMA em MQL5. É analisado como o modelo ARIMA forma previsões, sua aplicabilidade ao mercado Forex e ao mercado de ações em geral. Também é explicado o que é a autorregressão AR, de que forma os modelos autorregressivos são usados para previsão e como funciona o mecanismo de autorregressão.
preview
Rede neural na prática: Pseudo Inversa (I)

Rede neural na prática: Pseudo Inversa (I)

Aqui, vamos começar a ver como podermos implementar, usando MQL5 puro, o cálculo de pseudo inversa. Apesar do código que será visto, será de fato bem mais complicado, para os iniciantes, do que eu de fato gostaria de apresentar. Ainda estou pensando em como o explicar de forma simples. Veja isto como uma oportunidade de estudar um o código pouco comum. Então vá com calma. Sem pressa e correria. Mesmo que ele não vise ser eficiente e de rápida execução. O objetivo é ser o mais didático possível.
preview
Redes neurais de maneira fácil (Parte 64): Método de clonagem de comportamento ponderada conservadora (CWBC)

Redes neurais de maneira fácil (Parte 64): Método de clonagem de comportamento ponderada conservadora (CWBC)

Pelo resultado dos testes realizados em artigos anteriores, concluímos que a qualidade da estratégia treinada depende muito da amostra de treinamento utilizada. Neste artigo, apresento a vocês um método simples e eficaz para selecionar trajetórias com o objetivo de treinar modelos.
preview
Do básico ao intermediário: Passagem por valor ou por referência

Do básico ao intermediário: Passagem por valor ou por referência

Neste artigo você entenderá na prática a diferença entre passagem por valor e passagem por referência. Apesar de ser algo aparentemente simples e que não causa problemas. Muitos programadores com uma boa carga de experiência costumam tomar verdadeiras surras de seus códigos, justamente por conta deste pequeno detalhe. Saber quando, como e porque usar uma passagem por valor ou uma passagem por referência, fará grande diferença na sua vida como programador. 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
Simulação de mercado (Parte 11): Sockets (V)

Simulação de mercado (Parte 11): Sockets (V)

Vamos começar a implementar a comunicação entre o Excel e o MetaTrader 5. Mas antes é preciso entender algumas coisas importantes. Isto para que não venha a ficar coçando a cabeça tentando entender por que as coisas funcionam ou não. Mas antes que você venha a torcer o nariz para a integração entre o Python e o Excel. Vamos ver como podemos usar o xlwings, a fim de poder controlar de alguma forma o MetaTrader 5. Isto através do Excel. O que irei mostrar aqui será como foco principal a didática. Não ache que podemos fazer apenas o que mostrarei.
preview
Algoritmos de otimização populacionais: Algoritmo de evolução da mente (Mind Evolutionary Computation, MEC)

Algoritmos de otimização populacionais: Algoritmo de evolução da mente (Mind Evolutionary Computation, MEC)

Este artigo discute um algoritmo da família MEC, denominado algoritmo simples de evolução da mente (Simple MEC, SMEC). O algoritmo se destaca pela beleza da ideia subjacente e pela simplicidade de implementação.
preview
Algoritmos de otimização populacionais: enxame de pássaros (Bird Swarm Algorithm, BSA)

Algoritmos de otimização populacionais: enxame de pássaros (Bird Swarm Algorithm, BSA)

O artigo explora o BSA, um algoritmo baseado no comportamento das aves, inspirado na interação coletiva das aves em bando na natureza. Diferentes estratégias de busca dos indivíduos no BSA, incluindo a alternância entre comportamento de voo, vigilância e procura de alimento, tornam esse algoritmo multifacetado. Ele utiliza os princípios de comportamento de bando, comunicação, adaptabilidade, liderança e acompanhamento das aves para a busca eficaz de soluções ótimas.
preview
Previsão baseada em aprendizado profundo e abertura de ordens com o pacote MetaTrader 5 python e arquivo de modelo ONNX

Previsão baseada em aprendizado profundo e abertura de ordens com o pacote MetaTrader 5 python e arquivo de modelo ONNX

O projeto envolve o uso de Python para previsão em mercados financeiros baseada em aprendizado profundo. Nós exploraremos as nuances do teste de desempenho do modelo usando indicadores-chave como erro absoluto médio (MAE), erro quadrático médio (MSE) e R-quadrado (R2), além de aprender a integrar tudo isso em um arquivo executável. Também criaremos um arquivo de modelo ONNX e um EA (Expert Advisor).
preview
O Problema da Discordância: Mergulhando Mais Fundo na Complexidade da Explicabilidade em IA

O Problema da Discordância: Mergulhando Mais Fundo na Complexidade da Explicabilidade em IA

Neste artigo, exploramos o desafio de entender como a IA funciona. Modelos de IA frequentemente tomam decisões de maneiras que são difíceis de explicar, levando ao que é conhecido como o "problema da discordância". Esta questão é fundamental para tornar a IA mais transparente e confiável.
preview
Algoritmos de otimização populacional: sistema imune micro-artificial (Micro Artificial Immune System, Micro-AIS)

Algoritmos de otimização populacional: sistema imune micro-artificial (Micro Artificial Immune System, Micro-AIS)

Este artigo fala sobre um método de otimização baseado nos princípios de funcionamento do sistema imunológico do organismo — Micro Artificial Immune System (Micro-AIS) — uma modificação do AIS. O Micro-AIS utiliza um modelo mais simples do sistema imunológico e operações mais simples de processamento de informações imunológicas. O artigo também aborda as vantagens e desvantagens do Micro-AIS em comparação com o AIS tradicional.
preview
Gerente de risco profissional remoto para Forex em Python

Gerente de risco profissional remoto para Forex em Python

Criamos um gerente de risco profissional remoto para Forex em Python e o implantamos em um servidor, passo a passo. Ao longo do artigo, veremos como gerenciar riscos no Forex de maneira programada e como evitar a perda total do depósito.
preview
Redes neurais de maneira fácil (Parte 39): Go-Explore - uma abordagem diferente para exploração

Redes neurais de maneira fácil (Parte 39): Go-Explore - uma abordagem diferente para exploração

Continuamos com o tema da exploração do ambiente no aprendizado por reforço. Neste artigo, abordaremos mais um algoritmo, o Go-Explore, que permite explorar eficazmente o ambiente durante a fase de treinamento do modelo.
preview
Redes neurais de maneira fácil (Parte 52): exploração com otimização e correção de distribuição

Redes neurais de maneira fácil (Parte 52): exploração com otimização e correção de distribuição

À medida que a política do Ator se afasta cada vez mais dos exemplos armazenados no buffer de reprodução de experiências, a eficácia do treinamento do modelo, baseado nesse buffer, diminui. Neste artigo, examinamos um algoritmo que aumenta a eficácia do uso de amostras em algoritmos de aprendizado por reforço.
preview
Redes neurais de maneira fácil (Parte 60): transformador de decisões on-line (ODT)

Redes neurais de maneira fácil (Parte 60): transformador de decisões on-line (ODT)

As últimas 2 partes foram dedicadas ao método transformador de decisões (DT), que modela sequências de ações no contexto de um modelo autorregressivo de recompensas desejadas. Neste artigo, vamos considerar outro algoritmo de otimização deste método.
preview
Do básico ao intermediário: Indicador (I)

Do básico ao intermediário: Indicador (I)

Neste artigo criaremos o nosso primeiro indicador totalmente prático e funcional. O objetivo aqui, não é e não será mostrar como se cria de fato uma aplicação. Mas ajudar a você, meu caro leitor, a entender como você pode por conta própria, desenvolver suas próprias ideias. As colocando em prática, de forma segura, simples e prática.
preview
HTTP e Connexus (Parte 2): Entendendo a Arquitetura HTTP e o Design de Bibliotecas

HTTP e Connexus (Parte 2): Entendendo a Arquitetura HTTP e o Design de Bibliotecas

Este artigo explora os fundamentos do protocolo HTTP, cobrindo os principais métodos (GET, POST, PUT, DELETE), códigos de status e a estrutura das URLs. Além disso, apresenta o início da construção da biblioteca Connexus com as classes CQueryParam e CURL, que facilitam a manipulação de URLs e parâmetros de consulta em requisições HTTP.
preview
DoEasy. Controles (Parte 18): Preparando a funcionalidade para rolagem de guias no TabControl

DoEasy. Controles (Parte 18): Preparando a funcionalidade para rolagem de guias no TabControl

Neste artigo colocaremos os botões de controle de rolagem de cabeçalhos no objeto WinForms TabControl caso a fileira de cabeçalhos não se ajuste ao tamanho do controle, e faremos o deslocamento da linha de cabeçalho quando clicamos no cabeçalho de uma guia cortada.
preview
Busca de padrões arbitrários em pares de moedas no Python com o uso do MetaTrader 5

Busca de padrões arbitrários em pares de moedas no Python com o uso do MetaTrader 5

Existem padrões repetitivos e regularidades no mercado cambial? Decidi criar meu próprio sistema de análise de padrões usando Python e MetaTrader 5. Uma espécie de simbiose entre matemática e programação para conquistar o Forex.