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 iniciante ao especialista: criação de um EA animado para notícias em MQL5 (I)

Do iniciante ao especialista: criação de um EA animado para notícias em MQL5 (I)

O acesso às notícias é um fator crítico ao operar no terminal MetaTrader 5. Apesar da existência de várias APIs de notícias, muitos traders enfrentam dificuldades para acessá-las e integrá-las de forma eficiente ao seu ambiente de negociação. Neste artigo, nosso objetivo é desenvolver uma solução otimizada que exiba as notícias diretamente no gráfico, onde elas são mais necessárias. Faremos isso criando o EA "Manchetes de Notícias", que monitora e exibe atualizações em tempo real a partir de APIs de notícias.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 23): CNNs

Técnicas do MQL5 Wizard que você deve conhecer (Parte 23): CNNs

As Redes Neurais Convolucionais são outro algoritmo de aprendizado de máquina que tende a se especializar em decompor conjuntos de dados multidimensionais em partes constituintes principais. Vamos ver como isso é normalmente alcançado e explorar uma possível aplicação para traders em outra classe de sinais do MQL5 Wizard.
preview
Funcionalidades do Assistente MQL5 que você precisa conhecer (Parte 29): Taxas de aprendizado e perceptrons multicamadas

Funcionalidades do Assistente MQL5 que você precisa conhecer (Parte 29): Taxas de aprendizado e perceptrons multicamadas

Estamos concluindo a análise da sensibilidade da taxa de aprendizado ao desempenho do EA, estudando taxas de aprendizado adaptáveis Essas taxas devem ser ajustadas para cada parâmetro da camada durante o treinamento, por isso precisamos avaliar os potenciais benefícios em relação às perdas esperadas no desempenho.
preview
Observador Connexus (Parte 8): Adicionando Request Observer (Observador de requisições)

Observador Connexus (Parte 8): Adicionando Request Observer (Observador de requisições)

Nesta parte final da nossa série sobre a biblioteca Connexus, analisamos a implementação do padrão Observador, além dos principais refatoramentos nos caminhos dos arquivos e nomes dos métodos. Esta série apresenta todo o desenvolvimento do Connexus, criado para simplificar a interação HTTP em aplicativos complexos.
preview
Algoritmo de comportamento social adaptativo — Adaptive Social Behavior Optimization (ASBO): Método de Schwefel, Box-Muller

Algoritmo de comportamento social adaptativo — Adaptive Social Behavior Optimization (ASBO): Método de Schwefel, Box-Muller

Este artigo apresenta uma imersão fascinante no mundo do comportamento social de organismos vivos e sua influência na criação de um novo modelo matemático — ASBO (Adaptive Social Behavior Optimization). Exploramos como os princípios de liderança, vizinhança e cooperação, observados em sociedades de seres vivos, inspiram o desenvolvimento de algoritmos de otimização inovadores.
preview
Aplicação da Teoria dos Jogos de Nash com Filtragem HMM em Trading

Aplicação da Teoria dos Jogos de Nash com Filtragem HMM em Trading

Este artigo explora a aplicação da teoria dos jogos de John Nash, especificamente o Equilíbrio de Nash, no mercado financeiro. Ele discute como os traders podem utilizar scripts em Python e MetaTrader 5 para identificar e explorar ineficiências do mercado utilizando os princípios de Nash. O artigo oferece um guia passo a passo sobre como implementar essas estratégias, incluindo o uso de Modelos Ocultos de Markov (HMM) e análise estatística para melhorar o desempenho das negociações.
preview
Do básico ao intermediário: Indicadores técnico (II)

Do básico ao intermediário: Indicadores técnico (II)

Neste artigo mostramos como criar um indicador em MQL5 que desenha múltiplas médias móveis no mesmo gráfico, reduzindo código duplicado. São usados iMA, buffers de indicador, CopyBuffer, PlotIndexSetInteger/String e uma estrutura constante que concentra períodos, métodos e cores. O dimensionamento de indicatorbuffers e indicatorplots é derivado de Averange.Size(). O resultado facilita manutenção e permite adicionar ou remover médias alterando apenas uma lista.
preview
Migrando para o MQL5 Algo Forge (Parte 2): Trabalhando com múltiplos repositórios

Migrando para o MQL5 Algo Forge (Parte 2): Trabalhando com múltiplos repositórios

Vamos analisar uma das possíveis abordagens para organizar o armazenamento do código-fonte de um projeto em um repositório público. Utilizando a distribuição em diferentes branches, criaremos regras claras e práticas para o desenvolvimento do projeto.
preview
Algoritmo do Átomo Artificial — Artificial Atom Algorithm (A3)

Algoritmo do Átomo Artificial — Artificial Atom Algorithm (A3)

Implementação do algoritmo A3 em MQL5, um método metaheurístico de otimização inspirado em processos químicos. Com apenas 2 parâmetros ajustáveis, sua estrutura compacta e a pequena população garantem alta velocidade de execução com qualidade satisfatória das soluções.
preview
Integre seu próprio LLM ao EA (Parte 5): Desenvolva e Teste Estratégia de Trading com LLMs (III) – Adapter-Tuning

Integre seu próprio LLM ao EA (Parte 5): Desenvolva e Teste Estratégia de Trading com LLMs (III) – Adapter-Tuning

Com o rápido desenvolvimento da inteligência artificial atualmente, os modelos de linguagem (LLMs) são uma parte importante da inteligência artificial, portanto devemos pensar em como integrar LLMs poderosos ao nosso trading algorítmico. Para a maioria das pessoas, é difícil ajustar esses modelos poderosos de acordo com suas necessidades, implantá-los localmente e então aplicá-los ao trading algorítmico. Esta série de artigos adotará uma abordagem passo a passo para alcançar esse objetivo.
preview
Otimização de nuvens atmosféricas — Atmosphere Clouds Model Optimization (ACMO): Teoria

Otimização de nuvens atmosféricas — Atmosphere Clouds Model Optimization (ACMO): Teoria

Este artigo é dedicado ao algoritmo meta-heurístico Atmosphere Clouds Model Optimization (ACMO), que modela o comportamento das nuvens para resolver problemas de otimização. O algoritmo utiliza os princípios de geração, movimento e dispersão de nuvens, adaptando-se às "condições climáticas" no espaço de soluções. O artigo explora como a simulação meteorológica do algoritmo encontra soluções ótimas em um espaço complexo de possibilidades e descreve detalhadamente as etapas do ACMO, incluindo a preparação do "céu", o nascimento das nuvens, seu deslocamento e a concentração de chuva.
preview
Do básico ao intermediário: FileSave e FileLoad

Do básico ao intermediário: FileSave e FileLoad

Neste artigo será explicado e explorado algumas formas de lidar com as funções de biblioteca FileSave e FileLoad. Apesar de muita gente, as considerar pouco promissoras, devido a algumas limitações ou dificuldades que as mesmas nos gera em alguns tipos de cenários. Entender da forma correta como estas duas funções trabalham, podem lhe poupar muito trabalho em certos momento. Além é claro, das mesmas, serem uma ótima forma de promover arquivos de log.
preview
Ganhe uma Vantagem Sobre Qualquer Mercado (Parte III): Índice de Gastos com Cartões Visa

Ganhe uma Vantagem Sobre Qualquer Mercado (Parte III): Índice de Gastos com Cartões Visa

No mundo dos big data, existem milhões de conjuntos de dados alternativos que têm o potencial de aprimorar nossas estratégias de negociação. Nesta série de artigos, vamos ajudá-lo a identificar os conjuntos de dados públicos mais informativos.
preview
Algoritmo de busca circular — Circle Search Algorithm (CSA)

Algoritmo de busca circular — Circle Search Algorithm (CSA)

Este artigo apresenta um novo algoritmo metaheurístico de otimização, o CSA (Circle Search Algorithm), baseado nas propriedades geométricas do círculo. O algoritmo utiliza o princípio de movimentação de pontos ao longo das tangentes para encontrar a solução ideal, combinando fases de diversificação global e intensificação local.
preview
Algoritmo do camelo — Camel Algorithm (CA)

Algoritmo do camelo — Camel Algorithm (CA)

O Algoritmo do camelo, desenvolvido em 2016, modela o comportamento dos camelos no deserto para resolver problemas de otimização, levando em conta fatores de temperatura, reservas e resistência. Neste trabalho é apresentada ainda uma versão modificada dele (CAm), com melhorias-chave, como a aplicação da distribuição gaussiana na geração de soluções e a otimização dos parâmetros do efeito de oásis.
preview
Recursos do Assistente MQL5 que você precisa conhecer (Parte 43): Aprendizado por reforço com SARSA

Recursos do Assistente MQL5 que você precisa conhecer (Parte 43): Aprendizado por reforço com SARSA

O SARSA (State-Action-Reward-State-Action, estado–ação–recompensa–estado–ação) é outro algoritmo que pode ser utilizado na implementação de aprendizado por reforço. Vamos analisar como esse algoritmo pode ser implementado como um modelo independente (e não apenas como um mecanismo de aprendizado) em Expert Advisors gerados no Wizard, de forma semelhante ao que fizemos nos casos de Q-learning e DQN.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 54): Aprendizado por Reforço com SAC híbrido e Tensores

Técnicas do MQL5 Wizard que você deve conhecer (Parte 54): Aprendizado por Reforço com SAC híbrido e Tensores

Soft Actor Critic é um algoritmo de Aprendizado por Reforço que analisamos em um artigo anterior, onde também introduzimos Python e ONNX nesta série como abordagens eficientes para treinar redes. Retomamos o algoritmo com o objetivo de explorar tensores, grafos computacionais que frequentemente são utilizados em Python.
preview
Desenvolvimento do Kit de Ferramentas de Análise de Ação de Preço (Parte 14): Ferramenta de Stop Parabolic e Reversão

Desenvolvimento do Kit de Ferramentas de Análise de Ação de Preço (Parte 14): Ferramenta de Stop Parabolic e Reversão

Adotar indicadores técnicos na análise de price action é uma abordagem poderosa. Esses indicadores frequentemente destacam níveis-chave de reversões e retrações, oferecendo insights valiosos sobre a dinâmica do mercado. Neste artigo, demonstramos como desenvolvemos uma ferramenta automatizada que gera sinais utilizando o indicador Parabolic SAR.
preview
Previsão de taxas de câmbio usando métodos clássicos de aprendizado de máquina: Modelos Logit e Probit

Previsão de taxas de câmbio usando métodos clássicos de aprendizado de máquina: Modelos Logit e Probit

Tentou-se criar um EA para prever cotações de taxas de câmbio. Como base para o algoritmo, foram adotados modelos clássicos de classificação, como regressão logística e probit. O critério de razão de verossimilhança é utilizado para filtrar os sinais de negociação.
preview
Recursos do Assistente MQL5 que você precisa conhecer (Parte 47): Aprendizado por reforço (algoritmo de diferenças temporais)

Recursos do Assistente MQL5 que você precisa conhecer (Parte 47): Aprendizado por reforço (algoritmo de diferenças temporais)

Temporal Difference (TD, diferenças temporais) é mais um algoritmo de aprendizado por reforço, que atualiza os valores Q com base na diferença entre as recompensas previstas e as recompensas reais durante o treinamento do agente. A ênfase está na atualização dos valores Q sem considerar necessariamente seus pares "estado-ação" (state-action). Como de costume, veremos como esse algoritmo pode ser aplicado em um EA, criado com a ajuda do Assistente.
preview
Do básico ao intermediário: Navegando na SandBox

Do básico ao intermediário: Navegando na SandBox

Neste artigo veremos duas formas de observar e até mesmo ter alguma interação com o conteúdo presente em uma SandBox. Isto usando a plataforma MetaTrader 5 como ponto de apoio. Entender o conteúdo mostrado neste artigo, será primordial para entender o que será visto nos próximos artigos.
preview
Construindo Expert Advisors Auto Otimizáveis em MQL5 (Parte 6): Prevenção de Stop Out

Construindo Expert Advisors Auto Otimizáveis em MQL5 (Parte 6): Prevenção de Stop Out

Junte-se a nós na discussão de hoje enquanto buscamos um procedimento algorítmico para minimizar o número total de vezes em que somos estopados em negociações vencedoras. O problema que enfrentamos é significativamente desafiador, e a maioria das soluções apresentadas em discussões da comunidade carece de regras fixas e bem definidas. Nossa abordagem algorítmica para resolver o problema aumentou a lucratividade de nossas negociações e reduziu nossa perda média por operação. No entanto, ainda há avanços a serem feitos para filtrar completamente todas as negociações que serão estopadas; nossa solução é um bom primeiro passo para qualquer pessoa experimentar.
preview
Introdução à diversificação (en. diversification) de estruturas fractais de mercado com o auxílio de machine learning

Introdução à diversificação (en. diversification) de estruturas fractais de mercado com o auxílio de machine learning

No presente artigo é feita uma tentativa de examinar séries temporais financeiras sob a perspectiva de estruturas fractais autossimilares. Como temos muitas analogias que confirmam a possibilidade de considerar as cotações de mercado como fractais autossimilares, podemos formar uma compreensão sobre os horizontes de previsão dessas estruturas.
preview
Do básico ao intermediário: Classes (III)

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

Neste artigo será demonstrado como podemos controlar melhor o nosso código. Isto quando estivermos efetuando uma programação orientada em objetos. Apesar de que ainda, estamos apenas no inicio do que pretendo abordar quando o assunto é programação orientada em objetos. Mas o que será visto aqui, lhe ajudará a entender diversas coisas. Minimizando assim futuras dúvidas que podem surgir.
preview
Operando com o Calendário Econômico do MQL5 (Parte 6): Automatizando a Entrada de Trades com Análise de Eventos de Notícias e Temporizadores de Contagem Regressiva

Operando com o Calendário Econômico do MQL5 (Parte 6): Automatizando a Entrada de Trades com Análise de Eventos de Notícias e Temporizadores de Contagem Regressiva

Neste artigo, implementamos a entrada automática de trades utilizando o Calendário Econômico do MQL5, aplicando filtros definidos pelo usuário e deslocamentos de tempo para identificar eventos de notícias qualificados. Comparamos os valores de previsão e valores anteriores para determinar se devemos abrir uma operação BUY ou SELL. Temporizadores dinâmicos de contagem regressiva exibem o tempo restante até a divulgação da notícia e são redefinidos automaticamente após a execução de um trade.
preview
Simulação de mercado: Position View (XI)

Simulação de mercado: Position View (XI)

Neste artigo, mostrarei como você, meu caro e estimado leitor, pode sem muito esforço. Conseguir modificar o indicador de posição a fim de que ele venha a ser capaz de fazer bem mais coisas, do que originalmente era capaz de fazer. Veremos como incluir a capacidade de podermos mover tanto os preços, quanto também criar as linhas de preço. E isto diretamente no gráfico. Algo que muitos imaginariam ser extremamente complicado e de difícil solução. Porém você notará que faremos tudo isto, com muita facilidade e com um mínimo de esforço. Tudo que será preciso fazer é parar e pensar um pouco.
preview
Do básico ao intermediário: Como bolhas de sabão

Do básico ao intermediário: Como bolhas de sabão

Neste artigo, será explicado um mecanismo muito simples e fácil de entender, cujo proposito seria o de gerar a ordenação de uma array, qualquer. Nele veremos que nem sempre o resultado apresentado é aquele que realmente esperamos obter. Sendo assim necessário adaptar a própria implementação a fim de conseguir obter os resultados adequado.
preview
Do básico ao intermediário: Filas, Listas e Árvores (II)

Do básico ao intermediário: Filas, Listas e Árvores (II)

Este é um artigo do qual você meu caro leitor, deverá estudar com muita calma. Isto devido ao tipo de coisa que será explicado nele. Apesar de termos procurando manter as coisas o mais simples e didáticas quanto foi possível ser feito. O conteúdo apresentado aqui, é sem sobra de dúvida algo muito complicado para quem está iniciando na programação. Mas isto não é motivo para que você venha a desanimar ou ignorar o que está sendo explicado aqui. Já que este artigo fará um elo, entre dois assuntos completamente diferentes, porém intimamente ligados.
preview
Simulação de mercado: Position View (XVIII)

Simulação de mercado: Position View (XVIII)

Neste artigo, mostrei da forma o mais didática possível. Como você pode conseguir modificar e gerar um código que seja capaz de cumprir alguns objetivos. Isto modificando o mínimo possível um código já existente. Iremos adicionar um indicador de volume, ao mesmo tempo impedir que o usuário ou operador venha a remover objetos criados pelo indicador de posição.
preview
Cliente no Connexus (Parte 7): Adicionando a camada de cliente

Cliente no Connexus (Parte 7): Adicionando a camada de cliente

Neste artigo, continuamos o desenvolvimento da biblioteca Connexus. Neste capítulo, criamos a classe CHttpClient, responsável por enviar a requisição e receber a ordem. Também abordamos o conceito de mocks, separando a biblioteca da função WebRequest, o que garante maior flexibilidade para os usuários.
preview
Do básico ao intermediário: Filas, Listas e Árvores (III)

Do básico ao intermediário: Filas, Listas e Árvores (III)

Neste artigo iremos dar o que será o próximo passo a fim de implementar e entender o que seria e como funciona uma lista encadeada. Apesar do conteúdo aqui, ser de certa maneira bastante denso e confuso para quem está iniciando. Procurei deixar as coisas o mais didática possível. Assim, você conseguirá entender por que e quando usar uma lista encadeada.
preview
Desenvolvendo um EA multimoeda (Parte 28): Adicionando um gerenciador de fechamento de posições

Desenvolvendo um EA multimoeda (Parte 28): Adicionando um gerenciador de fechamento de posições

Ao executar muitas estratégias em paralelo, pode surgir a necessidade de, de tempos em tempos, fechar todas as posições abertas e reiniciar as estratégias. O código já escrito permite implementar esse comportamento apenas em conjunto com manipulações manuais. Vamos tentar automatizar essa parte.
preview
Redes neurais em trading: Modelo universal de geração de trajetórias (UniTraj)

Redes neurais em trading: Modelo universal de geração de trajetórias (UniTraj)

Compreender o comportamento de agentes é importante em diversas áreas, mas a maioria dos métodos se concentra em uma única tarefa (compreensão, remoção de ruído ou previsão), o que reduz sua eficácia em cenários reais. Neste artigo, apresento um modelo capaz de se adaptar à solução de diferentes tarefas.
preview
Identificação e classificação de padrões fractais por meio de aprendizado de máquina

Identificação e classificação de padrões fractais por meio de aprendizado de máquina

Neste artigo abordaremos o tema intrigante da análise fractal e da previsão de mercados por meio de aprendizado de máquina. Estes são apenas os primeiros passos no caminho para o estudo das diversas estruturas fractais que se formam nos gráficos de cotações financeiras. Utilizaremos a correlação para a busca de padrões e o algoritmo CatBoost para a classificação desses padrões.
preview
Do básico ao intermediário: Filas, Listas e Árvores (V)

Do básico ao intermediário: Filas, Listas e Árvores (V)

Neste artigo começamos a trabalhar com a implementação do mecanismo de árvore. Como sei que este mecanismo pode ser extremamente complicado de ser compreendido e assimilado, no começo do aprendizado. Iremos implementar as coisas com calma e devagar. Assim todos irão conseguir entender como uma árvore funciona e qual o melhor momento para utiliza-la.
preview
Algoritmo do mercado acionário: Exchange Market Algorithm (EMA)

Algoritmo do mercado acionário: Exchange Market Algorithm (EMA)

O artigo é dedicado a uma análise detalhada do algoritmo Exchange Market Algorithm (EMA), inspirado no comportamento de traders no mercado acionário. O algoritmo modela o processo de negociação de ações, em que participantes do mercado com diferentes níveis de sucesso aplicam estratégias variadas para maximizar o lucro.
preview
Assistente Connexus (Parte 5): Métodos HTTP e códigos de status

Assistente Connexus (Parte 5): Métodos HTTP e códigos de status

Neste artigo, vamos entender os métodos HTTP e os códigos de status, dois elementos muito importantes para a interação entre cliente e servidor na internet. Compreender o que cada método faz de fato permite criar requisições mais precisas, informando ao servidor qual ação deve ser executada e tornando a comunicação mais eficiente.
preview
Dominando Operações de Arquivos em MQL5: Do I/O Básico à Construção de um Leitor CSV Personalizado

Dominando Operações de Arquivos em MQL5: Do I/O Básico à Construção de um Leitor CSV Personalizado

Este artigo aborda técnicas essenciais de manipulação de arquivos em MQL5, abrangendo logs de operações, processamento de CSV e integração de dados externos. Ele oferece tanto compreensão conceitual quanto orientação prática de codificação. Os leitores aprenderão a construir uma classe personalizada de importação CSV passo a passo, adquirindo habilidades práticas para aplicações reais.
preview
Do básico ao intermediário: Filas, Listas e Árvores (V)

Do básico ao intermediário: Filas, Listas e Árvores (V)

Neste artigo começamos a trabalhar com a implementação do mecanismo de árvore. Como sei que este mecanismo pode ser extremamente complicado de ser compreendido e assimilado, no começo do aprendizado. Iremos implementar as coisas com calma e devagar. Assim todos irão conseguir entender como uma árvore funciona e qual o melhor momento para utiliza-la.
preview
Previsão no trading e modelos Grey

Previsão no trading e modelos Grey

Este artigo aborda a aplicação de modelos Grey à previsão de séries temporais financeiras. Vamos analisar os princípios de funcionamento dos modelos Grey e as particularidades de sua aplicação a séries financeiras. Também discutiremos as vantagens e limitações do uso desses modelos em trading.