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
Otimização Walk Forward Contínua (Parte 2): Mecanismo para a criação de um relatório de otimização para qualquer robô

Otimização Walk Forward Contínua (Parte 2): Mecanismo para a criação de um relatório de otimização para qualquer robô

O primeiro artigo da série Otimização Walk Forward descreveu a criação de uma DLL a ser usada em nosso otimizador automático. Essa continuação é inteiramente dedicada à linguagem MQL5.
Promova seus projetos de desenvolvimento utilizando bibliotecas EX5
Promova seus projetos de desenvolvimento utilizando bibliotecas EX5

Promova seus projetos de desenvolvimento utilizando bibliotecas EX5

Ocultando os detalhes de implementação de classes/funções em um arquivo .ex5 vai permitir que você compartilhe seus algoritmos experientes com outros desenvolvedores, defina projetos comuns e promova-os na Internet. E enquanto a equipe MetaQuotes não mede esforços para viabilizar a possibilidade de herança direta de classes de biblioteca ex5, vamos implementá-la agora.
Comunicando-se com o MetaTrader 5 utilizando pipes nomeados sem DLLs
Comunicando-se com o MetaTrader 5 utilizando pipes nomeados sem DLLs

Comunicando-se com o MetaTrader 5 utilizando pipes nomeados sem DLLs

Muitos desenvolvedores encontram o mesmo problema - como chegar ao sandbox do terminal sem utilizar DLLs arriscados. Um dos métodos mais fáceis e seguros é utilizar pipes nomeados padrão que funcionam como operações de arquivo normais. Eles permitem que você organize a comunicação cliente-servidor interprocessadores entre programas. Dê uma olhada em exemplos práticos em C++ e MQL5 que incluem servidor, cliente, a troca de dados entre eles e avaliação de desempenho.
Implementando OLAP na negociação (Parte 3): analisando cotações para desenvolver estratégias de negociação
Implementando OLAP na negociação (Parte 3): analisando cotações para desenvolver estratégias de negociação

Implementando OLAP na negociação (Parte 3): analisando cotações para desenvolver estratégias de negociação

Neste artigo, continuaremos a estudar a abordagem OLAP aplicada à negociação, bem como a expandir os recursos apresentados nos dois primeiros artigos. Desta vez, analisaremos cotações de maneira operacional. Formularemos e testaremos uma hipótese sobre estratégias de negociação baseadas em indicadores históricos agregados. Apresentaremos EAs para estudos de padrões de barras e negociação adaptativa.
Trabalhando com séries temporais na biblioteca DoEasy (Parte 39): indicadores com base na biblioteca - preparação de dados e eventos das séries temporais
Trabalhando com séries temporais na biblioteca DoEasy (Parte 39): indicadores com base na biblioteca - preparação de dados e eventos das séries temporais

Trabalhando com séries temporais na biblioteca DoEasy (Parte 39): indicadores com base na biblioteca - preparação de dados e eventos das séries temporais

No artigo, consideramos o uso da biblioteca DoEasy para criar indicadores multissímbolos e multiperíodos. Prepararemos as classes da biblioteca, para trabalhar como parte dos indicadores, e testaremos a criação correta de séries temporais para usá-los como fontes de dados em indicadores. Realizaremos a criação e o envio de eventos de séries temporais.
Teste de Visualização: Histórico de negociações
Teste de Visualização: Histórico de negociações

Teste de Visualização: Histórico de negociações

O artigo descreve as possibilidades de visualização convenientes do histórico de negociações ao visualizar testes.
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XVII): interatividade de objetos de biblioteca
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XVII): interatividade de objetos de biblioteca

Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XVII): interatividade de objetos de biblioteca

Hoje, concluiremos a lógica da funcionalidade do objeto básico de todos os objetos de biblioteca, o que permitirá que qualquer objeto de biblioteca criado com base nela interaja com o usuário. Por exemplo, podemos definir o tamanho máximo aceitável de spread para abrir uma posição, bem como o nível de preço que intersetado causará que nosso programa receba um evento do objeto-símbolo sobre um sinal indicando o tamanho do spread e o preço que cruza o nível controlado.
A ordem de destruição e criação do objeto em MQL5
A ordem de destruição e criação do objeto em MQL5

A ordem de destruição e criação do objeto em MQL5

Cada objeto, quer seja um objeto personalizado, um array dinâmico ou um array de objetos, é criado e excluído no programa MQL5 desta forma em particular. Geralmente, alguns objetos são parte de outros objetos, e a ordem de exclusão do objeto na desinicialização se torna especialmente importante. Este artigo fornece alguns exemplos que cobrem os mecanismos de trabalho com objetos.
Construindo uma Startup em Tecnologia Social, Parte I: Tuíte seus Sinais do MetaTrader 5
Construindo uma Startup em Tecnologia Social, Parte I: Tuíte seus Sinais do MetaTrader 5

Construindo uma Startup em Tecnologia Social, Parte I: Tuíte seus Sinais do MetaTrader 5

Hoje vamos aprender a ligar um terminal MetaTrader 5 com o Twitter para que você possa "tuitar" os sinais de negociação de seus EAs. Estaremos desenvolvendo um Sistema de Apoio à Decisão Social em PHP com base no serviço web RESTful. Essa idéia vem de um conceito específico da negociação automatizada chamada de negociação assistida por computador. Nós queremos as habilidades cognitivas dos traders humanos para filtrar os sinais de negociação, que de outra maneira eles seriam colocadas automaticamente no mercado pelos Expert Advisors.
Tratamento de eventos no MQL5: mudando período MA rapidamente
Tratamento de eventos no MQL5: mudando período MA rapidamente

Tratamento de eventos no MQL5: mudando período MA rapidamente

Suponha que um simples indicador MA (média móvel) com período 13 seja aplicado ao gráfico. Queremos mudar o período para 20, mas não queremos ir até a caixa de diálogo de propriedades do indicador e editar o número 13 para 20: por simples cansaço destas ações tediosas com o mouse e teclado. E, especialmente, não queremos abrir o código do indicador e modificá-lo. Queremos fazer tudo isso simplesmente pressionando um botão - "setas para cima" próximas ao teclado numérico. Neste artigo, descreverei como fazer isso.
LifeHack para traders: "amassando" ForEach com os define (#define)
LifeHack para traders: "amassando" ForEach com os define (#define)

LifeHack para traders: "amassando" ForEach com os define (#define)

Passo intermediário para aqueles que ainda escrevem em MQL4, mas não conseguem migrar para MQL5. Continuamos a procurar oportunidades para escrever código em estilo MQL4. Desta vez, examinaremos a substituição de macros do pré-processador - #define.
Criando um EA gradador multiplataforma (conclusão): diversificação como forma de aumentar a lucratividade
Criando um EA gradador multiplataforma (conclusão): diversificação como forma de aumentar a lucratividade

Criando um EA gradador multiplataforma (conclusão): diversificação como forma de aumentar a lucratividade

Nos artigos anteriores desta série, tentamos de várias maneiras criar um EA gradador mais ou menos rentável. Agora é a vez de tentarmos aumentar a lucratividade do EA por meio da diversificação. Nosso objetivo é obter o desejado lucro de 100% ao ano, com um rebaixamento máximo de saldo de 20%.
Guia prático do MQL5: Consultor Especialista multi-moeda - Abordagem simples, organizada e rápida"
Guia prático do MQL5: Consultor Especialista multi-moeda - Abordagem simples, organizada e rápida"

Guia prático do MQL5: Consultor Especialista multi-moeda - Abordagem simples, organizada e rápida"

Este artigo descreverá uma implementação de uma abordagem simples, adequada para um Consultor Especialista multi-moeda. Isso significa que você será capaz de montar o Consultor Especialista para testes/negócios sob condições idênticas, mas com parâmetros diferentes para cada símbolo. Como um exemplo, criaremos um padrão para dois símbolos, mas de forma a ser capaz de somar símbolos adicionais, se necessário, fazendo pequenas alterações ao código.
O que é uma tendência e qual estrutura o mercado se baseia: Tendência ou Lateral?
O que é uma tendência e qual estrutura o mercado se baseia: Tendência ou Lateral?

O que é uma tendência e qual estrutura o mercado se baseia: Tendência ou Lateral?

Os traders costumam falar sobre tendências e lateralizações, mas poucos deles realmente entendem o que realmente é uma tendência/lateralização e menos ainda são capazes de explicar claramente esses conceitos. A discussão desses termos básicos costuma ser cercada por um sólido conjunto de preconceitos e equívocos. No entanto, se nós quisermos ter lucro, nós precisamos entender o significado matemático e lógico desses conceitos. Neste artigo, eu examinarei em detalhes a essência da tendência e da lateralização, bem como tentar definir se a estrutura do mercado é baseada em tendências, lateralizações ou em outra coisa. Eu também considerarei as melhores estratégias para a obtenção de lucro em mercados com tendência e laterais.
Indicadores técnicos e filtros digitais
Indicadores técnicos e filtros digitais

Indicadores técnicos e filtros digitais

Neste artigo, os indicadores técnicos são tratados como filtros digitais. Princípios de operação e características básicas de filtros digitais são explicados. Além disso, algumas formas práticas de receber o núcleo filtro no terminal do MetaTrader 5 e a integração com um analisador de espectro pronto para o uso proposto no artigo "Construção de um analisador de espectro" são considerados. As características de pulso e de espectro dos filtros digitais típicos são usadas como exemplos.
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.
O básico de codificação de um Expert Advisor de cobertura
O básico de codificação de um Expert Advisor de cobertura

O básico de codificação de um Expert Advisor de cobertura

Um exemplo de um Expert Advisor de cobertura é apresentado neste artigo. O autor escolherá o seu próprio par de cobertura favorito que é EURJPY e GBPJPY. Ele sempre se move da mesma maneira, sendo assim, mais fácil definir o tipo de ordem de cobertura.
Algoritmos que empregam limite móvel para fazer dinheiro
Algoritmos que empregam limite móvel para fazer dinheiro

Algoritmos que empregam limite móvel para fazer dinheiro

O objetivo deste artigo é estudar a rentabilidade dos algoritmos com diferentes entradas em negócios e saídas usando um limite móvel. Os tipos de entrada a serem usados são entradas aleatórias e entradas reversas. As ordens de parada a serem usadas são limite móvel e tomada móvel. O artigo demonstra os algoritmos para fazer dinheiro com uma rentabilidade de cerca de 30% por ano.
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte II). Coleção do histórico de ordens e negócios
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte II). Coleção do histórico de ordens e negócios

Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte II). Coleção do histórico de ordens e negócios

Na primeira parte, nós começamos a criar uma grande biblioteca multi-plataforma, simplificando o desenvolvimento de programas para as plataformas MetaTrader 5 e MetaTrader 4. Nós criamos o objeto abstrato COrder, que é um objeto base para o armazenamento de dados do histórico de ordens e negócios, bem como as ordens à mercado e posições. Agora nós vamos desenvolver todos os objetos necessários para o armazenamento de dados do histórico da conta em coleções.
Interfaces Gráficas I: Animação na Interface Gráfica (Capítulo 3)
Interfaces Gráficas I: Animação na Interface Gráfica (Capítulo 3)

Interfaces Gráficas I: Animação na Interface Gráfica (Capítulo 3)

No artigo anterior, nós começamos a desenvolver uma classe de formulário para os controles. Neste artigo, nós vamos continuar a desenvolver esta classe e preenchê-la com os métodos para mover um formulário sobre a área do gráfico. Em seguida, integraremos este componente da interface para o núcleo da biblioteca. Além disso, nós vamos garantir que os controles do formulário mudem de cor quando o cursor do mouse estiver pairando sobre eles.
Oscilador universal com interface gráfica do usuário
Oscilador universal com interface gráfica do usuário

Oscilador universal com interface gráfica do usuário

No artigo, descreve-se a criação de um indicador universal baseado em todos os osciladores do terminal com uma interface gráfica do usuário própria. Isto permite rápida e facilmente alterar os parâmetros de cada oscilador individual diretamente a partir da janela do gráfico (em vez de abrir a janela de opções), comparar seu desempenho e selecionar a melhor opção para uma tarefa específica.
ZUP - ZigZag universal com padrões Pesavento. Parte 1
ZUP - ZigZag universal com padrões Pesavento. Parte 1

ZUP - ZigZag universal com padrões Pesavento. Parte 1

O artigo descreve brevemente ideias subjacentes ao indicador ZigZag universal com padrões Pesavento (ZUP). O artigo também descreve indicadores ZigZag incorporados no ZUP.
O jogador de negociação baseado no histórico de acordo
O jogador de negociação baseado no histórico de acordo

O jogador de negociação baseado no histórico de acordo

O reprodutor de negócio. Apenas quatro palavras, não há necessidade de explicação. Pensamentos sobre uma pequena caixa com botões vêm à mente. Pressione um botão - ele reproduz, move a alavanca - a velocidade da reprodução muda. Na realidade, é bastante similar. Neste artigo, quero mostrar meu desenvolvimento que reproduz o histórico de negócio quase como em tempo real. O artigo cobre algumas nuances de OOP, trabalhando com indicadores e gráficos de gerenciamento.
Otimização Controlada: Recozimento Simulado
Otimização Controlada: Recozimento Simulado

Otimização Controlada: Recozimento Simulado

O Testador de Estratégia da plataforma de negociação MetaTrader 5 fornece apenas duas opções de otimização: otimização completa dos parâmetros e o algoritmo genético. Este artigo propõe um novo método para otimizar as estratégias de negociação — Recozimento Simulado (Simulated Annealing). Será introduzido o algoritmo do método, sua implementação e integração em qualquer Expert Advisor. O algoritmo desenvolvido é testado no EA Moving Average (Média Móvel).
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte VI): eventos da conta netting
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte VI): eventos da conta netting

Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte VI): eventos da conta netting

Nos artigos anteriores, nós começamos a criar uma grande biblioteca multi-plataforma, simplificando o desenvolvimento de programas para as plataformas MetaTrader 5 e MetaTrader 4. Na quinta parte da série de artigos, nós criamos as classes de eventos de negociação e a coleção de eventos, a partir dos quais os eventos são enviados para o objeto base da biblioteca Engine e para o gráfico do programa de controle. Nesta parte, nós vamos deixar a biblioteca trabalhar em contas netting.
Estendendo a biblioteca padrão do MQL5 e reutilizando o código
Estendendo a biblioteca padrão do MQL5 e reutilizando o código

Estendendo a biblioteca padrão do MQL5 e reutilizando o código

A biblioteca padrão do MQL5 torna mais fácil a sua vida como desenvolvedor. No entanto, ela não implementa todas as necessidades de todos os desenvolvedores no mundo, então, se você achar que precisa de mais algum material de customização, você pode dar um passo a mais e estender. Este artigo o orienta através da integração do indicador técnico Zig-Zag MetaQuotes' na biblioteca padrão. Ficamos inspirados pela filosofia de design MetaQuotes' para alcançar o nosso objetivo.
Interfaces gráficas XI: Integração da Biblioteca Gráfica Padrão (build 16)
Interfaces gráficas XI: Integração da Biblioteca Gráfica Padrão (build 16)

Interfaces gráficas XI: Integração da Biblioteca Gráfica Padrão (build 16)

Uma nova versão da biblioteca gráfica para a criação de gráficos científicos (a classe CGraphic) foi apresentada recentemente. Esta atualização da biblioteca desenvolvida para criar interfaces gráficas irá introduzir uma versão com um novo controle para a criação de gráficos. Agora está ainda mais fácil de visualizar os dados de diferentes tipos.
Redes Neurais Profundas (Parte II). Desenvolvimento e seleção de preditores
Redes Neurais Profundas (Parte II). Desenvolvimento e seleção de preditores

Redes Neurais Profundas (Parte II). Desenvolvimento e seleção de preditores

O segundo artigo da série sobre redes neurais profundas considerará a transformação e seleção dos preditores durante o processo de preparação de dados para treinar um modelo.
Método da área
Método da área

Método da área

O sistema "Método da área" funciona com base na interpretação pouco comum das leituras do oscilador RSI. Neste artigo fala-se tanto do indicador que processa o método da área, como do conselheiro que negocia de acordo com este sistema. Além disso, adicionamos resultados de teste detalhados do conselheiro para vários símbolos, timeframes e valores de área.
Desenvolvendo um algoritmo auto-adaptável (Parte I): encontrando um padrão básico
Desenvolvendo um algoritmo auto-adaptável (Parte I): encontrando um padrão básico

Desenvolvendo um algoritmo auto-adaptável (Parte I): encontrando um padrão básico

Numa série de artigos, mostrarei um exemplo de como desenvolver algoritmos auto-adaptativos que levam em consideração a maioria de fatores que surgem nos mercados, apresentarei como sistematizar essas situações, como descrevê-las de forma lógica e como considerá-las na hora de negociar. Vou começar com um algoritmo muito simples, que com o tempo irá ganhar teoria e evoluir para um projeto muito complexo.
Indicador Taichi - uma ideia simples de formalizar os valores do Ichimoku Kinko Hyo
Indicador Taichi - uma ideia simples de formalizar os valores do Ichimoku Kinko Hyo

Indicador Taichi - uma ideia simples de formalizar os valores do Ichimoku Kinko Hyo

Dificuldades para interpretar os sinais Ichimoku? Este artigo apresenta alguns princípios de formalização de valores e sinais de Ichimoku Kinko Hyo. Para visualização de seu uso o autor escolheu o par de moedas EURUSD com base em suas próprias preferências. No entanto, o indicador pode ser usado em qualquer par de moedas.
Características do Desenvolvimento de Indicadores Personalizados
Características do Desenvolvimento de Indicadores Personalizados

Características do Desenvolvimento de Indicadores Personalizados

O Desenvolvimento de Indicadores Personalizados no sistema de negociação MetaTrader tem uma série de características.
Construindo um Expert Advisor de arrastar e soltar semiautomático interativo com base no risco predefinido e proporção R/R
Construindo um Expert Advisor de arrastar e soltar semiautomático interativo com base no risco predefinido e proporção R/R

Construindo um Expert Advisor de arrastar e soltar semiautomático interativo com base no risco predefinido e proporção R/R

Alguns operadores executam todas suas negociações automaticamente, e alguns misturam negociações automáticas e manuais, com base na saída de diversos indicadores. Sendo um membro do último grupo, precisei de uma ferramenta interativa para avaliar risco dinamicamente e obter níveis de preço diretamente do gráfico. Este artigo apresentará uma maneira de implementar um Expert Advisor interativo semiautomático, com risco de equidade predefinido e proporção R/R. O risco do Expert Advisor, R/R e parâmetros de tamanho de lote podem ser alterados durante o tempo de execução no painel do EA.
Como se tornar um bom programador (Parte 1): cinco hábitos que devem ser abandonados para programar melhor em MQL5
Como se tornar um bom programador (Parte 1): cinco hábitos que devem ser abandonados para programar melhor em MQL5

Como se tornar um bom programador (Parte 1): cinco hábitos que devem ser abandonados para programar melhor em MQL5

Tanto iniciantes quanto programadores avançados têm alguns hábitos ruins que os impedem de melhorar. Neste artigo, vamos discuti-los e ver o que podemos fazer com eles. O artigo é destinado a todos que desejam se tornar um programador MQL5 de sucesso.
preview
Desenvolvendo um EA de negociação do zero (Parte 14): Volume at Price (II)

Desenvolvendo um EA de negociação do zero (Parte 14): Volume at Price (II)

Aqui vamos adicionar recursos diversos no nosso EA. Este artigo vai ser bastante interessante, podendo direcionar você a novas ideias e métodos de apresentar informações e ao mesmo tempo corrigir pequenas falhas nos seus projetos.
Os princípios do cálculo econômico de indicadores
Os princípios do cálculo econômico de indicadores

Os princípios do cálculo econômico de indicadores

Chamadas para usuário e indicadores técnicos ocupam um espaço muito pequeno no código do programa dos sistemas de negócio automatizado. Geralmente, são apenas algumas linhas de código. Mas, o que geralmente acontece é que essas poucas linhas de código são as que usam a maior parte do tempo, tempo que precisa ser gasto em teste do Expert Advisor. Então, tudo que está relacionado com cálculos de dados dentro de um indicador, precisa ser considerado mais a fundo do que só ser visto de relance. Este artigo falará precisamente sobre isso.
Previsão de séries temporais (parte 2): método de vetores de suporte por mínimos quadrados (LS-SVM)
Previsão de séries temporais (parte 2): método de vetores de suporte por mínimos quadrados (LS-SVM)

Previsão de séries temporais (parte 2): método de vetores de suporte por mínimos quadrados (LS-SVM)

O artigo estuda a teoria e a aplicação prática de um algoritmo de previsão de séries temporais com base no método de vetores de suporte, além disso, propõe sua implementação em MQL5 e fornece indicadores de teste e EAs. Embora este abordagem ainda não tenha sido implementada em MQL, em primeiro lugar, precisamos conhecer determinado modelo matemático.
Analisador Sintático HTML com o curl
Analisador Sintático HTML com o curl

Analisador Sintático HTML com o curl

O artigo fornece a descrição de uma biblioteca simples para análise sintática (parser) de código HTML usando componentes de terceiros. Em particular, ela abrange as possibilidades de acessar dados que não podem ser recuperados usando os métodos HTTP GET e POST. Nós selecionaremos um site com páginas não muito extensas e tentaremos obter alguns dados interessantes dele.
Estimativas estatísticas
Estimativas estatísticas

Estimativas estatísticas

Estimativa de parâmetros estatísticos de uma sequência é muito importante, desde que muitos dos modelos e métodos matemáticos são baseados em diferentes suposições. Por exemplo, normalidade da lei de distribuição ou valor de dispersão, ou outros parâmetros. Assim, quando analisando e realizando previsões de séries de tempo, nós precisamos uma ferramenta simples e conveniente que permite rápida e clara estimativa dos principais parâmetros estatísticos. O arquivo descreve brevemente os parâmetros estatísticos mais simples de uma sequência aleatória e vários métodos de análise visual. Ele oferece a implementação desses métodos em MQL5 e os métodos de visualização dos resultados dos cálculos usando o aplicativo Gnuplot.
Alert e Comment para Indicadores Externos. Análise de Multimoedas Através de Varredura Externa
Alert e Comment para Indicadores Externos. Análise de Multimoedas Através de Varredura Externa

Alert e Comment para Indicadores Externos. Análise de Multimoedas Através de Varredura Externa

Alerta para análise de multimoedas e múltiplos timeframes para indicadores externos. O artigo trata de um método para obter informações sobre o evento em relação aos acontecimentos com indicadores externos, sem a necessidade de anexar indicadores a um gráfico ou aos próprios gráficos abertos. Vamos chamá-lo de varredura externa.