Algoritmo do Restaurateur de Sucesso — Successful Restaurateur Algorithm (SRA)
O Algoritmo do Restaurateur de Sucesso (SRA) é um método inovador de otimização inspirado nos princípios de gestão de um restaurante. Ao contrário das abordagens tradicionais, o SRA não descarta as soluções mais fracas, mas as melhora, combinando-as com elementos das soluções de maior sucesso. O algoritmo apresenta resultados competitivos e traz uma nova perspectiva sobre como equilibrar a diversificação e a intensificação em problemas de otimização.
Simulação de mercado: Position View (XIV)
O que vamos fazer agora, só é possível por que o MQL5, utiliza o mesmo princípio de funcionamento de uma programação baseada em eventos. Tal modelo de programação, é bastante usada na criação de DLL. Sei que no primeiro momento a coisa toda parecerá extremamente confusa e sem nenhuma lógica. Mas neste artigo, irei introduzir de maneira um pouco mais sólida tais conceitos, para que você iniciante consiga compreender adequadamente o que está acontecendo. Entender o que irei começar a explicar neste artigo é algo que poderá lhe ajudar muito na vida, como programador.
Desenvolvendo um EA multimoeda (Parte 23): Colocando em ordem o pipeline de etapas da otimização automática de projetos (II)
Estamos buscando criar um sistema de otimização periódica e automática das estratégias de trading utilizadas em um único EA final. À medida que o sistema evolui, ele se torna mais complexo, sendo necessário, periodicamente, analisá-lo como um todo para identificar gargalos e soluções pouco eficientes.
Simulação de mercado (Parte 24): Iniciando o SQL (VII)
No artigo anterior terminamos de fazer as devidas apresentações sobre o SQL. Então o que eu havia me proposto a mostrar e explicar, sobre SQL, ao meu ver, foi devidamente explicado. Isto para que todos, que vierem a ver o sistema de replay / simulador, sendo construído. Consigam no mínimo terem alguma noção do que pode estar se passando ali. Devido ao fato, de que não faz sentido, programar diversas coisas, que podem ser perfeitamente cobertas pelo SQL.
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.
Busca dialética — Dialectic Search (DA)
Apresentamos o Algoritmo Dialético (DA), um novo método de otimização global inspirado no conceito filosófico de dialética. O algoritmo utiliza uma divisão única da população em pensadores especulativos e práticos. Os testes mostram um desempenho impressionante de até 98% em tarefas de baixa dimensionalidade e uma eficácia geral de 57,95%. Este artigo explica esses números e apresenta uma descrição detalhada do algoritmo e os resultados dos experimentos em diferentes tipos de funções.
Desenvolvimento do Kit de Ferramentas de Análise de Ação de Preço (Parte 12): Fluxo Externo (III) Mapa de Tendências
O fluxo do mercado é determinado pelas forças entre compradores e vendedores. Existem níveis específicos que o mercado respeita devido às forças que atuam sobre eles. Os níveis de Fibonacci e VWAP são especialmente poderosos na influência do comportamento do mercado. Junte-se a mim neste artigo enquanto exploramos uma estratégia baseada em níveis de VWAP e Fibonacci para geração de sinais.
Simulação de mercado: Iniciando o SQL no MQL5 (II)
Apesar de muitos imaginarem que podemos usar tranquilamente códigos em SQL dentro de outros códigos. Isto normalmente não se aplica. Devido ao fato, de que um código SQL, será sempre colocado dentro de um executável, como sendo uma string. E este fato de colocar o código SQL como sendo uma string, apesar de não ser problemático, para pequenos trechos de código. Podem sim ser algo que nos causará muitos transtornos e uma baita de uma dor de cabeça.
Simulação de mercado: Position View (X)
Precisamos de fato, de algum meio para conseguir lidar com os objetos gráficos que serão criados. A proposta mostrada no artigo anterior, se encaixa perfeitamente bem, em alguns cenários. No entanto, aqui, precisamos de algo um pouco mais elaborado. Isto devido a natureza do problema com que estamos lidando. Assim sendo, não tentaremos de maneira alguma substituir os mecanismos que estão presentes no MetaTrader 5. Isto para conseguir lidar com o ZOrder, além é claro, verificar qual objeto está em primeiro plano ou encoberto por outro objeto. Vamos fazer algo completamente diferente. Aqui vou mostrar quais as modificações que precisam ser feitas no código a fim de conseguir, tirar de alguma forma, proveito do que o MetaTrader 5, já faz para nos.
Analisando o código binário dos preços no mercado (Parte II): Convertendo para BIP39 e criando um modelo GPT
Seguimos com as tentativas de decifrar os movimentos dos preços... Que tal uma análise linguística do "vocabulário do mercado", que obtemos ao converter o código binário do preço para BIP39? Neste artigo, vamos nos aprofundar em uma abordagem inovadora para a análise de dados de mercado e explorar como os métodos modernos de processamento de linguagem natural podem ser aplicados ao idioma do mercado.
Simulação de mercado: Position View (VIII)
No artigo anterior vimos como poderíamos implementar o indicador de posição, para que pudéssemos fechar uma posição aberta diretamente via gráfico. Isto interagindo com um objeto que estaria a nossa disposição no gráfico. Depois que o primeiro mecanismo estava concluído e funcionando. Começamos a fazer algumas modificações para que também fosse possível remover as linhas de take profit e stop loss. Isto de uma posição que estivesse aberta. Porém como as mudanças a serem feitas precisariam de uma explicação adequada. Naquele mesmo artigo, apenas mostrei as mudanças que deveriam ocorrer no âmbito do Expert Advisor. Sendo necessário mostrar ainda as mudanças que deveriam ocorrer no Indicador de posição.
Desenvolvimento do Kit de Ferramentas de Análise de Price Action (Parte 11): EA de Sinal Heikin Ashi
O MQL5 oferece infinitas oportunidades para desenvolver sistemas de negociação automatizados adaptados às suas preferências. Você sabia que ele pode até realizar cálculos matemáticos complexos? Neste artigo, apresentamos a técnica japonesa Heikin-Ashi como uma estratégia de negociação automatizada.
Construindo um Indicador Keltner Channel com Gráficos Canvas Personalizados em MQL5
Neste artigo, construímos um indicador Keltner Channel com gráficos canvas personalizados em MQL5. Detalhamos a integração de médias móveis, cálculos de ATR e visualização aprimorada do gráfico. Também abordamos o backtesting para avaliar o desempenho do indicador e obter insights práticos de trading.
Algoritmo de Otimização de Força Central (Central Force Optimization, CFO)
Este artigo apresenta o algoritmo de otimização de força central (CFO), inspirado nas leis da gravitação. É explorado como os princípios da atração física podem resolver problemas de otimização, onde soluções mais pesadas atraem seus análogos menos bem-sucedidos.
Análise da influência do clima nas moedas de países agrícolas usando Python
Como o clima está relacionado ao mercado cambial? Na teoria econômica clássica, por muito tempo não se reconheceu a influência de fatores como o clima no comportamento do mercado. Porém, tudo mudou. Vamos tentar estabelecer conexões entre o estado do tempo e a situação das moedas agrícolas no mercado.
Algoritmo de comportamento social adaptativo — Adaptive Social Behavior Optimization (ASBO): Método de Schwefel, Box-Muller
Este artigo apresenta uma imersão fascinante no mundo do comportamento social de organismos vivos e sua influência na criação de um novo modelo matemático — ASBO (Adaptive Social Behavior Optimization). Exploramos como os princípios de liderança, vizinhança e cooperação, observados em sociedades de seres vivos, inspiram o desenvolvimento de algoritmos de otimização inovadores.
Simulação de mercado: Position View (VI)
Neste artigo, faremos diversas melhorias, visando obter com que o indicador de posição, venha a refletir o que de fato está ocorrendo no servidor de negociação em termos de posições e seu status atual. Devo lembrar, que estas aplicações que serão mostradas aqui, não visam de maneira alguma substituir qualquer elemento presente no MetaTrader 5. E tal pouco devem ser utilizadas sem os devidos cuidados e critérios. Já que elas tem como objetivo terem um código didático. Ou seja, para fins de aprendizado de como as coisas funcionam. E o motivo para que eu diga que o código é didático. É pelo fato de que o uso de mensagens em alguns casos não é a melhor forma de implementar as coisas.
Simulação de mercado: A união faz a força (I)
Estamos chegando aos finalmente. O desenvolvimento do replay / simulador está quase concluído. É bem verdade que ainda precisaremos fazer algumas poucas coisas. Mas frente a tudo que realmente já foi feito. Implementar o que falta será moleza. Mas como tudo que será mostrado neste artigo, precisará ser adequadamente digerido e compreendido. Quero que você, meu caro leitor e entusiasta.
Técnicas do MQL5 Wizard que você deve conhecer (Parte 51): Aprendizado por Reforço com SAC
Soft Actor Critic é um algoritmo de Aprendizado por Reforço que utiliza 3 redes neurais. Uma rede ator e 2 redes críticas. Esses modelos de aprendizado de máquina são combinados em uma parceria mestre-escravo onde as redes críticas são modeladas para melhorar a precisão de previsão da rede ator. Ao mesmo tempo em que introduzimos ONNX nesta série, exploramos como essas ideias podem ser colocadas à prova como um sinal personalizado de um Expert Advisor montado pelo wizard.
Observador Connexus (Parte 8): Adicionando Request Observer (Observador de requisições)
Nesta parte final da nossa série sobre a biblioteca Connexus, analisamos a implementação do padrão Observador, além dos principais refatoramentos nos caminhos dos arquivos e nomes dos métodos. Esta série apresenta todo o desenvolvimento do Connexus, criado para simplificar a interação HTTP em aplicativos complexos.
Técnicas do MQL5 Wizard que você deve conhecer (Parte 54): Aprendizado por Reforço com SAC híbrido e Tensores
Soft Actor Critic é um algoritmo de Aprendizado por Reforço que analisamos em um artigo anterior, onde também introduzimos Python e ONNX nesta série como abordagens eficientes para treinar redes. Retomamos o algoritmo com o objetivo de explorar tensores, grafos computacionais que frequentemente são utilizados em Python.
Gerenciamento de riscos (Parte 3): Criação da classe principal de gerenciamento de riscos
Neste artigo começaremos a criação da classe principal de gerenciamento de riscos, que será o elemento chave para o controle de riscos no sistema. Vamos nos concentrar na construção das bases, na definição das principais estruturas, variáveis e funções. Além disso, implementaremos os métodos necessários para atribuir valores de lucro máximo e prejuízo máximo, estabelecendo assim o alicerce do gerenciamento de riscos.
Migrando para o MQL5 Algo Forge (Parte 2): Trabalhando com múltiplos repositórios
Vamos analisar uma das possíveis abordagens para organizar o armazenamento do código-fonte de um projeto em um repositório público. Utilizando a distribuição em diferentes branches, criaremos regras claras e práticas para o desenvolvimento do projeto.
Aprendendo MQL5 do iniciante ao profissional (Parte VII): Princípios de depuração de aplicativos MQL
A correção de erros é uma parte indispensável do ciclo de programação. Neste artigo, veremos técnicas comuns de depuração, que é o processo de correção de erros, em qualquer aplicativo executado no ambiente MetaTrader 5.
Do iniciante ao especialista: criação de um EA animado para notícias em MQL5 (I)
O acesso às notícias é um fator crítico ao operar no terminal MetaTrader 5. Apesar da existência de várias APIs de notícias, muitos traders enfrentam dificuldades para acessá-las e integrá-las de forma eficiente ao seu ambiente de negociação. Neste artigo, nosso objetivo é desenvolver uma solução otimizada que exiba as notícias diretamente no gráfico, onde elas são mais necessárias. Faremos isso criando o EA "Manchetes de Notícias", que monitora e exibe atualizações em tempo real a partir de APIs de notícias.
Algoritmo de busca circular — Circle Search Algorithm (CSA)
Este artigo apresenta um novo algoritmo metaheurístico de otimização, o CSA (Circle Search Algorithm), baseado nas propriedades geométricas do círculo. O algoritmo utiliza o princípio de movimentação de pontos ao longo das tangentes para encontrar a solução ideal, combinando fases de diversificação global e intensificação local.
Algoritmo do Átomo Artificial — Artificial Atom Algorithm (A3)
Implementação do algoritmo A3 em MQL5, um método metaheurístico de otimização inspirado em processos químicos. Com apenas 2 parâmetros ajustáveis, sua estrutura compacta e a pequena população garantem alta velocidade de execução com qualidade satisfatória das soluções.
Algoritmo de Busca com Retrocesso — Backtracking Search Algorithm (BSA)
E se um algoritmo de otimização pudesse lembrar suas viagens passadas e usar essa memória para buscar soluções melhores? O BSA faz exatamente isso, equilibrando a exploração do novo e o retorno ao que já foi testado. No artigo, revelamos os segredos do algoritmo. Ideia simples, mínimo de parâmetros e resultado estável.
Criação de classes Python para trading no MetaTrader 5, análogas às apresentadas em MQL5
O pacote Python MetaTrader 5 oferece uma maneira simples de criar aplicativos de trading para a plataforma MetaTrader 5 na linguagem Python. Embora seja um módulo poderoso e útil, ele não é tão simples quanto a linguagem de programação MQL5 quando se trata de desenvolver soluções para trading algorítmico. Neste artigo, criaremos classes para trading análogas às oferecidas pela linguagem MQL5, a fim de criar uma sintaxe semelhante e tornar o desenvolvimento de robôs de trading em Python tão simples quanto em MQL5.
Cliente no Connexus (Parte 7): Adicionando a camada de cliente
Neste artigo, continuamos o desenvolvimento da biblioteca Connexus. Neste capítulo, criamos a classe CHttpClient, responsável por enviar a requisição e receber a ordem. Também abordamos o conceito de mocks, separando a biblioteca da função WebRequest, o que garante maior flexibilidade para os usuários.
Simulação de mercado: Position View (XI)
Neste artigo, mostrarei como você, meu caro e estimado leitor, pode sem muito esforço. Conseguir modificar o indicador de posição a fim de que ele venha a ser capaz de fazer bem mais coisas, do que originalmente era capaz de fazer. Veremos como incluir a capacidade de podermos mover tanto os preços, quanto também criar as linhas de preço. E isto diretamente no gráfico. Algo que muitos imaginariam ser extremamente complicado e de difícil solução. Porém você notará que faremos tudo isto, com muita facilidade e com um mínimo de esforço. Tudo que será preciso fazer é parar e pensar um pouco.
Simulação de mercado: Position View (XVIII)
Neste artigo, mostrei da forma o mais didática possível. Como você pode conseguir modificar e gerar um código que seja capaz de cumprir alguns objetivos. Isto modificando o mínimo possível um código já existente. Iremos adicionar um indicador de volume, ao mesmo tempo impedir que o usuário ou operador venha a remover objetos criados pelo indicador de posição.
Assistente Connexus (Parte 5): Métodos HTTP e códigos de status
Neste artigo, vamos entender os métodos HTTP e os códigos de status, dois elementos muito importantes para a interação entre cliente e servidor na internet. Compreender o que cada método faz de fato permite criar requisições mais precisas, informando ao servidor qual ação deve ser executada e tornando a comunicação mais eficiente.
Identificação e classificação de padrões fractais por meio de aprendizado de máquina
Neste artigo abordaremos o tema intrigante da análise fractal e da previsão de mercados por meio de aprendizado de máquina. Estes são apenas os primeiros passos no caminho para o estudo das diversas estruturas fractais que se formam nos gráficos de cotações financeiras. Utilizaremos a correlação para a busca de padrões e o algoritmo CatBoost para a classificação desses padrões.
Título no Connexus (Parte 3): dominando o uso de cabeçalhos HTTP em requisições
Continuamos o desenvolvimento da biblioteca Connexus. Neste capítulo, exploraremos o conceito de cabeçalhos no protocolo HTTP, explicando o que são, para que servem e como utilizá-los nas requisições. Analisaremos os principais cabeçalhos utilizados ao interagir com APIs e apresentaremos exemplos práticos de como configurá-los na biblioteca.
Teoria dos grafos: Algoritmo de Dijkstra no trading
O algoritmo de Dijkstra é uma solução clássica para a busca do caminho mais curto na teoria dos grafos, permitindo otimizar estratégias de trading por meio da modelagem de redes de mercado. Traders podem utilizá-lo para encontrar as rotas mais eficientes nos dados de um gráfico de candles.
Introdução à diversificação (en. diversification) de estruturas fractais de mercado com o auxílio de machine learning
No presente artigo é feita uma tentativa de examinar séries temporais financeiras sob a perspectiva de estruturas fractais autossimilares. Como temos muitas analogias que confirmam a possibilidade de considerar as cotações de mercado como fractais autossimilares, podemos formar uma compreensão sobre os horizontes de previsão dessas estruturas.
Desenvolvendo um EA multimoeda (Parte 28): Adicionando um gerenciador de fechamento de posições
Ao executar muitas estratégias em paralelo, pode surgir a necessidade de, de tempos em tempos, fechar todas as posições abertas e reiniciar as estratégias. O código já escrito permite implementar esse comportamento apenas em conjunto com manipulações manuais. Vamos tentar automatizar essa parte.
Aplicando Seleção de Recursos Localizada em Python e MQL5
Este artigo explora um algoritmo de seleção de recursos introduzido no artigo 'Local Feature Selection for Data Classification' de Narges Armanfard et al. O algoritmo é implementado em Python para construir modelos de classificação binária que podem ser integrados com aplicativos MetaTrader 5 para inferência.
Implementação do modelo de tabela em MQL5: Aplicação do conto MVC
Neste artigo, analisaremos o desenvolvimento do modelo de tabela na linguagem MQL5, usando o conceito arquitetônico MVC (Model-View-Controller), que separa a lógica dos dados, a apresentação e o controle, o que ajuda a criar um código estruturado, flexível e escalável. Examinaremos a implementação das classes para construir o modelo de tabela, incluindo o uso de listas ligadas para armazenar dados.