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
Algoritmos de otimização populacional: Algoritmo Boids, ou algoritmo de comportamento de enxame (Boids Algorithm, Boids)

Algoritmos de otimização populacional: Algoritmo Boids, ou algoritmo de comportamento de enxame (Boids Algorithm, Boids)

Neste artigo, estudaremos algoritmo Boids, baseado em exemplos únicos de comportamento de enxame de animais. O algoritmo Boids, por sua vez, serviu como base para a criação de uma classe inteira de algoritmos, agrupados sob o nome de "Inteligência de Enxame".
preview
Desenvolvendo um EA multimoeda (Parte 7): Seleção de grupos considerando o período forward

Desenvolvendo um EA multimoeda (Parte 7): Seleção de grupos considerando o período forward

Anteriormente, ao selecionar grupos de estratégias de trading para melhorar os resultados combinados, avaliamos os grupos apenas no mesmo período utilizado para a otimização dos EAs individuais. Vamos agora observar o que acontece ao aplicar a seleção no período forward.
preview
Uma Formulação Genérica de Otimização (GOF) para Implementar Max Personalizado com Restrições

Uma Formulação Genérica de Otimização (GOF) para Implementar Max Personalizado com Restrições

Neste artigo, apresentaremos uma maneira de implementar problemas de otimização com múltiplos objetivos e restrições ao selecionar "Max Personalizado" na aba Configurações do terminal MetaTrader 5. Como exemplo, o problema de otimização pode ser: Maximizar o Fator de Lucro, o Lucro Líquido e o Fator de Recuperação, de modo que o Drawdown seja inferior a 10%, o número de perdas consecutivas seja inferior a 5, e o número de negociações por semana seja superior a 5.
preview
Redes neurais de maneira fácil (Parte 83): Transformador espaciotemporal de atenção contínua (Conformer)

Redes neurais de maneira fácil (Parte 83): Transformador espaciotemporal de atenção contínua (Conformer)

O algoritmo Conformer, apresentado aqui, foi desenvolvido para prever o tempo, que, em termos de variabilidade e imprevisibilidade, pode ser comparado aos mercados financeiros. O Conformer é um método complexo que combina as vantagens dos modelos de atenção e das equações diferenciais ordinárias.
preview
Desenvolvendo um cliente MQTT para MetaTrader 5: uma abordagem TDD — Final

Desenvolvendo um cliente MQTT para MetaTrader 5: uma abordagem TDD — Final

Este artigo é a última parte de uma série que descreve nossas etapas de desenvolvimento de um cliente MQL5 nativo para o protocolo MQTT 5.0. Embora a biblioteca ainda não esteja pronta para produção, nesta parte, usaremos nosso cliente para atualizar um símbolo personalizado com ticks (ou taxas) obtidos de outro corretor. Por favor, veja o final deste artigo para mais informações sobre o status atual da biblioteca, o que falta para que ela esteja totalmente em conformidade com o protocolo MQTT 5.0, um possível roadmap, e como acompanhar e contribuir para seu desenvolvimento.
preview
Rede neural na prática: O primeiro neurônio

Rede neural na prática: O primeiro neurônio

Neste artigo começamos a de fato criar algo que muitos ficam admirados em ver funcionando. Um simples e singelo neurônio que conseguiremos programar com muito pouco código em MQL5.O neurônio funcionou perfeitamente nos testes que fiz. Bem, vamos voltar um pouco, nesta mesma série sobre redes neurais, para que você possa entender do que estou falando.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 15): Máquinas de Vetores de Suporte com o Polinômio de Newton

Técnicas do MQL5 Wizard que você deve conhecer (Parte 15): Máquinas de Vetores de Suporte com o Polinômio de Newton

Máquinas de Vetores de Suporte classificam dados com base em classes predefinidas, explorando os efeitos de aumentar sua dimensionalidade. É um método de aprendizado supervisionado que é bastante complexo, dado seu potencial para lidar com dados multidimensionais. Neste artigo, consideramos como uma implementação muito básica de dados bidimensionais pode ser feita de maneira mais eficiente com o Polinômio de Newton ao classificar a ação do preço.
preview
Construa Expert Advisors Auto-Otimizáveis em MQL5

Construa Expert Advisors Auto-Otimizáveis em MQL5

Construa expert advisors que olhem para frente e se ajustem a qualquer mercado.
preview
Desenvolvimento de robô em Python e MQL5 (Parte 1): Pré-processamento de dados

Desenvolvimento de robô em Python e MQL5 (Parte 1): Pré-processamento de dados

Esse será um guia detalhado sobre como desenvolver um robô de trading baseado em aprendizado de máquina. Realizaremos a coleta e preparação de dados e características. Para a execução do projeto, utilizaremos a linguagem de programação Python e bibliotecas, bem como a plataforma MetaTrader 5.
preview
Negociação de Notícias Simplificada (Parte 1): Criando um Banco de Dados

Negociação de Notícias Simplificada (Parte 1): Criando um Banco de Dados

A negociação de notícias pode ser complicada e esmagadora. Neste artigo, passaremos pelos passos para obter dados de notícias. Além disso, aprenderemos sobre o Calendário Econômico do MQL5 e o que ele tem a oferecer.
preview
Agrupamento de séries temporais na inferência causal

Agrupamento de séries temporais na inferência causal

Os algoritmos de agrupamento em aprendizado de máquina são ferramentas importantes de aprendizado não supervisionado que permitem dividir os dados brutos em grupos com características semelhantes. Com esses grupos, é possível, por exemplo, realizar análise de mercado para um cluster específico, identificar os clusters mais resilientes em novos conjuntos de dados e também realizar inferências causais. Este artigo apresenta um método original para o agrupamento de séries temporais, utilizando a linguagem Python.
preview
Do básico ao intermediário: Comandos BREAK e CONTINUE

Do básico ao intermediário: Comandos BREAK e CONTINUE

Neste artigo veremos como usar os comando RETURN, BREAK e CONTINUE dentro de um laço. Entender o que cada um destes comandos faz no fluxo de execução de um laço é algo muito importante, para que você consiga trabalhar com aplicações mais elaboradas. 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
Introdução ao MQL5 (Parte 6): Um Guia para Iniciantes sobre Funções de Array em MQL5

Introdução ao MQL5 (Parte 6): Um Guia para Iniciantes sobre Funções de Array em MQL5

Embarque na próxima fase da nossa jornada com MQL5. Neste artigo esclarecedor e amigável para iniciantes, exploraremos as funções restantes de arrays, desmistificando conceitos complexos para capacitá-lo a criar estratégias de negociação eficientes. Discutiremos as funções ArrayPrint, ArrayInsert, ArraySize, ArrayRange, ArrayRemove, ArraySwap, ArrayReverse e ArraySort. Eleve sua expertise em negociação algorítmica com essas funções essenciais de arrays. Junte-se a nós no caminho para a maestria em MQL5!
preview
O Método de Agrupamento para Manipulação de Dados: Implementando o Algoritmo Iterativo Multicamadas em MQL5

O Método de Agrupamento para Manipulação de Dados: Implementando o Algoritmo Iterativo Multicamadas em MQL5

Neste artigo, descrevemos a implementação do Algoritmo Iterativo Multicamadas do Método de Agrupamento para Manipulação de Dados em MQL5.
preview
Ganhe Uma Vantagem Sobre Qualquer Mercado

Ganhe Uma Vantagem Sobre Qualquer Mercado

Aprenda como você pode se destacar em qualquer mercado que deseja negociar, independentemente do seu nível atual de habilidade.
preview
Do básico ao intermediário: Comando WHILE e DO WHILE

Do básico ao intermediário: Comando WHILE e DO WHILE

Neste artigo, vermos de maneira prática e bastante didática o primeiro comando de laço. Apesar de muitos iniciantes temerem nas bases quando precisa criar laços. Saber como fazer isto de maneira adequada e segura. É algo que somente a experiência e prática irá lhe fornecer. Mas quem sabe, eu possa lhe ajudar a reduzir as dores e sofrimento. Isto lhe mostrando os principais problemas e cuidados a serem tomados quando for utilizar laços em seus códigos. 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
Processos não estacionários e regressão espúria

Processos não estacionários e regressão espúria

O objetivo do artigo é demonstrar a ocorrência de falsa regressão quando se aplica a análise de regressão a processos não estacionários, utilizando simulação pelo método de Monte Carlo.
preview
Desenvolvendo um sistema de Replay (Parte 62): Dando play no serviço (III)

Desenvolvendo um sistema de Replay (Parte 62): Dando play no serviço (III)

Neste artigo começaremos a resolver, o detalhe sobre o excesso de ticks, que pode acometer a aplicação, quando usamos dados reais. Tal excesso faz com que o serviço muitas das vezes dificulta a correta temporização a fim de conseguir construir a barra de um minuto dentro da janela adequada.
preview
Data Science e Machine Learning (Parte 21): Desvendando Redes Neurais, Algoritmos de Otimização Desmistificados

Data Science e Machine Learning (Parte 21): Desvendando Redes Neurais, Algoritmos de Otimização Desmistificados

Mergulhe no coração das redes neurais enquanto desmistificamos os algoritmos de otimização usados dentro das redes neurais. Neste artigo, descubra as principais técnicas que desbloqueiam todo o potencial das redes neurais, impulsionando seus modelos a novos patamares de precisão e eficiência.
preview
Algoritmos de otimização populacionais: enxame de pássaros (Bird Swarm Algorithm, BSA)

Algoritmos de otimização populacionais: enxame de pássaros (Bird Swarm Algorithm, BSA)

O artigo explora o BSA, um algoritmo baseado no comportamento das aves, inspirado na interação coletiva das aves em bando na natureza. Diferentes estratégias de busca dos indivíduos no BSA, incluindo a alternância entre comportamento de voo, vigilância e procura de alimento, tornam esse algoritmo multifacetado. Ele utiliza os princípios de comportamento de bando, comunicação, adaptabilidade, liderança e acompanhamento das aves para a busca eficaz de soluções ótimas.
preview
Desenvolvendo um EA multimoeda (Parte 6): Automatizando a seleção de um grupo de instâncias

Desenvolvendo um EA multimoeda (Parte 6): Automatizando a seleção de um grupo de instâncias

Depois de otimizar uma estratégia de negociação, obtemos conjuntos de parâmetros que facilitam a criação de várias instâncias dessa estratégia, todas integradas em um único Expert Advisor. Antes, fazíamos isso manualmente, mas agora vamos tentar automatizar esse processo.
preview
Técnicas do MQL5 Wizard que você deve conhecer (14): Previsão de Séries Temporais Multiobjetivo com STF

Técnicas do MQL5 Wizard que você deve conhecer (14): Previsão de Séries Temporais Multiobjetivo com STF

A Fusão Espaço-Temporal, que utiliza métricas de 'espaço' e tempo na modelagem de dados, é principalmente útil em sensoriamento remoto e uma série de outras atividades baseadas em imagens, permitindo uma melhor compreensão do nosso ambiente. Graças a um artigo publicado, adotamos uma abordagem inovadora ao usá-la, examinando seu potencial para traders.
preview
Técnicas do MQL5 Wizard que você deve conhecer (Parte 13): DBSCAN para a Classe de Sinais de Expert

Técnicas do MQL5 Wizard que você deve conhecer (Parte 13): DBSCAN para a Classe de Sinais de Expert

Clustering Espacial Baseado em Densidade para Aplicações com Ruído é uma forma não supervisionada de agrupar dados que dificilmente requer parâmetros de entrada, exceto por apenas 2, o que, quando comparado a outras abordagens como k-means, é uma vantagem. Vamos explorar como isso pode ser construtivo para testar e, eventualmente, negociar com Expert Advisers montados no Wizard.
preview
Do básico ao intermediário: Comando IF ELSE

Do básico ao intermediário: Comando IF ELSE

Neste artigo iremos ver como trabalhar com o comando IF e seu parceiro ELSE. Este que é o comando mais importante e significativo que existe em qualquer linguagem de programação. Porém apesar de ser muito simples de ser usado. O mesmo as vezes causa alguma confusão quando nos falta experiência no seu uso e nos conceitos a serem utilizados no mesmo. 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
Desenvolvendo um sistema de Replay (Parte 61): Dando play no serviço (II)

Desenvolvendo um sistema de Replay (Parte 61): Dando play no serviço (II)

Acompanhe neste artigo, as modificações que foram necessárias serem feitas, para que o serviço de replay / simulação, pudesse trabalhar de forma mais eficiente e segura. Aqui também, irei mostrar algo que pode ser de grande interesse para quem deseja fazer um uso mais eficiente das classes. Além de falar e explicar como contornar um problema que existe no MQL5, que reduz a performance do código quando usamos classes.
preview
Filtragem de Sazonalidade e Período de Tempo para Modelos de Deep Learning ONNX com Python para EA

Filtragem de Sazonalidade e Período de Tempo para Modelos de Deep Learning ONNX com Python para EA

Podemos nos beneficiar da sazonalidade ao criar modelos de Deep Learning com Python? A filtragem de dados para os modelos ONNX ajuda a obter melhores resultados? Qual período de tempo devemos usar? Cobriremos tudo isso neste artigo.
preview
Redes neurais de maneira fácil (Parte 82): modelos de equações diferenciais ordinárias (NeuralODE)

Redes neurais de maneira fácil (Parte 82): modelos de equações diferenciais ordinárias (NeuralODE)

Neste artigo, gostaria de apresentar outro tipo de modelos voltados para o estudo da dinâmica do estado do ambiente.
preview
Hibridização de algoritmos populacionais. Estruturas sequenciais e paralelas

Hibridização de algoritmos populacionais. Estruturas sequenciais e paralelas

Aqui, vamos mergulhar no mundo da hibridização de algoritmos de otimização, analisando três tipos principais: mistura de estratégias, hibridização sequencial e paralela. Realizaremos uma série de experimentos combinando e testando algoritmos de otimização relevantes.
preview
Do básico ao intermediário: Passagem por valor ou por referência

Do básico ao intermediário: Passagem por valor ou por referência

Neste artigo você entenderá na prática a diferença entre passagem por valor e passagem por referência. Apesar de ser algo aparentemente simples e que não causa problemas. Muitos programadores com uma boa carga de experiência costumam tomar verdadeiras surras de seus códigos, justamente por conta deste pequeno detalhe. Saber quando, como e porque usar uma passagem por valor ou uma passagem por referência, fará grande diferença na sua vida como programador. 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
DoEasy. Funções de serviço (Parte 2): Padrão "Barra Interna"

DoEasy. Funções de serviço (Parte 2): Padrão "Barra Interna"

Neste artigo, continuaremos a explorar os padrões de preço na biblioteca DoEasy. Vamos desenvolver a classe do padrão "Barra Interna" das formações Price Action.
preview
Desenvolvendo um sistema de Replay (Parte 60): Dando play no serviço (I)

Desenvolvendo um sistema de Replay (Parte 60): Dando play no serviço (I)

Já faz um bom tempo que estamos mexendo apenas no indicadores. Mas agora chegou a hora de fazer o serviço voltar a executar o seu trabalho, a fim de que possamos ver o gráfico sendo construído com os dados informados. Mas como nem tudo é tão simples, será preciso ver para entender o que nos espera.
preview
Importância da qualidade do gerador de números aleatórios no desempenho dos algoritmos de otimização

Importância da qualidade do gerador de números aleatórios no desempenho dos algoritmos de otimização

Neste artigo, analisaremos o gerador de números aleatórios Mersenne Twister e o compararemos com o gerador padrão do MQL5. Veremos como a qualidade dos geradores de números aleatórios influencia os resultados dos algoritmos de otimização.
preview
Gerenciador de risco para operar manualmente

Gerenciador de risco para operar manualmente

Neste artigo, falaremos em detalhes sobre como escrever uma classe gerenciadora de risco para negociar manualmente a partir do zero. Essa classe também poderá servir como base para os traders que operam usando programação.
preview
Redes neurais de maneira fácil (Parte 81): Análise da dinâmica dos dados considerando o contexto (CCMR)

Redes neurais de maneira fácil (Parte 81): Análise da dinâmica dos dados considerando o contexto (CCMR)

Em trabalhos anteriores, sempre avaliamos o estado atual do ambiente. No entanto, a dinâmica das mudanças dos indicadores sempre ficou "nos bastidores". Neste artigo, quero apresentar a vocês um algoritmo que permite avaliar a mudança direta dos dados entre dois estados consecutivos do ambiente.
preview
Experiência no desenvolvimento de estratégias de negociação

Experiência no desenvolvimento de estratégias de negociação

Neste artigo, proponho tentarmos desenvolver nossa própria estratégia de negociação. Uma estratégia de negociação deve ser construída com base em uma determinada vantagem estatística. E tal vantagem deve ser duradoura.
preview
DoEasy. Funções de serviço (Parte 1): Padrões de preços

DoEasy. Funções de serviço (Parte 1): Padrões de preços

Neste artigo, começaremos a desenvolver métodos para buscar padrões de preço usando dados de séries temporais. Um padrão tem um certo conjunto de parâmetros, comuns a qualquer tipo de padrão. Todos os dados desse tipo serão concentrados na classe de objetos do padrão abstrato base. No artigo atual, criaremos uma classe de padrão abstrato e uma classe de padrão Pin Bar.
preview
Desenvolvendo um EA multimoeda (Parte 5): tamanho de posição variável

Desenvolvendo um EA multimoeda (Parte 5): tamanho de posição variável

Nos capítulos anteriores, o EA desenvolvido só podia usar um tamanho de posição fixo para negociações. Isso é adequado para testes, mas não é aconselhável ao negociar mediante uma conta real. Vamos adicionar a capacidade de operar com tamanhos de posição variáveis.
preview
Rede neural na prática: Esboçando um neurônio

Rede neural na prática: Esboçando um neurônio

Neste artigo, faremos a confecção de um neurônio básico. Apesar de ele ser algo simples, e muitos acharem que o código é totalmente bobo e sem nenhum propósito. Quero que você, meu caro leitor, e entusiasta pelo tema de redes neurais. Brinque e se divirta estudando este simples esboço de neurônio. Não precisa ficar com receio de mexer no código a fim de entender o mesmo.
preview
Do básico ao intermediário: Operadores

Do básico ao intermediário: Operadores

Neste artigo vamos ver um pouco sobre os operadores básicos. Apesar de ser um assunto bem fácil de ser compreendido. Existem alguns pequenos detalhes, que fazem muita diferença na hora de colocar expressões matemáticas em formato de código. Sem entender de maneira adequada tais detalhes. Muitos programadores com quase nenhuma experiência, acabam desistindo de tentar criar suas próprias soluções.
preview
O escore de propensão na inferência causalidade

O escore de propensão na inferência causalidade

O artigo examina o tema de pareamento na inferência causal. O pareamento é utilizado para comparar observações semelhantes em um conjunto de dados. Isso é necessário para determinar corretamente os efeitos causais e eliminar o viés. O autor explica como isso ajuda na construção de sistemas de negociação baseados em aprendizado de máquina, que se tornam mais estáveis em novos dados nos quais não foram treinados. O escore de propensão desempenha um papel central e é amplamente utilizado na inferência causal.