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
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 19): Inferência Bayesiana

Técnicas do MQL5 Wizard que você deve conhecer (Parte 19): Inferência Bayesiana

A inferência bayesiana é a adoção do Teorema de Bayes para atualizar hipóteses de probabilidade à medida que novas informações são disponibilizadas. Isso intuitivamente leva à adaptação na análise de séries temporais, então veremos como podemos usar isso na construção de classes personalizadas, não apenas para o sinal, mas também para gerenciamento de dinheiro e trailing-stops.
preview
Redes neurais de maneira fácil (Parte 72): previsão de trajetórias em condições de ruído

Redes neurais de maneira fácil (Parte 72): previsão de trajetórias em condições de ruído

A qualidade da previsão de estados futuros desempenha um papel importante no método Goal-Conditioned Predictive Coding, com o qual nos familiarizamos no artigo anterior. Neste artigo, quero apresentar a vocês um algoritmo capaz de aumentar significativamente a qualidade da previsão em ambientes estocásticos, que incluem os mercados financeiros.
preview
Algoritmos de otimização de população: Resistência a ficar preso em extremos locais (Parte II)

Algoritmos de otimização de população: Resistência a ficar preso em extremos locais (Parte II)

Continuamos nosso experimento que visa examinar o comportamento dos algoritmos de otimização de população no contexto de sua capacidade de escapar eficientemente de mínimos locais quando a diversidade da população é baixa e alcançar máximos globais. Os resultados da pesquisa são fornecidos.
preview
Redes neurais em trading: Análise de nuvem de pontos (PointNet)

Redes neurais em trading: Análise de nuvem de pontos (PointNet)

A análise direta da nuvem de pontos permite evitar um aumento excessivo no volume de dados e aprimorar a eficiência dos modelos em tarefas de classificação e segmentação. Abordagens deste tipo demonstram um bom desempenho e resistência a perturbações nos dados brutos.
preview
Desenvolvendo um sistema de Replay (Parte 76): Um novo Chart Trade (III)

Desenvolvendo um sistema de Replay (Parte 76): Um novo Chart Trade (III)

Neste artigo vamos compreender como o código faltante no artigo anterior, DispatchMessage, funciona. Aqui será feita a introdução do que será visto no próximo artigo. Sendo assim é importante compreender o funcionamento deste procedimento antes de ver o próximo artigo. O conteúdo exposto aqui, visa e tem como objetivo, pura e simplesmente a didática. De modo algum deve ser encarado como sendo, uma aplicação cuja finalidade não venha a ser o aprendizado e estudo dos conceitos mostrados.
preview
Do básico ao intermediário: Indicador (IV)

Do básico ao intermediário: Indicador (IV)

Neste artigo, vermos como é fácil de criar e implementar uma metodologia operacional, visando colorir candles. Sendo este um conceito, que diversos operadores apreciam imensamente. Porém, é preciso se tomar cuidado ao implementar tal tipo de coisa. Isto para que as barras, ou candles, mantenham a sua aparência original. Visando assim não prejudicar a leitura que muitos operadores fazem candle a candle.
preview
Analisando exemplos de estratégias de trading no terminal do cliente

Analisando exemplos de estratégias de trading no terminal do cliente

O artigo examina, com base em diagramas de blocos, a lógica dos Expert Advisors (EAs) educacionais incluídos no terminal, localizados na pasta Experts > Free Robots, que operam com padrões de velas.
preview
Do básico ao intermediário: Template e Typename (II)

Do básico ao intermediário: Template e Typename (II)

Neste artigo será mostrado como lidar com uma das situações mais chatas e complicadas em termos de programação, que você poderá vir a enfrentar. O uso de tipos diferentes em um mesmo template de função ou procedimento. Apesar de aqui termos focado quase o tempo todo apenas em funções. Tudo que foi visto aqui, serve e pode ser aplicado a procedimentos.
preview
Simulação de mercado (Parte 16): Sockets (X)

Simulação de mercado (Parte 16): Sockets (X)

Estamos a um passo de concluir este desafio. Porém, quero que você, caro leitor, procure entender primeiro estes dois artigos. Tanto este como o anterior. Isto para que consiga de fato entender o próximo onde abordarei exclusivamente a parte referente a programação em MQL5. Apesar de que ali a coisa será igualmente voltada a ser fácil de entender. Se você não compreender estes dois últimos artigos. Com toda a certeza terá grandes problemas em entender o próximo. O motivo disto é simples: As coisas vão se acumulando. Quando mais coisas é preciso fazer, mais coisas é preciso criar e entender para poder atingir o objetivo.
preview
Do básico ao intermediário: Struct (II)

Do básico ao intermediário: Struct (II)

Neste artigo iremos entender por que estrutura foram criadas em linguagens de programação como o MQL5. Assim como também por que alguns momentos, estruturas formas ideais de transferir valores entre funções e procedimentos. Enquanto em outros momentos, elas podem não ser a melhor forma de se fazer isto.
preview
Redes neurais em trading: Transformer para nuvens de pontos (Pointformer)

Redes neurais em trading: Transformer para nuvens de pontos (Pointformer)

Neste artigo, falaremos sobre os algoritmos que utilizam métodos de atenção para resolver tarefas de detecção de objetos em nuvens de pontos. A detecção de objetos em nuvens de pontos é de grande importância para diversas aplicações práticas.
preview
Otimização com búfalos-africanos — African Buffalo Optimization (ABO)

Otimização com búfalos-africanos — African Buffalo Optimization (ABO)

O artigo é dedicado ao algoritmo de otimização com búfalos-africanos (ABO), uma abordagem meta-heurística desenvolvida em 2015 com base no comportamento único desses animais. Ele descreve detalhadamente as etapas de implementação do algoritmo e sua eficácia na busca por soluções de problemas complexos, tornando-o uma ferramenta valiosa na área de otimização.
preview
Reimaginando Estratégias Clássicas (Parte VI): Análise de Múltiplos Tempos Gráficos

Reimaginando Estratégias Clássicas (Parte VI): Análise de Múltiplos Tempos Gráficos

Nesta série de artigos, revisitamos estratégias clássicas para ver se podemos melhorá-las usando IA. No artigo de hoje, vamos examinar a popular estratégia de análise de múltiplos tempos gráficos para avaliar se a estratégia seria aprimorada com IA.
preview
O Método de Agrupamento de Manipulação de Dados: Implementando o Algoritmo Combinatório em MQL5

O Método de Agrupamento de Manipulação de Dados: Implementando o Algoritmo Combinatório em MQL5

Neste artigo, continuamos nossa exploração da família de algoritmos do Método de Agrupamento de Manipulação de Dados, com a implementação do Algoritmo Combinatório, juntamente com sua versão refinada, o Algoritmo Combinatório Seletivo em MQL5.
preview
Do básico ao intermediário: Template e Typename (III)

Do básico ao intermediário: Template e Typename (III)

Neste artigo iremos ver a primeira parte de algo que para iniciantes é muito confuso de entender. Mas para que fique devidamente explicado e assim o tema não se torne confuso, além do necessário. Irei dividir a coisa em etapas. A primeira etapa é a que estará sendo mostrada neste artigo. No entanto, apesar de no final parecer que ficamos em um beco sem saída. Não será bem isto que estará ocorrendo. Já que o próximo passo nos levará a uma outra situação em que será melhor entendida no próximo artigo.
preview
Do básico ao intermediário: Indicador (III)

Do básico ao intermediário: Indicador (III)

Neste artigo iremos ver como declarar diversos indicadores de plotagem, como DRAW_COLOR_LINE e DRAW_FILLING. Além é claro, aprender como plotar indicadores múltiplos de uma forma muito simples, prática e pouco trabalhosa. Agora que realmente pode mudar a sua forma de enxergar o MetaTrader 5 e o mercado em geral.
preview
Desenvolvimento de um Cliente MQTT para o MetaTrader 5: Metodologia TDD (Parte 5)

Desenvolvimento de um Cliente MQTT para o MetaTrader 5: Metodologia TDD (Parte 5)

Este artigo é a quinta parte de uma série que descreve as etapas de desenvolvimento de um cliente MQL5 nativo para o protocolo MQTT 5.0. Nesta parte, vamos detalhar a estrutura dos pacotes PUBLISH, configuraremos seus flags de publicação, codificaremos os nomes dos tópicos e estabeleceremos identificadores de pacotes quando necessário.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 23): CNNs

Técnicas do MQL5 Wizard que você deve conhecer (Parte 23): CNNs

As Redes Neurais Convolucionais são outro algoritmo de aprendizado de máquina que tende a se especializar em decompor conjuntos de dados multidimensionais em partes constituintes principais. Vamos ver como isso é normalmente alcançado e explorar uma possível aplicação para traders em outra classe de sinais do MQL5 Wizard.
preview
Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 10): RBM não convencional

Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 10): RBM não convencional

As máquinas de Boltzmann restritas (Restrictive Boltzmann Machines, RBM) são, em um nível básico, uma rede neural de duas camadas capaz de realizar classificação não supervisionada através da redução de dimensionalidade. Vamos usar seus princípios básicos e ver o que acontece se a desenharmos e a treinarmos de forma não convencional. Será que conseguiremos obter um filtro de sinais útil?
preview
Do básico ao intermediário: Indicador (II)

Do básico ao intermediário: Indicador (II)

Neste artigo veremos como implementar o calculo de média móvel e os cuidados a serem tomados ao efetivamente criar este calculo. Além disto, vamos também falar sobre a sobrecarga da função OnCalculate a fim de podemos saber quando e como trabalhar com um ou outro modelo de sobrecarga.
preview
Algoritmos de otimização populacionais: objetos de busca multissociais artificiais (artificial Multi-Social search Objects, MSO)

Algoritmos de otimização populacionais: objetos de busca multissociais artificiais (artificial Multi-Social search Objects, MSO)

Continuação do artigo anterior como desenvolvimento da ideia de grupos sociais. No novo artigo, explora-se a evolução dos grupos sociais utilizando algoritmos de movimentação e memória. Os resultados ajudarão a entender a evolução dos sistemas sociais e aplicá-los na otimização e busca de soluções.
preview
Reconhecimento de Padrões Usando Dynamic Time Warping em MQL5

Reconhecimento de Padrões Usando Dynamic Time Warping em MQL5

Neste artigo, discutimos o conceito de dynamic time warping como uma forma de identificar padrões preditivos em séries temporais financeiras. Veremos como ele funciona e também apresentaremos sua implementação em MQL5 puro.
preview
Do básico ao intermediário: Eventos (II)

Do básico ao intermediário: Eventos (II)

Neste artigo iremos ver que nem sempre precisamos implementar as coisas de uma ou de outra maneira. Existem maneiras alternativas de se fazer as coisas. Entender conceitos que foram explicados em artigos anteriores é primordial para conseguir compreender adequadamente o que será visto neste artigo. O conteúdo exposto aqui, visa e tem como objetivo, pura e simplesmente a didática. De modo algum deve ser encarado como uma aplicação final, onde o objetivo não seja o estudo dos conceitos aqui mostrados.
preview
Redes neurais em trading: Detecção de objetos com reconhecimento de cena (HyperDet3D)

Redes neurais em trading: Detecção de objetos com reconhecimento de cena (HyperDet3D)

Apresentamos uma nova abordagem para a detecção de objetos por meio de hiper-redes. Uma hiper-rede de geração de pesos para o modelo subjacente, que nos permite levar em conta as peculiaridades do estado atual do mercado. Essa abordagem melhora a precisão da previsão, adaptando o modelo a diferentes condições de mercado.
preview
Redes neurais de maneira fácil (Parte 95): Redução do consumo de memória em modelos Transformer

Redes neurais de maneira fácil (Parte 95): Redução do consumo de memória em modelos Transformer

Os modelos baseados na arquitetura Transformer demonstram alta eficiência, mas seu uso é dificultado pelos altos custos de recursos, tanto na fase de treinamento quanto durante a utilização prática. Neste artigo, proponho conhecer algoritmos que permitem reduzir o uso de memória por esses modelos.
preview
Integração do MQL5 com pacotes de processamento de dados (Parte 1): Análise avançada de dados e processamento estatístico

Integração do MQL5 com pacotes de processamento de dados (Parte 1): Análise avançada de dados e processamento estatístico

A integração permite um fluxo de trabalho contínuo, no qual os dados financeiros brutos do MQL5 podem ser importados para pacotes de processamento de dados, como o Jupyter Lab, possibilitando análises avançadas, incluindo testes estatísticos.
preview
Redes neurais em trading: Modelo de dupla atenção para previsão de tendências

Redes neurais em trading: Modelo de dupla atenção para previsão de tendências

Damos continuidade à discussão sobre o uso da representação linear por partes de séries temporais, iniciada no artigo anterior. Hoje, falaremos sobre a combinação desse método com outras abordagens de análise de séries temporais para melhorar a qualidade da previsão das tendências dos movimentos de preços.
preview
Construindo Expert Advisors Auto-otimizantes Com MQL5 E Python (Parte II): Ajustando Redes Neurais Profundas

Construindo Expert Advisors Auto-otimizantes Com MQL5 E Python (Parte II): Ajustando Redes Neurais Profundas

Modelos de aprendizado de máquina vêm com vários parâmetros ajustáveis. Nesta série de artigos, exploraremos como personalizar seus modelos de IA para se ajustar ao seu mercado específico utilizando a biblioteca SciPy.
preview
Redes neurais em trading: Injeção de informação global em canais independentes (InjectTST)

Redes neurais em trading: Injeção de informação global em canais independentes (InjectTST)

A maioria dos métodos modernos de previsão de séries temporais multimodais utiliza a abordagem de canais independentes, ignorando a dependência natural entre os diferentes canais de uma série temporal. Para melhorar a eficiência dos modelos, é fundamental utilizar equilibradamente duas abordagens: canais independentes e mistos.
preview
Redes neurais em trading: Abordagem sem máscara para previsão do movimento de preços

Redes neurais em trading: Abordagem sem máscara para previsão do movimento de preços

Neste artigo, apresentamos o método Mask-Attention-Free Transformer (MAFT) e sua aplicação na área de trading. Ao contrário dos Transformers tradicionais, que exigem mascaramento de dados ao processar sequências, o MAFT otimiza o processo de atenção, eliminando a necessidade de mascaramento, o que melhora significativamente a eficiência computacional.
preview
Métodos de otimização da biblioteca ALGLIB (Parte I)

Métodos de otimização da biblioteca ALGLIB (Parte I)

Neste artigo, vamos conhecer os métodos de otimização da biblioteca ALGLIB para MQL5. O artigo inclui exemplos simples e visuais de aplicação da ALGLIB para resolver tarefas de otimização, o que tornará o processo de aprendizado dos métodos o mais acessível possível. Analisaremos detalhadamente a integração de algoritmos como BLEIC, L-BFGS e NS, e com base neles resolveremos uma tarefa de teste simples.
preview
Redes neurais em trading: Abordagem sem máscara para previsão do movimento de preços

Redes neurais em trading: Abordagem sem máscara para previsão do movimento de preços

Neste artigo, apresentamos o método Mask-Attention-Free Transformer (MAFT) e sua aplicação na área de trading. Ao contrário dos Transformers tradicionais, que exigem mascaramento de dados ao processar sequências, o MAFT otimiza o processo de atenção, eliminando a necessidade de mascaramento, o que melhora significativamente a eficiência computacional.
preview
Do básico ao intermediário: Template e Typename (IV)

Do básico ao intermediário: Template e Typename (IV)

Aqui neste artigo, iremos ver de forma bem didática, como resolver um problema que foi demonstrado no final do artigo anterior. Onde estaríamos tentando fazer com que um template de tipo fosse criado, a fim de que fosse possível criar um template de uma união de dados.
preview
Treinamento de perceptron multicamadas com o algoritmo de Levenberg-Marquardt

Treinamento de perceptron multicamadas com o algoritmo de Levenberg-Marquardt

Este artigo apresenta a implementação do algoritmo de Levenberg-Marquardt para o treinamento de redes neurais com propagação para frente. Foi feita uma análise comparativa de desempenho com os algoritmos da biblioteca scikit-learn do Python. Primeiramente, são discutidos métodos de treinamento mais simples, como a descida do gradiente, a descida do gradiente com momentum e a descida do gradiente estocástica.
preview
Construção de previsões econômicas: potencialidades do Python

Construção de previsões econômicas: potencialidades do Python

Como utilizar os dados econômicos do Banco Mundial para fazer previsões? O que acontece se combinarmos modelos de IA com economia?
preview
Redes neurais em trading: Análise da situação do mercado usando o transformador de padrões

Redes neurais em trading: Análise da situação do mercado usando o transformador de padrões

Ao analisarmos a situação do mercado com nossos modelos, o elemento-chave é a vela. No entanto, sabe-se há muito tempo que os padrões de velas podem ajudar a prever movimentos futuros de preço. Neste artigo, apresentaremos um método que permite integrar essas duas abordagens.
preview
Simulação de mercado (Parte 14): Sockets (VIII)

Simulação de mercado (Parte 14): Sockets (VIII)

Muitos poderiam sugerir, que deveríamos abandonar o Excel, e usar o Python pura e simplesmente. Fazendo uso de alguns pacotes que permitiriam ao Python criar um arquivo de Excel, para que pudéssemos analisar os resultados depois. Mas como foi dito no artigo anterior, apesar desta solução ser a mais simples, pelo ponto de vista de muitos programadores. Ela de fato, não será bem vista, pelos olhos de alguns usuários. E nesta história toda, o usuário tem sempre razão. Você como programador deve, encontrar alguma forma ou alguma maneira de fazer as coisas funcionarem.
preview
Algoritmo de comportamento social adaptativo — Adaptive Social Behavior Optimization (ASBO): Evolução em duas fases

Algoritmo de comportamento social adaptativo — Adaptive Social Behavior Optimization (ASBO): Evolução em duas fases

Este artigo dá continuidade ao tema do comportamento social dos organismos vivos e ao seu impacto no desenvolvimento de um novo modelo matemático, o ASBO (Adaptive Social Behavior Optimization). Exploraremos a evolução em duas fases, realizaremos testes no algoritmo e apresentaremos as conclusões. Assim como na natureza, onde grupos de organismos vivos se unem para sobreviver, o ASBO utiliza princípios de comportamento coletivo para resolver problemas complexos de otimização.
preview
Do básico ao intermediário: Template e Typename (V)

Do básico ao intermediário: Template e Typename (V)

Neste artigo iremos ver um último caso simples de utilização de templates. Mas também iremos ver qual o utilidade e por que a necessidade de se utilizar typename em seus códigos. Apesar deste artigo possa vir a parecer um tanto quanto complicado no inicio. O mesmo precisa ser compreendido de maneira adequada, para que futuras aplicações que utilizem template e typename, sejam de fato compreendidas.
preview
Simulação de mercado (Parte 17): Sockets (XI)

Simulação de mercado (Parte 17): Sockets (XI)

Implementar a parte que será executada aqui no MetaTrader 5, está longe de ser complicado. Mas existem diversos cuidados e pontos de atenção a serem observados. Isto para que você caro leitor, consiga de fato fazer com que o sistema funcione. Lembre-se de uma coisa: Você não executará um único programa. Você estará na verdade, executando três programas ao mesmo tempo. E é importante que cada um seja implementado e construído de forma que trabalhem e conversem entre si. Isto sem que eles fiquem completamente sem saber o que cada um está querendo ou desejando fazer.