Artigos com exemplos de como programar na linguagem MQL5

icon

Inúmeros artigos com exemplos sobre como criar indicadores e robôs de negociação para a plataforma MetaTrader na linguagem MQL5 esperam por você. Cada artigo é acompanhado de códigos-fonte, que você pode abrir no MetaEditor e executar por conta própria.

Esses artigos serão úteis tanto para quem está se iniciando na negociação automatizada, bem como traders capacitados com experiência em programação e negociação. Aqui você encontrará não apenas exemplos, mas também novas ideias.

Novo artigo
recentes | melhores
Guia Prático MQL5 - Expert Advisor Multi-Moeda e Trabalhando com ordens pendentes em MQL5
Guia Prático MQL5 - Expert Advisor Multi-Moeda e Trabalhando com ordens pendentes em MQL5

Guia Prático MQL5 - Expert Advisor Multi-Moeda e Trabalhando com ordens pendentes em MQL5

Desta vez, vamos criar um Expert Advisor multi-moeda com um algoritmo de negociação baseado no envio de ordens pendentes do tipo Buy Stop e Sell Stop. Neste artigo veremos os seguintes tópicos: a negociação em um intervalo de tempo especificado, colocar/modificar/remover as ordens pendentes, verificar se a última posição foi fechada no Take Profit ou no Stop Loss e controlar o histórico de transações para cada símbolo.
Usando OpenCL para testar padrões de candles
Usando OpenCL para testar padrões de candles

Usando OpenCL para testar padrões de candles

Neste artigo, estudaremos um algoritmo para criar um testador de modelos de candles, em linguagem OpenCL, no modo "OHLC em M1". Além disso, compararemos sua velocidade com a do testador de estratégia embutido, no modo de otimização rápida e lenta.
O poder do ZigZag (parte II). Exemplos de recebimento, processamento e exibição de dados
O poder do ZigZag (parte II). Exemplos de recebimento, processamento e exibição de dados

O poder do ZigZag (parte II). Exemplos de recebimento, processamento e exibição de dados

Na primeira parte do artigo, eu descrevi um indicador ZigZag modificado e uma classe para receber os dados desses tipos de indicadores. Aqui, eu mostrarei como desenvolver indicadores baseados nessas ferramentas e escrever um EA para testes que apresentem operações de acordo com os sinais formados pelo indicador ZigZag. Como complemento, o artigo apresentará uma nova versão da biblioteca EasyAndFast para o desenvolvimento de interfaces gráficas do usuário.
Estratégia de negociação "Momentum Pinball"
Estratégia de negociação "Momentum Pinball"

Estratégia de negociação "Momentum Pinball"

Neste artigo, continuamos a falar sobre a programação das estratégias de negociação descritas no livro de L. Raschke e L. Connors "Street Smarts: High Probability Short-Term Trading Strategies, devoted to testing of range limits by price". Desta vez, estudamos o sistema "Momentum Pinball": é descrita a criação de dois indicadores, um robô de negociação e um bloco de sinal com base nele.
Receitas MQL5 - sinais de negociação de pivô
Receitas MQL5 - sinais de negociação de pivô

Receitas MQL5 - sinais de negociação de pivô

No artigo, é apresentado o processo de desenvolvimento e implementação de uma classe-robô de sinais com base em pivôs, isto é, níveis de reversão. Com base nesta classe é construída uma estratégia usando a Biblioteca padrão. São consideradas as possibilidades de desenvolver uma estratégia de pivôs adicionando filtros.
Usando Layouts e Containers para Controles de GUI: A Classe CBox
Usando Layouts e Containers para Controles de GUI: A Classe CBox

Usando Layouts e Containers para Controles de GUI: A Classe CBox

Este artigo apresenta um método alternativo de criação de GUI (Interface Gráfica do Usuário) baseado em layouts e containers, usando um gerenciador de layout - a classe CBox. A classe CBox é um controle auxiliar que atua como um container para controles essenciais em um painel de GUI. Ele pode gerar o design gráfico dos painéis facilmente, e, em alguns casos, reduzir o tempo de codificação.
Interação entre o MetaTrader 5 e MATLAB
Interação entre o MetaTrader 5 e MATLAB

Interação entre o MetaTrader 5 e MATLAB

Este artigo cobre os detalhes da interação entre o MetaTrader 5 e o pacote matemático MatLab. Ele mostra o mecanismo da conversão de dados, o processo de desenvolvimento de uma biblioteca universal para interagir com o desktop MatLab. Ele também cobre o uso do DLL gerado pelo ambiente MatLab. Este artigo é destinado a leitores experientes que conhecem C++ e MQL5.
Criando um indicador com opções de controle gráfico
Criando um indicador com opções de controle gráfico

Criando um indicador com opções de controle gráfico

Aqueles que são familiares com os sentimentos do mercado, conhecem o indicador MACD (seu nome completo é convergência/divergência de média móvel) - a poderosa ferramenta para analisar o movimento de preço, usada por negociantes desde os primeiros momentos do aparecimento dos métodos de análise computacionais. Neste artigo, consideraremos possíveis modificações do MACD e o implementaremos no indicador com a possibilidade de mudar graficamente entre as modificações.
Teoria dos indicadores adaptativosavançados e sua implementação em MQL5
Teoria dos indicadores adaptativosavançados e sua implementação em MQL5

Teoria dos indicadores adaptativosavançados e sua implementação em MQL5

Este artigo descreverá indicadores adaptativos avançados e suas implementações no MQL5: ciclo cibernético adaptativo, centro adaptativo de gravidade e RVI adaptativo. Todos os indicadores foram originalmente apresentados em "Cybernetic Analysis for Stocks and Futures" por John F. Ehlers.
Expert Advisor Universal: Modos de Negociação das Estratégias (Parte 1)
Expert Advisor Universal: Modos de Negociação das Estratégias (Parte 1)

Expert Advisor Universal: Modos de Negociação das Estratégias (Parte 1)

Qualquer desenvolvedor de Expert Advisor, independentemente de suas habilidades de programação, diariamente é confrontado com as mesmas tarefas de negociação e problemas algorítmicos, que devem ser resolvidos para organizar um processo de negociação confiável. O artigo descreve as possibilidades do motor de negociação CStrategy que possibilita a solução destas tarefas e fornece ao usuário um mecanismo eficaz para descrever uma idéia de negociação personalizada.
preview
Aplicação prática de redes neurais no trading. Embarquemos na prática

Aplicação prática de redes neurais no trading. Embarquemos na prática

Este artigo apresenta uma descrição e instruções para o uso prático de módulos de redes neurais (MRN) na plataforma Matlab. Também aborda os principais aspectos para construção de um sistema de negociação usando o MRN. Para realizar uma apresentação concisa deste artigo, tive que modernizá-lo um pouco de forma a combinar várias funções da MRN num programa.
Desenhando Medidores com Mostrador usando a classe CCanvas
Desenhando Medidores com Mostrador usando a classe CCanvas

Desenhando Medidores com Mostrador usando a classe CCanvas

Podemos encontrar medidores com mostrador em carros e aviões, na produção industrial e na vida cotidiana. Eles são utilizados em todos os domínios que requerem uma resposta rápida a um comportamento de valor controlado. Este artigo descreve a biblioteca de medidores com mostrador para o MetaTrader 5.
Indicador Rope por Erik Naymanf
Indicador Rope por Erik Naymanf

Indicador Rope por Erik Naymanf

O artigo revela como o indicador "Rope" foi criado com base na "The Small Encyclopedia of Trader" (Pequena Enciclopédia do Trader), por Erik L. Nayman. Este indicador mostra a direção da tendência, usando cálculos dos valores das tendências de alta e de baixa durante um período de tempo determinado. O artigo também conta com os princípios do desenvolvimento e cálculos do indicador, bem como exemplos do código. Outros temas abordados incluem o desenvolvimento de um Expert Advisor com base no indicador, e também, a otimização dos parâmetros externos.
Guia prático do MQL5: Analisando propriedades de posição no testador de estratégias do MetaTrader 5
Guia prático do MQL5: Analisando propriedades de posição no testador de estratégias do MetaTrader 5

Guia prático do MQL5: Analisando propriedades de posição no testador de estratégias do MetaTrader 5

Apresentaremos uma versão modificada do Expert Advisor a partir fo artigo anterior "Guia prático do MQL5: Propriedades de posição no painel de informações personalizado". Alguns dos assuntos que abordaremos incluem a obtenção de dados das barras, verificação de eventos de uma nova barra no símbolo atual, inclusão de uma classe de negociação da Biblioteca padrão a um arquivo, criação de uma função para buscar por sinais de negociação e uma função para execução das operações de negócio, assim como determinar os eventos de negócio na função OnTrade().
Usando planilhas para construir estratégias de negociação
Usando planilhas para construir estratégias de negociação

Usando planilhas para construir estratégias de negociação

O artigo descreve os princípios básicos e abordagens que permitem analisar qualquer estratégia usando planilhas - Excel, Calc, Google. Os resultados também são comparados com os do testador do MetaTrader 5.
Métodos de controle remoto de EAs
Métodos de controle remoto de EAs

Métodos de controle remoto de EAs

A principal vantagem dos robôs de negociação é o fato de poderem trabalhar 24 horas por dia em servidores VPS remotos. Ás vezes, é necessário intervir em seu trabalho manualmente, porém, pode não haver acesso direto ao servidor. Será que é possível gerenciar o trabalho de EAs remotamente? Esse artigo propõe uma das maneiras para controlar robôs por meio de comandos externos.
Criação e publicação de relatórios de negócios e notificação SMS
Criação e publicação de relatórios de negócios e notificação SMS

Criação e publicação de relatórios de negócios e notificação SMS

Os negociantes nem sempre têm a habilidade e desejam ficar sentados na frente do terminal de negócio por horas. Especialmente se o sistema de negócio for mais ou menos formalizado e puder automaticamente identificar alguns dos estados do mercado. Este artigo descreve como gerar um relatório de resultados de negócios (utilizando o Consultor Especialista, o indicador ou o script) como um arquivo HTML e carregá-lo por FTP para o servidor WWW. Também levaremos em consideração o envio de notificações de eventos de negócios por SMS para o celular.
Gráficos Off-line no Novo MQL4
Gráficos Off-line no Novo MQL4

Gráficos Off-line no Novo MQL4

A atualização MQL4 tem um novo formato para armazenar dados históricos e fornecer a estrutura MqlRates apropriada para o armazenamento conveniente dos valores Time, Open, Low, High, Close e Volume. Por muitos anos, os traders têm desenvolvido seus aplicativos MQL4 que coletam e armazenam seus dados em arquivos HST para gerar gráficos off-line e nós garantimos que todos os arquivos compilados anteriormente (EX4) irão trabalhar no novo terminal MetaTrader 4 da mesma forma que antes.
Criar um quadro de informação utilizando classes de biblioteca padrão e o Google Chart API
Criar um quadro de informação utilizando classes de biblioteca padrão e o Google Chart API

Criar um quadro de informação utilizando classes de biblioteca padrão e o Google Chart API

A linguagem de programação MQL5 foca principalmente na criação dos sistemas de negociação automatizada e instrumentos complexos da análise técnica. Mas, fora isso, ela permite criar sistemas de informação interessantes para rastrear situações de mercado e fornece uma conexão de retorno com o negociante. O artigo descreve os componentes da Biblioteca Padrão MQL5, e mostra exemplos de seu uso na prática para alcançar estes objetivos. Ela também demonstra um exemplo para utilizar o Google Chart API para criação de gráficos.
preview
Perceptron Multicamadas e o Algoritmo Backpropagation

Perceptron Multicamadas e o Algoritmo Backpropagation

Recentemente, ao aumentar a popularidade desses métodos, tantas bibliotecas foram desenvolvidas em Matlab, R, Python, C++, e etc, que recebem o conjunto de treinamento como entrada e constroem automaticamente uma Rede Neural apropriada para o suposto problema. Vamos entender como funciona um tipo básico de Rede Neural, (Perceptron de um único neurônio e Perceptron Multicamadas), e um fascinante algoritmo responsável pelo aprendizado da rede, (Gradiente descendente e o Backpropagation). Tais modelos de rede serviram de base para os modelos mais complexos existentes hoje.
preview
Otimização Walk Forward Contínua (Parte 7): Vinculação da parte lógica do Otimizador Automático com a parte gráfica e o controle do mesmo no programa

Otimização Walk Forward Contínua (Parte 7): Vinculação da parte lógica do Otimizador Automático com a parte gráfica e o controle do mesmo no programa

Este artigo descreve a vinculação da parte gráfica do programa do otimizador automático com a sua parte lógica. Ele considera o processo de inicialização da otimização, pelo clique de um botão até o redirecionamento da tarefa ao gerenciador de otimização.
Aprimorando o Testador de Estratégia para Otimizar Indicadores Exclusivamente nos Exemplos dos Mercados Lateral e de Tendência
Aprimorando o Testador de Estratégia para Otimizar Indicadores Exclusivamente nos Exemplos dos Mercados Lateral e de Tendência

Aprimorando o Testador de Estratégia para Otimizar Indicadores Exclusivamente nos Exemplos dos Mercados Lateral e de Tendência

É essencial detectar se um mercado é lateral ou se o mesmo não está para muitas estratégias. Usando o conhecido ADX, demonstraremos como podemos usar o Testador de Estratégia, tanto para otimizar esse indicador quanto ao nosso objetivo específico, como também podemos decidir se este indicador irá satisfazer as nossas necessidades quanto a variação média dos mercados lateral e de tendência, que são muito importantes para determinar os stops e os alvos dos mercados.
Guia prático do MQL5: Controles da sub-janela indicadora - barra de rolagem
Guia prático do MQL5: Controles da sub-janela indicadora - barra de rolagem

Guia prático do MQL5: Controles da sub-janela indicadora - barra de rolagem

Vamos continuar a explorar vários controles e desta vez a nossa atenção é para a barra de rolagem. Assim como no artigo anterior intitulado"Guia prático do MQL5: Os controles da sub-janela indicadora - botões", todas as operações serão realizadas na sub-janela indicadora. Tome um tempo para ler o artigo acima mencionado, uma vez que ele fornece uma descrição detalhada do trabalho com eventos na função OnChartEvent(), enquanto este ponto somente será casualmente abordado neste artigo. Para fins ilustrativos, desta vez vamos criar uma barra de rolagem vertical para uma grande lista de todas as propriedades de instrumentos financeiros que possam ser obtidas usando recursos do MQL5.
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XVIII): interatividade de objetos-conta e de outros objetos da biblioteca
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XVIII): interatividade de objetos-conta e de outros objetos da biblioteca

Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XVIII): interatividade de objetos-conta e de outros objetos da biblioteca

Neste artigo, veremos o funcionamento do objeto-conta no novo objeto base de todos os objetos da biblioteca, o aprimoramento do objeto base CBaseObj, o teste da configuração de parâmetros monitorados, bem como a obtenção de eventos para qualquer objeto da biblioteca.
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIX): ordens de negociação pendentes, classes de objetos-ordens
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIX): ordens de negociação pendentes, classes de objetos-ordens

Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIX): ordens de negociação pendentes, classes de objetos-ordens

Em artigos anteriores, verificamos a ideia de ordens de negociação pendentes. Uma ordem pendente é, em essência, uma ordem de negociação, mas, executada com base numa determinada condição. Hoje, criaremos classes completas de objetos-ordens pendentes, isto é, geraremos um objeto-ordem base com seus descendentes.
preview
Indicadores múltiplos em um gráfico (Parte 01): Entendendo os conceitos

Indicadores múltiplos em um gráfico (Parte 01): Entendendo os conceitos

Entenda como é possível adicionar vários indicadores ao mesmo tempo sem ocupar muda área do seu gráfico. Muita gente gosta e se sente mais segura operando quando observa diversos indicadores ao mesmo tempo, por exemplo RSI, ESTOCÁSTICO, MACD, ADX entre outros, e em alguns casos até mesmo ativos distintos que compõem um determinado índice.
Como copiar sinais pelas suas regras usando um EA ?
Como copiar sinais pelas suas regras usando um EA ?

Como copiar sinais pelas suas regras usando um EA ?

Ao assinar um sinal, a seguinte situação pode ocorrer: sua conta de negociação tem uma alavancagem de 1:100, o provedor tem uma alavancagem de 1:500 e as negociações usam um lote mínimo, seus saldos são praticamente iguais - porém o coeficiente de cópia irá abranger somente de 10% a 15%. Este artigo descreve como aumentar a taxa de cópia em tais casos.
preview
Redes neurais de maneira fácil (Parte 2): Treinamento e teste da rede

Redes neurais de maneira fácil (Parte 2): Treinamento e teste da rede

Neste segundo artigo, nós continuaremos a estudar as redes neurais e nós vamos considerar um exemplo utilizando a nossa classe criada CNet nos Expert Advisors. Nós trabalharemos com dois modelos de rede neural, que apresentam resultados semelhantes tanto em termos de tempo de treinamento quanto de precisão de predição.
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.
Princípios de Programação em MQL5: Variáveis Globais do Terminal
Princípios de Programação em MQL5: Variáveis Globais do Terminal

Princípios de Programação em MQL5: Variáveis Globais do Terminal

Este artigo destaca as capacidades orientada a objeto da linguagem MQL5 em criar objetos que facilitam o trabalho com as variáveis ​​globais do terminal. Como exemplo prático eu considero um caso em que as variáveis ​​globais são usados ​​como pontos de controle para a implementação das fases de um programa.
Expert Advisor multiplataforma: Sinais
Expert Advisor multiplataforma: Sinais

Expert Advisor multiplataforma: Sinais

No artigo, são discutidas as classes CSignal e CSignals, que serão usadas em Expert Advisors multiplataforma. Além disso, serão examinadas as diferenças entre MQL4 e MQL5 quanto à organização de dados necessários para avaliar os sinais de negociação obtidos. O resultado será um código compatível com os compiladores das duas versões.
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte III). Coleção de ordens e posições de mercado, busca e ordenação
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte III). Coleção de ordens e posições de mercado, busca e ordenação

Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte III). Coleção de ordens e posições de mercado, busca e ordenação

Na primeira parte, começamos a criar uma grande biblioteca multi-plataforma, simplificando o desenvolvimento de programas para as plataformas MetaTrader 5 e MetaTrader 4. Além disso, nós implementamos a coleção do histórico de ordens e negócios. Nosso próximo passo é criar uma classe para uma seleção conveniente e a ordenação de ordens, negócios e posições nas listas de coleção. Nós vamos implementar o objeto da biblioteca base chamada Engine e adicionar uma coleção de ordens e posições de mercado para a biblioteca.
Trabalhando com séries temporais na biblioteca DoEasy (Parte 35): Objeto "Barra" e lista-série temporal do símbolo
Trabalhando com séries temporais na biblioteca DoEasy (Parte 35): Objeto "Barra" e lista-série temporal do símbolo

Trabalhando com séries temporais na biblioteca DoEasy (Parte 35): Objeto "Barra" e lista-série temporal do símbolo

Neste artigo, estamos lançando uma nova série de descrições de criação de bibliotecas DoEasy para criação simples e rápida de programas. Hoje começaremos a preparar a funcionalidade da biblioteca para acessar e trabalhar com dados de séries temporais de símbolos. Criaremos um objeto "Barra" que armazenará os dados básicos e avançados da barra da série temporal e colocaremos os objetos-barras na lista de séries temporais para facilitar a pesquisa e a classificação desses objetos.
Redes Neurais Profundas (Parte V). Otimização Bayesiana de hiperparâmetros de uma DNN
Redes Neurais Profundas (Parte V). Otimização Bayesiana de hiperparâmetros de uma DNN

Redes Neurais Profundas (Parte V). Otimização Bayesiana de hiperparâmetros de uma DNN

O artigo considera a possibilidade de aplicar a otimização Bayesiana para os hiperparâmetros das redes neurais profundas, obtidas por diversas variantes de treinamento. É realizado a comparação da qualidade de classificação de uma DNN com os hiperparâmetros ótimos em diferentes variantes de treinamento. O nível de eficácia dos hiperparâmetros ótimos da DNN foi verificado nos testes fora da amostra (forward tests). As direções possíveis para melhorar a qualidade da classificação foram determinadas.
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXII): classes de negociação - classe básica de negociação, controle de restrições
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXII): classes de negociação - classe básica de negociação, controle de restrições

Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXII): classes de negociação - classe básica de negociação, controle de restrições

No artigo, começaremos a criar uma classe básica de negociação da biblioteca e dotaremos a primeira versão com uma funcionalidade de verificação de permissões inicial para realizar operações de negociação. Também expandiremos levemente os recursos e o conteúdo da classe básica de negociação.
Três Aspectos Sobre Automação da Negociação Manual. Parte 1: Negociação
Três Aspectos Sobre Automação da Negociação Manual. Parte 1: Negociação

Três Aspectos Sobre Automação da Negociação Manual. Parte 1: Negociação

Este artigo é o primeiro de uma série de artigos sobre automação da negociação manual na plataforma МetaТrader 4. Cada artigo será dedicado a um dos seguintes aspectos: automação da negociação manual, atual estado da exibição da automação da negociação e automação dos relatórios sobre os resultados da negociação. Neste artigo, vou apresentar uma abordagem interessante para a criação de EAs controlados manualmente por um trader.
Visualização dos resultados de otimização pelo critério selecionado
Visualização dos resultados de otimização pelo critério selecionado

Visualização dos resultados de otimização pelo critério selecionado

No artigo, continuamos a desenvolver o aplicativo MQL para trabalhar com resultados de otimização que foi iniciado em artigos anteriores. Desta vez, veremos um exemplo em que podemos gerar uma tabela de melhores resultados após a otimização de parâmetros, especificando através da interface gráfica outro critério.
A Implementação de um Modo Multi-currency (múltiplas moedas) no MetaTrader 5
A Implementação de um Modo Multi-currency (múltiplas moedas) no MetaTrader 5

A Implementação de um Modo Multi-currency (múltiplas moedas) no MetaTrader 5

Por um longo tempo a análise de várias moedas e negociação de várias moedas foi de interesse das pessoas. A oportunidade para implementar um regime de várias moedas completo tornou-se possível apenas com o lançamento público do MetaTrader 5 e a linguagem de programação MQL5. Neste artigo, propomos um modo para analisar e processar todos os ticks de entrada para diversos símbolos. Como ilustração, vamos considerar um indicador RSI de várias moedas do índice de dólar USDx.
preview
Explorando as possibilidades de criar gráficos de velas multicoloridas

Explorando as possibilidades de criar gráficos de velas multicoloridas

Neste artigo, veremos as possibilidades de criação de indicadores de velas personalizados, e falaremos sobre suas vantagens e desvantagens.
Trabalhando Com Doubles no MQL4
Trabalhando Com Doubles no MQL4

Trabalhando Com Doubles no MQL4

Neste artigo vamos considerar erros típicos de programação que ocorrem durante o trabalho com números tipo double nos programas MQL4.