Artigos com exemplos de como programar robôs de negociação na linguagem MQL5

icon

Os experts são o coração da negociação automatizada e o objetivo de toda pessoa que programa estratégias de trading. Você pode criar seu próprio robô de negociação com a ajuda dos artigos desta seção. Os principiantes podem seguir passo a passo todas as etapas dos sistemas de negociação automatizados: criação, depuração e teste.

Os artigos ensinam não apenas como programar em MQL5, mas também mostram como implementar quaisquer ideias e técnicas de negociação. Aprenda a programar um trailing stop, a aplicar o gerenciamento de dinheiro, a calcular o valor de um indicador e muito, muito mais.

Novo artigo
recentes | melhores
preview
Deixando o gráfico mais interessante — Adicionando uma tela de fundo

Deixando o gráfico mais interessante — Adicionando uma tela de fundo

Muitas estações de trabalho contém alguma imagem representativa e que mostra algo sobre o usuário, estas imagens deixam o ambiente de trabalho mais bonito e animador,. Aprenda como deixar o gráfico mais interessante colocando um papel de parede nele.
preview
Quase-construtor para criar um Expert Advisor

Quase-construtor para criar um Expert Advisor

Disponibilizo meu próprio conjunto de funções de negociação na forma de um Expert Advisor pronto para uso. O método agora proposto permite gerar diversas estratégias de negociação simplesmente adicionando indicadores e mudando os parâmetros de entrada.
Conselhos de um programador profissional (Parte II): armazenamento e troca de parâmetros entre um EA, scripts e programas externos
Conselhos de um programador profissional (Parte II): armazenamento e troca de parâmetros entre um EA, scripts e programas externos

Conselhos de um programador profissional (Parte II): armazenamento e troca de parâmetros entre um EA, scripts e programas externos

Conselhos de um programador profissional sobre métodos, técnicas e ferramentas auxiliares para tornar a programação mais fácil. Hoje falaremos sobre os parâmetros que podem ser restaurados após reiniciar (fechar) o terminal. Na verdade, todos os exemplos apresentados são partes funcionais do código do meu projeto Cayman.
Outras classes na biblioteca DoEasy (Parte 71): eventos da coleção de objetos-gráficos
Outras classes na biblioteca DoEasy (Parte 71): eventos da coleção de objetos-gráficos

Outras classes na biblioteca DoEasy (Parte 71): eventos da coleção de objetos-gráficos

Neste artigo, criaremos uma funcionalidade para rastrear alguns eventos de objetos-gráficos - adição/remoção de gráficos de símbolos, de subjanelas do gráfico, bem como adição/exclusão/mudança de indicadores presentes em janelas de gráficos.
preview
Redes neurais de maneira fácil (Parte 13): normalização em lote

Redes neurais de maneira fácil (Parte 13): normalização em lote

No artigo anterior, começamos a examinar métodos para melhorar a qualidade do treinamento da rede neural. Neste artigo, proponho continuar este tópico e considerar uma outra abordagem, em particular a de normalização de dados em lote.
Outras classes na biblioteca DoEasy (Parte 68): classe de objeto-gráfico e classes de objetos-indicadores na janela do gráfico
Outras classes na biblioteca DoEasy (Parte 68): classe de objeto-gráfico e classes de objetos-indicadores na janela do gráfico

Outras classes na biblioteca DoEasy (Parte 68): classe de objeto-gráfico e classes de objetos-indicadores na janela do gráfico

Neste artigo, continuaremos a desenvolver a classe do objeto-gráfico. Vamos adicionar uma lista de objetos-janelas, onde, por sua vez, estarão disponíveis as listas de indicadores colocados nestas.
Outras classes na biblioteca DoEasy (Parte 67): classe de objeto-gráfico
Outras classes na biblioteca DoEasy (Parte 67): classe de objeto-gráfico

Outras classes na biblioteca DoEasy (Parte 67): classe de objeto-gráfico

Neste artigo, vamos criar uma classe de um objeto-gráfico (um gráfico de um instrumento de negociação) e modificar a classe-coleção de objetos de sinal mql5 para que cada objeto-sinal armazenado na coleção também atualize todos os seus parâmetros quando a lista é atualizada.
preview
Redes Neurais de Maneira Fácil (Parte 12): Dropout

Redes Neurais de Maneira Fácil (Parte 12): Dropout

Como a próxima etapa no estudo das redes neurais, eu sugiro considerar os métodos de aumentar a convergência durante o treinamento da rede neural. Existem vários desses métodos. Neste artigo, nós consideraremos um deles intitulado Dropout.
preview
Técnicas úteis e exóticas para a negociação automatizada

Técnicas úteis e exóticas para a negociação automatizada

Neste artigo, eu demonstrarei algumas técnicas muito interessantes e úteis para a negociação automatizada. Algumas delas podem ser familiares para você. Eu tentarei cobrir os métodos mais interessantes e explicarei por que vale a pena usá-los. Além disso, eu mostrarei o que essas técnicas podem fazer na prática. Nós criaremos Expert Advisors e testaremos todas as técnicas descritas usando as cotações históricas.
preview
Redes Neurais de Maneira Fácil (Parte 11): Uma visão sobre a GPT

Redes Neurais de Maneira Fácil (Parte 11): Uma visão sobre a GPT

Talvez um dos modelos mais avançados entre as redes neurais de linguagem atualmente existentes seja a GPT-3, cuja variante máxima contém 175 bilhões de parâmetros. Claro, nós não vamos criar tal monstro em nossos PCs domésticos. No entanto, nós podemos ver quais soluções arquitetônicas podem ser usadas em nosso trabalho e como nós podemos nos beneficiar delas.
Trabalhando preços na biblioteca DoEasy (Parte 63): livro de ofertas, classe de ordem abstrata do livro de ofertas
Trabalhando preços na biblioteca DoEasy (Parte 63): livro de ofertas, classe de ordem abstrata do livro de ofertas

Trabalhando preços na biblioteca DoEasy (Parte 63): livro de ofertas, classe de ordem abstrata do livro de ofertas

Neste artigo, começaremos a desenvolver funcionalidades para trabalhar com o livro de ofertas. Criaremos uma classe de objeto para uma ordem abstrata do livro de ofertas e dos seus herdeiros.
Trabalhando com preços na biblioteca DoEasy (Parte 61): coleção de séries de ticks para símbolos
Trabalhando com preços na biblioteca DoEasy (Parte 61): coleção de séries de ticks para símbolos

Trabalhando com preços na biblioteca DoEasy (Parte 61): coleção de séries de ticks para símbolos

Visto que diferentes símbolos podem ser usados durante a operação do programa, é necessário criar uma lista própria para cada um deles. Hoje vamos combinar essas listas numa coleção de dados de ticks. Na verdade, irá tratar-se de uma lista normal baseada numa classe de array dinâmico de ponteiros para instâncias da classe CObject e seus herdeiros da Biblioteca Padrão.
Trabalhando com preços na biblioteca DoEasy (Parte 60): lista-série de dados de dados de tick do símbolo
Trabalhando com preços na biblioteca DoEasy (Parte 60): lista-série de dados de dados de tick do símbolo

Trabalhando com preços na biblioteca DoEasy (Parte 60): lista-série de dados de dados de tick do símbolo

Neste artigo, criaremos uma lista para armazenar dados de tick de um símbolo e verificaremos tal criação e respectiva recepção de dados a partir dela no EA. Essas listas de dados de tick - separadamente para cada símbolo usado - formarão uma coleção de dados de tick.
O mercado e a física de seus padrões globais
O mercado e a física de seus padrões globais

O mercado e a física de seus padrões globais

Neste artigo, eu tentarei testar a suposição de que qualquer sistema, mesmo com uma pequena compreensão do mercado, pode operar em escala global. Eu não inventarei nenhuma teoria ou padrão, mas apenas usarei de fatos conhecidos, traduzindo gradualmente esses fatos para a linguagem da análise matemática.
preview
Redes Neurais de Maneira Fácil (Parte 8): Mecanismos de Atenção

Redes Neurais de Maneira Fácil (Parte 8): Mecanismos de Atenção

Nos artigos anteriores, nós já testamos várias opções para organizar as redes neurais. Nós também estudamos as redes convolucionais emprestadas dos algoritmos de processamento de imagem. Neste artigo, eu sugiro estudarmos os Mecanismos de Atenção, cujo surgimento deu impulso ao desenvolvimento dos modelos de linguagem.
preview
WebSocket para MetaTrader 5

WebSocket para MetaTrader 5

Antes do aparecimento das funções de rede na API MQL5 atualizada, os aplicativos MetaTrader eram limitados em sua capacidade de se conectar e interagir com serviços baseados no protocolo WebSocket. Agora a situação mudou. Neste artigo, veremos a implementação da biblioteca WebSocket em MQL5 puro. Uma breve descrição do protocolo WebSocket e um guia passo a passo sobre como usar a biblioteca resultante serão apresentados.
preview
Algoritmo de aprendizado de máquina CatBoost da Yandex sem conhecimento prévio de Python ou R

Algoritmo de aprendizado de máquina CatBoost da Yandex sem conhecimento prévio de Python ou R

O artigo fornece o código e a descrição das principais etapas do processo de aprendizado de máquina usando um exemplo específico. Para obter o modelo, você não precisa de conhecimento prévio em Python ou R. Além disso, um conhecimento básico de MQL5 já é suficiente — este é exatamente o meu nível. Portanto, eu espero que o artigo sirva como um bom tutorial para um público amplo, auxiliando os interessados em avaliar os recursos de aprendizado de máquina e implementá-lo em seus programas.
preview
Trabalhando com séries temporais na biblioteca DoEasy (Parte 57): objeto de dados do buffer do indicador

Trabalhando com séries temporais na biblioteca DoEasy (Parte 57): objeto de dados do buffer do indicador

Neste artigo, veremos um objeto que conterá todos os dados de um buffer de um indicador. Tais objetos serão necessários para armazenar dados seriais de buffers de indicadores, e com a ajuda dos quais será possível classificar e comparar dados de buffers de quaisquer indicadores e outros dados semelhantes entre si.
preview
Trabalhando com séries temporais na biblioteca DoEasy (Parte 56): objeto de indicador personalizado, obtenção de dados a partir de objetos-indicadores numa coleção

Trabalhando com séries temporais na biblioteca DoEasy (Parte 56): objeto de indicador personalizado, obtenção de dados a partir de objetos-indicadores numa coleção

Neste artigo, veremos a criação de um objeto de indicador personalizado para ser usado em Expert Advisors. Vamos modificar ligeiramente as classes da biblioteca e escrever métodos para receber dados desde objetos-indicadores em Expert Advisors.
Abordagem ideal para desenvolver e analisar sistemas de negociação
Abordagem ideal para desenvolver e analisar sistemas de negociação

Abordagem ideal para desenvolver e analisar sistemas de negociação

Neste artigo, além de tentar apresentar que critérios usar ao escolher um sistema ou sinal para investir seu dinheiro, aventurar-me-ei a mostrar qual é a melhor abordagem para desenvolver sistemas de negociação, e explicar por que isso é tão importante ao operar moedas.
preview
Redes Neurais de Maneira Fácil(Parte 7): Métodos de otimização adaptativos

Redes Neurais de Maneira Fácil(Parte 7): Métodos de otimização adaptativos

Nos artigos anteriores, nós usamos o gradiente descendente estocástico para treinar uma rede neural usando a mesma taxa de aprendizado para todos os neurônios da rede. Neste artigo, eu proponho olhar para os métodos de aprendizagem adaptativos que permitem a mudança da taxa de aprendizagem para cada neurônio. Nós também consideraremos os prós e os contras dessa abordagem.
preview
Redes neurais de Maneira Fácil (Parte 6): Experimentos com a taxa de aprendizado da rede neural

Redes neurais de Maneira Fácil (Parte 6): Experimentos com a taxa de aprendizado da rede neural

Anteriormente, nós consideramos vários tipos de redes neurais junto com suas implementações. Em todos os casos, as redes neurais foram treinadas usando o método gradiente descendente, para o qual nós precisamos escolher uma taxa de aprendizado. Neste artigo, eu quero mostrar a importância de uma taxa corretamente selecionada e o seu impacto no treinamento da rede neural, usando exemplos.
preview
Conjunto de ferramentas para marcação manual de gráficos e negociação (Parte II). Fazendo a marcação

Conjunto de ferramentas para marcação manual de gráficos e negociação (Parte II). Fazendo a marcação

Este artigo é uma continuação do ciclo em que mostro como criar uma biblioteca conveniente para mim, a fim de desenhar o layout de gráficos manualmente com ajuda de atalhos de teclado. A marcação é feita com linhas retas e suas combinações. Nesta parte, vou falar diretamente sobre o desenho em si usando as funções descritas na primeira parte. A biblioteca pode ser anexada a qualquer Expert Advisor ou indicador, facilitando muito suas tarefas de layout. Esta solução NÃO USA dlls externas, todos os comandos são implementados usando ferramentas MQL integradas.
preview
Redes Neurais de Maneira Fácil (Parte 5): Cálculos em Paralelo com o OpenCL

Redes Neurais de Maneira Fácil (Parte 5): Cálculos em Paralelo com o OpenCL

Discutimos anteriormente alguns tipos de implementações da rede neural. Nas redes consideradas, as mesmas operações são repetidas para cada neurônio. Uma etapa lógica adicional é utilizar os recursos da computação multithread (paralelismo em nível de threads) fornecidos pela tecnologia moderna em um esforço para acelerar o processo de aprendizagem da rede neural. Uma das possíveis implementações é descrita neste artigo.
preview
Redes Neurais de Maneira Fácil(Parte 4): Redes Recorrentes

Redes Neurais de Maneira Fácil(Parte 4): Redes Recorrentes

Nós continuamos estudando o mundo das redes neurais. Neste artigo, nós analisaremos outro tipo de rede neural, as redes recorrentes. Este tipo de rede foi proposto para uso com as séries temporais, que são representadas na plataforma de negociação MetaTrader 5 por meio do gráfico de preços.
preview
Trabalhando com séries temporais na biblioteca DoEasy (Parte 54): classes herdeiras do indicador base abstrato

Trabalhando com séries temporais na biblioteca DoEasy (Parte 54): classes herdeiras do indicador base abstrato

Neste artigo, analisaremos a criação de classes de objetos herdeiros do indicador base abstrato. Esses objetos nos darão acesso à capacidade de criar EAs de indicador, coletar e receber estatísticas sobre valores de dados de diferentes indicadores e preços. Também criaremos uma coleção de objetos-indicadores a partir da qual será possível acessar as propriedades e dados de cada indicador criado no programa.
preview
Otimização Walk Forward contínua (Parte 8): Melhorias e correções do programa

Otimização Walk Forward contínua (Parte 8): Melhorias e correções do programa

O programa foi modificado com base nos comentários e solicitações dos usuários e leitores desta série de artigos. Este artigo contém uma nova versão do otimizador automático. Esta versão implementa os recursos solicitados e fornece outras melhorias, que eu descobri ao trabalhar com o programa.
Sistema de notificações de voz de eventos e sinais de negociação
Sistema de notificações de voz de eventos e sinais de negociação

Sistema de notificações de voz de eventos e sinais de negociação

Hoje em dia, os assistentes de voz ocupam um papel proeminente na vida humana, seja um navegador, um mecanismo de busca por voz ou um tradutor. Por isso, neste artigo, tentarei desenvolver um sistema simples e compreensível de notificações de voz para diferentes eventos, condições de mercado ou sinais de sistemas de negociação.
Como escrever um cliente nativo Twitter para MetaTrader 4 e MetaTrader 5 sem usar DLL
Como escrever um cliente nativo Twitter para MetaTrader 4 e MetaTrader 5 sem usar DLL

Como escrever um cliente nativo Twitter para MetaTrader 4 e MetaTrader 5 sem usar DLL

Quer receber tweets ou postar seus sinais de negociação no Twitter? Você já não precisará procurar soluções, já que nesta série de artigos, veremos como trabalhar com o Twitter sem usar uma DLL. Juntos implementaremos a Tweeter API usando MQL. No primeiro artigo, começaremos com os recursos de autenticação e autorização da Twitter API.
Criando um EA gradador multiplataforma: testando um EA multimoeda
Criando um EA gradador multiplataforma: testando um EA multimoeda

Criando um EA gradador multiplataforma: testando um EA multimoeda

No mês, os mercados caíram mais de 30%. Estamos no momento oportuno para testar Expert Advisors gradadores e martingale. Este artigo é uma continuação da série de artigos "Criando um EA gradador multiplataforma", cuja publicação não tinha sido planejada. Mas, uma vez que o próprio mercado nós dá uma oportunidade para fazer um teste de estresse do EA gradador, é bom aproveitá-la. Então, vamos direto ao assunto.
preview
Otimização Walk Forward Contínua (Parte 4): Gerenciamento de Otimização (Otimizador Automático)

Otimização Walk Forward Contínua (Parte 4): Gerenciamento de Otimização (Otimizador Automático)

O principal objetivo do artigo é descrever o mecanismo de trabalho com nosso aplicativo e seus recursos. Assim, o artigo pode ser tratado como instruções sobre como utilizar o aplicativo. Ele cobre todas as possíveis dificuldades e detalhes do uso do aplicativo.
Os projetos permitem que criar robôs de negociação lucrativos!  Mas não é exatamente isso
Os projetos permitem que criar robôs de negociação lucrativos!  Mas não é exatamente isso

Os projetos permitem que criar robôs de negociação lucrativos! Mas não é exatamente isso

Um programa grande começa com um arquivo pequeno que, por sua vez, gradualmente se torna maior, sendo preenchido com conjuntos de funções e objetos. A maioria dos desenvolvedores de robôs lida com esse problema por meio de arquivos de inclusão. Mas, o melhor é começar imediatamente a escrever os programas de negociação em projetos, pois isso é benéfico em todos os aspectos.
preview
Como criar gráficos 3D usando o DirectX no MetaTrader 5

Como criar gráficos 3D usando o DirectX no MetaTrader 5

Os gráficos 3D fornecem excelentes meios para analisar grandes quantidades de dados, pois permitem a visualização de padrões ocultos. Essas tarefas podem ser resolvidas diretamente em MQL5, enquanto as funções do DireсtX permitem a criação de objetos tridimensionais. Assim, é ainda possível criar programas de qualquer complexidade, até jogos 3D para a MetaTrader 5. Comece a aprender gráficos 3D desenhando formas tridimensionais simples.
Guia Prático do MQL5: Teste de estresse de uma estratégia de negociação utilizando os símbolos personalizados
Guia Prático do MQL5: Teste de estresse de uma estratégia de negociação utilizando os símbolos personalizados

Guia Prático do MQL5: Teste de estresse de uma estratégia de negociação utilizando os símbolos personalizados

O artigo considera uma abordagem para o teste de estresse de uma estratégia de negociação usando os símbolos personalizados. Uma classe de símbolo personalizada é criada para essa finalidade. Esta classe é utilizada para receber os dados de ticks de fontes de terceiros, bem como realizar alterações das propriedades do símbolo. Com base nos resultados do trabalho realizado, nós consideraremos várias opções para alterar as condições de negociação, sob as quais uma estratégia de negociação está sendo testada.
Gerenciando otimizações (Parte 2): Cirando a lógica do aplicativo e objetos chave
Gerenciando otimizações (Parte 2): Cirando a lógica do aplicativo e objetos chave

Gerenciando otimizações (Parte 2): Cirando a lógica do aplicativo e objetos chave

Este artigo é uma continuação da publicação anterior sobre a criação de uma interface gráfica para gerenciar otimizações. Nele, abordaremos a lógica do robô para o complemento a ser criado. Criaremos um wrapper que permitirá iniciar o terminal MetaTrader 5 como um processo gerenciado através do C#. Também consideraremos o trabalho com arquivos de configuração. Dividiremos a lógica do programa em duas partes, a primeira descreverá os métodos chamados após pressionar uma tecla específica e a segunda, a parte da inicialização e do gerenciamento de otimizações.
Gerenciando otimizações (Parte I): Criando uma interface gráfica do usuário
Gerenciando otimizações (Parte I): Criando uma interface gráfica do usuário

Gerenciando otimizações (Parte I): Criando uma interface gráfica do usuário

Este artigo descreve um processo para criar uma extensão projetada para o terminal MetaTrader. Essa solução ajuda a automatizar o processo de otimização através de sua execução em outros terminais. Outros artigos serão escritos com base neste artigo para desenvolver este tópico. A extensão será escrita usando linguagem C# e modelos de programação, o que, além do objetivo principal deste artigo, mostrará não apenas a capacidade do terminal de expandir os recursos originalmente criados através da escrita de templates próprios, mas também como criar facilmente gráficos personalizados numa linguagem com os recursos mais convenientes para isso.
Métodos para medir a velocidade do movimento de preços
Métodos para medir a velocidade do movimento de preços

Métodos para medir a velocidade do movimento de preços

Existem diferentes abordagens para estudar e analisar o mercado, mas, há dois principais, nomeadamente a técnica e a fundamental. No primeiro caso, acontece a coleta, o processamento e o estudo de quaisquer dados numéricos e de características relacionadas ao mercado: preços, volumes e assim por diante. No segundo caso, acorre a análise de eventos e de notícias que, por sua vez, afetam direta ou indiretamente os mercados. O artigo discute métodos para medir a velocidade do movimento de preços e o estudo de estratégias de negociação com base neles.
Criando interfaces gráficas para EAs e indicadores baseados no .Net Framework e C#
Criando interfaces gráficas para EAs e indicadores baseados no .Net Framework e C#

Criando interfaces gráficas para EAs e indicadores baseados no .Net Framework e C#

Uma maneira simples e rápida de criar janelas gráficas usando o editor do Visual Studio, e integração no código MQL do EA. O artigo é destinado para um vasto público de leitores e não requer conhecimentos de C# e .Net.
Aplicando o método de Monte Carlo no aprendizado por reforço
Aplicando o método de Monte Carlo no aprendizado por reforço

Aplicando o método de Monte Carlo no aprendizado por reforço

O uso de aprendizado por reforço para desenvolver EAs de autoaprendizagem. No artigo anterior, vimos o algoritmo Random Decision Forest e escrevemos um EA simples de autoaprendizagem baseado no aprendizado por reforço. Observamos que a principal vantagem desta abordagem era a fácil escrita do algoritmo de negociação e a alta velocidade de aprendizagem. O aprendizado por reforço (doravante simplesmente AR) é facilmente incorporado a qualquer EA e acelera sua otimização.
Padrões de reversão: Testando o padrão 'Ombro-Cabeça-Ombro'
Padrões de reversão: Testando o padrão 'Ombro-Cabeça-Ombro'

Padrões de reversão: Testando o padrão 'Ombro-Cabeça-Ombro'

Este artigo é uma continuação do artigo "Padrões de reversão: Testando o padrão 'topo/fundo duplo'" publicado anteriormente. Agora consideraremos o padrão de reversão O-C-O, o bem conhecido Ombro-Cabeça-Ombro, compararemos o desemprenho de dois padrões e, por último, tentaremos combinar o trading de dois padrões num só sistema de negociação.