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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
preview
Desenvolvendo um EA de negociação do zero (Parte 07): Adicionando o Volume At Price (I)

Desenvolvendo um EA de negociação do zero (Parte 07): Adicionando o Volume At Price (I)

Este é um dos indicadores mais poderosos que existe. Para quem opera e tenta ter um certo grau de assertividade, não pode deixar de ter este indicador em seu gráfico, apesar de ele ser mais utilizado por quem opera observando o Fluxo (Tape Reading ) ele também pode ser usado por aqueles que fazem uso apenas do Price Action.
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.
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.
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.
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.
Exemplos de análise de gráficos usando o TD Sequential e os níveis de Murray-Gann
Exemplos de análise de gráficos usando o TD Sequential e os níveis de Murray-Gann

Exemplos de análise de gráficos usando o TD Sequential e os níveis de Murray-Gann

O TD Sequential mostra perfeitamente as mudanças no equilíbrio durante o movimento do preço. Isso é especialmente evidente se usarmos seus sinais juntamente com um indicador de nível, como com os níveis de Murray. Este artigo falará sobre essa combinação. O texto é destinado principalmente a iniciantes e àqueles que ainda não conseguiram encontrar seu "Graal", embora eu mostre alguns recursos de construção de níveis que não vi em outros fóruns. Sendo assim, algumas partes podem ser úteis também para usuários avançados. Por outra parte, quanto aos gurus, eu os convido ao diálogo e à crí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.
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).
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.
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.
Gerenciando otimizações (Parte 2): Cirando a lógica do aplicativo e objetos chave
Gerenciando otimizações (Parte 2): Cirando a lógica do aplicativo e objetos chave

Gerenciando otimizações (Parte 2): Cirando a lógica do aplicativo e objetos chave

Este artigo é uma continuação da publicação anterior sobre a criação de uma interface gráfica para gerenciar otimizações. Nele, abordaremos a lógica do robô para o complemento a ser criado. Criaremos um wrapper que permitirá iniciar o terminal MetaTrader 5 como um processo gerenciado através do C#. Também consideraremos o trabalho com arquivos de configuração. Dividiremos a lógica do programa em duas partes, a primeira descreverá os métodos chamados após pressionar uma tecla específica e a segunda, a parte da inicialização e do gerenciamento de otimizações.
Visualização dos resultados de otimização pelo critério selecionado
Visualização dos resultados de otimização pelo critério selecionado

Visualização dos resultados de otimização pelo critério selecionado

No artigo, continuamos a desenvolver o aplicativo MQL para trabalhar com resultados de otimização que foi iniciado em artigos anteriores. Desta vez, veremos um exemplo em que podemos gerar uma tabela de melhores resultados após a otimização de parâmetros, especificando através da interface gráfica outro critério.
Teoria das probabilidades e estatística matemática com exemplos (Parte I): fundamentos e teoria elementar
Teoria das probabilidades e estatística matemática com exemplos (Parte I): fundamentos e teoria elementar

Teoria das probabilidades e estatística matemática com exemplos (Parte I): fundamentos e teoria elementar

Fazer trading é sempre sobre como tomar decisões diante da incerteza. Isso significa que os resultados das decisões tomadas não são muito óbvios no momento em que são tomadas. Por isso, são importantes as abordagens teóricas para a construção de modelos matemáticos que possibilitem descrever tais situações de maneira significativa.
Modelo de regressão universal para predição do preço do mercado
Modelo de regressão universal para predição do preço do mercado

Modelo de regressão universal para predição do preço do mercado

O preço de mercado é formado pelo estável equilíbrio entre demanda e fornecimento que, por sua vez, depende de uma variedade de fatores econômicos, políticos e psicológicos. As diferenças na natureza também como causas de influência destes fatores dificultam considerar diretamente todos os componentes. Este artigo estabelece uma tentativa de prever o preço de mercado, com base em um modelo de regressão elaborada.
preview
Como ganhar dinheiro realizando pedidos de traders no serviço "Freelance"

Como ganhar dinheiro realizando pedidos de traders no serviço "Freelance"

MQL5 Freelance é um serviço online onde desenvolvedores criam aplicativos de negociação para traders em troca de remuneração. O serviço funciona com sucesso desde 2010: até o momento, mais de 100.000 trabalhos foram realizados, totalizando $7 milhões. Como podemos ver, há bastante dinheiro em circulação aqui.
Usando os Ponteiros de Objeto no MQL5
Usando os Ponteiros de Objeto no MQL5

Usando os Ponteiros de Objeto no MQL5

Predefinidamente, todos os objetos no MQL5 são passados por referência, mas há a possibilidade de usar os ponteiros de objeto. Porém, é necessário realizar a verificação do ponteiro, porque o objeto pode não ser inicializado. Neste caso, o programa MQL5 será finalizado com o erro crítico e descarregado. Os objetos, criados automaticamente, não causam tal erro, então, neste sentido, são bastante seguros. Neste artigo, tentaremos entender a diferença entre a referência do objeto e o ponteiro do objeto, e considere como escrever o código seguro, que usa os ponteiros.
Análise das principais características da série temporal
Análise das principais características da série temporal

Análise das principais características da série temporal

Este artigo introduz uma classe projetada para dar uma rápida estimativa preliminar das características de várias séries de tempo. Conforme isso ocorre, os parâmetros estatísticos e a função de autocorrelação são estimados. Uma estimativa espectral das séries de tempo é realizada e um histograma é construído.
Expert Advisor Universal: Integração com os Módulos de Sinais Padrão do MetaTrader (parte 7)
Expert Advisor Universal: Integração com os Módulos de Sinais Padrão do MetaTrader (parte 7)

Expert Advisor Universal: Integração com os Módulos de Sinais Padrão do MetaTrader (parte 7)

Esta parte do artigo descreve as possibilidades de integração do motor CStrategy com os módulos de sinais incluídos na biblioteca padrão no MetaTrader. O artigo descreve como trabalhar com sinais, assim como demonstra uma forma de criar estratégias personalizadas com base nas mesmas.
Construção de um Expert Advisor utilizando módulos independentes
Construção de um Expert Advisor utilizando módulos independentes

Construção de um Expert Advisor utilizando módulos independentes

Ao desenvolver indicadores, Expert Advisors e scripts, os desenvolvedores geralmente precisam criar vários trechos de código, que não estão diretamente relacionados à estratégia de negociação. Neste artigo, nós consideramos uma maneira de criar Expert Advisors usando blocos criados anteriormente, como código de stops móveis, filtros e de horários, entre outros. Nós veremos os benefícios dessa abordagem de programação.
Sistema de negociação 'Turtle Soup' e sua modificação 'Turtle Soup Plus One'
Sistema de negociação 'Turtle Soup' e sua modificação 'Turtle Soup Plus One'

Sistema de negociação 'Turtle Soup' e sua modificação 'Turtle Soup Plus One'

No artigo regras de estratégias de negociação formalizadas e programadas Turtle Soup e Turtle Soup Plus One a partir do livro de Linda Raschke e Laurence Connors Street Smarts: High Probability Short-Term Trading Strategies. As estratégias descritas no livro receberam uma ampla acolhida, no entanto é importante entender que os autores conceberam suas ideias com base no comportamento do mercado de há 15-20 anos.
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.
Como exportar cotações do MetaTrader5 para aplicações .NET usando serviços WCF
Como exportar cotações do MetaTrader5 para aplicações .NET usando serviços WCF

Como exportar cotações do MetaTrader5 para aplicações .NET usando serviços WCF

Quer organizar a exportação de cotas do MetaTrader 5 para sua própria aplicação? A junção MQL5-DLL permite criar essas soluções! Este artigo mostrará a você um dos meios de exportação de cotas do MetaTrader 5 para aplicações escritas no .NET. Para mim, é mais interessante, racional e fácil implementar a exportação de cotas usando esta mesma plataforma. Infelizmente, a versão 5 ainda não suporta .NET, então, como antigamente, usaremos o win32 dll com suporte .NET como intercamada.
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.
Como preparar cotações do MetaTrader 5 para outros aplicativos
Como preparar cotações do MetaTrader 5 para outros aplicativos

Como preparar cotações do MetaTrader 5 para outros aplicativos

O artigo descreve os exemplos de criação de diretórios, cópia de dados, arquivamento, trabalho com símbolos no Market Watch ou a lista comum, bem como os exemplos de tratamento de erros, etc. Todos estes elementos podem eventualmente ser reúnidos em um simples script para arquivamento de dados em um formato definido pelo usuário.