Artigos sobre programação na linguagem 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
Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação
Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação

Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação

Suponho que todo desenvolvedor quer escrever código mais rapidamente. Porém, a habilidade de escrever código de forma rápida e produtiva não é uma característica inata que apenas uns poucos trazem consigo. Trata-se de uma habilidade que qualquer programador pode desenvolver e que será o tópico deste artigo.
Gráficos na biblioteca DoEasy (Parte 85): coleção de objetos gráficos, adicionamos recém-criados
Gráficos na biblioteca DoEasy (Parte 85): coleção de objetos gráficos, adicionamos recém-criados

Gráficos na biblioteca DoEasy (Parte 85): coleção de objetos gráficos, adicionamos recém-criados

Neste artigo, finalizaremos a criação das classes herdeiras da classe abstrata do objeto gráfico e iniciaremos a implementação do armazenamento desses objetos na classe-coleção. Em particular, criaremos a funcionalidade para adicionar à classe-coleção objetos gráficos padrão recém-criados.
Gráficos na biblioteca DoEasy (Parte 84): classes herdeiras do objeto gráfico abstrato padrão
Gráficos na biblioteca DoEasy (Parte 84): classes herdeiras do objeto gráfico abstrato padrão

Gráficos na biblioteca DoEasy (Parte 84): classes herdeiras do objeto gráfico abstrato padrão

Neste artigo, veremos como se criam classes herdeiras do objeto gráfico abstrato padrão do terminal. O objeto deste tipo de classe descreve propriedades comuns a todos os objetos gráficos, isto é, ele é apenas um tipo de objeto gráfico. Para entender se pertence a um objeto gráfico real, precisamos gerar herança a partir dele, já na classe do objeto herdeiro precisamos escrever as propriedades que são específicas do objeto gráfico em particular.
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.
preview
Analisando o spread para preços de Bid e Ask no MetaTrader 5

Analisando o spread para preços de Bid e Ask no MetaTrader 5

Neste artigo falo de uma ferramenta capaz de ver os spreads, isto é, as diferenças entre os valores Bid e Ask da sua corretora. Os dados de ticks presentes no MetaTrader 5 possibilitam analisar quais valores históricos de spreads existiam de fato entre os valores Bid e Ask. Contudo, não há razão para procurar o valor atual do spread, pois ele pode ser obtido por meio da visualização das linhas Bid e Ask.
Gráficos na biblioteca DoEasy (Parte 83): classe abstrata de objetos gráficos padrão
Gráficos na biblioteca DoEasy (Parte 83): classe abstrata de objetos gráficos padrão

Gráficos na biblioteca DoEasy (Parte 83): classe abstrata de objetos gráficos padrão

Neste artigo, criaremos uma classe para um objeto gráfico abstrato. Este objeto será a base para a criação de classes de objetos gráficos padrão. Os objetos gráficos têm muitas propriedades, e hoje, antes de criarmos uma classe de objetos gráficos abstratos, precisamos realizar um intenso trabalho preliminar, especificando ditas propriedades nas enumerações da biblioteca.
Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação
Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação

Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação

Suponho que todo desenvolvedor quer escrever código mais rapidamente. Porém, a habilidade de escrever código de forma rápida e produtiva não é uma característica inata que apenas uns poucos trazem consigo. Trata-se de uma habilidade que qualquer programador pode desenvolver, independentemente da experiência prévia ou da quantidade de texto digitado com o teclado.
Gráficos na biblioteca DoEasy (Parte 82): refatoração dos objetos da biblioteca e da coleção de objetos gráficos
Gráficos na biblioteca DoEasy (Parte 82): refatoração dos objetos da biblioteca e da coleção de objetos gráficos

Gráficos na biblioteca DoEasy (Parte 82): refatoração dos objetos da biblioteca e da coleção de objetos gráficos

Neste artigo modificaremos todos os objetos da biblioteca. Para isso, atribuiremos um tipo único a cada objeto e continuaremos desenvolvendo a classe-coleção de objetos gráficos da biblioteca.
Como se tornar um bom programador (Parte 3): cinco dicas para programar melhor em MQL5
Como se tornar um bom programador (Parte 3): cinco dicas para programar melhor em MQL5

Como se tornar um bom programador (Parte 3): cinco dicas para programar melhor em MQL5

Este artigo é uma leitura obrigatória destinada a todos que desejam melhorar sua carreira como programadores. O objetivo desta série de artigos é ajudar o leitor, incluindo experientes, a melhorar suas habilidades de programação. As ideias descritas são aplicáveis tanto a programadores iniciantes em MQL5 quanto a profissionais.
Como se tornar um bom programador (Parte 2): mais cinco hábitos que devem ser abandonados para programar melhor em MQL5
Como se tornar um bom programador (Parte 2): mais cinco hábitos que devem ser abandonados para programar melhor em MQL5

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

Este artigo é uma leitura obrigatória destinada a todos que desejam melhorar sua carreira como programadores. O objetivo desta série de artigos é ajudar o leitor, incluindo experientes, a melhorar suas habilidades de programação. As ideias descritas são aplicáveis tanto a programadores iniciantes em MQL5 quanto a profissionais.
Combinatória e teoria da probabilidade para negociação (Parte III): primeiro modelo matemático
Combinatória e teoria da probabilidade para negociação (Parte III): primeiro modelo matemático

Combinatória e teoria da probabilidade para negociação (Parte III): primeiro modelo matemático

Para dar continuação lógica ao tópico, hoje abordaremos o desenvolvimento de modelos matemáticos multifuncionais para tarefas de negociação. Assim sendo, descreverei todo o processo de desenvolvimento do primeiro modelo matemático para descrever fractais a partir do zero. Este modelo deve se tornar um importante alicerce, ser multifuncional e universal, inclusive para construir a base teórica para o futuro desenvolvimento do ramo.
Combinatória e teoria da probabilidade para negociação (Parte II): fractal universal
Combinatória e teoria da probabilidade para negociação (Parte II): fractal universal

Combinatória e teoria da probabilidade para negociação (Parte II): fractal universal

Neste artigo, continuaremos a estudar fractais e prestaremos muita atenção a resumir todo o material. Tentarei apresentar todos os projetos da maneira mais compacta e compreensível para serem aplicados ao trading.
preview
Perceptron Multicamadas e o Algoritmo Backpropagation (Parte II): Implementação em Python e Integração com MQL5

Perceptron Multicamadas e o Algoritmo Backpropagation (Parte II): Implementação em Python e Integração com MQL5

Um pacote python foi disponibilizado com o proposito de trazer integração com MQL, com isso abre-se as portas para enumeras possibilidades como, exploração de dados, criação e uso de modelos de machine learning. Com essa integração nativa entre MQL5 e Python, abriu-se as portas para muitas possibilidades de uso, podemos construir de uma simples regressão linear a um modelo de aprendizado profundo. Vamos entender como instalar e preparar o ambiente de desenvolvimento e usar algumas das bibliotecas de aprendizado de maquina.
Gráficos na biblioteca DoEasy (Parte 81): integrando gráficos nos objetos da biblioteca
Gráficos na biblioteca DoEasy (Parte 81): integrando gráficos nos objetos da biblioteca

Gráficos na biblioteca DoEasy (Parte 81): integrando gráficos nos objetos da biblioteca

Hoje começaremos a integrar os objetos gráficos já criados nos restantes, o que, em última análise, dotará cada objeto da biblioteca com seu próprio objeto gráfico, permitindo ao usuário interagir com o programa.
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.
Gráficos na biblioteca DoEasy (Parte 80): classe do objeto quadro de animação geométrica
Gráficos na biblioteca DoEasy (Parte 80): classe do objeto quadro de animação geométrica

Gráficos na biblioteca DoEasy (Parte 80): classe do objeto quadro de animação geométrica

Neste artigo, otimizaremos o código das classes vistas nos artigos anteriores e criaremos uma classe para o objeto do quadro de animação geométrica que nos permite desenhar polígonos regulares com um determinado número de vértices.
Gráficos na biblioteca DoEasy (Parte 79): classe para o objeto quadro-de-animação e seus objetos herdeiros
Gráficos na biblioteca DoEasy (Parte 79): classe para o objeto quadro-de-animação e seus objetos herdeiros

Gráficos na biblioteca DoEasy (Parte 79): classe para o objeto quadro-de-animação e seus objetos herdeiros

Neste artigo, desenvolveremos uma classe para um quadro de animação e seus herdeiros. A classe permitirá desenhar formas, bem como salvar e restaurar o plano de fundo.
Gráficos na Biblioteca DoEasy (Parte 78): princípios de animação dentro da biblioteca Corte de imagens
Gráficos na Biblioteca DoEasy (Parte 78): princípios de animação dentro da biblioteca Corte de imagens

Gráficos na Biblioteca DoEasy (Parte 78): princípios de animação dentro da biblioteca Corte de imagens

Neste artigo, definiremos os princípios de animação que usaremos em algumas partes da biblioteca, desenvolveremos uma classe para copiar uma parte de uma imagem e colá-la no local especificado do objeto-forma, preservando e restaurando aquela parte do fundo da forma sobre a qual a imagem será colocada.
Padrões com exemplos (Parte I): Topo múltiplo
Padrões com exemplos (Parte I): Topo múltiplo

Padrões com exemplos (Parte I): Topo múltiplo

Com este artigo começamos um ciclo em que consideraremos padrões de reversão no âmbito da negociação algorítmica. Iniciamos examinando a primeira e mais interessante família de padrões desse tipo que se originam dos chamados topo duplo e fundo duplo.
Gráficos na biblioteca DoEasy (Parte 77): classe do objeto Sombra
Gráficos na biblioteca DoEasy (Parte 77): classe do objeto Sombra

Gráficos na biblioteca DoEasy (Parte 77): classe do objeto Sombra

Neste artigo, criaremos uma classe separada para o objeto de sombra (um herdeiro do objeto de elemento gráfico) e também adicionaremos a capacidade de ocupar o fundo do objeto com um preenchimento gradiente.
Gráficos na biblioteca DoEasy (Parte 76): objeto forma e temas de cores predefinidos
Gráficos na biblioteca DoEasy (Parte 76): objeto forma e temas de cores predefinidos

Gráficos na biblioteca DoEasy (Parte 76): objeto forma e temas de cores predefinidos

Neste artigo, descreveremos o conceito de criação de temas de GUI na biblioteca, criaremos um objeto forma que será descendente de um objeto da classe do elemento gráfico, prepararemos dados para criar as sombras dos objetos gráficos da biblioteca e para continuar desenvolvendo a funcionalidade no futuro.
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.
preview
Combinatória e teoria da probabilidade para negociação (Parte I): fundamentos

Combinatória e teoria da probabilidade para negociação (Parte I): fundamentos

Nesta série de artigos, procuraremos uma aplicação prática da teoria da probabilidade para descrever o processo de negociação e precificação. No primeiro artigo, conheceremos os fundamentos da combinatória e da teoria da probabilidade, e analisaremos o primeiro exemplo de aplicação de fractais no âmbito desta última.
Gráficos na biblioteca DoEasy (Parte 75): métodos para trabalhar com primitivos e texto num elemento gráfico básico
Gráficos na biblioteca DoEasy (Parte 75): métodos para trabalhar com primitivos e texto num elemento gráfico básico

Gráficos na biblioteca DoEasy (Parte 75): métodos para trabalhar com primitivos e texto num elemento gráfico básico

No artigo, continuaremos a desenvolver a classe base do elemento gráfico que compreende todos os objetos gráficos criados com base na classe da Biblioteca Padrão CCanvas. Criaremos métodos para desenhar primitivas gráficas e métodos para enviar texto para um objeto-elemento gráfico.
Gráficos na biblioteca DoEasy (Parte 74): elemento gráfico básico baseado na classe CCanvas
Gráficos na biblioteca DoEasy (Parte 74): elemento gráfico básico baseado na classe CCanvas

Gráficos na biblioteca DoEasy (Parte 74): elemento gráfico básico baseado na classe CCanvas

Vamos revisar o conceito de construção de objetos gráficos, que vimos no artigo anterior, e preparar uma classe base para todos os objetos gráficos da biblioteca criados com base na classe CCanvas da Biblioteca Padrão.
Gráficos na biblioteca DoEasy (Parte 73): objeto-forma de um elemento gráfico
Gráficos na biblioteca DoEasy (Parte 73): objeto-forma de um elemento gráfico

Gráficos na biblioteca DoEasy (Parte 73): objeto-forma de um elemento gráfico

Neste artigo, começamos uma nova seção grande sobre a biblioteca para trabalhar com gráficos. Hoje vamos criar um objeto de estados do mouse, um objeto base de todos os elementos gráficos e uma classe do objeto-forma dos elementos gráficos da biblioteca.
Outras classes na biblioteca DoEasy (Parte 72): rastreamento e fixação dos parâmetros de objetos-gráficos numa coleção
Outras classes na biblioteca DoEasy (Parte 72): rastreamento e fixação dos parâmetros de objetos-gráficos numa coleção

Outras classes na biblioteca DoEasy (Parte 72): rastreamento e fixação dos parâmetros de objetos-gráficos numa coleção

Neste artigo, vamos finalizar as classes de objetos-gráficos e de sua coleção. Faremos o rastreamento automático das alterações das propriedades dos gráficos e das suas janelas, bem como o armazenamento de novos parâmetros nas propriedades do objeto. Este aprimoramento nos permitirá gerar uma funcionalidade de evento para toda a coleção de gráficos no futuro.
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.
Outras classes na biblioteca DoEasy (Parte 70): extensão da funcionalidade e atualização automática da coleção de objetos-gráficos
Outras classes na biblioteca DoEasy (Parte 70): extensão da funcionalidade e atualização automática da coleção de objetos-gráficos

Outras classes na biblioteca DoEasy (Parte 70): extensão da funcionalidade e atualização automática da coleção de objetos-gráficos

Neste artigo, vamos expandir a funcionalidade dos objetos-gráficos, criaremos a navegação em gráficos, geraremos capturas de tela, salvaremos e aplicaremos modelos aos gráficos. Faremos também uma atualização automática da coleção de objetos-gráficos, suas janelas e indicadores.
Swaps (Parte I): bloqueio e posições sintéticas
Swaps (Parte I): bloqueio e posições sintéticas

Swaps (Parte I): bloqueio e posições sintéticas

Neste artigo, tentarei expandir o conceito clássico de métodos de negociação de swap, e também explicarei porque cheguei à conclusão de que ele, em minha opinião, merece atenção especial e vale absolutamente a pena ser estudado.
preview
Conselhos de um programador profissional (Parte I): Armazenamento, depuração e compilação de códigos Trabalho com projetos e registros

Conselhos de um programador profissional (Parte I): Armazenamento, depuração e compilação de códigos Trabalho com projetos e registros

Conselhos de um programador profissional sobre métodos, técnicas e ferramentas auxiliares para tornar a programação mais fácil.
Outras classes na biblioteca DoEasy (Parte 69): classe-coleção de objetos-gráficos
Outras classes na biblioteca DoEasy (Parte 69): classe-coleção de objetos-gráficos

Outras classes na biblioteca DoEasy (Parte 69): classe-coleção de objetos-gráficos

Com este artigo, começaremos o desenvolvimento de uma classe-coleção de objetos-gráficos que armazenará uma lista-coleção de objetos-gráficos com suas subjanelas e indicadores, e tornará possível trabalhar com gráficos selecionados e suas subjanelas, ou com uma lista de vários gráficos ao mesmo tempo.
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.
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.
Padrão de design MVC e a possibilidade de usá-lo
Padrão de design MVC e a possibilidade de usá-lo

Padrão de design MVC e a possibilidade de usá-lo

Este artigo falará sobre um padrão MVC comum, bem como sobre os prós e os contras de seu uso em programas MQL. Seu propósito é o de "dividir" o código existente em três componentes separados: Modelo (Model), Visualização (View) e Controlador (Controller).
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
Força bruta para encontrar padrões (Parte IV): funcionalidade mínima

Força bruta para encontrar padrões (Parte IV): funcionalidade mínima

Neste artigo, mostrarei uma versão aprimorada da abordagem de força bruta, com base nos objetivos definidos no artigo anterior, e tentarei cobrir este tópico da forma mais ampla possível usando os EAs e as configurações obtidas por meio desse método. Também deixarei que a comunidade experimente a nova versão do programa.
preview
Aprendizado de máquina em sistemas de negociação baseados em grade e martingale. Deveríamos apostar nele?

Aprendizado de máquina em sistemas de negociação baseados em grade e martingale. Deveríamos apostar nele?

Este artigo apresentará ao leitor a técnica de aprendizado de máquina para negociação baseada em grade e martingale. Para minha surpresa, essa abordagem, por algum motivo, não é afetada de forma alguma na rede global. Após ler o artigo, podemos criar nossos próprios bots.