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
ZUP- ZigZag Universal com Padrões Pesavento. Parte 2 - Descrição das ferramentas integradas
ZUP- ZigZag Universal com Padrões Pesavento. Parte 2 - Descrição das ferramentas integradas

ZUP- ZigZag Universal com Padrões Pesavento. Parte 2 - Descrição das ferramentas integradas

ZUP- ZigZag Universal com Padrões Pesavento. Parte 2 - Descrição das ferramentas integradas.
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.
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.
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIII): classe básica de negociação, controle de parâmetros válidos
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIII): classe básica de negociação, controle de parâmetros válidos

Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIII): classe básica de negociação, controle de parâmetros válidos

Neste artigo, continuaremos a acompanhar o desenvolvimento da classe de negociação, criaremos um controle que encontre valores incorretos nos parâmetros da ordem de negociação e sonorizaremos eventos de negociação.
Implementado OLAP na negociação (Parte 1): Noções básicas da análise de dados multidimensionais
Implementado OLAP na negociação (Parte 1): Noções básicas da análise de dados multidimensionais

Implementado OLAP na negociação (Parte 1): Noções básicas da análise de dados multidimensionais

O artigo descreve os princípios gerais de como construir uma estrutura para analisar dados multidimensionais (OLAP) rapidamente, além disso, apresenta como implementá-la em MQL e como usá-la no ambiente MetaTrader usando um exemplo que mostra o processamento do histórico de uma conta de negociação.
Por que é importante Atualizar o MetaTrader 4 na Versão Mais Recente?
Por que é importante Atualizar o MetaTrader 4 na Versão Mais Recente?

Por que é importante Atualizar o MetaTrader 4 na Versão Mais Recente?

A partir de 01 de agosto de 2014, os terminais MetaTrader 4 de computadores anteriores a Versão 600 não têm mais suporte. No entanto, muitos traders ainda trabalham com versões desatualizadas e não têm conhecimento das características da atualização da plataforma. Tivemos de fazer um grande esforço para este desenvolvimento, queremos seguir em frente com os traders e abandonarmos em definitivo as versões mais antigas. Neste artigo, iremos descrever as vantagens do novo terminal MetaTrader 4.
Trabalhando com séries temporais na biblioteca DoEasy (Parte 38): coleção de séries temporais - atualização em tempo real e acesso aos dados do programa
Trabalhando com séries temporais na biblioteca DoEasy (Parte 38): coleção de séries temporais - atualização em tempo real e acesso aos dados do programa

Trabalhando com séries temporais na biblioteca DoEasy (Parte 38): coleção de séries temporais - atualização em tempo real e acesso aos dados do programa

No artigo, consideraremos a atualização em tempo real dos dados das séries temporais, bem como o envio de mensagens sobre o evento "Nova Barra" para o gráfico do programa de controle, a partir de todas as séries temporais de todos os símbolos, a fim de processar estes eventos nos programa. Para determinar se necessário atualizar séries temporais para símbolos e períodos inativos, usaremos a classe "Novo tick".
Reversão: reduzindo o rebaixamento máximo e testando outros mercados
Reversão: reduzindo o rebaixamento máximo e testando outros mercados

Reversão: reduzindo o rebaixamento máximo e testando outros mercados

Nesse artigo, continuaremos falando sobre reversão; tentaremos reduzir o rebaixamento máximo para um nível aceitável em instrumentos já discutidos; verificaremos, enquanto isso, quão afectado fica o lucro obtido. Adicionalmente, checaremos como funciona a reversão em outros mercados, como o de ações, commodities, índices e ETF, agrário. Atenção, esse artigo tem muitas imagens.
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.
Crie seu próprio Market Watch usando as classes da biblioteca padrão
Crie seu próprio Market Watch usando as classes da biblioteca padrão

Crie seu próprio Market Watch usando as classes da biblioteca padrão

O novo terminal do cliente do MetaTrader 5 e a linguagem MQL5 fornece novas oportunidades para apresentar informações visuais para o negociante. Neste artigo, propomos um conjunto de classes extensível e universal, que lida com todo o trabalho de organização de exibição da informação de texto arbitrária no gráfico. é apresentado o exemplo do indicador Maket Watch.
Previsão de séries temporais utilizando suavização exponencial (continuação)
Previsão de séries temporais utilizando suavização exponencial (continuação)

Previsão de séries temporais utilizando suavização exponencial (continuação)

Este artigo busca atualizar o indicador criado anteriormente e lida brevemente com um método para estimar intervalos de confiança de previsão usando auto inicialização e quantis. Como resultado, teremos o indicador de previsão e os scripts a serem usados para estimar a precisão da previsão.
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.
preview
OpenCL: Da programação ingênua até a mais perceptível

OpenCL: Da programação ingênua até a mais perceptível

Este artigo foca em alguns recursos de otimização que se abrem quando pelo menos alguma consideração é dada ao hardware subjacente em que kernel OpenCL é executado. Os valores obtidos estão longe de serem os valores de teto, mas eles mesmos sugerem que tendo os recursos existentes disponíveis aqui e agora (OpenCL API como implementado pelos desenvolvedores do terminal não permite controlar alguns parâmetros importantes para otimização - particularmente, o tamanho do grupo de trabalho), o ganho de desempenho ao longo da execução do programa anfitrião é muito importante.
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XVI): eventos de coleção de símbolos
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XVI): eventos de coleção de símbolos

Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XVI): eventos de coleção de símbolos

No artigo, criaremos uma nova classe base - para todos os objetos da biblioteca - que adicionará funcionalidade de evento a todos os seus herdeiros, bem como uma classe para rastrear eventos de uma coleção de símbolos com base numa classe base nova. Além disso, alteraremos as classes e os eventos de conta para operarem sob a nova funcionalidade do objeto base.
Encontrando erros e registrando
Encontrando erros e registrando

Encontrando erros e registrando

O MetaEditor 5 possui o recurso de depuração Mas, quando você escreve seus programas MQL5, geralmente você deseja exibir não apenas valores individuais, mas todas as mensagens que aparecem durante o trabalho online e teste. Quando o conteúdo do arquivo de registro tem um tamanho grande, é óbvio automatizar a recuperação rápida e fácil da mensagem requerida. Neste artigo consideraremos várias maneiras de encontrar erros em programas do MQL5 e métodos de registro. Além disso, simplificaremos o logging em arquivos e conheceremos um programa simples LogMon para visualizações confortáveis dos registros.
Dicas para o trader: indicadores de saldo, drawdown, carregamento e ticks durante o teste
Dicas para o trader: indicadores de saldo, drawdown, carregamento e ticks durante o teste

Dicas para o trader: indicadores de saldo, drawdown, carregamento e ticks durante o teste

Como tornar o teste mais claro? A resposta é simples: no testador, você precisa usar um ou mais indicadores, a saber: os indicadores de ticks, saldo e eqüidade, drawdown e carga de depósito. Isso permitirá monitorar visualmente quer a natureza dos ticks, quer as alterações de saldo e eqüidade, quer o drawdown e a carga de depósito.
Transferência de um Código Indicador para um Código Expert Advisor. Esquemas da estrutura geral de um Expert Advisor e funções indicadoras
Transferência de um Código Indicador para um Código Expert Advisor. Esquemas da estrutura geral de um Expert Advisor e funções indicadoras

Transferência de um Código Indicador para um Código Expert Advisor. Esquemas da estrutura geral de um Expert Advisor e funções indicadoras

Este artigo trata sobre formas de transferência de um código indicador para um código Expert Advisor e sobre a escrita de Expert Advisors sem convocar indicadores personalizados, e com todo o código do programa para o cálculo dos valores dos indicadores necessários dentro do Expert Advisor. Este artigo fornece um esquema geral de mudança do Expert Advisor e a ideia de construir uma função indicadora baseada em um indicador personalizado. O artigo destina-se para leitores com experiência de programação na linguagem MQL4.
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.
Um exemplo de uma estratégia de negociação baseada na diferença de fuso horário em diferentes continentes
Um exemplo de uma estratégia de negociação baseada na diferença de fuso horário em diferentes continentes

Um exemplo de uma estratégia de negociação baseada na diferença de fuso horário em diferentes continentes

Navegando na internet é fácil encontrar muitas estratégias que darão a você uma série de recomendações. Vamos pegar uma abordagem interna e ver o processo de criação de estratégia, com base nas diferenças de fusos horários em diferentes continentes.
Conjunto de ferramentas para marcação manual de gráficos e negociação (Parte I). Preparação - Descrição da Estrutura e Classe Auxiliar
Conjunto de ferramentas para marcação manual de gráficos e negociação (Parte I). Preparação - Descrição da Estrutura e Classe Auxiliar

Conjunto de ferramentas para marcação manual de gráficos e negociação (Parte I). Preparação - Descrição da Estrutura e Classe Auxiliar

Neste artigo, começaremos a ver um conjunto de ferramentas para marcação gráfica usando atalhos de teclado. É bastante conveniente: clicaremos num botão e aparecerá uma linha de tendência, clicaremos noutro e aparecerá um leque de Fibonacci com os parâmetros desejados. Também poderemos alternar timeframes, mudar a ordem das "camadas" de objetos ou remover todos os objetos do gráfico.
Carteira de Investimentos no MetaTrader 4
Carteira de Investimentos no MetaTrader 4

Carteira de Investimentos no MetaTrader 4

O artigo revela a origem da Carteira de Investimentos e sua aplicação no mercado Forex. São considerados alguns modelos de carteiras de acordo com a matemática simples. O artigo contém exemplos da implementaçao prática da Carteira de Investimentos no MetaTrader 4: indicador de carteiras e um Expert Advisor para negociação semi-automatizada. São descritos tanto os elementos de estratégia de negociação, quanto as suas vantagens e desvantagens.
Interfaces Gráficas X: O controle Caixa de Texto Multilinha (build 8)
Interfaces Gráficas X: O controle Caixa de Texto Multilinha (build 8)

Interfaces Gráficas X: O controle Caixa de Texto Multilinha (build 8)

Neste artigo, nós vamos discutir o controle Caixa de Texto Multilinha. Ao contrário dos objetos gráficos do tipo OBJ_EDIT, a versão apresentada não terá restrições quanto ao número de caracteres de entrada. Ele também adiciona o modo para transformar a caixa de texto em um editor de texto simples, onde o cursor pode ser movido usando o mouse ou as teclas.
Criação de indicadores personalizados usando a classe CCanvas
Criação de indicadores personalizados usando a classe CCanvas

Criação de indicadores personalizados usando a classe CCanvas

O artigo descreve um exemplo de criação de indicadores personalizados usando as primitivas gráficas da classe CCanvas.
ZUP - ZigZag universal com padrões Pesavento. Pesquisa de padrões
ZUP - ZigZag universal com padrões Pesavento. Pesquisa de padrões

ZUP - ZigZag universal com padrões Pesavento. Pesquisa de padrões

A plataforma-indicador do ZUP permite pesquisar padrões populares com parâmetros já definidos. Embora eles estejam definidos, você também pode ajustá-los de acordo com suas necessidades. Há também a possibilidade de criar novos padrões usando a interface gráfica do ZUP e salvar seus parâmetros num arquivo. Depois disso, você pode verificar rapidamente se há novos padrões nos gráficos.
Construindo um negociante de notícias automático
Construindo um negociante de notícias automático

Construindo um negociante de notícias automático

Essa é a continuação do artigo Outra classe orientada a objeto do MQL5, que mostrou a você como construir um CE orientado a objeto simples do inicio e deu a você algumas dicas sobre programação orientada a objeto. Hoje vou mostrar a você o fundamental técnico necessário para desenvolver um EA capaz de negociar as notícias. Meu objetivo é continuar a dar ideias a você sobre OOP e também cobrir um novo tópico nesta série de artigos, trabalhando com o sistema de arquivo.
Aplicação Prática dos Indicadores de Cluster no FOREX
Aplicação Prática dos Indicadores de Cluster no FOREX

Aplicação Prática dos Indicadores de Cluster no FOREX

Indicadores de cluster são conjuntos de indicadores que dividem pares de moedas correntes em moedas distintas. Os indicadores permitem traçar a flutuação da moeda corrente, determinar o potencial de formação de novas tendências de moeda, receber sinais do mercado e seguir posições de médio e longo prazo.
Analisando resultados de negociação usando relatórios HTML
Analisando resultados de negociação usando relatórios HTML

Analisando resultados de negociação usando relatórios HTML

A plataforma MetaTrader 5 apresenta funcionalidade para salvar relatórios de negociação, bem como relatórios de testes e otimização de Expert Advisor. Os relatórios de negociações e testes podem ser salvos em dois formatos: XLSX e HTML, enquanto o relatório de otimização pode ser salvo em XML. Neste artigo, analisamos o relatório de teste HTML, o relatório de otimização XML e o relatório de histórico de negociação HTML.
Scalping combinado: trades do passado ou melhoria do desempenho dos trades futuros
Scalping combinado: trades do passado ou melhoria do desempenho dos trades futuros

Scalping combinado: trades do passado ou melhoria do desempenho dos trades futuros

Agora analisaremos uma descrição da abordagem para aumentar a eficácia de qualquer sistema de negociação automatizado. Este artigo mostra resumidamente a ideia, os fundamentos básicos, as possibilidades e as desvantagens do método.
Usando a função TesterWithdrawal() para Modelar as Retiradas de Lucro
Usando a função TesterWithdrawal() para Modelar as Retiradas de Lucro

Usando a função TesterWithdrawal() para Modelar as Retiradas de Lucro

Este artigo descreve a utilização da função TesterWithDrawal() para estimar riscos nos sistemas de negócio que implicam na remoção de uma determinada parte dos ativos durante sua operação. Além disso, ele descreve o efeito desta função no algoritmo de cálculo do rebaixamento de igualdade no Strategy tester. Esta função é útil quando otimizar parâmetros de seus Expert Advisors.
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte XIII): Eventos do objeto Conta
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte XIII): Eventos do objeto Conta

Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte XIII): Eventos do objeto Conta

O artigo considera trabalhar com os eventos da conta para monitorar alterações importantes nas propriedades da conta que afetam a negociação automatizada. Nós já implementamos algumas funcionalidades para monitorar os eventos da conta no artigo anterior ao desenvolver a coleção de objetos da conta.
Teste rápido das ideias de negociação no gráfico
Teste rápido das ideias de negociação no gráfico

Teste rápido das ideias de negociação no gráfico

O artigo descreve o método do teste de visual rápido de ideias de negociação. O método baseia-se na combinação de um gráfico de preço, um indicador de sinal e um indicador de cálculo de balanço. Eu gostaria de compartilhar o meu método de busca de ideias de negociação, bem como o método que uso para testá-las rapidamente.
Implementado OLAP na negociação (Parte 2): Visualizando resultados da análise interativa de dados multidimensionais
Implementado OLAP na negociação (Parte 2): Visualizando resultados da análise interativa de dados multidimensionais

Implementado OLAP na negociação (Parte 2): Visualizando resultados da análise interativa de dados multidimensionais

O artigo discute diversos aspectos da criação de interfaces gráficas interativas de programas MQL projetados para processamento analítico online (OLAP) do histórico de contas e de relatórios de negociação. Para obter um resultado visual, são usadas janelas maximizadas e escaláveis, uma disposição adaptável de controles de borracha e um novo 'controle' para exibir diagramas. Com base nisso, é implementada uma GUI com a possibilidade de escolher indicadores ao longo dos eixos de coordenadas, funções de agregação, tipos de gráficos e classificações.
Programando os Modos do EA Usando a Abordagem Orientada a Objetos
Programando os Modos do EA Usando a Abordagem Orientada a Objetos

Programando os Modos do EA Usando a Abordagem Orientada a Objetos

Este artigo explica a idéia da programação multi-modo de um robô de negociação em MQL5. Cada modalidade é implementada com a abordagem orientada a objetos. São fornecidos as instâncias de ambos os modos de hierarquias de classe e das classes para testes. A programação multi-modo de robôs de negociação presumi-se levar em conta todas as peculiaridades de cada modo operacional de um EA escrito em MQL5. Funções e enumerações são criadas para identificar o modo.
preview
Análise de Cluster (Parte I): usando a inclinação das linhas indicadoras

Análise de Cluster (Parte I): usando a inclinação das linhas indicadoras

A análise de cluster é um dos elementos mais importantes da inteligência artificial. Neste artigo, tento usar uma análise de cluster aplicada na inclinação de um indicador para obter patamares que determinarão se o mercado está lateralizado ou mantém uma tendência.
Expert Advisor Universal: Estratégias Personalizadas e Classes Auxiliares de Negociação (Parte 3)
Expert Advisor Universal: Estratégias Personalizadas e Classes Auxiliares de Negociação (Parte 3)

Expert Advisor Universal: Estratégias Personalizadas e Classes Auxiliares de Negociação (Parte 3)

Neste artigo, vamos continuar a análise dos algoritmos do motor de negociação CStrategy. A terceira parte da série contém uma análise detalhada com exemplos de como desenvolver estratégias de negociação específicas usando esta abordagem. É dada uma atenção especial aos algoritmos auxiliares - sistema de registro Expert Advisor e acesso a dados usando um indexador convencional (Close[1], Open[0], etc).
A contribuição de Thomas Demark para a análise técnica
A contribuição de Thomas Demark para a análise técnica

A contribuição de Thomas Demark para a análise técnica

Este artigo descreve os pontos TD e as linhas TD inventadas por Thomas Demark, mostra sua aplicação na prática, bem como demostra o processo de escrita de três indicadores e dois EAs usando as ideias dele.
Uso Prático das Redes Neurais de Kohonen na Negociação Algorítmica. Parte II. Otimização e previsão
Uso Prático das Redes Neurais de Kohonen na Negociação Algorítmica. Parte II. Otimização e previsão

Uso Prático das Redes Neurais de Kohonen na Negociação Algorítmica. Parte II. Otimização e previsão

Com base nas ferramentas universais projetadas para trabalhar com as redes de Kohonen, nós construímos o sistema de análise e seleção dos parâmetros ótimos do EA e consideramos a previsão das séries temporais. Na Parte I, nós corrigimos e melhoramos as classes das redes neurais publicamente disponíveis, adicionando os algoritmos necessários. Agora é hora de colocá-los em prática.
Examinemos na prática o método adaptativo de acompanhamento do mercado
Examinemos na prática o método adaptativo de acompanhamento do mercado

Examinemos na prática o método adaptativo de acompanhamento do mercado

A principal diferença entre ele e o sistema de negociação proposto no artigo é o uso de ferramentas matemáticas para analisar as cotações da bolsa de valores. O sistema implementa filtragem digital e estimativa espectral de séries temporais discretas. Descrevem-se os aspectos teóricos da estratégia e constrói-se o Expert Advisor para testá-la.
Abordagem econométrica para a busca de padrões de mercado: Autocorrelação, Mapas de Calor e Gráficos de Dispersão
Abordagem econométrica para a busca de padrões de mercado: Autocorrelação, Mapas de Calor e Gráficos de Dispersão

Abordagem econométrica para a busca de padrões de mercado: Autocorrelação, Mapas de Calor e Gráficos de Dispersão

O artigo apresenta um estudo extenso das características sazonais: autocorrelação, mapas de calor e gráficos de dispersão. O objetivo do artigo é mostrar que a "memória de mercado" é de natureza sazonal, na qual ela é expressa através da correlação maximizada de incrementos de ordem arbitrária.
Usar WinInet em MQL5.  Parte 2:  Solicitações POST e Arquivos
Usar WinInet em MQL5.  Parte 2:  Solicitações POST e Arquivos

Usar WinInet em MQL5. Parte 2: Solicitações POST e Arquivos

Neste artigo, continuaremos a estudar os princípios de funcionamento com a Internet usando requisições HTTP e troca de informações com o servidor. Ele descreve as novas funções da classe CMqlNet, métodos de envio de informação de formulários e envio de arquivos usando requisições POST, bem como a autorização em websites sob seu login, usando Cookies.