Tabelas no paradigma MVC em MQL5: Integramos o componente Model ao componente View
Neste artigo, criaremos a primeira versão do elemento de controle TableControl (TableView). Será uma tabela estática simples, criada com base nos dados de entrada definidos por dois arrays: um array de dados e um array de cabeçalhos de coluna.
Solicitação no Connexus (Parte 6): Criando uma Requisição e Resposta HTTP
Neste sexto artigo da série da biblioteca Connexus, focamos em uma requisição HTTP completa, cobrindo cada componente que compõe uma requisição. Criamos uma classe que representa a requisição como um todo, o que nos ajudou a reunir as classes criadas anteriormente.
Do básico ao intermediário: Filas, Listas e Árvores (VII)
Neste artigo, iremos demonstrar e explicar de uma maneira bastante lucida, como ocorre a remoção de um node de uma árvore. Algo que na maior parte das vezes, mais gera dúvidas e confusão na mente de iniciantes do que necessariamente os ajuda a entender como todo o processo acontece. E por que ele precisa ser feito desta ou daquela maneira.
Do básico ao intermediário: Sobrecarga de operadores (V)
Neste artigo iremos ver como podemos manipular um código a fim de implementar algo completamente diferente daquilo que muitos acreditam ser possível ser feito no MQL5. Uma observação importante: Para entender de maneira adequada o que será visto aqui, é necessário que os conceitos vistos nos artigos anteriores tenham sido devidamente compreendidos.
Componente View para tabelas no paradigma MVC em MQL5: elemento gráfico básico
O artigo analisa o processo de desenvolvimento de um elemento gráfico básico para o componente View no contexto da implementação de tabelas no paradigma MVC (Model-View-Controller) na linguagem MQL5. Este é o primeiro artigo dedicado ao componente View e o terceiro da série de artigos sobre a criação de tabelas para o terminal cliente MetaTrader 5.
Desenvolvimento de um conjunto de ferramentas de Análise de Price Action (Parte 18): Introduzindo a Teoria dos Quarters (III) — Quarters Board
Neste artigo, aprimoramos o Script Quarters original ao introduzir o Quarters Board, uma ferramenta que permite alternar os níveis de quarter diretamente no gráfico sem a precisar voltar ao código. Você pode facilmente ativar ou desativar níveis específicos, e o EA também fornece comentários sobre a direção da tendência para ajudar você a entender melhor os movimentos do mercado.
Do iniciante ao especialista: Criação de um EA de notícias animado em MQL5 (II)
Hoje damos mais um passo à frente, integrando uma API externa de notícias como fonte de manchetes para o nosso EA "Manchetes de notícias". Nesta etapa, vamos explorar diferentes fontes de notícias, tanto já existentes quanto novas, e aprender como usar suas APIs de forma eficiente. Também veremos métodos para fazer o parsing dos dados recebidos em um formato otimizado para exibição no nosso EA. Acompanhe a discussão enquanto analisamos as vantagens de usar manchetes de notícias e o calendário econômico diretamente no gráfico. Tudo isso em uma interface compacta e discreta.
Do básico ao intermediário: Sobrecarga de operadores (II)
Este será um artigo que a principio irá parecer bem confuso devido ao que será mostrado nele. Porém tentei deixar as coisas o mais simples e didáticas quanto foi possível ser feito. Espero que você consiga compreender o que estará sendo demonstrando neste artigo. E que isto venha a lhe ser útil em algum momento.
Dominando Registros de Log (Parte 4): Salvando logs em arquivos
Neste artigo, ensinarei operações básicas com arquivos e como configurar um handler flexível para personalização. Atualizaremos a classe CLogifyHandlerFile para gravar logs diretamente no arquivo. Realizaremos um teste de desempenho simulando uma estratégia no EURUSD por uma semana, gerando logs a cada tick, com um tempo total de 5 minutos e 11 segundos. O resultado será comparado em um artigo futuro, onde implementaremos um sistema de cache para melhorar o desempenho.
Do básico ao intermediário: Sobrecarga de operadores (III)
Neste artigo será demonstrado como podemos implementar a sobrecarga tanto de operadores lógicos como também de operadores relacionais. Fazer isto demanda um certo cuidado e uma boa dose de atenção. Já que um simples deslize durante a implementação do que será a sobrecarga de tais operadores, pode vir a pôr todo um código em condição de ser totalmente jogado no lixo. Já que se a sobrecarga vier a ter problemas. Toda uma base de dados criada em cima dos resultados gerados pelo seu código deverá ser completamente descartada, ou no mínimo totalmente revisada.
Dominando registros de log (Parte 2): Formatação dos logs
Neste artigo, estudaremos a criação e aplicação de programas de formatação para bibliotecas de logs. Examinaremos todas as etapas, desde a estrutura básica de um programa de formatação até exemplos práticos de implementação. Ao final do artigo, você terá todo o conhecimento necessário para realizar a formatação de logs dentro de uma biblioteca e entenderá como tudo funciona nos bastidores.
Dominando Registros de Log (Parte 5): Otimizando o Handler com Cache e Rotação
Este artigo aprimora a biblioteca de logging adicionando formatadores nos handlers, a classe CIntervalWatcher para gerenciar ciclos de execução, otimização com cache e rotação de arquivos, testes de desempenho e exemplos práticos. Com essas melhorias, garantimos um sistema de logging eficiente, escalável e adaptável a diferentes cenários de desenvolvimento.
Operando opções sem opções (Parte 2): Uso em operações reais
O artigo aborda estratégias simples com opções e sua implementação em MQL5. Escrevemos um EA básico que será modernizado e gradualmente ampliado.
Criando um Painel Administrativo de Negociação em MQL5 (Parte IX): Organização do Código (IV): Classe do Painel de Gerenciamento de Negociações
Esta discussão aborda o Painel de Gerenciamento de Negociações atualizado em nosso EA New_Admin_Panel. A atualização aprimora o painel utilizando classes integradas para oferecer uma interface intuitiva para gerenciamento de negociações. Ela inclui botões de negociação para abertura de posições e controles para gerenciamento de negociações existentes e ordens pendentes. Um recurso importante é o gerenciamento de risco integrado, que permite definir valores de stop loss e take profit diretamente na interface. Esta atualização melhora a organização do código para programas de grande porte e simplifica o acesso às ferramentas de gerenciamento de ordens, que frequentemente são complexas no terminal.
Componentes View e Controller para tabelas no paradigma MVC em MQL5: dimensões ajustáveis dos elementos
No artigo, adicionaremos a funcionalidade de redimensionamento dos elementos de controle por meio do arrasto das bordas e dos cantos do elemento com o mouse.
Do básico ao intermediário: Objetos e sub janelas (II)
Este artigo explica como capturar e tratar a remoção de objetos do gráfico em MQL5 usando eventos do MetaTrader 5. Ao detectar a exclusão de um objeto criado pelo indicador, o código remove a instância correspondente para evitar inconsistências e sub janelas remanescentes. A abordagem adota nomes únicos e um arquivo de cabeçalho, priorizando simplicidade e previsibilidade do comportamento.
A Arte de Registrar Logs (Parte 3): Explorando os handlers para armazenamento de logs
Neste artigo, vamos analisar a concepção dos handlers na biblioteca de registro, compreender seu funcionamento e criar três implementações iniciais: console, banco de dados e arquivo. Analisaremos tudo, desde a estrutura básica dos handlers até testes práticos, lançando assim a base para uma implementação completa no futuro.
Do básico ao intermediário: Arquivo template (II)
O artigo mostra como aplicar indicadores a gráficos criados por OBJ_CHART usando templates, quando ChartIndicatorAdd não funciona nesse contexto. Explicamos como salvar um template com o indicador, recuperar o ID do gráfico e aplicar ChartApplyTemplate ao destino correto. Você aprenderá a integrar indicadores como recurso, automatizar a configuração do gráfico embutido e entender limitações práticas, como a não listagem de indicadores na janela padrão.
Do iniciante ao especialista: Criando um EA animado de notícias em MQL5 (III): Análise de indicadores
Neste artigo, daremos continuidade à apresentação do EA "manchetes", apresentando uma faixa especial de "Análise de indicadores" (indicator insights): uma exibição compacta, no gráfico, dos principais sinais técnicos gerados por indicadores populares, como RSI, MACD, Stochastic e CCI. Essa abordagem elimina a necessidade de várias subjanelas de indicadores no terminal MetaTrader 5, mantendo sua área de trabalho limpa e eficiente. Usando a API MQL5 para acessar dados dos indicadores em segundo plano, podemos processar e visualizar informações de mercado em tempo real com lógica personalizada.
Do básico ao intermediário: Arquivo template (I)
O artigo explica como transferir configurações do gráfico principal para um gráfico embutido em OBJCHART, considerando que apenas parte do template é herdada. Mostramos como sincronizar cores e propriedades, reagir a mudanças de tamanho e aplicar ajustes ao gráfico interno usando seu chart ID e chamadas explícitas de atualização. O leitor aprende a reproduzir a aparência e o comportamento do gráfico principal no OBJCHART de forma previsível.
Do iniciante ao especialista: Reporting EA - Configuração do fluxo de trabalho
As corretoras frequentemente fornecem relatórios de contas de negociação em intervalos regulares, com base em uma programação predefinida. Essas empresas, por meio de suas APIs, têm acesso à atividade da sua conta e ao histórico de negociação, o que permite que elas criem relatórios de desempenho para você. De modo semelhante, o terminal MetaTrader 5 armazena registros detalhados da sua atividade de negociação, que podem ser aproveitados com MQL5 para criar relatórios totalmente personalizáveis e configurar formas de envio personalizadas.
Superando as limitações do aprendizado de máquina (Parte 1): carência de métricas compatíveis
Neste artigo, mostramos que parte dos problemas que enfrentamos está enraizada em seguir cegamente as "melhores práticas". Ao apresentar ao leitor evidências simples, baseadas no mercado real, explicaremos por que devemos evitar esse comportamento e, em vez disso, adotar boas práticas baseadas em domínios específicos, caso nossa comunidade queira ter alguma chance de recuperar o potencial oculto da IA.
Engenharia de Atributos com Python e MQL5 (Parte IV): Reconhecimento de Padrões de Candlestick com Regressão UMAP
Técnicas de redução de dimensionalidade são amplamente utilizadas para melhorar o desempenho de modelos de machine learning. Vamos discutir uma técnica relativamente nova conhecida como Uniform Manifold Approximation and Projection (UMAP). Essa nova técnica oi desenvolvida explicitamente para superar as limitações de métodos tradicionais que criam artefatos e distorções nos dados. UMAP é uma poderosa técnica de redução de dimensionalidade e nos ajuda a agrupar candlesticks semelhantes de uma maneira nova e eficaz, reduzindo nossas taxas de erro em dados out-of-sample e melhorando nosso desempenho de trading.
Construindo Expert Advisors Autootimizáveis em MQL5 (Parte 6): Regras de Trading Autoajustáveis (II)
Este artigo explora a otimização dos níveis e períodos do RSI para obter melhores sinais de trading. Introduzimos métodos para estimar valores ótimos do RSI e automatizar a seleção de períodos usando busca em grade e modelos estatísticos. Por fim, implementamos a solução em MQL5 enquanto utilizamos Python para análise. Nossa abordagem busca ser pragmática e direta para ajudá-lo a resolver problemas potencialmente complicados, com simplicidade.
Técnicas de reamostragem para avaliação de previsão e classificação em MQL5
Neste artigo, exploraremos e implementaremos métodos para avaliar a qualidade de modelos que utilizam um único conjunto de dados tanto para treinamento quanto para validação.
Do básico ao intermediário: Arquivo template (III)
No passado, publiquei um artigo que gerou muita confusão e proporcionou pouco entendimento por parte de muitos que o leram. Pois bem, neste artigo, vamos rever de forma muito mais bem explicada, exatamente aquele conceito que outrora não fazia nenhum sentido. Ou seja, vamos ver como colocar mais de um indicador em uma única sub janela de forma que eles sejam facilmente lidos e compreendidos.
Do básico ao intermediário: Objetos e sub janelas (III)
Este artigo descreve um fluxo seguro para lidar com a remoção de objetos gráficos: interceptar eventos, recriar o objeto e recuperar suas propriedades mínimas. Mostramos como evitar armadilhas com ponteiros, prevenir recriações indevidas durante o encerramento e salvar posição/dimensões com atualização via DRAG/CHANGE. Assim, o indicador permanece íntegro e o usuário mantém parte das personalizações.
Superando as limitações do aprendizado de máquina (Parte 2): falta de reprodutibilidade
O artigo examina por que os resultados de trading podem variar significativamente entre corretoras, mesmo usando a mesma estratégia e o mesmo símbolo financeiro, devido à precificação descentralizada e às divergências nos dados. Este artigo ajuda os desenvolvedores MQL5 a entender por que seus produtos podem receber avaliações mistas no MQL5 Marketplace e incentiva os desenvolvedores a adaptar suas abordagens a corretoras específicas para garantir resultados transparentes e reproduzíveis. Se amplamente adotada, essa pode se tornar uma prática recomendada importante e bastante especializada, capaz de beneficiar nossa comunidade.
Do iniciante ao especialista: Criação de um EA de notícias animado em MQL5(V): sistema de lembretes de eventos
Nesta discussão, veremos aprimoramentos adicionais, ao integrarmos uma lógica avançada de alertas para os eventos do calendário econômico exibidos pelo EA "Manchetes de notícias". Esse aprimoramento é decisivo, pois garante que os usuários recebam notificações em tempo hábil pouco antes dos principais eventos programados. Acompanhe esta discussão para saber mais.
Criação de EAs auto-otimizáveis em MQL5 (Parte 7): Negociação simultânea com indicadores de vários períodos
Nesta série de artigos, analisamos várias maneiras de determinar o melhor período para utilizar nossos indicadores técnicos. Hoje, mostraremos como aplicar a lógica oposta, ou seja, em vez de selecionar um único período considerado o mais adequado, veremos como utilizar de forma eficiente todos os períodos disponíveis. Essa abordagem reduz a quantidade de dados descartados e oferece formas alternativas de aplicar algoritmos de machine learning, indo além da simples previsão de preços.
Dominando Logs (Parte 6): Armazenando logs em um banco de dados
Este artigo explora o uso de bancos de dados para armazenar logs de forma estruturada e escalável. Ele aborda conceitos fundamentais, operações essenciais, configuração e implementação de um manipuladores (handler) de banco de dados em MQL5. Por fim, valida os resultados e destaca os benefícios dessa abordagem para otimização e monitoramento eficiente do sistema.
Tabelas no paradigma MVC em MQL5: colunas configuráveis e ordenáveis
Neste artigo, implementaremos o ajuste da largura das colunas da tabela com o cursor do mouse, a ordenação da tabela pelos dados das colunas e adicionaremos uma nova classe para simplificar a criação de tabelas com base em quaisquer conjuntos de dados.
Desenvolvimento do Kit de Ferramentas de Análise de Price Action (Parte 20): Fluxo Externo (IV) — Correlation Pathfinder
O Correlation Pathfinder oferece uma nova abordagem para compreender a dinâmica dos pares de moedas como parte da Série de Desenvolvimento do Kit de Ferramentas de Análise de Price Action. Essa ferramenta automatiza a coleta e a análise de dados, fornecendo insights sobre como pares como EUR/USD e GBP/USD interagem. Aprimore sua estratégia de trading com informações práticas e em tempo real que ajudam você a gerenciar riscos e identificar oportunidades com mais eficiência.
Dominando os Registros de Log (Parte 7): Como Exibir Logs Diretamente no Gráfico
Aprenda a exibir logs diretamente no gráfico do MetaTrader de forma organizada, com molduras, títulos e atualização com deslocamento automático. Neste artigo, mostraremos como criar um sistema visual de logs utilizando MQL5, ideal para acompanhar em tempo real o que seu robô está fazendo.
Criação de EAs auto-otimizáveis em MQL5 (Parte 8): Análise de múltiplas estratégias
Qual é a melhor maneira de combinar diferentes estratégias para criar uma estratégia de ensemble poderosa? Vamos explorar como integrar três estratégias distintas em nosso aplicativo de negociação. Os traders costumam utilizar estratégias especializadas na abertura e no fechamento de posições, e queremos descobrir se as máquinas conseguem executar essa tarefa com melhores resultados. Para começar, vamos conhecer os recursos do testador de estratégias e os princípios da programação orientada a objetos necessários para resolver esse problema.
Criação de um painel administrativo de trading em MQL5 (Parte XI): Interface moderna de mensagens na plataforma (I)
Hoje vamos aprimorar a interface de troca de mensagens do painel de comunicação e alinhá-la aos padrões dos aplicativos modernos de comunicação de alto desempenho. Para isso, atualizaremos a classe CommunicationsDialog. Analisaremos todas essas alterações em detalhes e também definiremos os próximos passos para a evolução das interfaces dos nossos programas em MQL5.
Criação de um painel administrativo de negociação em MQL5 (Parte XII): Integração de uma calculadora Forex
O cálculo preciso das principais métricas de negociação é uma parte essencial da rotina de qualquer trader. Neste artigo, veremos como integrar uma ferramenta poderosa, a calculadora Forex, ao painel de gerenciamento de operações, ampliando ainda mais as funcionalidades do nosso sistema administrativo para traders, composto por vários painéis. Calcular corretamente o risco, o tamanho da posição e o lucro potencial é fundamental para a execução de operações. A nova funcionalidade busca agilizar esses cálculos e facilitar sua realização diretamente no painel. Ao longo do artigo, exploraremos a aplicação prática do MQL5 no desenvolvimento de painéis de negociação avançados.
Desenvolvimento de ferramentas para análise de Price Action (Parte 29): EA "Boom and Crash Interceptor"
Descubra como o EA Boom & Crash Interceptor transforma seus gráficos em um sistema proativo de alertas, capaz de identificar movimentos explosivos dos preços por meio da análise de velocidade, da detecção de picos de volatilidade, da confirmação de tendência e de filtros de zonas de pivô. Com setas verdes para "Boom" e vermelhas para "Crash", o EA facilita a tomada de decisões ao filtrar o ruído do mercado e ajudar a aproveitar melhor os movimentos bruscos dos preços. Vamos entender como ele funciona e por que essa ferramenta pode se tornar um diferencial importante nas suas operações.
Repensando as estratégias clássicas (Parte 13): Atualização da estratégia de cruzamento de médias móveis (Parte 2)
Vamos tentar incorporar novas melhorias à nossa estratégia de cruzamento de médias móveis, buscando reduzir a defasagem dos sinais e aumentar sua confiabilidade por meio de análises adicionais dos dados. Como sabemos, projetar dados em um espaço multidimensional pode, em alguns casos, melhorar o desempenho dos modelos de machine learning. Vamos entender o que isso significa na prática para nós, traders, e como podemos aplicar esse princípio no terminal MetaTrader 5.
Desenvolvimento de ferramentas para análise de Price Action (Parte 28): Ferramenta para operar rompimentos da faixa de abertura
No início de cada sessão de negociação, a direção do mercado muitas vezes só fica clara quando o preço rompe os limites da faixa de abertura. Neste artigo, veremos como desenvolver um EA em MQL5 capaz de detectar e analisar automaticamente esses rompimentos, fornecendo sinais oportunos baseados em dados para embasar entradas intradiárias com maior confiança.