
Modelos prontos para integrar indicadores nos Expert Advisors (Parte 3): Indicadores de tendência
Neste artigo de referência, vamos dar uma olhada nos indicadores padrão da categoria Indicadores de tendência. Criaremos modelos prontos a serem usados em Expert Advisors, modelos esses que incluirão: declaração e configuração de parâmetros, inicialização/desinicialização de indicadores e recuperação de dados/sinais a partir de buffers de indicador em EAs.


Gráficos na biblioteca do DoEasy (Parte 92): classe de memória de objetos gráficos padrão. Histórico de mudanças de propriedades do objeto
Neste artigo, criaremos uma classe de memória de objeto gráfico padrão. Com ela conseguiremos salvar os estados do objeto quando modificado, o que, por sua vez, nós permite retornar a estados anteriores do objeto gráfico a qualquer momento.


Um assistente de investidores com base em análise MACD estendida
O script 'Trader's Assistant' (assistente de investidores) ajuda você a tomar uma decisão sobre posições de abertura, com base na análise estendida do estado MACD para as últimas três barras na negociação em tempo real, em qualquer período de tempo. Ele também pode ser usado para testes de fundo.

Gráficos na biblioteca DoEasy (Parte 98): Movendo pontos de ancoragem de objetos gráficos padrão estendidos
Neste artigo, continuaremos a desenvolver objetos gráficos padrão estendidos e criaremos uma funcionalidade que move os pontos de ancoragem de objetos gráficos compostos por meio de pontos de controle usados para gerir as coordenadas dos pontos de ancoragem do objeto gráfico em questão.


Trabalhando com séries temporais na biblioteca DoEasy (Parte 59): objeto para armazenar dados de um tick
Com este artigo, vamos começar a criar a funcionalidade de biblioteca para trabalhar com dados de preços. Hoje vamos criar uma classe de objeto que armazenará todos os dados de preços recebidos no tick a seguir.


Como escrever ZigZags rápidos que não são redesenhados
É proposta uma abordagem um tanto universal para escrever indicadores do tipo ZigZag. O método inclui uma parte significativa de ZigZags já descritos e permite que você crie novos de forma relativamente fácil.


Operações de arquivo agrupadas
Às vezes é necessário realizar operações idênticas com um grupo de arquivos. Se você tem uma lista de arquivos incluída em um grupo, então isso não é problema. Entretanto, se você precisar fazer essa lista, então surge uma questão: "Como posso fazer isso?" O artigo propõe fazer isso usando funções FindFirstFile() e FindNextFile() incluídas no kernel32.dll.

Desenvolvendo um EA de negociação do zero (Parte 27): Em direção ao futuro (II)
Vamos continuar indo em direção a um sistema mais completo de ordens direto no gráfico. Então neste artigo irei mostrar uma forma de você corrigir, ou melhor dizendo fazer com que o sistema de ordens fique mais intuitivo.

Fatorando Matrizes — O Básico
Como o intuito aqui é ser didático. Vou manter a coisa no seu padrão mais simples. Ou seja, iremos implementar apenas e somente o que será preciso. A multiplicação de matrizes. E você verá que isto será o suficiente para simular a multiplicação de uma matriz por um escalar. A grande dificuldade que muita gente tem em implementar um código usando fatoração de matrizes, é que diferente de uma fatoração escalar, onde em quase todos os casos a ordem dos fatores não altera o resultado. Quando se usa matrizes, a coisa não é bem assim.

Desenvolvendo um agente de Aprendizado por Reforço em MQL5 com Integração RestAPI (Parte 3): Criando jogadas automáticas e Scripts de Teste em MQL5
Este artigo explora a implementação de jogadas automáticas no jogo da velha Python, integrado com funções MQL5 e testes unitários. O objetivo é aprimorar a interatividade do jogo e garantir a robustez do sistema através de testes MQL5. Ele aborda desde o desenvolvimento da lógica de jogo até a integração e testes práticos, culminando na criação de um ambiente de jogo dinâmico e um sistema integrado confiável.


Como se tornar um bom programador (Parte 6): 9 hábitos para desenvolver de maneira produtiva
O resultado final do projeto não tem a ver apenas com a escrita de código. A minha experiência me ensinou a identificar certos hábitos que ajudam a melhorar a produtividade na hora de desenvolver. Mais tarde, falaremos sobre alguns deles neste artigo. Este artigo é uma leitura obrigatória destinada a todos que desejam melhorar suas habilidades na escrita de algoritmos complexos.

Criação de Previsões de Séries Temporais Usando Redes Neurais LSTM: Normalizando Preço e Tokenizando o Tempo
Este artigo descreve uma estratégia simples para normalizar os dados de mercado usando o intervalo diário e treinar uma rede neural para aprimorar as previsões de mercado. Os modelos desenvolvidos podem ser utilizados em conjunto com estruturas de análise técnica existentes ou de forma independente para auxiliar na previsão da direção geral do mercado. A estrutura delineada neste artigo pode ser ainda mais refinada por qualquer analista técnico para desenvolver modelos adequados para estratégias de negociação manuais e automatizadas.

Desenvolvendo um sistema de Replay (Parte 66): Dando play no serviço (VII)
Aqui neste artigo, vamos implementar uma primeira solução, para que possamos saber o momento em que uma nova barra poderá vim a surgir no gráfico. Esta solução se adequa a diversas situações. Porém entender como a mesma foi desenvolvida pode lhe ajudar a entender diversas questões. 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.

DoEasy. Controles (Parte 27): Continuamos a trabalhar no objeto WinForms "ProgressBar"
Neste artigo, continuaremos desenvolvendo o controle ProgressBar. Criaremos a funcionalidade para gerenciar a barra de progresso e os efeitos visuais.


A ociosidade é o estímulo do progresso. Marcação semiautomática de um modelo
Entre as dezenas de exemplos de como trabalhar com gráficos, há um método de marcação manual de um modelo. Linhas de tendência, canais, níveis de suporte/resistência etc. são impostos em um gráfico. Com certeza, há alguns programas especiais para esse tipo de trabalho. Todo mundo decide sobre qual método usar. Neste artigo, ofereço uma opção para você considerar de métodos de marcação manual com a automatização subsequente de alguns elementos das ações de rotina repetidas.

Desenvolvendo um sistema de Replay — Simulação de mercado (Parte 03): Ajustando as coisas (I)
Vamos dar uma ajeitada nas coisas, pois este começo não está sendo um dos melhores. Se não fizermos isto agora, vamos ter problemas logo, logo.

Desenvolvendo um agente de Aprendizado por Reforço em MQL5.com Integração RestAPI(Parte 2): Funções MQL5 para Interação HTTP com API REST do Jogo da Velha
O artigo detalha como MQL5 pode interagir com Python e FastAPI, usando chamadas HTTP em MQL5 para se comunicar com um jogo da velha em Python. Discute a criação de uma API com FastAPI para essa integração e inclui um script de teste em MQL5, destacando a versatilidade do MQL5, a simplicidade do Python e a eficiência do FastAPI na conexão de diferentes tecnologias para soluções inovadoras.

Aprendendo MQL5 do iniciante ao profissional (Parte II): Tipos de dados básicos e uso de variáveis
Continuação da série para iniciantes. Aqui veremos como criar constantes e variáveis, registrar datas, cores e outros dados úteis. Aprenderemos a criar enumerações como dias da semana ou estilos de linha (contínua, tracejada etc.). Variáveis e expressões são a base da programação. Elas estão em 99% dos programas, portanto é fundamental entendê-las. Se você é novato em programação, este é um bom ponto de partida. Se o nível de conhecimento em programação é muito básico, conforme meu artigo anterior (link no início).

Desenvolvendo um sistema de Replay (Parte 65): Dando play no serviço (VI)
Aqui neste artigo mostrarei como faremos para conseguir implementar o avanço rápido, assim como também resolveremos o problema do indicador de mouse, quando este está sendo usando junto com a aplicação de replay / simulação. 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.


Gráficos na biblioteca DoEasy (Parte 87): coleção de objetos gráficos, controlamos a modificação de propriedades de objetos em todos os gráficos abertos
No artigo, continuaremos a trabalhar no rastreamento dos eventos de objetos gráficos padrão e na criação de funcionalidades que permitem controlar as alterações nas propriedades dos objetos gráficos localizados em qualquer gráfico aberto no terminal.

Algoritmos de otimização populacionais: Otimização de colônia de formigas (ACO)
Desta vez, vamos dar uma olhada no algoritmo de otimização de colônia de formigas ("Ant Colony optimization algorithm", em inglês). O algoritmo é muito interessante e ambíguo. Trata-se de uma tentativa de criar um novo tipo de ACO.

Força bruta para encontrar padrões (Parte VI): otimização cíclica
Neste artigo, mostrarei a primeira parte das melhorias que me permitiram não apenas fechar todo o ciclo de automação para negociação no MetaTrader 4 e 5, mas também fazer algo muito mais interessante. A partir de agora, esta solução me permite automatizar completamente tanto o processo de criação de EAs quanto o processo de otimização, além de minimizar o esforço necessário para encontrar configurações de negociação eficazes.

Desenvolvendo um agente de Aprendizado por Reforço em MQL5 com Integração RestAPI (Parte 5): Escolhendo o Algoritmo do agente
Este capítulo da série aborda algoritmos de aprendizado por reforço, focando em Q-Learning, Deep Q-Network (DQN), e Proximal Policy Optimization (PPO). Explora como essas técnicas podem ser integradas para melhorar a automação de tarefas, detalhando suas características, vantagens, e aplicabilidades práticas. A seleção do algoritmo mais adequado é vista como crucial para otimizar a eficiência operacional em ambientes dinâmicos e incertos, prometendo discussões futuras sobre a implementação prática e teórica desses métodos.

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.

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.

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.


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?


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.

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".

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.

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).


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.

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.

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.

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.

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.

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.

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).

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.

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.