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
Desenvolvimento de um sistema de negociação baseado no Índice de Facilitação do Mercado de Bill Williams

Desenvolvimento de um sistema de negociação baseado no Índice de Facilitação do Mercado de Bill Williams

Este é um novo artigo de uma série na qual aprendemos a desenvolver sistemas de negociação baseados em indicadores técnicos conhecidos. Neste novo artigo, analisamos o Índice de Facilitação do Mercado (Market Facilitation Index, MFI), criado por Bill Williams.
preview
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 16): Um novo sistema de classes

Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 16): Um novo sistema de classes

Precisamos nos organizar melhor. O código está crescendo e se não o organizarmos agora, será impossível fazer isto depois. Então agora vamos dividir para conquistar. O fato de que o MQL5, nos permite usar classes, nos ajudará nesta tarefa. Mas para fazer isto é preciso que você tenha algum conhecimento sobre algumas coisas envolvidas nas classes. E talvez a que mais deixe, aspirantes e iniciantes perdidos seja a herança. Então neste artigo, irei de forma prática e simples como fazer uso de tais mecanismos.
preview
Testando o conteúdo informativo de diferentes tipos de médias móveis

Testando o conteúdo informativo de diferentes tipos de médias móveis

Todos conhecemos a importância da média móvel para muitos traders. Existem diferentes tipos de médias móveis que podem ser úteis no trading. Vamos examiná-las e realizar uma simples comparação para ver qual delas pode apresentar os melhores resultados.
preview
Do básico ao intermediário: Template e Typename (I)

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

Aqui neste artigo, começaremos a lidar com um dos conceitos, que muitos iniciantes evitam. Isto por conta de que, templates, não é um assunto que podemos dizer, ser simples de entender e utilizar. Já que muitos não compreendem o princípio básico que se encontra por baixo do que seria um template. Que é justamente a sobrecarga de funções e procedimentos.
preview
Arbitragem Estatística com previsões

Arbitragem Estatística com previsões

Vamos explorar a arbitragem estatística, pesquisar com Python símbolos correlacionados e cointegrados, criar um indicador para o coeficiente de Pearson e desenvolver um EA para negociar arbitragem estatística com previsões feitas com Python e modelos ONNX.
preview
Estratégia de negociação no indicador de reconhecimento apurado de velas Doji

Estratégia de negociação no indicador de reconhecimento apurado de velas Doji

O indicador baseado em metabarras detecta mais velas do que o clássico baseado em barras únicas. Vamos ver se ele oferece benefícios reais na negociação automatizada.
preview
Preparação de indicadores com vários símbolos/períodos

Preparação de indicadores com vários símbolos/períodos

Neste artigo, examinaremos os princípios para criar indicadores com vários símbolos/períodos e recuperar dados deles dentro de EAs e indicadores. Veremos as nuances mais importantes ao usar multi-indicadores em EAs e indicadores, e sua plotagem mediante buffers de indicador personalizado.
preview
Como criar um indicador personalizado True Strength Index usando MQL5

Como criar um indicador personalizado True Strength Index usando MQL5

Apresento um novo artigo sobre como criar um indicador personalizado. Desta vez, trabalharemos com o True Strength Index (TSI) e criaremos um Expert Advisor com base nele.
preview
Teoria das Categorias em MQL5 (Parte 14): funtores com ordem linear

Teoria das Categorias em MQL5 (Parte 14): funtores com ordem linear

Este artigo, parte de uma série de artigos sobre a implementação da teoria das categorias no MQL5, é dedicado aos funtores. Vamos explorar como a ordem linear pode ser mapeada em um conjunto de dados através dos funtores ao analisar dois conjuntos de dados que, à primeira vista, parecem não ter nenhuma conexão entre si.
preview
Algoritmos de otimização populacionais: salto de sapo embaralhado

Algoritmos de otimização populacionais: salto de sapo embaralhado

O artigo apresenta uma descrição detalhada do algoritmo salto de sapo embaralhado (Shuffled Frog Leaping Algorithm, SFL) e suas capacidades na solução de problemas de otimização. O algoritmo SFL é inspirado no comportamento dos sapos em seu ambiente natural e oferece uma nova abordagem para a otimização de funções. O algoritmo SFL é uma ferramenta eficaz e flexível, capaz de lidar com diversos tipos de dados e alcançar soluções ótimas.
preview
Desenvolvendo um EA multimoeda (Parte 1): várias estratégias de trading trabalhando juntas

Desenvolvendo um EA multimoeda (Parte 1): várias estratégias de trading trabalhando juntas

Existem várias estratégias de trading. Do ponto de vista da diversificação de riscos e do aumento da estabilidade dos resultados de trading, pode ser útil usar várias estratégias em paralelo. Mas se cada estratégia for implementada como um EA separado, gerenciar o trabalho conjunto delas em uma conta de trading se torna muito mais complicado. Para resolver esse problema, é um boa idea implementar o trabalho de diferentes estratégias de trading em um único EA.
preview
Desenvolvendo um sistema de Replay (Parte 48): Entendendo e compreendendo alguns conceitos

Desenvolvendo um sistema de Replay (Parte 48): Entendendo e compreendendo alguns conceitos

Que tal aprender algo novo. Neste artigo você irá aprender como transformar Scripts e Serviços e qual a utilidade em se fazer isto.
preview
Desenvolvendo um sistema de Replay (Parte 63): Dando play no serviço (IV)

Desenvolvendo um sistema de Replay (Parte 63): Dando play no serviço (IV)

Neste arquivo vamos finalmente resolver os problemas de simulação dos ticks, em uma barra de um minuto, de forma que eles possam conviver junto com ticks reais. Isto para evitar que venhamos a ter problemas depois. 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 67): Refinando o Indicador de controle

Desenvolvendo um sistema de Replay (Parte 67): Refinando o Indicador de controle

Neste artigo mostrarei o que um pouco de refinamento no código é capaz de fazer. Tal refinamento tem como objetivo tornar mais simples o nosso código. Fazer um maior uso das chamadas de biblioteca do MQL5. Mas principalmente fazer com que o nosso código se torne bem mais estável, seguro e fácil de ser usado por outras classe, ou outros códigos que por ventura construiremos. 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
Perceptron Multicamadas e o Algoritmo Backpropagation (Parte 3): Integrando ao Testador de estratégias - Visão Geral (I)

Perceptron Multicamadas e o Algoritmo Backpropagation (Parte 3): Integrando ao Testador de estratégias - Visão Geral (I)

O perceptron multicamadas é uma evolução do perceptron simples, capaz de resolver problemas não linearmente separáveis. Juntamente com o algoritmo backpropagation, é possível treinar essa rede neural de forma eficiente. Na terceira parte da série sobre perceptron multicamadas e backpropagation, vamos mostrar como integrar essa técnica ao testador de estratégias. Essa integração permitirá a utilização de análise de dados complexos e melhores decisões para otimizar as estratégias de negociação. Nesta visão geral, discutiremos as vantagens e os desafios da implementação desta técnica.
preview
Ciência de Dados e Aprendizado de Máquina — Redes Neurais (Parte 02): Arquitetura das Redes Neurais Feed Forward

Ciência de Dados e Aprendizado de Máquina — Redes Neurais (Parte 02): Arquitetura das Redes Neurais Feed Forward

Há detalhes a serem abordadas na rede neural feed-forward antes de finalizarmos este assunto, a arquitetura é uma delas. Vamos ver como nós podemos construir e desenvolver uma rede neural flexível para as nossas entradas, o número de camadas ocultas e os nós para cada rede.
Sobreposição e interferência de valores mobiliários financeiros
Sobreposição e interferência de valores mobiliários financeiros

Sobreposição e interferência de valores mobiliários financeiros

Quanto mais fatores influenciarem o comportamento de um par de moedas, mais difícil será avaliar seu comportamento e criar previsões futuras. Assim, se conseguirmos extrair componentes de um par de moeda, valores de uma moeda nacional que mudam com o tempo, poderemos delimitar consideravelmente a liberdade do movimento da moeda nacional em comparação ao par de moeda com esta moeda, assim como os fatores que influenciam seu comportamento. Como resultado, aumentaríamos a precisão da estimativa do seu comportamento e de previsões futuras. Como podemos fazer isso?
preview
DoEasy. Controles (Parte 6): Controle "Painel", redimensionamento automático do contêiner para adequá-lo ao seu conteúdo

DoEasy. Controles (Parte 6): Controle "Painel", redimensionamento automático do contêiner para adequá-lo ao seu conteúdo

Neste artigo, continuaremos trabalhando no objeto WinForms "Painel" e geraremos seu redimensionamento automático em função do tamanho geral dos objetos Dock localizados dentro dele. Além disso, adicionaremos novas propriedades ao objeto de biblioteca "Símbolo".
Outras classes na biblioteca DoEasy (Parte 70): extensão da funcionalidade e atualização automática da coleção de objetos-gráficos
Outras classes na biblioteca DoEasy (Parte 70): extensão da funcionalidade e atualização automática da coleção de objetos-gráficos

Outras classes na biblioteca DoEasy (Parte 70): extensão da funcionalidade e atualização automática da coleção de objetos-gráficos

Neste artigo, vamos expandir a funcionalidade dos objetos-gráficos, criaremos a navegação em gráficos, geraremos capturas de tela, salvaremos e aplicaremos modelos aos gráficos. Faremos também uma atualização automática da coleção de objetos-gráficos, suas janelas e indicadores.
preview
Redes neurais de maneira fácil (Parte 14): Agrupamento de dados

Redes neurais de maneira fácil (Parte 14): Agrupamento de dados

Devo confessar que já se passou mais de um ano desde que o último artigo foi publicado. Em um período tão longo como esse, é possível reconsiderar muitas coisas, desenvolver novas abordagens. E neste novo artigo, gostaria de me afastar um pouco do método de aprendizado supervisionado usado anteriormente, e sugerir um pouco de mergulho nos algoritmos de aprendizado não supervisionado. E, em particular, desejaria analisar um dos algoritmos de agrupamento, o k-médias (k-means).
preview
Ciência de dados e Aprendizado de Máquina (parte 10): Regressão de Ridge

Ciência de dados e Aprendizado de Máquina (parte 10): Regressão de Ridge

A regressão de Ridge é uma técnica simples para reduzir a complexidade do modelo e evitar o ajuste excessivo que pode resultar da regressão linear simples
preview
Metamodelos em aprendizado de máquina e negociação: Tempo original das ordens de negociação

Metamodelos em aprendizado de máquina e negociação: Tempo original das ordens de negociação

Metamodelos em aprendizado de máquina: Criação automática de sistemas de negociação com quase nenhum envolvimento humano, o próprio modelo decide como operar e quando operar.
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 10): Usando apenas dados reais na replay
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 10): Usando apenas dados reais na replay

Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 10): Usando apenas dados reais na replay

Aqui vamos ver como você pode utilizar dados mais fieis ( tickets negociados ) no sistema de replay, sem necessariamente ter que se preocupar se eles estão ou não ajustados.
preview
Receitas MQL5 — Banco de dados de eventos macroeconômicos

Receitas MQL5 — Banco de dados de eventos macroeconômicos

Este artigo explora como trabalhar com bancos de dados baseados no mecanismo SQLite. Com o objetivo de oferecer conveniência e utilizar eficientemente os princípios da OOP, foi criada a classe CDatabase. Essa classe é responsável pela criação e gerenciamento de um banco de dados de eventos macroeconômicos. Além disso, são apresentados exemplos de como utilizar diferentes métodos da classe CDatabase.
preview
Implementação do teste aumentado de Dickey-Fuller no MQL5

Implementação do teste aumentado de Dickey-Fuller no MQL5

Neste artigo, vamos mostrar como implementar o teste aumentado de Dickey-Fuller e sua aplicação para realizar testes de cointegração usando o método de Engle-Granger.
Modelagem de mudanças de cotação no provador e análise da estabilidade do expert advisor
Modelagem de mudanças de cotação no provador e análise da estabilidade do expert advisor

Modelagem de mudanças de cotação no provador e análise da estabilidade do expert advisor

A mudança de cotação é um grande problema para muitos expert advisors, especialmente para aqueles que possuem condições bastante sensíveis para a entrada/saída de uma negociação. Neste artigo, é oferecida uma forma de verificar a estabilidade de mudança de cotações de um EA.
preview
Trabalhando com séries temporais na biblioteca DoEasy (Parte 51): indicadores padrão multiperíodos multissímbolos compostos

Trabalhando com séries temporais na biblioteca DoEasy (Parte 51): indicadores padrão multiperíodos multissímbolos compostos

Neste artigo, vamos completar o desenvolvimento de objetos para indicadores padrão multissímbolos multiperíodos. Usando o indicador padrão Ichimoku Kinko Hyo como exemplo, analisaremos a criação de indicadores personalizados complexos que têm buffers desenhados auxiliares para exibir dados num gráfico.
preview
A sazonalidade no mercado de moedas e suas possibilidades de uso

A sazonalidade no mercado de moedas e suas possibilidades de uso

Todo indivíduo moderno está familiarizado com o conceito de sazonalidade, por exemplo, todos nós estamos acostumados com o aumento dos preços de vegetais frescos no inverno ou o aumento do preço dos combustíveis durante fortes geadas, mas poucos sabem que existem padrões semelhantes no mercado de moedas.
preview
Redes neurais de maneira fácil (Parte 21): Autocodificadores variacionais (VAE)

Redes neurais de maneira fácil (Parte 21): Autocodificadores variacionais (VAE)

No último artigo, analisamos o algoritmo do autocodificador. Como qualquer outro algoritmo, tem suas vantagens e desvantagens. Na implementação original, o autocodificador executa a tarefa de separar os objetos da amostra de treinamento o máximo possível. E falaremos sobre como lidar com algumas de suas deficiências neste artigo.
preview
Ciência de Dados e Aprendizado de Máquina (Parte 08): Agrupamento K-Means em MQL5

Ciência de Dados e Aprendizado de Máquina (Parte 08): Agrupamento K-Means em MQL5

A mineração de dados é crucial para um cientista de dados e um trader porque, muitas vezes, os dados não são tão diretos quanto pensamos, o olho humano não consegue entender o padrão subjacente menor e as relações no conjunto de dados, talvez o algoritmo K-means pode nos ajudar com isso. Vamos descobrir...
preview
Regressões Espúrias em Python

Regressões Espúrias em Python

Regressões espúrias ocorrem quando duas séries temporais exibem um alto grau de correlação puramente por acaso, levando a resultados enganosos na análise de regressão. Em tais casos, embora as variáveis possam parecer relacionadas, a correlação é coincidencial e o modelo pode ser pouco confiável.
preview
DoEasy. Controles (Parte 4): Controle "Painel", parâmetros Padding e Dock

DoEasy. Controles (Parte 4): Controle "Painel", parâmetros Padding e Dock

Neste artigo, vamos gerar o funcionamento de alguns parâmetros de painel, nomeadamente Padding (margens internas/campos para todos os lados do elemento) e Dock (a forma como o objeto está localizado dentro do contêiner).
preview
Trabalhando com séries temporais na biblioteca DoEasy (Parte 58): séries temporais de dados de buffers de indicadores

Trabalhando com séries temporais na biblioteca DoEasy (Parte 58): séries temporais de dados de buffers de indicadores

No final do tópico sobre trabalho com séries temporais, realizaremos o armazenamento, a pesquisa e a classificação dos dados armazenados em buffers de indicadores, o que nos permitirá realizar análises posteriores com base nos valores dos indicadores criados assentes na biblioteca para nossos programas. O conceito geral por trás de todas as classes-coleções da biblioteca torna mais fácil encontrar os dados necessários na coleção correspondente, assim, o mesmo será possível na classe que será criada hoje.
preview
Desenvolvendo um sistema de Replay (Parte 38): Pavimentando o Terreno (II)

Desenvolvendo um sistema de Replay (Parte 38): Pavimentando o Terreno (II)

Muita gente que se diz programador de MQL5, não tem as bases que estarei apresentando aqui, neste artigo. Muitos consideram o MQL5 algo limitado, mas tudo isto se deve a falta de conhecimento. Então, não fique com vergonha por não saber. Mas tenha vergonha de não perguntar. Mas o simples fato, de forçar, e obrigar o MetaTrader 5 a não permitir que um indicador seja duplicado. Não nos dá de maneira alguma meios de efetivar uma comunicação bilateral entre o indicador e o EA. Ainda estamos um pouco longe disto. Mas o simples fato de que o indicador não estará duplicado no gráfico, já nos garante uma certa tranquilidade.
preview
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 09): Eventos Customizados

Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 09): Eventos Customizados

Aqui vamos ver como disparar eventos customizados e melhorar a questão sobre como o indicador informa o status do serviço de replay/simulação.
preview
Arbitragem triangular com previsões

Arbitragem triangular com previsões

Este artigo simplifica a arbitragem triangular, mostrando como usar previsões e softwares especializados para negociar moedas de forma mais inteligente, mesmo se você for novo no mercado. Pronto para negociar com expertise?
preview
DoEasy. Controles (Parte 29): Controle auxiliar "ScrollBar"

DoEasy. Controles (Parte 29): Controle auxiliar "ScrollBar"

Neste artigo, iniciaremos o desenvolvimento do elemento de controle auxiliar ScrollBar e seus objetos derivados, incluindo as barras de rolagem vertical e horizontal. A ScrollBar (barra de rolagem) é utilizada para rolar o conteúdo da forma caso ele ultrapasse o contêiner. As barras de rolagem geralmente são posicionadas na parte inferior e à direita da forma. A barra de rolagem horizontal, localizada na parte inferior, permite rolar o conteúdo para a esquerda e direita, enquanto a barra de rolagem vertical possibilita rolar o conteúdo para cima e para baixo.
preview
Um exemplo de como montar modelos ONNX em MQL5

Um exemplo de como montar modelos ONNX em MQL5

O ONNX (Open Neural Network Exchange) é um padrão aberto para a representação de modelos de redes neurais. Neste artigo, mostraremos a possibilidade de usar dois modelos ONNX simultaneamente em um Expert Advisor.
Execução do terminal do cliente MetaTrader 4 em Linux-Desktop
Execução do terminal do cliente MetaTrader 4 em Linux-Desktop

Execução do terminal do cliente MetaTrader 4 em Linux-Desktop

Descrição de uma configuração passo a passo em desktop Linux usando um wine não emulador para executar o terminal do cliente MetaTrader4.
preview
Ciência de Dados e Aprendizado de Máquina (Parte 03): Regressões Matriciais

Ciência de Dados e Aprendizado de Máquina (Parte 03): Regressões Matriciais

Desta vez nossos modelos estão sendo feitos por matrizes, o que permite flexibilidade ao mesmo tempo que nos permite fazer modelos poderosos que podem manipular não apenas cinco variáveis independentes, mas também muitas variáveis, desde que permaneçamos dentro dos limites de cálculos de um computador, este artigo será uma leitura interessante, isso é certo.