Artigos sobre programação na linguagem 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
Algoritmo de otimização baseado em brainstorming — Brain Storm Optimization (Parte II): Multimodalidade

Algoritmo de otimização baseado em brainstorming — Brain Storm Optimization (Parte II): Multimodalidade

Na segunda parte do artigo, vamos para a implementação prática do algoritmo BSO, realizaremos testes com funções de teste e compararemos a eficiência do BSO com outros métodos de otimização.
preview
Construindo um Modelo de Restrição de Tendência com Candlestick (Parte 8): Desenvolvimento de Expert Advisor (I)

Construindo um Modelo de Restrição de Tendência com Candlestick (Parte 8): Desenvolvimento de Expert Advisor (I)

Nesta discussão, vamos criar nosso primeiro Expert Advisor em MQL5 com base no indicador que fizemos no artigo anterior. Vamos cobrir todas as funcionalidades necessárias para tornar o processo automático, incluindo o gerenciamento de riscos. Isso beneficiará extensivamente os usuários ao avançarem da execução manual de negociações para sistemas automatizados.
preview
Redes neurais em trading: Aprendizado hierárquico de características em nuvens de pontos

Redes neurais em trading: Aprendizado hierárquico de características em nuvens de pontos

Continuamos estudando algoritmos para extração de características de nuvens de pontos. Neste artigo, exploraremos mecanismos para aumentar a eficiência do método PointNet.
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
Algoritmo evolutivo de trading com aprendizado por reforço e extinção de estratégias não lucrativas (ETARE)

Algoritmo evolutivo de trading com aprendizado por reforço e extinção de estratégias não lucrativas (ETARE)

Apresentamos um algoritmo de trading inovador que combina algoritmos evolutivos com aprendizado profundo por reforço para operar no mercado Forex. O algoritmo utiliza um mecanismo de extinção das estratégias ineficientes, com o objetivo de otimizar a estratégia de negociação.
preview
Automatizando Estratégias de Trading em MQL5 (Parte 2): O Sistema Kumo Breakout com Ichimoku e Awesome Oscillator

Automatizando Estratégias de Trading em MQL5 (Parte 2): O Sistema Kumo Breakout com Ichimoku e Awesome Oscillator

Neste artigo, criamos um Expert Advisor (EA) que automatiza a estratégia Kumo Breakout utilizando o indicador Ichimoku Kinko Hyo e o Awesome Oscillator. Percorremos o processo de inicialização dos identificadores de indicadores, detecção das condições de breakout e codificação das entradas e saídas automatizadas de trades. Além disso, implementamos trailing stops e lógica de gerenciamento de posição para aprimorar o desempenho e a adaptabilidade do EA às condições de mercado.
preview
Fibonacci no Forex (Parte I): Testando relações entre preço e tempo

Fibonacci no Forex (Parte I): Testando relações entre preço e tempo

Como o mercado se movimenta com base em proporções derivadas dos números de Fibonacci? Essa sequência, em que cada número é a soma dos dois anteriores (1, 1, 2, 3, 5, 8, 13, 21...), não descreve apenas o crescimento da população de coelhos. Vamos considerar a hipótese de Pitágoras de que tudo no mundo obedece a certas proporções numéricas...
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
Simulação de mercado (Parte 17): Sockets (XI)

Simulação de mercado (Parte 17): Sockets (XI)

Implementar a parte que será executada aqui no MetaTrader 5, está longe de ser complicado. Mas existem diversos cuidados e pontos de atenção a serem observados. Isto para que você caro leitor, consiga de fato fazer com que o sistema funcione. Lembre-se de uma coisa: Você não executará um único programa. Você estará na verdade, executando três programas ao mesmo tempo. E é importante que cada um seja implementado e construído de forma que trabalhem e conversem entre si. Isto sem que eles fiquem completamente sem saber o que cada um está querendo ou desejando fazer.
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
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
Negociando com o Calendário Econômico do MQL5 (Parte 1): Dominando as Funções do Calendário Econômico do MQL5

Negociando com o Calendário Econômico do MQL5 (Parte 1): Dominando as Funções do Calendário Econômico do MQL5

Neste artigo, exploramos como usar o Calendário Econômico do MQL5 para negociar, primeiro entendendo suas funcionalidades principais. Em seguida, implementamos funções-chave do Calendário Econômico no MQL5 para extrair dados relevantes de notícias para decisões de negociação. Por fim, concluímos mostrando como utilizar essas informações para aprimorar as estratégias de negociação de forma eficaz.
preview
Desenvolvendo um EA multimoeda (Parte 21): Preparação para um experimento importante e otimização do código

Desenvolvendo um EA multimoeda (Parte 21): Preparação para um experimento importante e otimização do código

Para avançar mais, seria interessante verificar se conseguimos melhorar os resultados executando periodicamente uma reotimização automática e a geração de um novo EA. Muitas discussões sobre o uso da otimização de parâmetros giram em torno da questão de por quanto tempo é possível usar os parâmetros obtidos para operar em um período futuro, mantendo os principais indicadores de lucratividade e rebaixamento dentro dos níveis estabelecidos. E será que isso é de fato possível?
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
Desenvolvendo um EA multimoeda (Parte 16): Influência de diferentes históricos de cotações nos resultados de testes

Desenvolvendo um EA multimoeda (Parte 16): Influência de diferentes históricos de cotações nos resultados de testes

O EA em desenvolvimento deve apresentar bons resultados ao operar com diferentes corretoras. Porém, até agora, os testes foram realizados com base em cotações de uma conta de demonstração da MetaQuotes. Vamos verificar se o EA está pronto para operar em contas reais com cotações diferentes das utilizadas durante os testes e otimizações.
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
Implementação do Exponente de Hurst Generalizado e do Teste de Razão de Variância em MQL5

Implementação do Exponente de Hurst Generalizado e do Teste de Razão de Variância em MQL5

Neste artigo, investigamos como o Exponente de Hurst Generalizado e o Teste de Razão de Variância podem ser utilizados para analisar o comportamento das séries de preços em MQL5.
preview
Redes neurais de maneira fácil (Parte 77): Cross-Covariance Transformer (XCiT)

Redes neurais de maneira fácil (Parte 77): Cross-Covariance Transformer (XCiT)

Em nossos modelos, frequentemente usamos vários algoritmos de atenção. E, provavelmente, usamos Transformadores com mais frequência. A principal desvantagem deles é a exigência de recursos. Neste artigo, quero apresentar um algoritmo que ajuda a reduzir os custos computacionais sem perda de qualidade.
preview
Redes neurais de maneira fácil (Parte 90): Interpolação Frequencial de Séries Temporais (FITS)

Redes neurais de maneira fácil (Parte 90): Interpolação Frequencial de Séries Temporais (FITS)

Ao estudarmos o método FEDformer, abrimos uma porta para a área de representação de séries temporais no domínio da frequência. No novo artigo, continuaremos o tema iniciado, e analisaremos um método que permite não apenas conduzir uma análise, mas também prever estados futuros no domínio frequencial.
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
Técnicas do MQL5 Wizard que você deve conhecer (Parte 41): Deep-Q-Networks

Técnicas do MQL5 Wizard que você deve conhecer (Parte 41): Deep-Q-Networks

O Deep-Q-Network é um algoritmo de aprendizado por reforço que utiliza redes neurais para projetar (estimar) o próximo valor-Q e a ação ideal durante o processo de treinamento de um módulo de aprendizado de máquina. Já consideramos um algoritmo alternativo de aprendizado por reforço, o Q-Learning. Este artigo, portanto, apresenta outro exemplo de como um MLP treinado com aprendizado por reforço pode ser usado dentro de uma classe de sinal personalizada.
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
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
Migrando para o MQL5 Algo Forge (Parte 1): Criando o repositório principal

Migrando para o MQL5 Algo Forge (Parte 1): Criando o repositório principal

Ao trabalharem em projetos no MetaEditor, os desenvolvedores se deparam com a necessidade de gerenciar versões do código. Apesar dos planos de migração para o Git e do lançamento do MQL5 Algo Forge, a integração ainda não foi concluída. Este artigo discute maneiras de tornar o trabalho com as ferramentas atuais mais prático.
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
Desenvolvendo um sistema de Replay (Parte 61): Dando play no serviço (II)

Desenvolvendo um sistema de Replay (Parte 61): Dando play no serviço (II)

Acompanhe neste artigo, as modificações que foram necessárias serem feitas, para que o serviço de replay / simulação, pudesse trabalhar de forma mais eficiente e segura. Aqui também, irei mostrar algo que pode ser de grande interesse para quem deseja fazer um uso mais eficiente das classes. Além de falar e explicar como contornar um problema que existe no MQL5, que reduz a performance do código quando usamos classes.
preview
Simulação de mercado: A união faz a força (III)

Simulação de mercado: A união faz a força (III)

Neste artigo, apresentarei o nosso sistema de simulação de operações a mercado. Apesar deste sistema está praticamente terminado. Ainda existem algumas coisas a serem feitas e implementadas. Além de algumas poucas mudanças que ainda precisam ser feitas. Mas mesmo com tudo que já foi implementado. Confesso que já estou cansado de ficar preso na implementação deste sistema.
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
Negociação de notícias facilitada (parte 5): realizando negociações (II)

Negociação de notícias facilitada (parte 5): realizando negociações (II)

Este artigo expandirá a classe de gerenciamento de trades para incluir ordens buy-stop e sell-stop para operar em eventos de notícias e implementará uma restrição de expiração nessas ordens para evitar qualquer negociação durante a noite. Uma função de slippage será incorporada ao expert para tentar prevenir ou minimizar possíveis deslizes que podem ocorrer ao usar ordens stop no trading, especialmente durante eventos de notícias.
preview
Informação mútua como critério para seleção progressiva de características

Informação mútua como critério para seleção progressiva de características

Neste artigo apresentamos a implementação da seleção progressiva de características em MQL5, baseada na informação mútua entre o conjunto ótimo de preditores e a variável alvo.
preview
Redes neurais em trading: Otimização de LSTM para fins de previsão de séries temporais multidimensionais (Conclusão)

Redes neurais em trading: Otimização de LSTM para fins de previsão de séries temporais multidimensionais (Conclusão)

Continuamos a implementação do framework DA-CG-LSTM, que propõe métodos inovadores de análise e previsão de séries temporais. O uso de CG-LSTM e do mecanismo de atenção dupla permite identificar com maior precisão tanto dependências de longo prazo quanto de curto prazo nos dados, o que é especialmente útil para o trabalho com mercados financeiros.
preview
Visão computacional para trading (Parte 1): Criando uma funcionalidade básica simples

Visão computacional para trading (Parte 1): Criando uma funcionalidade básica simples

Sistema de previsão do EURUSD usando visão computacional e aprendizado profundo. Descubra como redes neurais convolucionais podem reconhecer padrões complexos de preços no mercado cambial e prever o movimento da cotação com precisão de até 54%. O artigo revela a metodologia de criação de um algoritmo que utiliza tecnologias de inteligência artificial para análise visual de gráficos, em vez de indicadores técnicos tradicionais. O autor demonstra o processo de transformação dos dados de preços em "imagens", seu processamento por uma rede neural e a oportunidade única de olhar para a "consciência" da IA por meio de mapas de ativação e mapas de calor de atenção. O código prático em Python, com a utilização da biblioteca MetaTrader 5, possibilita que os leitores reproduzam o sistema e o apliquem em seu próprio trading.
preview
Simulação de mercado (Parte 17): Sockets (XI)

Simulação de mercado (Parte 17): Sockets (XI)

Implementar a parte que será executada aqui no MetaTrader 5, está longe de ser complicado. Mas existem diversos cuidados e pontos de atenção a serem observados. Isto para que você caro leitor, consiga de fato fazer com que o sistema funcione. Lembre-se de uma coisa: Você não executará um único programa. Você estará na verdade, executando três programas ao mesmo tempo. E é importante que cada um seja implementado e construído de forma que trabalhem e conversem entre si. Isto sem que eles fiquem completamente sem saber o que cada um está querendo ou desejando fazer.
preview
Redes neurais em trading: Explorando a estrutura local dos dados

Redes neurais em trading: Explorando a estrutura local dos dados

A identificação eficaz e a preservação da estrutura local dos dados de mercado em meio ao ruído são tarefas cruciais no trading. Embora o uso do mecanismo Self-Attention tenha mostrado bons resultados no processamento desses dados, o método clássico não leva em conta as características locais da estrutura original. Neste artigo, proponho conhecer um algoritmo capaz de considerar essas dependências estruturais.
preview
Desenvolvimento de ferramentas para análise do movimento de preços (Parte 2): Script de comentários analíticos

Desenvolvimento de ferramentas para análise do movimento de preços (Parte 2): Script de comentários analíticos

Dando continuidade ao nosso trabalho para simplificar a interação com o comportamento do preço, temos o prazer de apresentar mais uma ferramenta que pode melhorar significativamente sua análise de mercado e ajudar na tomada de decisões bem fundamentadas. Esta ferramenta exibe indicadores técnicos importantes, como os preços do dia anterior, níveis significativos de suporte e resistência, além do volume de negociação, gerando automaticamente dicas visuais no gráfico.
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
Do básico ao intermediário: Objetos (II)

Do básico ao intermediário: Objetos (II)

Neste artigo veremos como controlar de forma simples via código algumas propriedades de objetos. Vermos como podemos colocar mais de um objeto em um mesmo gráfico, usando para isto uma aplicação. E além disto, começaremos a ver a importância de definir um nome curto, para todo e qualquer indicador que venhamos a implementar.
preview
Simulação de mercado (Parte 20): Iniciando o SQL (III)

Simulação de mercado (Parte 20): Iniciando o SQL (III)

Apesar de podermos fazer as coisas com um banco de dados, tendo cerca de 10 ou pouco mais registros. A coisa realmente se torna melhor assimilada, quando usamos um arquivo de banco de dados que contenha mais de 15 mil registros. Ou seja, se você for criar isto manualmente irá ser uma bela de uma tarefa. No entanto, dificilmente você irá encontrar algum banco de dados, mesmo para fins didáticos disponível para download. Mas não precisamos de fato recorrer a este tipo de coisa. Podemos usar o MetaTrader 5, para criar um banco de dados para nos. Neste artigo veremos como fazer isto.
preview
Desenvolvendo um cliente MQTT para Metatrader 5: uma abordagem TDD — Parte 6

Desenvolvendo um cliente MQTT para Metatrader 5: uma abordagem TDD — Parte 6

Este artigo é a sexta parte de uma série que descreve nossas etapas de desenvolvimento de um cliente MQL5 nativo para o protocolo MQTT 5.0. Nesta parte, comentamos as principais mudanças em nosso primeiro refatoramento, como chegamos a um modelo viável para nossas classes de construção de pacotes, como estamos construindo pacotes PUBLISH e PUBACK, e a semântica por trás dos Códigos de Motivo PUBACK.
preview
Do básico ao intermediário: Template e Typename (III)

Do básico ao intermediário: Template e Typename (III)

Neste artigo iremos ver a primeira parte de algo que para iniciantes é muito confuso de entender. Mas para que fique devidamente explicado e assim o tema não se torne confuso, além do necessário. Irei dividir a coisa em etapas. A primeira etapa é a que estará sendo mostrada neste artigo. No entanto, apesar de no final parecer que ficamos em um beco sem saída. Não será bem isto que estará ocorrendo. Já que o próximo passo nos levará a uma outra situação em que será melhor entendida no próximo artigo.