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
Trabalhando com séries temporais na biblioteca DoEasy (Parte 45): buffers de indicador multiperíodo
Trabalhando com séries temporais na biblioteca DoEasy (Parte 45): buffers de indicador multiperíodo

Trabalhando com séries temporais na biblioteca DoEasy (Parte 45): buffers de indicador multiperíodo

Neste artigo, começaremos a modificar os objetos-buffers de indicador e a classe da coleção de buffers para trabalhar nos modos multiperíodo e multissímbolo. Veremos o funcionamento dos objetos-buffers para receber e exibir dados de qualquer timeframe no gráfico do símbolo atual.
preview
Reamostragem avançada e seleção de modelos CatBoost pelo método de força bruta

Reamostragem avançada e seleção de modelos CatBoost pelo método de força bruta

Este artigo descreve uma das possíveis abordagens para a transformação de dados com o objetivo de melhorar a generalização do modelo, ele também discute a amostragem e seleção dos modelos CatBoost.
preview
Trabalhando com séries temporais na biblioteca DoEasy (Parte 57): objeto de dados do buffer do indicador

Trabalhando com séries temporais na biblioteca DoEasy (Parte 57): objeto de dados do buffer do indicador

Neste artigo, veremos um objeto que conterá todos os dados de um buffer de um indicador. Tais objetos serão necessários para armazenar dados seriais de buffers de indicadores, e com a ajuda dos quais será possível classificar e comparar dados de buffers de quaisquer indicadores e outros dados semelhantes entre si.
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.
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.
preview
Letreiro de Cotação — Versão Básica

Letreiro de Cotação — Versão Básica

Aqui irei mostrar como criar aquelas faixas, normalmente usadas para mostrar cotações no caso das plataformas, mas usando pura e simplesmente MQL5, nada de programação externa complicada ou cheia de frescura.
preview
Matrizes e vetores em MQL5: funções de ativação

Matrizes e vetores em MQL5: funções de ativação

Neste artigo, descrevemos apenas um aspecto do aprendizado de máquina, em particular as funções de ativação. Em redes neurais artificiais, a função de ativação de neurônio calcula o valor de um sinal de saída com base nos valores de um sinal de entrada ou de um conjunto de sinais de entrada. Vamos mergulhar nos detalhes internos do processo.
Padrões disponíveis para negociação de cestas de moedas. Parte III
Padrões disponíveis para negociação de cestas de moedas. Parte III

Padrões disponíveis para negociação de cestas de moedas. Parte III

Este é o artigo final dedicado aos padrões que ocorrem ao negociar cestas de pares moedas (portfólio). Ele considera indicadores de tendência combinados e a aplicação de construções gráficas padrão.
Interfaces Gráficas II: Configuração dos manipuladores de eventos da Biblioteca (Capítulo 3)
Interfaces Gráficas II: Configuração dos manipuladores de eventos da Biblioteca (Capítulo 3)

Interfaces Gráficas II: Configuração dos manipuladores de eventos da Biblioteca (Capítulo 3)

Os artigos anteriores contêm a implementação das classes para criar os componentes do menu principal. Agora, está na hora de olharmos com mais atenção os manipuladores de eventos nas classes base principais e dos controles criados. Nós também prestaremos uma atenção especial na gestão do estado do gráfico, dependendo da localização do cursor do mouse.
Melhorando o reconhecimento de padrões de velas por meio de velas Doji
Melhorando o reconhecimento de padrões de velas por meio de velas Doji

Melhorando o reconhecimento de padrões de velas por meio de velas Doji

Como encontrar padrões de velas com mais frequência do que o habitual. Por trás da simplicidade dos padrões de velas, há também uma séria desvantagem que pode ser evitada usando os abundantes recursos das modernas ferramentas de automação de negociação.
preview
Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 1): Análise de regressão

Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 1): Análise de regressão

O trader moderno está quase sempre procurando novas ideias, consciente ou inconscientemente. Ele está constantemente tentando novas estratégias, modificando-as e descartando aquelas que não funcionam. Este processo de pesquisa é demorado e propenso a erros. Nesta série de artigos, tentarei provar que o assistente MQL5 é um verdadeiro suporte para qualquer operador. Graças ao assistente, o trader economiza tempo ao implementar suas ideias. Também reduz a probabilidade de erros que ocorrem ao duplicar o código. Assim, em vez de perder tempo com codificação, os operadores colocam em prática sua filosofia de negociação.
preview
Conjunto de ferramentas para marcação manual de gráficos e negociação (Parte III). Otimização e novas ferramentas

Conjunto de ferramentas para marcação manual de gráficos e negociação (Parte III). Otimização e novas ferramentas

Desenvolveremos o tema do desenho de objetos gráficos em gráficos usando atalhos de teclado. Foram acrescentadas novas ferramentas à biblioteca, em particular uma linha reta, que atravessa máximos arbitrários, e um conjunto de retângulos que permitem estimar tanto o nível quanto o tempo de reversão. Também veremos a possibilidade de otimizar o código para melhorar o desempenho. O exemplo de implementação será reescrito como um indicador, o que tornará possível definir Shortcuts junto com outros programas de negociação. O nível de proficiência do código está um pouco acima do nível de iniciante.
Interfaces Gráficas X: Novos recursos para a tabela Renderizada (build 9)
Interfaces Gráficas X: Novos recursos para a tabela Renderizada (build 9)

Interfaces Gráficas X: Novos recursos para a tabela Renderizada (build 9)

Até agora, o tipo mais avançado de tabelas já desenvolvido em nossa biblioteca foi a CTable. Esta tabela é montada a partir de caixas de edição do tipo OBJ_EDIT, e seu posterior desenvolvimento tornou-se problemático. Portanto, em termos de capacidades máximas, é melhor desenvolver tabelas renderizadas do tipo CCanvasTable mesmo no atual estágio de desenvolvimento da biblioteca. Sua versão atual está completamente inerte, mas a partir deste artigo, nós vamos tentar corrigir esta situação.
Interfaces Gráficas VIII: O Controle Lista Hierárquica (Capítulo 2)
Interfaces Gráficas VIII: O Controle Lista Hierárquica (Capítulo 2)

Interfaces Gráficas VIII: O Controle Lista Hierárquica (Capítulo 2)

O capítulo anterior da parte VIII da série Interfaces Gráficas, nós focamos sobre os elementos do calendário estático e suspenso. O segundo capítulo será dedicado a um elemento igualmente complexo - uma lista hierárquica, que está incluída em cada biblioteca multifuncional, usada para a criação de interfaces gráficas. A lista hierárquica implementada neste artigo contém várias configurações flexíveis e modos, permitindo assim ajustar este elemento de controle às suas necessidades.
preview
Usando o AutoIt com MQL5

Usando o AutoIt com MQL5

Este artigo descreve como criar scripts para o terminal MetraTrader 5, integrando MQL5 com AutoIt. Vou mostrar como automatizar várias tarefas usando a interface do usuário do terminal e apresentar uma classe que usa a biblioteca AutoItX.
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.
preview
Trabalhando com o tempo (Parte 2): funções

Trabalhando com o tempo (Parte 2): funções

Vamos aprender a reconhecer automaticamente as diferenças de tempo junto à corretora, bem como o Tempo Médio de Greenwich. Em vez de preguntar à corretora, que provavelmente dará uma resposta imprecisa (e quem quer explicar onde está o horário de negociação?), seremos nós mesmos a ver a que horas ela recebe as cotações nas semanas em que os fusos horários são trocados. Mas é claro que não vamos fazer isso manualmente, deixaremos o software fazer o trabalho por nós.
preview
Operações com Matrizes e Vetores em MQL5

Operações com Matrizes e Vetores em MQL5

Matrizes e vetores foram introduzidos na MQL5 para operações eficientes com soluções matemáticas. Os novos tipos oferecem métodos integrados para a criação de código conciso e compreensível que se aproxima da notação matemática. Os arrays fornecem recursos extensos, mas há muitos casos em que as matrizes são muito mais eficientes.
Combinatória e teoria da probabilidade para negociação (Parte IV): lógica de Bernoulli
Combinatória e teoria da probabilidade para negociação (Parte IV): lógica de Bernoulli

Combinatória e teoria da probabilidade para negociação (Parte IV): lógica de Bernoulli

Neste artigo decidi destacar o conhecido esquema Bernoulli e mostrar como este pode ser usado ao descrever uma matriz de dados relacionados ao trading, para uso posterior no caminho à criação de um sistema de negociação auto-adaptável. Também manusearemos um algoritmo mais geral, nomeadamente a fórmula de Bernoulli e encontraremos sua aplicação.
preview
Redes Neurais de Maneira Fácil (Parte 11): Uma visão sobre a GPT

Redes Neurais de Maneira Fácil (Parte 11): Uma visão sobre a GPT

Talvez um dos modelos mais avançados entre as redes neurais de linguagem atualmente existentes seja a GPT-3, cuja variante máxima contém 175 bilhões de parâmetros. Claro, nós não vamos criar tal monstro em nossos PCs domésticos. No entanto, nós podemos ver quais soluções arquitetônicas podem ser usadas em nosso trabalho e como nós podemos nos beneficiar delas.
preview
Redes neurais de maneira fácil (Parte 51): ator-crítico comportamental (BAC)

Redes neurais de maneira fácil (Parte 51): ator-crítico comportamental (BAC)

Nos últimos dois artigos, discutimos o algoritmo Soft Actor-Critic, que incorpora regularização de entropia na função de recompensa. Essa abordagem permite equilibrar a exploração do ambiente e a exploração do modelo, mas é aplicável apenas a modelos estocásticos. Neste artigo, exploraremos uma abordagem alternativa que é aplicável tanto a modelos estocásticos quanto determinísticos.
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.
preview
Desenvolvendo um EA de negociação do zero (Parte 24): Dado robustez ao sistema (I)

Desenvolvendo um EA de negociação do zero (Parte 24): Dado robustez ao sistema (I)

Neste artigo iremos deixar o sistema mais robusto, de forma que ele fique mais estável e seguro de ser usado. Uma das formas de se conseguir robustez é procuramos reutilizar ao máximo o código, desta forma ele será testado o tempo todo e em diversas ocasiões diferente, mas esta é apenas uma das formas, outra forma é o uso da programação OOP.
Trabalhando com preços na biblioteca DoEasy (Parte 62): atualização em tempo real da série de ticks, preparação para trabalhar com o livro de ofertas
Trabalhando com preços na biblioteca DoEasy (Parte 62): atualização em tempo real da série de ticks, preparação para trabalhar com o livro de ofertas

Trabalhando com preços na biblioteca DoEasy (Parte 62): atualização em tempo real da série de ticks, preparação para trabalhar com o livro de ofertas

Neste artigo, atualizaremos em tempo real da coleção de dados de ticks e prepararemos a classe do objeto-símbolo para trabalhar com o livro de ofertas, cujo funcionamento abordaremos no próximo artigo.
preview
Como desenvolver um sistema de negociação baseado no indicador SAR Parabólico

Como desenvolver um sistema de negociação baseado no indicador SAR Parabólico

Neste artigo, nós continuaremos nossa série sobre como projetar um sistema de negociação usando os indicadores mais populares. Neste artigo, nós aprenderemos detalhadamente sobre o indicador SAR Parabólico e como nós podemos projetar um sistema de negociação para ser usado na MetaTrader 5 usando algumas estratégias simples.
preview
Aprendendo a construindo um Expert Advisor que opera de forma automática (Parte 10): Automação (II)

Aprendendo a construindo um Expert Advisor que opera de forma automática (Parte 10): Automação (II)

Automação não é nada sem que você consiga controlar o horário. Nenhum trabalhador consegue ser eficiente trabalhando 24 horas. No entanto, muitos acreditam que um sistema automático deva trabalhar 24 horas. Mas é sempre bom que você tenha meios de configurar um range de horário para o Expert Advisor. Neste artigo iremos tratar disto. Como adicionar adequadamente uma faixa de horário.
preview
Como se tornar um provedor de sinais bem-sucedido na MQL5.com

Como se tornar um provedor de sinais bem-sucedido na MQL5.com

O principal objetivo deste artigo é fornecer a você uma maneira simples e passo a passo de se tornar o melhor provedor de sinais na MQL5.com. A partir do meu conhecimento e experiência, explicarei o que é necessário para se tornar um provedor de sinais bem-sucedido, inclusive como encontrar, testar e otimizar uma boa estratégia. Além disso, darei dicas sobre como publicar seu sinal, escrever uma descrição convincente e promover e gerenciar de forma eficaz.
preview
Desenvolvendo um EA de negociação do zero (Parte 30): CHART TRADE agora como indicador ?!

Desenvolvendo um EA de negociação do zero (Parte 30): CHART TRADE agora como indicador ?!

Trazendo o Chart Trade de volta a ativa ... mas agora ele será um indicador e poderá ou não estar presente no gráfico.
Negócios sociais com as plataformas de negócios MetaTrader 4 e MetaTrader 5
Negócios sociais com as plataformas de negócios MetaTrader 4 e MetaTrader 5

Negócios sociais com as plataformas de negócios MetaTrader 4 e MetaTrader 5

O que são negócios sociais? São uma cooperação mútua benéfica entre negociadores e investidores pelo meio dos quais negociadores de sucesso permitem o monitoramento de suas negociações e investidores em potencial aproveitam a oportunidade de monitorar seus desempenhos e copiar negociações daqueles que parecerem mais promissores.
preview
Redes neurais de maneira fácil (Parte 29): Algoritmo ator-crítico de vantagem (Advantage actor-critic)

Redes neurais de maneira fácil (Parte 29): Algoritmo ator-crítico de vantagem (Advantage actor-critic)

Nos artigos anteriores desta série, conhecemos 2 algoritmos de aprendizado por reforço. Cada um deles tem suas próprias vantagens e desvantagens. Como costuma acontecer quando nos deparamos com esses casos, surge a ideia de combinar os dois métodos em um algoritmo que incorpore o melhor dos dois. E assim compensar as deficiências de cada um deles. Falaremos sobre tal combinação de métodos neste artigo.
preview
Domine e utilize o testador de estratégias MQL5 de forma eficiente

Domine e utilize o testador de estratégias MQL5 de forma eficiente

Os desenvolvedores MQL5 devem dominar diversas ferramentas essenciais. Entre elas, destaca-se o testador de estratégias. Este artigo serve como um guia prático para a utilização do testador de estratégias MQL5.
preview
Desenvolvendo um EA de negociação do zero (Parte 25): Dado robustez ao sistema (II)

Desenvolvendo um EA de negociação do zero (Parte 25): Dado robustez ao sistema (II)

Aqui vamos terminar de dar uma alavancada na performance do EA ... então preparem-se para uma longa leitura. A primeira coisa que iremos fazer para dar robustez ao nosso EA será retirar tudo e absolutamente tudo que não faça parte do sistema de negociação de entro do código.
preview
Análise de ciclos usando o algoritmo de Goertzel

Análise de ciclos usando o algoritmo de Goertzel

Neste artigo, são apresentados utilitários que implementam o algoritmo de Goertzel em MQL5 e duas maneiras de aplicar esse método na análise de cotações de preços para o desenvolvimento de estratégias.
Como desenvolver um sistema de negociação baseado no indicador ADX
Como desenvolver um sistema de negociação baseado no indicador ADX

Como desenvolver um sistema de negociação baseado no indicador ADX

Neste artigo, nós continuaremos nossa série sobre como projetar um sistema de negociação usando os indicadores mais populares e falaremos sobre o indicador Índice Direcional Médio (ADX). Nós aprenderemos este indicador em detalhes para entendê-lo bem e aprenderemos como usá-lo através de uma estratégia simples. Ao aprender algo profundamente, nós podemos obter mais "insights" e podemos usá-lo melhor.
Interfaces Gráficas VIII: O Controle Navegador de Arquivos (Capítulo 3)
Interfaces Gráficas VIII: O Controle Navegador de Arquivos (Capítulo 3)

Interfaces Gráficas VIII: O Controle Navegador de Arquivos (Capítulo 3)

Nos capítulos anteriores da oitava parte da série, nossa biblioteca foi reforçada por várias classes para o desenvolvimento de ponteiros para o cursor do mouse, calendários e as listas hierárquicas. O presente artigo lida com o controle navegador de arquivos que também pode ser utilizado como parte de uma interface gráfica na aplicação MQL.
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.
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.
Interfaces Gráficas X: Atualizações para a tabela Renderizada e otimização do código (build 10)
Interfaces Gráficas X: Atualizações para a tabela Renderizada e otimização do código (build 10)

Interfaces Gráficas X: Atualizações para a tabela Renderizada e otimização do código (build 10)

Nós continuamos a complementar a tabela renderizada (CCanvasTable) com novas funcionalidades. A tabela terá agora: o realce das linhas quando o mouse estiver em cima; possibilidade de adicionar um array de ícones para cada célula e um método para trocá-los; possibilidade de definir ou modificar o texto da célula durante a execução do programa, e muito mais.
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
Negociação usando uma grade com ordens limitadas no MOEX

Negociação usando uma grade com ordens limitadas no MOEX

Desenvolvimento de um Expert Advisor na linguagem de estratégias de negociação MQL5 para MetaTrader 5. Esse EA irá negociar no MOEX (Bolsa de Valores de Moscou), usando o terminal MetaTrader 5 e uma estratégia de grade, que incluirá o fechamento de posição por stop loss ou take profit, exclusão de ordens pendentes quando atendidas certas condições de mercado.