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
Expert Advisor multiplataforma: Ordens
Expert Advisor multiplataforma: Ordens

Expert Advisor multiplataforma: Ordens

MetaTrader 4 e MetaTrader 5 usam regras diferentes para o processamento de pedidos de negociação. Este artigo discute a possibilidade de utilizar o objeto de classe que representa a transação para processamento pelo servidor, graças a isso o Expert Advisor poderá trabalhar com elas independentemente da versão da plataforma de negociação e o modo usado.
Desenhando e implementando novos widgets GUI com base no objeto CChartObject
Desenhando e implementando novos widgets GUI com base no objeto CChartObject

Desenhando e implementando novos widgets GUI com base no objeto CChartObject

Depois que escrevi um artigo anterior sobre um Expert Advisor semiautomático com interface GUI, descobri que seria desejável aprimorar a interface com algumas novas funcionalidades para Expert Advisors e indicadores mais complexos. Após familiarizar-me com as classes da Biblioteca Padrão do MQL5, implementei novos widgets. Este artigo descreve um processo de planejamento e implementação de novos widgets GUI MQL5 que podem ser usados em indicadores e Expert Advisors. Os widgets apresentados no artigo são CChartObjectSpinner, CChartObjectProgressBar e CChartObjectEditTable.
preview
Otimização Walk Forward Contínua (Parte 3): Método de Adaptação de um Robô ao Otimizador Automático

Otimização Walk Forward Contínua (Parte 3): Método de Adaptação de um Robô ao Otimizador Automático

A terceira parte serve como uma ponte entre as duas partes anteriores: Ele descreve o mecanismo de interação com a DLL considerada no primeiro artigo e os objetos para download de relatórios, descritos no segundo artigo. Nós analisaremos o processo de criação de um wrapper para uma classe que é importada da DLL e que forma um arquivo XML com o histórico de negociação. Nós também consideraremos um método para interagir com este wrapper.
Teste de padrões que surgem ao negociar cestas de pares de moedas. Parte III
Teste de padrões que surgem ao negociar cestas de pares de moedas. Parte III

Teste de padrões que surgem ao negociar cestas de pares de moedas. Parte III

Neste artigo, nós terminamos de testar os padrões que podem ser detectados ao negociar cestas de par de moedas. Aqui nós apresentamos os resultados do teste dos padrões que rastreiam o movimento das moedas dos pares em relação uns aos outros.
Canal universal com GUI
Canal universal com GUI

Canal universal com GUI

Todos os indicadores de canais apresentam três linhas, isto é: central, superior e inferior. A linha central, quanto à sua plotagem, é idêntica à média móvel. Na maioria dos casos, para a plotagem do canal, é utilizada a média móvel. As linhas superior e inferior são equidistantes da linha central. Esta distância pode ser determinada simplesmente em pontos, em porcentagem do preço (indicador Envelopes), pode ser usado o valor do desvio padrão (bandas de Bollinger), pode ser empregado o valor do indicador de ATR (canal Keltner).
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XX): criação e armazenamento de recursos de programas
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XX): criação e armazenamento de recursos de programas

Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XX): criação e armazenamento de recursos de programas

No artigo, veremos como armazenar dados no código fonte de um programa e como criar arquivos de som e gráficos a partir dele. Muitas vezes, ao criar um programa, precisamos usar sons e imagens. Na linguagem MQL, existem várias maneiras de usar esse tipo de dados.
Linguagem MQL como um meio de marcação da interface gráfica de programas MQL. Parte 1
Linguagem MQL como um meio de marcação da interface gráfica de programas MQL. Parte 1

Linguagem MQL como um meio de marcação da interface gráfica de programas MQL. Parte 1

O artigo propõe uma nova ideia para descrever a interface de programas MQL com ajuda das construções da linguagem MQL. As classes especiais transformam o esquema visual MQL em elementos da GUI, permitem gerenciá-los de maneira unificada, configurar propriedades e processar eventos. Além disso, apresenta exemplos de uso de layouts para caixas de diálogo e elementos da biblioteca padrão.
Algoritmos genéticos vs. busca simples no otimizador do MetaTrader 4
Algoritmos genéticos vs. busca simples no otimizador do MetaTrader 4

Algoritmos genéticos vs. busca simples no otimizador do MetaTrader 4

O artigo compara o tempo e os resultados obtidos pela otimização dos Expert Advisors usando algoritmos genéticos e aqueles obtidos por buscas simples.
Expert Advisor universal: indicador CUnIndicator e trabalho com ordens pendentes (parte 9)
Expert Advisor universal: indicador CUnIndicator e trabalho com ordens pendentes (parte 9)

Expert Advisor universal: indicador CUnIndicator e trabalho com ordens pendentes (parte 9)

O artigo descreve o trabalho com indicadores através da classe universal do CUnIndicator. Além disso, consideram-se novas formas de trabalhar com ordens pendentes. Observe que, a partir deste ponto, a estrutura do projeto do CStrategy muda significativamente. Agora todos os arquivos são colocados num único diretório para a conveniência dos usuários.
Desenhando emissões de indicador no MQL5
Desenhando emissões de indicador no MQL5

Desenhando emissões de indicador no MQL5

Neste artigo, consideraremos a emissão dos indicadores - uma nova abordagem para pesquisa de mercado. O cálculo da emissão é baseado na intersecção de diferentes indicadores: mais e mais pontos com diferentes cores e formas aparecem após cada tick. Eles formam vários clusters na forma de uma nebulosa, nuvens, pistas, linhas, arcos, etc. Estas formas podem ajudar a detectar as molas e forças invisíveis que afetam o movimento dos preços do mercado.
Linguagem MQL4 para Iniciantes. Perguntas difíceis em frases simples
Linguagem MQL4 para Iniciantes. Perguntas difíceis em frases simples

Linguagem MQL4 para Iniciantes. Perguntas difíceis em frases simples

Este é o segundo artigo da série "Linguagem MQL4 para Iniciantes". Agora vamos examinar mais construções complexas e avançadas da linguagem, aprender novas opções e ver, como elas podem ser aplicadas na prática diária. Você vai se familiarizar com um novo tipo de ciclo ''enquanto'', um novo tipo de condição ''troca'', operadores ''pausa'' e ''continuação". Além disso, você vai aprender a escrever suas próprias funções e trabalhar com matrizes multidimensionais. E de bônus, preparei uma explicação sobre um pré-processador.
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIV): classe básica de negociação, correção automática de parâmetros errados
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIV): classe básica de negociação, correção automática de parâmetros errados

Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXIV): classe básica de negociação, correção automática de parâmetros errados

No artigo, analisaremos um manipulador de parâmetros errôneos de uma ordem de negociação, finalizaremos a classe básica de negociação e também corrigiremos o funcionamento da classe de eventos de negociação - agora todos os eventos de negociação serão detectados corretamente nos programas.
preview
Stop-loss fixo com base na ação do preço e RSI (stop-loss "inteligente")

Stop-loss fixo com base na ação do preço e RSI (stop-loss "inteligente")

O Stop-loss é a principal ferramenta de gerenciamento de dinheiro na negociação. O uso eficaz do stop-loss, take-profit e tamanho do lote pode tornar a negociação mais consistente e, em geral, mais lucrativa. No entanto, fazer uso disto tem suas próprias dificuldades. A principal delas é a caça ao stop-loss. Neste artigo analisaremos como minimizar o efeito da caça ao stop-loss e compararemos isto com o uso clássico de stop loss para determinar lucratividade.
Assistente MQL5: como criar um módulo de rastreamento de posições abertas
Assistente MQL5: como criar um módulo de rastreamento de posições abertas

Assistente MQL5: como criar um módulo de rastreamento de posições abertas

O gerador de estratégias de negociação do Assistente MQL5 simplifica o teste de ideias de negociação. O artigo discute como escrever e conectar ao gerador de estratégias de negociação do Assistente MQL5 a sua própria classe de gerenciamento de posições abertas, movendo o nível de Stop Loss para a zona lossless quando o preço for em direção da posição, permitindo diminuir levantamentos ao negociar. Fala também sobre a estrutura e o formato da descrição da classe criada para o Assistente MQL5.
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.
Interfaces gráficas X: Algoritmo de quebra de linha na caixa de texto multilinha (build 12)
Interfaces gráficas X: Algoritmo de quebra de linha na caixa de texto multilinha (build 12)

Interfaces gráficas X: Algoritmo de quebra de linha na caixa de texto multilinha (build 12)

Nós continuamos com o desenvolvimento do controle da caixa de texto Multilinha. Desta vez, nossa tarefa é implementar um quebra automático de linha no caso da largura da caixa de texto ser excedida ou uma quebra automática de linha inversa do texto para a linha anterior se a oportunidade surgir.
Dormir ou não dormir?
Dormir ou não dormir?

Dormir ou não dormir?

Uma alternativa à função Sleep() na realização de pausas entre as ações do EA é proposta. A abordagem em consideração permite o uso inteligente do tempo da máquina.
Trabalhando com as funções de rede ou MySQL sem DLL: Parte II - Programa para monitorar as alterações nas propriedades do sinal
Trabalhando com as funções de rede ou MySQL sem DLL: Parte II - Programa para monitorar as alterações nas propriedades do sinal

Trabalhando com as funções de rede ou MySQL sem DLL: Parte II - Programa para monitorar as alterações nas propriedades do sinal

Na parte anterior, nós consideramos a implementação do conector MySQL. Neste artigo, nós consideraremos sua aplicação implementando o serviço para coletar as propriedades do sinal e o programa para visualizar suas alterações ao longo do tempo. O exemplo implementado tem sentido prático se os usuários precisarem observar alterações nas propriedades que não são exibidas na página da web do sinal.
LifeHack para traders: um back-test bem, e quatro melhor
LifeHack para traders: um back-test bem, e quatro melhor

LifeHack para traders: um back-test bem, e quatro melhor

Antes do primeiro teste único, na mente de cada trader surge a mesma pergunta: "Qual dos quatro modos devo usar?" Cada um dos modos oferecidos tem suas vantagens e características, por isso tornamos o trabalho mais fácil, que dizer, executamos todos os modos usando apenas um botão! Este artigo mostra como ver simultaneamente todos os quatro gráficos de teste com ajuda da Win API e um magic pequeno.
Rede em nuvem do MQL5: Você ainda está calculando?
Rede em nuvem do MQL5: Você ainda está calculando?

Rede em nuvem do MQL5: Você ainda está calculando?

Logo fará um ano e meio desde que a Rede em nuvem do MQL5 foi inaugurada. Esse evento inovador nos conduziu para uma era de negócios algorítmicos - agora com poucos cliques, negociadores podem ter centenas e milhares de núcleos de computação a sua disposição para a otimização de suas estratégias de negócios.
Expert Advisor Multiplataforma: Stops
Expert Advisor Multiplataforma: Stops

Expert Advisor Multiplataforma: Stops

Este artigo discute uma implementação dos níveis de stop em um expert advisor para torná-lo compatível com as duas plataformas - MetaTrader 4 e MetaTrader 5.
Criando Filtros Digitais Sem Atraso
Criando Filtros Digitais Sem Atraso

Criando Filtros Digitais Sem Atraso

O artigo descreve uma das abordagens para a determinação de um sinal útil (tendência) num fluxo de dados. Pequenos testes de filtragem (suavização) aplicados às cotações do mercado demonstram o potencial para a criação de filtros digitais sem atrasos (indicadores) que não são redesenhados nas últimas barras.
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte X): Compatibilidade com a MQL4 - Eventos de abertura de posição e ativação de ordens pendentes
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte X): Compatibilidade com a MQL4 - Eventos de abertura de posição e ativação de ordens pendentes

Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte X): Compatibilidade com a MQL4 - Eventos de abertura de posição e ativação de ordens pendentes

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 nona parte, nós começamos a melhorar as classes da biblioteca para trabalhar com a MQL4. Aqui nós continuaremos melhorando a biblioteca para garantir sua total compatibilidade com a MQL4.
Dr. Tradelove ou como parei de me preocupar e criei um Expert Advisor para autotreinamento
Dr. Tradelove ou como parei de me preocupar e criei um Expert Advisor para autotreinamento

Dr. Tradelove ou como parei de me preocupar e criei um Expert Advisor para autotreinamento

Pouco mais de um ano atrás joo, em seu artigo "Genetic Algorithms - It's Easy!", deu-nos uma ferramenta para a implementação do algoritmo genético no MQL5. Agora utilizando a ferramenta que irá criar um Expert Advisor que geneticamente otimiza seus próprios parâmetros em certas condições de contorno...
Monitoramento de sinais de negociação multimoeda (Parte 3): Introdução de algoritmos de busca
Monitoramento de sinais de negociação multimoeda (Parte 3): Introdução de algoritmos de busca

Monitoramento de sinais de negociação multimoeda (Parte 3): Introdução de algoritmos de busca

No artigo anterior, nós desenvolvemos a parte visual do aplicativo, bem como a interação básica dos elementos da GUI. Desta vez, nós adicionaremos a lógica interna e o algoritmo de preparação dos dados do sinal de negociação, bem como a capacidade de configurar os sinais, buscá-los e visualizá-los no monitor.
Interfaces Gráficas V: A Barra de Rolagem Vertical e Horizontal (Capítulo 1)
Interfaces Gráficas V: A Barra de Rolagem Vertical e Horizontal (Capítulo 1)

Interfaces Gráficas V: A Barra de Rolagem Vertical e Horizontal (Capítulo 1)

Nós ainda estamos discutindo o desenvolvimento da biblioteca para a criação de interfaces gráficas no ambiente do MetaTrader. No primeiro artigo da quinta parte da série, nós vamos escrever as classes para as criação da barra de rolagem vertical e horizontal.
Como escrever um cliente nativo Twitter para MetaTrader 4 e MetaTrader 5 sem usar DLL
Como escrever um cliente nativo Twitter para MetaTrader 4 e MetaTrader 5 sem usar DLL

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

Quer receber tweets ou postar seus sinais de negociação no Twitter? Você já não precisará procurar soluções, já que nesta série de artigos, veremos como trabalhar com o Twitter sem usar uma DLL. Juntos implementaremos a Tweeter API usando MQL. No primeiro artigo, começaremos com os recursos de autenticação e autorização da Twitter API.
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.
Redes Neurais Profundas (Parte III). Seleção da amostra e redução de dimensionalidade
Redes Neurais Profundas (Parte III). Seleção da amostra e redução de dimensionalidade

Redes Neurais Profundas (Parte III). Seleção da amostra e redução de dimensionalidade

Este artigo é uma continuação da série de artigos sobre redes neurais profundas. Aqui, nós vamos considerar a seleção de amostras (remoção de ruído), reduzindo a dimensionalidade dos dados de entrada e dividindo o conjunto de dados nos conjuntos de train/val/test durante a preparação dos dados para treinar a rede neural.
Expressões regulares para traders
Expressões regulares para traders

Expressões regulares para traders

As expressões regulares são uma linguagem especial para manipulação de textos de acordo com uma regra definida, às vezes, chamada de padrão ou máscara de expressão regular. Este artigo mostrará como manipular o relatório de negociação usando a biblioteca RegularExpressions para MQL5 e demostrará seus resultados de otimização.
Sistema de notificações de voz de eventos e sinais de negociação
Sistema de notificações de voz de eventos e sinais de negociação

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

Hoje em dia, os assistentes de voz ocupam um papel proeminente na vida humana, seja um navegador, um mecanismo de busca por voz ou um tradutor. Por isso, neste artigo, tentarei desenvolver um sistema simples e compreensível de notificações de voz para diferentes eventos, condições de mercado ou sinais de sistemas de negociação.
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXXIII): solicitações de negociação pendentes, fechamento de posições por condições
Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXXIII): solicitações de negociação pendentes, fechamento de posições por condições

Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXXIII): solicitações de negociação pendentes, fechamento de posições por condições

Continuamos a trabalhar na funcionalidade da biblioteca para negociar usando solicitações pendentes. Nós já implementamos o envio de solicitações pendentes segundo condições para abrir posições e definir ordens pendentes. Hoje criaremos um recurso para fechamento parcial, total e por meio da posição oposta, tudo isso segundo condições.
Trabalhando com séries temporais na biblioteca DoEasy (Parte 37): coleção de séries temporais - banco de dados de séries temporais para símbolos e períodos
Trabalhando com séries temporais na biblioteca DoEasy (Parte 37): coleção de séries temporais - banco de dados de séries temporais para símbolos e períodos

Trabalhando com séries temporais na biblioteca DoEasy (Parte 37): coleção de séries temporais - banco de dados de séries temporais para símbolos e períodos

Este artigo é dedicado à criação de uma coleção de séries temporais com base nos períodos gráficos especificados para todos os símbolos usados no programa. Criaremos uma coleção de séries temporais, os métodos para definir os parâmetros dessas séries e inicialmente as preencheremos com dados históricos.
Lite_EXPERT2.mqh: Exemplos da implementação do Expert Advisor
Lite_EXPERT2.mqh: Exemplos da implementação do Expert Advisor

Lite_EXPERT2.mqh: Exemplos da implementação do Expert Advisor

Neste artigo, o autor continua a familiarizar os leitores com as funções do Lite_EXPERT2.mqh, usando exemplos reais da aplicação do Expert Advisor. O artigo lida com a idéia de usar ordens pendentes flutuantes e ordens pendentes que variam dinamicamente de negócio para negócio, determinados com base nos valores do indicador Average True Range (ATR).
Indicadores personalizados e infográficos no CCanvas
Indicadores personalizados e infográficos no CCanvas

Indicadores personalizados e infográficos no CCanvas

O artigo considera novos tipos de indicadores com uma implementação estrutural mais complexa. Ele também descreve o desenvolvimento de indicadores do tipo pseudo-3D e infográficos dinâmicos.
Usando a Análise Discriminante para Desenvolver Sistemas de Negociação
Usando a Análise Discriminante para Desenvolver Sistemas de Negociação

Usando a Análise Discriminante para Desenvolver Sistemas de Negociação

Ao desenvolver um sistema de negócio, geralmente surgem problemas ao selecionar a melhor combinação de indicadores e seus sinais. A análise discriminante é um dos métodos para encontrar tais combinações. O artigo fornece um exemplo do desenvolvimento de um EA para a coleta de dados do mercado e ilustra o uso da análise discriminante para construir modelos de prognóstico para o mercado FOREX no software Statistica.
Como avaliar os resultados dos testes do Expert
Como avaliar os resultados dos testes do Expert

Como avaliar os resultados dos testes do Expert

O artigo fornece fórmulas e a ordem de cálculo relativas aos dados exibidos no relatório do verificador.
Guia Prático MQL5: Processamento de Eventos Personalizados do Gráfico
Guia Prático MQL5: Processamento de Eventos Personalizados do Gráfico

Guia Prático MQL5: Processamento de Eventos Personalizados do Gráfico

Este artigo considera os aspectos de design e desenvolvimento de eventos personalizados do gráfico no ambiente em MQL5. Um exemplo de uma abordagem para a classificação dos eventos também podem ser encontrados aqui, bem como um código de programação para uma classe de eventos e uma classe de tratamento de eventos personalizados.
Qualidade de Modelagem dos Dados de Um Minuto
Qualidade de Modelagem dos Dados de Um Minuto

Qualidade de Modelagem dos Dados de Um Minuto

Qualidade de Modelagem dos Dados de Um Minuto
Base Teórica da Construção de Indicadores de cluster para FOREX
Base Teórica da Construção de Indicadores de cluster para FOREX

Base Teórica da Construção de Indicadores de cluster para 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 formatação de novas tendências de moeda, receber sinais do mercado e seguir posições de médio e longo prazo.