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 29): Controle auxiliar "ScrollBar"

DoEasy. Controles (Parte 29): Controle auxiliar "ScrollBar"

Neste artigo, iniciaremos o desenvolvimento do elemento de controle auxiliar ScrollBar e seus objetos derivados, incluindo as barras de rolagem vertical e horizontal. A ScrollBar (barra de rolagem) é utilizada para rolar o conteúdo da forma caso ele ultrapasse o contêiner. As barras de rolagem geralmente são posicionadas na parte inferior e à direita da forma. A barra de rolagem horizontal, localizada na parte inferior, permite rolar o conteúdo para a esquerda e direita, enquanto a barra de rolagem vertical possibilita rolar o conteúdo para cima e para baixo.
preview
Criação de um Expert Advisor simples em várias moedas usando MQL5 (Parte 4): Média móvel triangular — Sinais do indicador

Criação de um Expert Advisor simples em várias moedas usando MQL5 (Parte 4): Média móvel triangular — Sinais do indicador

Neste artigo, por EA multimoeda, entendemos um robô investidor, ou um robô de negociação, que pode negociar (abrir/fechar ordens, gerenciar ordens, por exemplo, do tipo trailing stop-loss e trailing profit) mais de um par de moedas em um gráfico. Desta vez, usaremos apenas um indicador, em particular a média móvel triangular em um ou mais timeframes, ou escalas de tempo.
A ociosidade é o estímulo do progresso ou como trabalhar com gráficos de maneira interativa
A ociosidade é o estímulo do progresso ou como trabalhar com gráficos de maneira interativa

A ociosidade é o estímulo do progresso ou como trabalhar com gráficos de maneira interativa

Um indicador de trabalho interativo com linhas de tendência, níveis Fibo, ícones impostos manualmente em um gráfico. Ele permite que você desenhe as zonas coloridas dos níveis Fibo, mostre os momentos em que o preço cruzou a linha de tendência, gerencia o objeto "etiqueta de preço".
preview
Gestão de dinheiro de negociação

Gestão de dinheiro de negociação

Neste artigo, veremos várias novas maneiras de criar sistemas de gerenciamento de dinheiro e identificar seus principais recursos. Hoje, existem algumas estratégias de gerenciamento de dinheiro para todos os gostos. Tentaremos considerar várias maneiras de administrar o dinheiro com base em diferentes modelos matemáticos de crescimento.
preview
Trabalhando com séries temporais na biblioteca DoEasy (Parte 53): classe do indicador base abstrato

Trabalhando com séries temporais na biblioteca DoEasy (Parte 53): classe do indicador base abstrato

Neste artigo, veremos a criação de uma classe de indicador abstrato que será posteriormente usada como uma classe base para a criação de objetos de indicadores padrão e personalizados da biblioteca.
preview
Desenvolvendo um sistema de Replay (Parte 48): Entendendo e compreendendo alguns conceitos

Desenvolvendo um sistema de Replay (Parte 48): Entendendo e compreendendo alguns conceitos

Que tal aprender algo novo. Neste artigo você irá aprender como transformar Scripts e Serviços e qual a utilidade em se fazer isto.
preview
Desenvolvendo um sistema de Replay (Parte 29): Projeto Expert Advisor — Classe C_Mouse (III)

Desenvolvendo um sistema de Replay (Parte 29): Projeto Expert Advisor — Classe C_Mouse (III)

Agora que a classe C_Mouse foi melhorada. Podemos focar em criar uma classe que será usada para promover uma base completamente diferente de estudos. Mas como expliquei no inicio do artigo, não iremos usar herança ou polimorfismo para gerar esta nova classe. Iremos modificar, ou melhor dizendo, agregar alguns objetos novos a linha de preço. Isto neste primeiro momento, no próximo artigo mostrarei como modificar os estudos. Mas faremos isto sem mexer no código da classe C_Mouse. Sei que na pratica, isto seria mais simples ser feito usando herança ou polimorfismo. No entanto, existem técnicas diferentes para se conseguir a mesma coisa.
preview
Redes neurais de maneira fácil (Parte 14): Agrupamento de dados

Redes neurais de maneira fácil (Parte 14): Agrupamento de dados

Devo confessar que já se passou mais de um ano desde que o último artigo foi publicado. Em um período tão longo como esse, é possível reconsiderar muitas coisas, desenvolver novas abordagens. E neste novo artigo, gostaria de me afastar um pouco do método de aprendizado supervisionado usado anteriormente, e sugerir um pouco de mergulho nos algoritmos de aprendizado não supervisionado. E, em particular, desejaria analisar um dos algoritmos de agrupamento, o k-médias (k-means).
preview
Encapsulando modelos ONNX em classes

Encapsulando modelos ONNX em classes

A programação orientada a objetos permite criar códigos mais compactos, fáceis de ler e modificar. Apresentamos um exemplo para três modelos ONNX.
preview
Desenvolvendo um sistema de Replay (Parte 49): Complicando as coisas (I)

Desenvolvendo um sistema de Replay (Parte 49): Complicando as coisas (I)

Aqui neste artigo iremos complicar um pouco as coisa. Fazendo uso do que foi visto nos artigos anteriores, iremos começar a liberar o arquivo de Template, para que o usuário possa fazer uso de um template pessoal. No entanto, irei fazer as mudanças aos poucos, visto que também irei modificar o indicador a fim de proporcionar um alivio ao MetaTrader 5.
preview
Aprenda algumas lições com as Empresas de Prop Trading (Parte 1) — Uma introdução

Aprenda algumas lições com as Empresas de Prop Trading (Parte 1) — Uma introdução

Neste artigo introdutório, discutirei algumas lições que podem ser aprendidas com os testes que as empresas de prop trading empregam. Isso é especialmente relevante para iniciantes e para aqueles que estão lutando para encontrar seu lugar no mundo do trading. O próximo artigo abordará a implementação do código.
preview
EA de grid-hedge modificado em MQL5 (Parte I): Criando um EA de hedge simples

EA de grid-hedge modificado em MQL5 (Parte I): Criando um EA de hedge simples

Criaremos um EA de hedge simples como base para nosso EA Grid-Hedge mais avançado, que será uma mistura de estratégias clássicas de grade e de hedge clássicas. Ao final deste artigo, você saberá como criar uma estratégia de hedge simples e o que as pessoas estão dizendo sobre a lucratividade dessa estratégia.
preview
Desenvolvendo um agente de Aprendizado por Reforço em MQL5 com Integração RestAPI (Parte 5): Escolhendo o Algoritmo do agente

Desenvolvendo um agente de Aprendizado por Reforço em MQL5 com Integração RestAPI (Parte 5): Escolhendo o Algoritmo do agente

Este capítulo da série aborda algoritmos de aprendizado por reforço, focando em Q-Learning, Deep Q-Network (DQN), e Proximal Policy Optimization (PPO). Explora como essas técnicas podem ser integradas para melhorar a automação de tarefas, detalhando suas características, vantagens, e aplicabilidades práticas. A seleção do algoritmo mais adequado é vista como crucial para otimizar a eficiência operacional em ambientes dinâmicos e incertos, prometendo discussões futuras sobre a implementação prática e teórica desses métodos.
preview
Redes neurais de maneira fácil (Parte 21): Autocodificadores variacionais (VAE)

Redes neurais de maneira fácil (Parte 21): Autocodificadores variacionais (VAE)

No último artigo, analisamos o algoritmo do autocodificador. Como qualquer outro algoritmo, tem suas vantagens e desvantagens. Na implementação original, o autocodificador executa a tarefa de separar os objetos da amostra de treinamento o máximo possível. E falaremos sobre como lidar com algumas de suas deficiências neste artigo.
Gráficos na biblioteca DoEasy (Parte 93): preparando a funcionalidade para criar objetos gráficos compostos
Gráficos na biblioteca DoEasy (Parte 93): preparando a funcionalidade para criar objetos gráficos compostos

Gráficos na biblioteca DoEasy (Parte 93): preparando a funcionalidade para criar objetos gráficos compostos

Neste artigo, vamos começar a desenvolver a funcionalidade para a criação de objetos gráficos compostos. Nossa biblioteca terá suporte para a criação de objetos gráficos compostos complexos, sendo que tais objetos podem ter qualquer hierarquia de relações. Prepararemos todas as classes necessárias para a posterior geração de tais objetos.
preview
DoEasy. Controles (Parte 6): Controle "Painel", redimensionamento automático do contêiner para adequá-lo ao seu conteúdo

DoEasy. Controles (Parte 6): Controle "Painel", redimensionamento automático do contêiner para adequá-lo ao seu conteúdo

Neste artigo, continuaremos trabalhando no objeto WinForms "Painel" e geraremos seu redimensionamento automático em função do tamanho geral dos objetos Dock localizados dentro dele. Além disso, adicionaremos novas propriedades ao objeto de biblioteca "Símbolo".
preview
Desenvolvendo um sistema de Replay (Parte 46): Projeto do Chart Trade (V)

Desenvolvendo um sistema de Replay (Parte 46): Projeto do Chart Trade (V)

Cansado de perder tempo procurando aquele arquivo, que é preciso para fazer a sua aplicação funcionar ?!?! Que tal embutir tudo no executável ? Assim você nunca irá perder tempo procurando as coisas. Sei que muitos fazem uso, exatamente daquela forma de distribuir e guardar as coisas. Mas existe uma maneira bem mais adequada. Pelo menos no que diz respeito a distribuição de executáveis e armazenamento dos mesmos. A forma que irei explicar aqui, pode vim a lhe ser de grande ajuda. Já que você pode usar o próprio MetaTrader 5 como sendo um grande ajudante, assim como o MQL5. Não é algo lá tão complexo, ou difícil de ser entendido.
Vídeo: Negociação automatizada simples, como criar um EA simples mediante MQL5
Vídeo: Negociação automatizada simples, como criar um EA simples mediante MQL5

Vídeo: Negociação automatizada simples, como criar um EA simples mediante MQL5

A maioria dos alunos dos meus cursos achava que a linguagem MQL5 era difícil de entender. Naquele momento, eles estavam procurando maneiras simples de automatizar alguns processos. Neste artigo, você aprenderá como começar a trabalhar logo em MQL5 mesmo sem conhecimentos de programação e mesmo que já tenha tentado, sem sucesso, dominar este tópico.
preview
Funções em Aplicativos MQL5

Funções em Aplicativos MQL5

As funções são componentes essenciais em qualquer linguagem de programação. Entre outras coisas, elas ajudam os desenvolvedores a aplicar o princípio DRY (don't repeat youself, não se repita). O artigo fala sobre funções e sua criação no MQL5 com a ajuda de aplicativos simples que enriquecem seu sistema de negociação, sem complicá-lo.
preview
Redes neurais de maneira fácil (Parte 46): Aprendizado por reforço condicionado a metas (GCRL)

Redes neurais de maneira fácil (Parte 46): Aprendizado por reforço condicionado a metas (GCRL)

Convido você a conhecer mais uma abordagem no campo do aprendizado por reforço. É chamada de aprendizado por reforço condicionado a metas, conhecida pela sigla GCRL (Goal-conditioned reinforcement learning). Nessa abordagem, o agente é treinado para alcançar diferentes metas em cenários específicos.
preview
Preparação de indicadores com vários símbolos/períodos

Preparação de indicadores com vários símbolos/períodos

Neste artigo, examinaremos os princípios para criar indicadores com vários símbolos/períodos e recuperar dados deles dentro de EAs e indicadores. Veremos as nuances mais importantes ao usar multi-indicadores em EAs e indicadores, e sua plotagem mediante buffers de indicador personalizado.
preview
Operações de negociação Estruturas das solicitações e das resposta, descrição e registro

Operações de negociação Estruturas das solicitações e das resposta, descrição e registro

Neste artigo, veremos como trabalhar com as estruturas das solicitações de negociação, criar a solicitação, verificá-la antes de enviá-la ao servidor, gerar a resposta do servidor quanto a ela e usar a estrutura das transações. Além disso, criaremos funções simples e convenientes para enviar ordens para o servidor e, com base em tudo o que foi mencionado acima, criar um Expert Advisor que informe sobre as transações.
preview
Modelos prontos para integrar indicadores nos Expert Advisors (Parte 2): Indicadores de volume e Bill Williams

Modelos prontos para integrar indicadores nos Expert Advisors (Parte 2): Indicadores de volume e Bill Williams

Neste artigo, examinaremos os indicadores padrão das categorias Volumes e Bill Williams. Criaremos modelos prontos a serem usados em Expert Advisors, modelos esses que incluirão: declaração e configuração de parâmetros, inicialização/desinicialização de indicadores e recuperação de dados/sinais a partir de buffers de indicador em EAs.
preview
Gráficos na biblioteca DoEasy (Parte 99): Movendo um objeto gráfico estendido com um ponto de controle

Gráficos na biblioteca DoEasy (Parte 99): Movendo um objeto gráfico estendido com um ponto de controle

No último artigo, geramos o movimento dos pontos de ancoragem de um objeto gráfico estendido por meio de formas de controle. Agora vamos mover o objeto gráfico composto com ajuda de um ponto/forma de controle de objeto gráfico.
preview
Redes neurais de maneira fácil (Parte 50): Soft Actor-Critic (otimização do modelo)

Redes neurais de maneira fácil (Parte 50): Soft Actor-Critic (otimização do modelo)

No artigo anterior, implementamos o algoritmo Soft Actor-Critic, mas não conseguimos treinar um modelo lucrativo. Neste artigo, vamos realizar a otimização do modelo previamente criado para obter os resultados desejados a nível de seu funcionamento.
preview
Desenvolvendo um sistema de Replay (Parte 28): Projeto Expert Advisor — Classe C_Mouse (II)

Desenvolvendo um sistema de Replay (Parte 28): Projeto Expert Advisor — Classe C_Mouse (II)

Quanto de fato os primeiros sistema capazes de fatorar alguma coisa, começaram a ser produzidos. Tudo tinha que ser feito por engenheiros com grande conhecimento, no que estava sendo projetado. Isto nos primórdios da computação, onde se quer existia algum tipo de terminal, para que fosse possível programar algo. Conforme ia se desenvolvendo, e o interesse de que mais pessoas também conseguisse criar algo, começou surgir novas ideias e meios, de programar aquelas máquinas, que antes era feito mudando a posição dos conectores. Assim começamos a ter os primeiros terminais.
preview
Algoritmos de otimização populacional: algoritmos de estratégias evolutivas (Evolution Strategies, (μ,λ)-ES e (μ+λ)-ES)

Algoritmos de otimização populacional: algoritmos de estratégias evolutivas (Evolution Strategies, (μ,λ)-ES e (μ+λ)-ES)

Neste artigo, vamos falar sobre um grupo de algoritmos de otimização conhecidos como "Estratégias Evolutivas" (Evolution Strategies ou ES). Eles são alguns dos primeiros algoritmos que usam princípios de evolução para encontrar soluções ótimas. Vamos mostrar as mudanças feitas nas versões clássicas das ES, além de revisar a função de teste e a metodologia de avaliação dos algoritmos.
preview
Implementação do teste aumentado de Dickey-Fuller no MQL5

Implementação do teste aumentado de Dickey-Fuller no MQL5

Neste artigo, vamos mostrar como implementar o teste aumentado de Dickey-Fuller e sua aplicação para realizar testes de cointegração usando o método de Engle-Granger.
preview
Desenvolvendo um sistema de Replay (Parte 36): Ajeitando as coisas (II)

Desenvolvendo um sistema de Replay (Parte 36): Ajeitando as coisas (II)

Uma das coisas que mais pode complicar a nossa vida como programadores é o fato de supor as coisas. Neste artigo mostrarei o perigo de fazer suposições. Tanto na parte da programação em MQL5, onde você supõem que um tipo terá um dado tamanho. Assim como no uso do MetaTrader 5, onde você supõem que servidores diferentes funcionam da mesma forma.
preview
Redes neurais de maneira fácil (Parte 37): atenção esparsa

Redes neurais de maneira fácil (Parte 37): atenção esparsa

No artigo anterior, abordamos modelos relacionais que usavam mecanismos de atenção. Uma das características desses modelos era o aumento do uso de recursos computacionais. O artigo de hoje apresenta um dos mecanismos para reduzir o número de operações computacionais dentro do bloco Self-Attention, o que aumenta o desempenho geral do modelo.
Gráficos na biblioteca DoEasy (Parte 90): eventos de objetos gráficos padrão Funcionalidade básica
Gráficos na biblioteca DoEasy (Parte 90): eventos de objetos gráficos padrão Funcionalidade básica

Gráficos na biblioteca DoEasy (Parte 90): eventos de objetos gráficos padrão Funcionalidade básica

No artigo de hoje criaremos a funcionalidade base para rastrear eventos de eventos de objetos gráficos padrão. Vamos começar com o clique duplo do mouse sobre o objeto gráfico.
preview
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 24): FOREX (V)

Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 24): FOREX (V)

Aqui estamos retirando o bloqueio de simulação baseada na plotagem LAST, e adicionando um ponto de entrada para este tipo de simulação. Agora prestem atenção ao fato de que todo o funcionamento, irá se basear no sistema do forex. Sendo que a única diferença, aqui nesta rotina, é o fato de que estaremos separando uma simulação BID, de uma LAST. Mas a questão de randomização do tempo e a sua correção para ser utilizado pela classe C_Replay, é a mesma em ambos modos de simulação. Isto é uma coisa boa, já que se modificarmos um dos modos, o outro irá se beneficiar, pelo menos no que rege a parte do tempo entre os tickets
preview
Como desenvolver um sistema de negociação baseado no indicador Oscilador de Chaikin

Como desenvolver um sistema de negociação baseado no indicador Oscilador de Chaikin

Bem-vindo ao nosso novo artigo da série sobre como desenvolver um sistema de negociação com base nos indicadores técnico mais populares. Através deste novo artigo, nós aprenderemos como desenvolver um sistema de negociação pelo indicador Oscilador de Chaikin.
preview
Como desenvolver um sistema de negociação baseado no indicador Índice de Força

Como desenvolver um sistema de negociação baseado no indicador Índice de Força

Seja bem-vindo a este novo artigo em nossa série sobre como desenvolver um sistema de negociação com base no indicador técnico mais popular. Neste artigo, nós aprenderemos sobre um novo indicador técnico e como criar um sistema de negociação usando o indicador Índice de Força.
preview
Desenvolvendo um fator de qualidade para os EAs

Desenvolvendo um fator de qualidade para os EAs

Nesse artigo vamos explicar como desenvolver um fator de qualidade para ser retornado pelo seu EA no testador de estratégia. Iremos mostrar duas formas de cálculo conhecidas (Van Tharp e Sunny Harris).
preview
DoEasy. Controles (Parte 24): Objeto WinForms dica

DoEasy. Controles (Parte 24): Objeto WinForms dica

Neste artigo, vamos reformular a lógica de especificação dos objetos base e principal para todos os objetos WinForms da biblioteca. Vamos desenvolver também um novo objeto dica que será base e algumas classes herdeiras para indicar a possível direção do movimento da linha divisória.
preview
Trabalhando com séries temporais na biblioteca DoEasy (Parte 49): indicadores padrão multiperíodos multissímbolos multibuffer

Trabalhando com séries temporais na biblioteca DoEasy (Parte 49): indicadores padrão multiperíodos multissímbolos multibuffer

Neste artigo, modificaremos as classes da biblioteca para permitir a criação de indicadores padrão multissímbolos e multiperíodos que requerem vários buffers de indicador para exibir seus dados.
preview
DoEasy. Controles (Parte 13): Otimizando a interação de objetos WinForms com o mouse, dando início ao desenvolvimento do objeto WinForms TabControl

DoEasy. Controles (Parte 13): Otimizando a interação de objetos WinForms com o mouse, dando início ao desenvolvimento do objeto WinForms TabControl

No artigo, vamos corrigir e otimizar o processamento da aparência dos objetos WinForms após afastar o cursor do mouse do objeto e começar a desenvolver o objeto TabControl WinForms.
preview
Criando um Expert Advisor simples multimoeda usando MQL5 (Parte 6): Dois indicadores RSI cruzam suas linhas

Criando um Expert Advisor simples multimoeda usando MQL5 (Parte 6): Dois indicadores RSI cruzam suas linhas

Por Expert Advisor multimoeda, nesta seção, entende-se um EA ou robô de trading que utiliza dois indicadores RSI com linhas cruzadas, isto é, um RSI rápido que cruza um RSI lento.
preview
Desenvolvendo um sistema de Replay (Parte 31): Projeto Expert Advisor - Classe C_Mouse (V)

Desenvolvendo um sistema de Replay (Parte 31): Projeto Expert Advisor - Classe C_Mouse (V)

Desenvolver uma forma de colocar o cronometro, de modo que durante um replay / simulação, ele consiga nos dizer quanto tempo falta, pode parecer a principio uma tarefa simples e de rápida solução. Muitos iriam simplesmente tentar adaptar e usar o mesmo sistema que é usado quando temos o servidor de negociação ao nosso lado. Mas aqui mora um ponto que muitos talvez não se atentem ao pensar em tal solução. Quando você está fazendo um replay, e isto para não falar do fato da simulação, o relógio não funciona da mesma forma. Este tipo de coisa torna complexo construir tal sistema.