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
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
Construção de um modelo de restrição de tendência de velas (Parte 1): Para EAs e indicadores técnicos

Construção de um modelo de restrição de tendência de velas (Parte 1): Para EAs e indicadores técnicos

Este artigo é voltado para desenvolvedores iniciantes e experientes em MQL5. Ele oferece um código que define indicadores para gerar sinais, limitando-os com base nas tendências de timeframes mais altos. Dessa forma, traders podem aprimorar suas estratégias ao incluir uma visão mais ampla do mercado, o que pode resultar em sinais de negociação potencialmente mais confiáveis.
preview
Do básico ao intermediário: Sobrecarga

Do básico ao intermediário: Sobrecarga

Este talvez será o artigo mais confuso para você iniciante. Já que aqui mostrarei que nem sempre, teremos em um mesmo código, todas funções e procedimentos com nomes exclusivos. Podemos sim ter funções e procedimentos com um mesmo nome e isto é conhecido como sobrecarga. 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
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
Agrupamento de séries temporais na inferência causal

Agrupamento de séries temporais na inferência causal

Os algoritmos de agrupamento em aprendizado de máquina são ferramentas importantes de aprendizado não supervisionado que permitem dividir os dados brutos em grupos com características semelhantes. Com esses grupos, é possível, por exemplo, realizar análise de mercado para um cluster específico, identificar os clusters mais resilientes em novos conjuntos de dados e também realizar inferências causais. Este artigo apresenta um método original para o agrupamento de séries temporais, utilizando a linguagem Python.
preview
Determinação de taxas de câmbio justas com base na PPC usando dados do FMI

Determinação de taxas de câmbio justas com base na PPC usando dados do FMI

Criação, em Python, de um sistema de análise de taxas de câmbio baseado na paridade do poder de compra (PPC). O autor desenvolveu um algoritmo com 5 métodos de cálculo de taxas justas, utilizando dados do FMI. Trata-se de um guia prático de análise fundamentalista de moedas, processamento de dados econômicos e integração com sistemas de trading. Código completo de fonte aberta.
preview
Redes neurais em trading: Modelo multidimensional de ponta a ponta para previsão de séries temporais (Conclusão)

Redes neurais em trading: Modelo multidimensional de ponta a ponta para previsão de séries temporais (Conclusão)

Apresentamos a parte final da série dedicada ao GinAR, um framework de redes neurais para previsão de séries temporais. Neste artigo, analisamos os resultados do teste do modelo com novos dados e avaliamos sua estabilidade em condições reais de mercado.
preview
Como publicar código no CodeBase: Guia prático

Como publicar código no CodeBase: Guia prático

Neste artigo, vamos analisar, com exemplos reais, como publicar diferentes tipos de programas para o terminal na Biblioteca de códigos-fonte em linguagem MQL5.
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
Filtragem de Sazonalidade e Período de Tempo para Modelos de Deep Learning ONNX com Python para EA

Filtragem de Sazonalidade e Período de Tempo para Modelos de Deep Learning ONNX com Python para EA

Podemos nos beneficiar da sazonalidade ao criar modelos de Deep Learning com Python? A filtragem de dados para os modelos ONNX ajuda a obter melhores resultados? Qual período de tempo devemos usar? Cobriremos tudo isso neste artigo.
preview
Reimaginando Estratégias Clássicas (Parte II): Rompimentos das Bandas de Bollinger

Reimaginando Estratégias Clássicas (Parte II): Rompimentos das Bandas de Bollinger

Este artigo explora uma estratégia de trading que integra a Análise Discriminante Linear (LDA) com Bandas de Bollinger, aproveitando previsões de zonas categóricas para gerar sinais estratégicos de entrada no mercado.
preview
Introdução ao Connexus (Parte 1): Como usar a função WebRequest?

Introdução ao Connexus (Parte 1): Como usar a função WebRequest?

Este artigo é o início de uma série de desenvolvimentos para uma biblioteca chamada “Connexus”, que tem como objetivo facilitar requisições HTTP com MQL5. O objetivo deste projeto é fornecer ao usuário final essa oportunidade e mostrar como usar esta biblioteca auxiliar. Eu procurei torná-lo o mais simples possível para facilitar o estudo e proporcionar a possibilidade de futuros desenvolvimentos.
preview
MQL5 Trading Toolkit (Parte 3): Desenvolvimento de uma biblioteca EX5 para gerenciamento de ordens pendentes

MQL5 Trading Toolkit (Parte 3): Desenvolvimento de uma biblioteca EX5 para gerenciamento de ordens pendentes

Você aprenderá como desenvolver e implementar uma biblioteca EX5 abrangente para ordens pendentes em seu código ou projetos MQL5. Vamos analisar como importar e implementar essa biblioteca como parte de um painel de negociação ou interface gráfica do usuário (GUI). O painel de ordens do EA permitirá aos usuários abrir, acompanhar e excluir ordens pendentes por número mágico diretamente na interface gráfica exibida na janela do gráfico.
preview
Desenvolvimento do Kit de Ferramentas de Análise de Price Action (Parte 9): Fluxo Externo

Desenvolvimento do Kit de Ferramentas de Análise de Price Action (Parte 9): Fluxo Externo

Este artigo explora uma nova dimensão de análise utilizando bibliotecas externas especificamente projetadas para análises avançadas. Essas bibliotecas, como o pandas, fornecem ferramentas poderosas para processar e interpretar dados complexos, permitindo que os traders obtenham percepções mais profundas sobre a dinâmica do mercado. Ao integrar essas tecnologias, podemos reduzir a lacuna entre dados brutos e estratégias acionáveis. Junte-se a nós enquanto estabelecemos as bases dessa abordagem inovadora e desbloqueamos o potencial de combinar tecnologia com expertise em trading.
preview
Desenvolvimento do Kit de Ferramentas de Análise de Price Action (Parte 16): Introduzindo a Teoria dos Quartis (II) — EA Intrusion Detector

Desenvolvimento do Kit de Ferramentas de Análise de Price Action (Parte 16): Introduzindo a Teoria dos Quartis (II) — EA Intrusion Detector

Em nosso artigo anterior, apresentamos um script simples chamado "The Quarters Drawer." Com base nessa fundação, agora estamos dando o próximo passo ao criar um Expert Advisor (EA) de monitoramento para acompanhar esses quartis e fornecer supervisão em relação a possíveis reações do mercado nesses níveis. Junte-se a nós enquanto exploramos o processo de desenvolvimento de uma ferramenta de detecção de zonas neste artigo.
preview
Gráficos na biblioteca DoEasy (Parte 100): Eliminando bugs ao trabalhar com objetos gráficos padrão estendidos

Gráficos na biblioteca DoEasy (Parte 100): Eliminando bugs ao trabalhar com objetos gráficos padrão estendidos

Hoje vamos retocar e eliminar falhas evidentes ao trabalhar com objetos gráficos estendidos (e padrão) e com objetos-formas na tela, além disso vamos consertar os erros observados durante os testes no último artigo. E assim vamos concluir esta seção da descrição da biblioteca.
preview
Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 09): Combinação de agrupamento k-médias com ondas fractais

Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 09): Combinação de agrupamento k-médias com ondas fractais

O agrupamento k-médias é uma abordagem para agrupar pontos de dados em um processo que inicialmente se concentra na representação macro do conjunto de dados, onde são aplicados centroides de cluster criados aleatoriamente. Com o tempo, esses centroides são ajustados e escalonados para representar melhor o conjunto de dados. Este artigo examina essa abordagem de agrupamento e algumas de suas aplicações.
preview
Indicador de força e direção da tendência em barras 3D

Indicador de força e direção da tendência em barras 3D

Vamos considerar uma nova abordagem para analisar tendências de mercado, baseada em visualização tridimensional e análise tensora da microestrutura do mercado.
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
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
Busca com restrições — Tabu Search (TS)

Busca com restrições — Tabu Search (TS)

O artigo analisa o algoritmo de busca tabu, um dos primeiros e mais conhecidos métodos meta-heurísticos. Exploraremos detalhadamente como o algoritmo funciona, desde a escolha da solução inicial até a exploração das soluções vizinhas, com foco no uso da lista tabu. O artigo cobre os aspectos-chave do algoritmo e suas particularidades.
preview
Redes neurais em trading: Modelo adaptativo multiagente (MASA)

Redes neurais em trading: Modelo adaptativo multiagente (MASA)

Apresento o framework adaptativo multiagente MASA, que une aprendizado por reforço e estratégias adaptativas, oferecendo um equilíbrio harmonioso entre rentabilidade e controle de riscos em condições de mercado turbulentas.
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
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
Redes neurais de maneira fácil (Parte 67): Aprendendo com experiências passadas para resolver novos problemas

Redes neurais de maneira fácil (Parte 67): Aprendendo com experiências passadas para resolver novos problemas

Neste artigo, continuaremos a falar sobre métodos de coleta de dados em uma amostra de treinamento. É claro que o processo de aprendizado requer constante interação com o ambiente. Mas as situações podem variar.
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
Adicionando um LLM personalizado a um robô investidor (Parte 5): Desenvolvimento e teste de estratégia de trading com LLM (I) - Ajuste fino

Adicionando um LLM personalizado a um robô investidor (Parte 5): Desenvolvimento e teste de estratégia de trading com LLM (I) - Ajuste fino

Os modelos de linguagem (LLMs) são uma parte importante da inteligência artificial que evolui rapidamente. E para aproveitar isso devemos pensar em como integrar LLMs avançados em nossa negociação algorítmica Muitos acham desafiador ajustar esses modelos de acordo com suas necessidades, implantá-los localmente e, logo, aplicá-los à negociação algorítmica. Esta série de artigos explorará uma abordagem passo a passo para alcançar esse objetivo.
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
Aprendendo MQL5 do iniciante ao profissional (Parte VI):  Fundamentos da criação de EAs

Aprendendo MQL5 do iniciante ao profissional (Parte VI): Fundamentos da criação de EAs

O artigo dá continuidade à série para iniciantes. Aqui serão abordados os princípios básicos da construção de EAs. Primeiro, criaremos um EA que operará sem indicadores, usando ordens pendentes, depois, criaremos um segundo EA, baseado no indicador padrão MA, operando com ordens a preço atual. Parto do princípio de que você já não é totalmente iniciante e domina o material dos artigos anteriores.
preview
Migrando para o MQL5 Algo Forge (Parte 3): Uso de repositórios de terceiros em seu próprio projeto

Migrando para o MQL5 Algo Forge (Parte 3): Uso de repositórios de terceiros em seu próprio projeto

Vamos analisar como já é possível conectar código de terceiros de qualquer repositório no armazenamento MQL5 Algo Forge ao seu projeto. Neste artigo, finalmente chegamos a uma tarefa promissora, mas também mais complexa: como, na prática, integrar e utilizar em seu projeto bibliotecas de repositórios alheios no MQL5 Algo Forge.
preview
Como criamos a plataforma de trading mais poderosa com Machine Learning: a crônica da evolução do MQL e do MetaTrader com base em arquivos, fóruns e releases

Como criamos a plataforma de trading mais poderosa com Machine Learning: a crônica da evolução do MQL e do MetaTrader com base em arquivos, fóruns e releases

Crônica técnica da evolução do MQL: do MQL/MQL II limitado, passando pelo MQL4 procedural, até o MQL5 orientado a objetos, com compilação nativa, APIs avançadas e um ambiente completo de engenharia. São apresentadas as principais funcionalidades da linguagem e as integrações com Python, OpenCL, ONNX, OpenBLAS, bancos de dados e DirectX, além do AI Assistant baseado em agentes e do Model Context Protocol (MCP), que conecta a AI ao terminal, ao MetaEditor, aos dados de mercado, ao trading e às ferramentas de desenvolvimento. Também são analisadas fontes de arquivo sobre a formação da MetaQuotes/MetaTrader, o lançamento do MQL4.COM e do MQL5.COM, os campeonatos, o Algo Forge e sua influência sobre o ecossistema.
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
DoEasy. Controles (Parte 30): Animando o controle "ScrollBar"

DoEasy. Controles (Parte 30): Animando o controle "ScrollBar"

Neste artigo continuaremos a desenvolver o controle ScrollBar e começaremos a fazer a funcionalidade de interação com o mouse. Além disso, vamos expandir as listas de bandeiras de status e eventos com o mouse.
preview
Interpretação de modelos: Compreensão mais profunda dos modelos de aprendizado de máquina

Interpretação de modelos: Compreensão mais profunda dos modelos de aprendizado de máquina

O aprendizado de máquina é uma área fascinante e essencial para todos, independentemente da experiência que possuam. Neste artigo, vamos mergulhar nos detalhes dos mecanismos que fundamentam os modelos desenvolvidos, desvendaremos o intricado universo das características, das previsões e das soluções robustas, e alcançaremos uma interpretação cristalina dos modelos. Descubra como “fazer concessões”, aprimorar previsões, priorizar a importância dos parâmetros e fazer escolhas assertivas. Este texto servirá de guia para você aprimorar a eficácia dos modelos de aprendizado de máquina e maximizar os benefícios das metodologias aplicadas.
preview
Algoritmo do buraco negro — Black Hole Algorithm (BHA)

Algoritmo do buraco negro — Black Hole Algorithm (BHA)

O algoritmo do buraco negro (Black Hole Algorithm, BHA) utiliza os princípios da gravidade dos buracos negros para otimizar soluções. Neste artigo, vamos explorar como o BHA atrai as melhores soluções, evitando mínimos locais, e por que esse algoritmo se tornou uma ferramenta poderosa para resolver problemas complexos. Descubra como ideias simples podem gerar resultados impressionantes no mundo da otimização.
preview
Análise pós-fato da negociação: ajustando TrailingStop e novos stops no testador de estratégias

Análise pós-fato da negociação: ajustando TrailingStop e novos stops no testador de estratégias

Seguimos com o tema da análise de negociações realizadas no testador de estratégias para melhorar a qualidade da negociação. Vamos verificar como o uso de diferentes métodos de trailing pode alterar os resultados de negociação já obtidos.
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
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
Desenvolvendo um EA multimoeda (Parte 18): Automação da seleção de grupos considerando o período forward

Desenvolvendo um EA multimoeda (Parte 18): Automação da seleção de grupos considerando o período forward

Continuaremos automatizando etapas que anteriormente realizávamos manualmente. Desta vez, voltaremos à automação da segunda etapa, ou seja, a escolha do grupo ideal de instâncias individuais de estratégias de negociação, complementada pela capacidade de considerar os resultados dessas instâncias no período forward.
preview
Ciência de dados e aprendizado de máquina (Parte 31): Aplicação de modelos CatBoost no trading

Ciência de dados e aprendizado de máquina (Parte 31): Aplicação de modelos CatBoost no trading

Os modelos de inteligência artificial CatBoost ganharam enorme popularidade na comunidade de aprendizado de máquina graças à sua precisão nas previsões, eficiência e resistência a conjuntos de dados fragmentados e complexos. Este artigo trata de como usar esses modelos no mercado Forex.