Artigos com exemplos de como programar na linguagem MQL5

icon

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

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

Novo artigo
recentes | melhores
Usando Pseudo-modelos como Alternativa para Modelos C++
Usando Pseudo-modelos como Alternativa para Modelos C++

Usando Pseudo-modelos como Alternativa para Modelos C++

O artigo descreve uma forma de programação sem usar templates, mas mantendo o estilo de programação inerente a eles. Ele nos diz sobre a implementação de templares usando métodos personalizados e possui um script pronto para uso anexo para criação de código com base de templates especificados.
Análise estatística dos movimentos de mercado e seu prognóstico
Análise estatística dos movimentos de mercado e seu prognóstico

Análise estatística dos movimentos de mercado e seu prognóstico

O presente artigo contempla as amplas oportunidades da abordagem estatística ao marketing. Infelizmente, traders iniciantes falham deliberadamente em aplicar a ciência realmente poderosa da estatística. Enquanto isso, é a única coisa que eles usam subconscientemente ao analisar o mercado. Além disso, a estatística pode dar respostas a muitas perguntas.
Lógica difusa na negociação via MQL4
Lógica difusa na negociação via MQL4

Lógica difusa na negociação via MQL4

Este artigo apresenta exemplos que tratam de como os recursos MQL4 aplicam a teoria de conjuntos difusos na negociação. Além disso, descreve o desenvolvimento de indicador e Expert Advisor, usando a biblioteca FuzzyNet para MQL4.
Gráficos na biblioteca DoEasy (Parte 88): coleção de objetos gráficos, matriz dinâmica bidimensional para armazenar propriedades de objetos que mudam dinamicamente
Gráficos na biblioteca DoEasy (Parte 88): coleção de objetos gráficos, matriz dinâmica bidimensional para armazenar propriedades de objetos que mudam dinamicamente

Gráficos na biblioteca DoEasy (Parte 88): coleção de objetos gráficos, matriz dinâmica bidimensional para armazenar propriedades de objetos que mudam dinamicamente

Neste artigo, criaremos uma classe de matriz multidimensional dinâmica com a capacidade de alterar a quantidade de dados em qualquer dimensão. Com base na classe criada, criaremos uma matriz dinâmica bidimensional para armazenar algumas propriedades alteradas dinamicamente de objetos gráficos.
Estudando a Classe CCanvas. Anti-aliasing e Sombras
Estudando a Classe CCanvas. Anti-aliasing e Sombras

Estudando a Classe CCanvas. Anti-aliasing e Sombras

Um algoritmo anti-aliasing da classe CCanvas é a base para todas as construções onde o antisserrilhamento está sendo usado. O artigo contém informações sobre como este algoritmo opera e fornece exemplos relevantes de visualização. Ele também abrange as sombras desenhadas dos objetos gráficos e tem um algoritmo detalhadamente desenvolvido para desenhar sombras nas canvas. A análise numérica da biblioteca ALGLIB é usada para os cálculos.
Interfaces Gráficas IX: O Controle Seletor de Cores (Capítulo 1)
Interfaces Gráficas IX: O Controle Seletor de Cores (Capítulo 1)

Interfaces Gráficas IX: O Controle Seletor de Cores (Capítulo 1)

Com este artigo, nós começamos o capítulo nove da série de artigos dedicados à criação das interfaces gráficas nos terminais de negociação MetaTrader. Ele consiste de dois capítulos onde são apresentados os novos elementos do controle da interface, tais como o seletor de cores, o botão do seletor de cores, a barra de progresso e o gráfico de linha.
preview
Guia Prático MQL5 — Serviços

Guia Prático MQL5 — Serviços

O artigo descreve os recursos versáteis dos serviços — programas em MQL5 que não necessitam de gráficos para serem anexados. Eu ambém destacarei as diferenças dos serviços de outros programas em MQL5 e enfatizarei as nuances do trabalho do desenvolvedor com os serviços. Como exemplos, são oferecidas ao leitor várias tarefas que abrangem uma ampla gama de funcionalidades que podem ser implementadas como um serviço.
preview
Redes Neurais de Maneira Fácil (Parte 9): Documentação do trabalho

Redes Neurais de Maneira Fácil (Parte 9): Documentação do trabalho

Nós já percorremos um longo caminho e o código em nossa biblioteca está se tornando cada vez maior. Isso torna difícil controlar todas as conexões e dependências. Portanto, eu sugiro criar uma documentação para o código criado anteriormente e mantê-lo atualizado a cada nova etapa. A documentação devidamente preparada nos ajudará a ver a integridade do nosso trabalho.
Como Lidar Com o Erro 146, ("Trade context busy")
Como Lidar Com o Erro 146, ("Trade context busy")

Como Lidar Com o Erro 146, ("Trade context busy")

O artigo trata sem conflito a negociação de vários Experts em um único Terminal Cliente МТ 4. Ele será útil para aqueles que possuem o básico dos comandos para se trabalhar com o terminal e a programação em MQL 4.
preview
Receitas MQL5: Calendário Econômico

Receitas MQL5: Calendário Econômico

Este artigo se trata das funcionalidades programáticas usadas ao trabalhar usando o calendário econômico. Para implementá-las, criaremos uma classe para facilitar o acesso às propriedades do calendário e receber valores de eventos. Como exemplo prático, programaremos um indicador que utiliza dados da CFTC sobre as posições líquidas de especuladores.
Modificando os parâmetros externos dos programas MQL4 sem reiniciá-los
Modificando os parâmetros externos dos programas MQL4 sem reiniciá-los

Modificando os parâmetros externos dos programas MQL4 sem reiniciá-los

O artigo descreve um método para modificar os parâmetros externos de programas MQL4 enquanto estão em funcionamento, sem reiniciá-los.
preview
Algoritmos de otimização populacionais: Otimizador lobo-cinzento (GWO)

Algoritmos de otimização populacionais: Otimizador lobo-cinzento (GWO)

Vamos falar sobre um dos algoritmos de otimização mais recentes e modernos: o "Packs of grey wolves" (manada de lobos-cinzentos). Devido ao seu comportamento distinto em funções de teste, este algoritmo se torna um dos mais interessantes em comparação com outros considerados anteriormente. Ele é um dos principais candidatos para treinamento de redes neurais e para otimizar funções suaves com muitas variáveis.
Lendo Feeds de Notícias RSS Via MQL4
Lendo Feeds de Notícias RSS Via MQL4

Lendo Feeds de Notícias RSS Via MQL4

Este artigo mostra um exemplo da leitura de RSS via MQL4 utilizando as funções para análise de tags HTML. Vamos tentar fazer uma peça de trabalho que pode então ser transformada num indicador de notícias ou apenas um leitor na linguagem MQL4.
Interfaces Gráficas II: Os Elementos Linha de Separação e o Menu de Contexto (Capítulo 2)
Interfaces Gráficas II: Os Elementos Linha de Separação e o Menu de Contexto (Capítulo 2)

Interfaces Gráficas II: Os Elementos Linha de Separação e o Menu de Contexto (Capítulo 2)

Neste artigo, nós vamos criar o elemento linha de separação. Será possível usá-lo não só como um elemento de interface independentes, mas também como uma parte de diversos outros elementos. Depois disso, nós teremos todos os recursos necessários para o desenvolvimento da classe do menu de contexto, que também serão considerados neste artigo em detalhe. Acrescentando, nós vamos apresentar todos os incrementos necessários à classe, que é a base para armazenar os ponteiros para todos os elementos da interface gráfica da aplicação.
Interfaces Gráficas V: O Controle Lista (Capítulo 2)
Interfaces Gráficas V: O Controle Lista (Capítulo 2)

Interfaces Gráficas V: O Controle Lista (Capítulo 2)

No capítulo anterior, nós escrevemos as classes para criar a barra de rolagem vertical e horizontal. Neste capítulo, nós vamos implementá-las. Nós vamos escrever uma classe para criar o controle lista, sendo que a barra de rolagem vertical será sua parte integrante.
Construção de linhas fractais
Construção de linhas fractais

Construção de linhas fractais

O artigo descreve a construção de linhas fractais de vários tipos através do uso de linhas de tendência e fractais.
Interfaces Gráficas XI: Refatoração do código da biblioteca (build 14.1)
Interfaces Gráficas XI: Refatoração do código da biblioteca (build 14.1)

Interfaces Gráficas XI: Refatoração do código da biblioteca (build 14.1)

À medida que a biblioteca cresce, seu código deve ser otimizado novamente para reduzir o seu tamanho. A versão da biblioteca descrita neste artigo tornou-se ainda mais orientada a objetos. Isso tornou o código mais amigável para o aprendizado. Uma descrição detalhada das últimas mudanças permitirá que os leitores desenvolvam a biblioteca de maneira independentemente de acordo com suas próprias necessidades.
Expert Advisor gráfico: AutoGraf
Expert Advisor gráfico: AutoGraf

Expert Advisor gráfico: AutoGraf

O artigo mostra a operacionalidade de gráficos na criação de uma interface conveniente para o gerenciamento de transações.
preview
Multibot no MetaTrader: lançando vários robôs a partir de um único gráfico

Multibot no MetaTrader: lançando vários robôs a partir de um único gráfico

Neste artigo, veremos um modelo simples para a criação de um robô universal no MetaTrader que pode ser usado em vários gráficos, mas que é fixado em apenas um gráfico, sem a necessidade de configurar cada instância do robô em cada gráfico individual.
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.
Interfaces Gráficas II: O Elemento Menu Principal (Capítulo 4)
Interfaces Gráficas II: O Elemento Menu Principal (Capítulo 4)

Interfaces Gráficas II: O Elemento Menu Principal (Capítulo 4)

Este é o capítulo final da segunda parte da série sobre interfaces gráficas. Aqui, nós vamos estudar a criação do menu principal. Demonstraremos neste artigo o desenvolvimento deste controle e a configuração dos manipuladores das classes da biblioteca para que ele tenha uma reação correta para as ações do usuário. Nós também vamos discutir como anexar os menus de contexto para os elementos do menu principal. Além disso, nós vamos mencionar a questão do bloqueio dos elementos inativos atualmente.
Expert Advisor para Negociação no Canal
Expert Advisor para Negociação no Canal

Expert Advisor para Negociação no Canal

O Expert Advisor desenha linhas para formar um canal. As linhas de canal superior e inferior atuam como níveis de suporte e resistência. O Expert Advisor marca pontos de referência, fornece notificação sonora toda vez que o preço atinge ou cruza as linhas do canal e desenha os símbolos dos pontos principais. Após a formação do fractal, as setas correspondentes aparecem nas últimas barras. Linhas de rompimentos podem sugerir a possibilidade de uma tendência crescente. O Expert Advisor é amplamente comentado em toda a sua extensão.
Integrando o terminal do cliente do MetaTrader 4 com o MS SQL SERVER
Integrando o terminal do cliente do MetaTrader 4 com o MS SQL SERVER

Integrando o terminal do cliente do MetaTrader 4 com o MS SQL SERVER

O artigo dá um exemplo de integração do terminal do cliente do MetaTrader 4 com o MS SQL SERVER usando um dll. Em anexo estão ambos os códigos fontes em C ++ e no MQL4, e um projeto pronto e compilado Visual C++ 6.0 SP5.
Interfaces gráficas X: Seleção de texto na caixa de texto multilinha (build 13)
Interfaces gráficas X: Seleção de texto na caixa de texto multilinha (build 13)

Interfaces gráficas X: Seleção de texto na caixa de texto multilinha (build 13)

Este artigo implementará a possibilidade de selecionar o texto usando várias combinações de teclas e excluir o texto selecionado, da mesma maneira que é feito em outros editores de texto. Além disso, vamos continuar com a otimização do código e prepararemos as classes para avançar para o processo final do segundo estágio da evolução da biblioteca, onde todos os controles serão renderizados como imagens separadas (telas).
Alert e Comment para Indicadores Externos (Parte II)
Alert e Comment para Indicadores Externos (Parte II)

Alert e Comment para Indicadores Externos (Parte II)

Desde que publiquei o artigo "Alert e Comment para indicadores externos", tenho recebido pedidos e perguntas a respeito da possibilidade de desenvolver uma operação baseada em informação externa com linhas de indicador, tendo analisado as perguntas, eu decidi continuar com o assunto. Os dados armazenados em buffers de indicador acabaram despertando outra área de interesse dos usuários.
Algoritmos de média eficiente com lag mínimo: Uso em indicadores
Algoritmos de média eficiente com lag mínimo: Uso em indicadores

Algoritmos de média eficiente com lag mínimo: Uso em indicadores

O artigo descreve funções personalizadas de alta qualidade de cálculo da média desenvolvidas pelo autor: JJMASeries(), JurXSeries(), JLiteSeries(), ParMASeries(), LRMASeries(), T3Series(). O artigo também trata da aplicação das funções acima em indicadores. O autor apresenta uma rica biblioteca de indicadores com base no uso dessas funções.
Análise Fractal dos Movimentos Conjuntos de Moedas
Análise Fractal dos Movimentos Conjuntos de Moedas

Análise Fractal dos Movimentos Conjuntos de Moedas

O quanto independente são as cotações das moedas? São os seus movimentos coordenados ou não? O movimento de uma moeda sugere o movimento de outra? O artigo tenta resolver esta questão usando uma dinâmica não-linear e métodos geométricos fractais.
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.
LibMatrix: Biblioteca de Álgebra Matricial (Parte I)
LibMatrix: Biblioteca de Álgebra Matricial (Parte I)

LibMatrix: Biblioteca de Álgebra Matricial (Parte I)

O autor familiariza os leitores com uma simples biblioteca de álgebra matricial e fornece descrições e peculiaridades das principais funções.
Eliminação de DLLs autogeradas
Eliminação de DLLs autogeradas

Eliminação de DLLs autogeradas

Se a linguagem MQL5 funcional não é suficiente para o cumprimento de tarefas, um programador MQL5 tem que usar ferramentas adicionais. Ele \ ela tem que passar para outra linguagem de programação e criar uma DLL intermediária. O MQL5 tenha a possibilidade de apresentar vários tipos de dados e transferí-los à API mas, infelizmente o MQL5 não pode resolver a questão levando em consideração a extração de dados do ponteiro aceito. Neste artigo vamos pontuar todos os "i"s e mostrar mecanismos simples de transferência e trabalho tipos complexos de dados.
preview
Indicadores múltiplos em um gráfico (Parte 03): Desenvolvendo definições para usuários

Indicadores múltiplos em um gráfico (Parte 03): Desenvolvendo definições para usuários

Primeira atualização nas funcionalidades no sistema indicador. No artigo anterior Indicadores múltiplos em um gráfico eu expliquei o código base para poder usar mais de um indicador dentro de uma sub janela, mas aquilo que foi apresentado foi apenas a base inicial de um sistema muito maior.
preview
Como adicionar Trailing Stop com o indicador Parabolic SAR

Como adicionar Trailing Stop com o indicador Parabolic SAR

Ao criar uma estratégia de negociação, precisamos testar diversas opções de stops de proteção. Aqui, surge a ideia de ajustar dinamicamente o nível do Stop Loss acompanhando o movimento do preço. O melhor candidato para isso é o indicador Parabolic SAR, porque é difícil pensar em algo mais simples e claro.
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte IX): Compatibilidade com a MQL4 - Preparação dos dados
Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte IX): Compatibilidade com a MQL4 - Preparação dos dados

Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte IX): Compatibilidade com a MQL4 - Preparação dos dados

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 oitava parte, nós implementamos a classe para monitorar os eventos de modificação de ordens e posições. Aqui, nós melhoraremos a biblioteca tornando-a totalmente compatível com a MQL4.
Eventos no MetaTrader 4
Eventos no MetaTrader 4

Eventos no MetaTrader 4

O artigo trata do monitoramento programado de eventos no terminal do cliente do MetaTrader 4, como a abertura/fechamento/modificação de pedidos, e é destinado a um usuário que possua habilidades básicas no trabalho com o terminal e em programação em MQL4.
Envio de sinais de negociação em um expert advisor universal
Envio de sinais de negociação em um expert advisor universal

Envio de sinais de negociação em um expert advisor universal

O artigo descreve formas de envio de sinais a partir de uma unidade de programa de sinal de um expert advisor universal para a unidade de controle de posições e pedidos. Ele trata de interfaces seriais e paralelas.
A matemática do mercado: lucro, prejuízo e custos
A matemática do mercado: lucro, prejuízo e custos

A matemática do mercado: lucro, prejuízo e custos

Neste artigo, eu mostrarei como calcular o lucro ou prejuízo total de qualquer negociação, incluindo comissão e swap. Eu fornecerei o modelo matemático mais preciso e o usarei para escrever o código e compará-lo com o padrão. Além disso, eu também tentarei entrar na função principal da MQL5 para calcular o lucro e chegar ao fundo de todos os valores necessários da especificação.
Operações de arquivo via WinAPI
Operações de arquivo via WinAPI

Operações de arquivo via WinAPI

O ambiente do MQL4 é baseado no conceito seguro de "sandbox": ler e salvar arquivos usando a linguagem é permitido somente em algumas pastas pré-definidas Isso protege o usuário do MetaTrader 4 do perigo em potencial de danificar dados importantes no HDD. Entretanto, às vezes, é necessário deixar essa área segura. Esse artigo dedica-se ao problema de como fazer isso facilmente e de forma correta.
Exibição dos níveis de apoio/resistência
Exibição dos níveis de apoio/resistência

Exibição dos níveis de apoio/resistência

O artigo trata da detecção e indicação dos níveis de apoio/resistência no programa MetaTrader 4. O indicador conveniente e universal é baseado em um algoritmo simples. O artigo lida com um tópico bastante útil: a criação de um indicador simples, capaz de exibir os resultados de diferentes períodos de tempo em um espaço de trabalho.
Expert Advisor MetaTrader 4 para Intercâmbio de Informações com o Mundo Exterior
Expert Advisor MetaTrader 4 para Intercâmbio de Informações com o Mundo Exterior

Expert Advisor MetaTrader 4 para Intercâmbio de Informações com o Mundo Exterior

Uma solução simples, universal e confiável de intercâmbio de informações entre um Expert Advisor МetaТrader 4 e o mundo exterior. Fornecedores e consumidores de informações podem estar localizados em diferentes computadores, a conexão é realizada através dos endereços IPs globais.
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.