Testes de Robustez em Expert Advisors
No desenvolvimento de estratégias, há muitos detalhes complexos a serem considerados, muitos dos quais não são destacados para traders iniciantes. Como resultado, muitos traders, eu incluído, tiveram de aprender essas lições da maneira mais difícil. Este artigo é baseado em minhas observações sobre armadilhas comuns que a maioria dos traders iniciantes encontra ao desenvolver estratégias em MQL5. Ele oferecerá uma variedade de dicas, truques e exemplos para ajudar a identificar a desqualificação de um EA e testar a robustez dos nossos próprios EAs de uma forma fácil de implementar. O objetivo é educar os leitores, ajudando-os a evitar futuros golpes ao comprar EAs, bem como a prevenir erros no desenvolvimento de suas próprias estratégias.
Usando o Algoritmo de Aprendizado de Máquina PatchTST para Prever a Ação do Preço nas Próximas 24 Horas
Neste artigo, aplicamos um algoritmo relativamente complexo de rede neural chamado PatchTST, lançado em 2023, para prever a ação do preço nas próximas 24 horas. Usaremos o repositório oficial, faremos algumas modificações, treinaremos um modelo para EURUSD e o aplicaremos para fazer previsões futuras, tanto em Python quanto em MQL5.
Indicador de posições históricas no gráfico em forma de diagrama de lucro/prejuízo
Vamos falar sobre como obter informações sobre posições fechadas usando o histórico de negociações. Vamos criar um indicador simples que mostra um diagrama aproximado de lucro/prejuízo das posições em cada barra.
Anotação de dados na análise de série temporal (Parte 1): Criação de um conjunto de dados com rótulos de tendência usando um gráfico EA
Esta série de artigos apresenta várias técnicas destinadas a rotular séries temporais, técnicas essas que podem criar dados adequados à maioria dos modelos de inteligência artificial (IA). A rotulação de dados (ou anotação de dados) direcionada pode tornar o modelo de IA treinado mais alinhado aos objetivos e tarefas do usuário, melhorar a precisão do modelo e até mesmo ajudar o modelo a dar um salto qualitativo!
Desenvolvendo um sistema de Replay (Parte 35): Ajeitando as coisas (I)
Temos que corrigir algumas coisas antes de realmente poder continuar. Mas não se trata necessariamente de uma correção e sim de um aperfeiçoamento na forma de gerir e utilizar classe. O motivo é que existem falhas ocorrendo por conta de algum tipo de interação dentro do sistema. Apesar das tentativas de tentar compreender o motivo de algumas das falhas, para assim sana-las. Todas foram frustradas, já que não fazia o mínimo sentido de algumas delas estarem ocorrendo. Quando fazemos uso de ponteiros ou recursão em C / C++, e o programa começa a apresentar falhas.
Redes neurais de maneira fácil (Parte 48): métodos para reduzir a superestimação dos valores da função Q
No artigo anterior, nós exploramos o método DDPG, projetado para treinar modelos em espaços de ação contínua. No entanto, como outros métodos de aprendizado Q, ele está sujeito ao problema da sobreavaliação dos valores da função Q. Esse problema geralmente leva eventualmente ao treinamento de um agente com uma estratégia não otimizada. Neste artigo, examinaremos algumas abordagens para superar o problema mencionado.
Desenvolvendo um sistema de Replay (Parte 69): Acertando o tempo (II)
Aqui vamos entender, por que estamos precisamos usar a chamada iSpread. Ao mesmo tempo, vamos entender como o sistema consegue nos informar o tempo restante da barra, quando não temos ticks a serem usados para fazer tal coisa. 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.
Desenvolvimento de robô em Python e MQL5 (Parte 3): Implementação do algoritmo de negociação baseado em modelo
Continuamos o ciclo de artigos sobre a criação de um robô de negociação em Python e MQL5. Hoje, vamos abordar a tarefa de desenvolver um algoritmo de negociação em Python.
Algoritmo de Evolução do Casco da Tartaruga (Turtle Shell Evolution Algorithm, TSEA)
Um algoritmo de otimização único, inspirado na evolução do casco da tartaruga. O algoritmo TSEA emula a formação gradual de áreas queratinizadas da pele, que representam as soluções ótimas para o problema. As melhores soluções tornam-se mais "duras" e se aproximam da superfície externa, enquanto as soluções menos bem-sucedidas permanecem "macias" e ficam na parte interna. O algoritmo utiliza a clusterização das soluções com base na qualidade e na distância, permitindo preservar as opções menos bem-sucedidas, garantindo flexibilidade e adaptabilidade.
Como construir e otimizar um sistema de negociação baseado em volatilidade (Chaikin Volatility - CHV)
Neste artigo, vamos apresentar outro indicador baseado em volatilidade, chamado Chaikin Volatility. Vamos entender como construir um indicador personalizado, após identificar como ele pode ser usado e construído. Vamos compartilhar algumas estratégias simples que podem ser usadas e, em seguida, testá-las para entender qual delas pode ser melhor.
Do básico ao intermediário: Definições (II)
Neste artigo iremos ver e explorar um pouco mais sobre a diretiva #define. Só que agora com o foco voltado para a segunda forma de utilização desta diretiva. Ou seja, a criação de macros. Como sei que este material pode vir a ser um pouco complicado no começo. Procurei utilizar uma aplicação que já vem sendo explorada a algum tempo. Então espero que se divirtam com o conteúdo deste artigo.
Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 07): Dendrogramas
A classificação de dados para análise e previsão é uma área muito diversificada do aprendizado de máquina, que compreende um grande número de abordagens e métodos. Neste artigo, examinaremos uma dessas abordagens, nomeadamente o agrupamento hierárquico aglomerativo (Agglomerative Hierarchical Clustering).
Como começar a trabalhar com MQL5 Algo Forge
Apresentamos o MQL5 Algo Forge, um portal exclusivo para desenvolvedores de algoritmos de negociação. Ele combina as funcionalidades do Git com uma interface prática para gerenciar e organizar projetos dentro do ecossistema MQL5. Aqui você pode seguir autores interessantes, criar equipes e desenvolver projetos colaborativos de algotrading.
Negociação automatizada em grade usando ordens pendentes de stop na Bolsa de Moscou (MOEX)
Uso da abordagem de negociação em grade com ordens pendentes de stop em um Expert Advisor usando a linguagem de estratégias de negociação MQL5 para o MetaTrader 5 na Bolsa de Valores de Moscou (MOEX). Ao negociar no mercado, uma das estratégias mais simples é uma grade de ordens projetada para "capturar" o preço de mercado.
Redes neurais de maneira fácil (Parte 19): Regras de associação usando MQL5
Continuamos o tópico de busca de regras de associação. No artigo anterior, consideramos os aspectos teóricos desse tipo de problema. No artigo de hoje, ensinarei a implementação do método FP-Growth usando MQL5. Também vamos testá-la com dados reais.
DoEasy. Controles (Parte 14): Novo algoritmo para nomear elementos gráficos. Continuando o trabalho no objeto WinForms TabControl
Neste artigo, elaboraremos um novo algoritmo para nomear todos os elementos gráficos que permitem criar gráficos personalizados, e continuaremos desenvolvendo o objeto WinForms TabControl.
Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 02): Mapas de Kohonen
Esta série de artigos propõe que o Assistente MQL5 deve ser um pilar para os traders. Por quê? Porque o trader não economiza apenas o tempo desenvolvendo suas novas ideias com o Assistente MQL5, mas reduz bastante os erros de desenvolvimento de código duplicado; ele está finalmente preparado para canalizar sua energia nas poucas áreas críticas de sua filosofia de negociação.
Rede neural na prática: Reta Secante
Como foi explicado na parte teórica. Precisamos usar regressões lineares e derivadas, quando o assunto é rede neural. Mas por que ?!?! O motivo disto, é que a regressão linear é uma das fórmulas mais simples que existe. Basicamente uma regressão linear, é apenas uma função afim. Porém quando falamos em rede neural, não estamos interessados na reta, que a regressão linear cria. Estamos interessados é na equação que gera tal reta. A reta gerada pouco importa. Mas você sabe qual é a equação principal a ser compreendida ?!?! Se não veja este artigo para começar a entender.
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 19): Ajustes necessários
O que de fato vamos fazer aqui, é preparar o terreno, de forma que quando for preciso adicionar algumas novas coisas ao código, isto aconteça de forma suave e tranquila. O código atual ainda não consegue cobrir ou dar cabo de algumas coisas, que serão necessárias para um avanço significativo. Precisamos que tudo seja construído de maneira que o esforço de implementação de algumas coisas seja o menor possível. Se isto for feito adequadamente teremos a possibilidade de ter um sistema realmente bastante versátil. Sendo capaz de se adaptar muito facilmente a qualquer situação que for preciso ser coberta.
Python, ONNX e MetaTrader 5: Montando um modelo RandomForest com pré-processamento de dados via RobustScaler e PolynomialFeatures
Neste artigo, vamos desenvolver um modelo de floresta aleatória usando Python. Vamos treinar esse modelo e salvá-lo como um pipeline ONNX, já incluindo etapas de pré-processamento de dados. Depois, esse modelo será aplicado diretamente no terminal do MetaTrader 5.
Redes neurais em trading: Método abrangente de previsão de trajetórias (Traj-LLM)
Neste artigo, quero apresentar a você um método interessante de previsão de trajetórias, desenvolvido para resolver problemas relacionados ao movimento autônomo de veículos. Os autores do método combinaram os melhores elementos de diferentes soluções arquitetônicas.
Desenvolvendo um sistema de Replay (Parte 50): Complicando as coisas (II)
Vamos resolver a questão da ID do gráfico, mas ao mesmo tempo, vamos começar a garantir que o usuário possa fazer uso de um template pessoal, voltado para analisar o ativo que ele gostaria de efetuar estudos e simulaçõ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.
Simulação de mercado (Parte 13): Sockets (VII)
Quando você desenvolve algo, seja no xlwings, ou qualquer outro pacote que nos permita ler e escrever diretamente no Excel. Você na verdade deve notar que todos os programas, funções ou procedimentos. Executam e logo finalizam a sua tarefa. Eles não ficam ali, dentro de um loop. E por mais que você tente fazer as coisas de uma forma diferente.
Como desenvolver um sistema de negociação baseado no indicador Bull's Power
Bem-vindo a um novo artigo em nossa série sobre como desenvolver um sistema de negociação com base nos indicadores técnicos mais populares, aqui está um novo artigo sobre como aprender a desenvolver um sistema de negociação pelo indicador técnico Bull's Power.
Redes neurais em trading: Rede neural espaço-temporal (STNN)
Neste artigo, discutiremos o uso de transformações espaço-temporais para prever com eficácia o movimento futuro dos preços. Para melhorar a precisão das previsões numéricas na STNN, foi proposto um mecanismo de atenção contínua que permite ao modelo considerar melhor os aspectos relevantes dos dados.
Gráficos na biblioteca DoEasy (Parte 96): Trabalhando com eventos do rato/gráfico em objetos-formas
Neste artigo desenvolveremos recursos para manusear os eventos do mouse em objetos-formas e adicionaremos novas propriedades de rastreamento ao objeto símbolo. Além disso, hoje modificaremos a classe do objeto símbolo, porque desde que foi escrito, os símbolos do gráfico têm novas propriedades que é desejável levar em conta e acompanhar a nível de suas mudanças.
Redes neurais de maneira fácil (Parte 89): Transformador de decomposição por frequência do sinal (FEDformer)
Todos os modelos que analisamos anteriormente examinam o estado do ambiente na forma de uma sequência temporal. No entanto, a mesma série temporal pode ser representada por suas características de frequência. Neste artigo, proponho que você conheça um algoritmo que utiliza as características de frequência da sequência temporal para prever estados futuros.
Exemplo de novo Indicador e LSTM Condicional
Este artigo explora o desenvolvimento de um Expert Advisor (EA) para trading automatizado que combina análise técnica com previsões de deep learning.
Redes neurais em trading: Detecção adaptativa de anomalias de mercado (Conclusão)
Continuamos a construção dos algoritmos que formam a base do DADA, um framework avançado para detecção de anomalias em séries temporais. Essa abordagem permite distinguir, de maneira eficiente, as flutuações aleatórias dos desvios realmente significativos. Ao contrário dos métodos clássicos, o DADA se adapta dinamicamente a diferentes tipos de dados, selecionando o nível ideal de compressão para cada caso específico.
Gráficos na biblioteca DoEasy (Parte 95): Controles de objetos gráficos compostos
Neste artigo, consideraremos ferramentas para gerenciar objetos gráficos compostos, nomeadamente controles de um objeto gráfico padrão estendido. Hoje vamos nos desviar um pouco do tópico anterior, que era mover um objeto gráfico composto. Em vez disso, vamos fazer um manipulador de eventos de alteração de gráfico que tem algum objeto gráfico composto, e vamos lidar com os objetos de controle do objeto gráfico composto.
Avaliando o desempenho futuro com intervalos de confiança
Neste artigo, vamos explorar o uso do bootstrapping como um meio de avaliar a eficácia futura de uma estratégia automatizada.
Desenvolvendo um EA Multimoeda (Parte 13): Automação da segunda etapa — Seleção de grupos
A primeira etapa do processo automatizado de otimização já foi implementada. Para diferentes símbolos e timeframes, realizamos a otimização com base em vários critérios e armazenamos as informações dos resultados de cada execução em um banco de dados. Agora, vamos nos dedicar à seleção dos melhores grupos de conjuntos de parâmetros encontrados na primeira etapa.
Multibot no MetaTrader (Parte II): Modelo dinâmico aprimorado
Desenvolvendo o tema do artigo anterior, decidi criar um modelo mais flexível e funcional que possui maiores capacidades e pode ser usado de forma eficaz tanto em freelancing quanto como base para o desenvolvimento de EAs multicurrency e multiperíodo com a capacidade de integrar com soluções externas.
Modelos de regressão não linear no mercado
Modelos de regressão não linear no mercado: é realmente possível prever os mercados financeiros? Vamos tentar criar um modelo para prever os preços do euro-dólar e, com base nele, fazer dois robôs: um em Python e outro em MQL5.
DoEasy. Controles (Parte 16): Objeto WinForms TabControl - múltiplas fileiras de cabeçalhos de guias, modo esticamento de cabeçalhos consoante o tamanho do contêiner
Neste artigo vamos continuar o desenvolvimento do controle TabControl, e trataremos da localização dos cabeçalhos das guias nos quatro lados do controle para todos os modos de tamanho de cabeçalho: "Normal", "Fixed" e "Fill To Right".
Criando uma Interface Gráfica de Usuário Interativa em MQL5 (Parte 2): Adicionando Controles e Responsividade
Melhorar o painel GUI do MQL5 com recursos dinâmicos pode melhorar significativamente a experiência de negociação para os usuários. Ao incorporar elementos interativos, efeitos de hover e atualizações de dados em tempo real, o painel se torna uma ferramenta poderosa para os traders modernos.
Modelos de regressão não linear no mercado
Modelos de regressão não linear no mercado: é realmente possível prever os mercados financeiros? Vamos tentar criar um modelo para prever os preços do euro-dólar e, com base nele, fazer dois robôs: um em Python e outro em MQL5.
Algoritmos de otimização populacionais: algoritmo de gotas de água inteligentes (Intelligent Water Drops, IWD)
Neste artigo é analisado um algoritmo interessante chamado de gotas de água inteligentes (IWD), inspirado na natureza inanimada, que simula o processo de formação do leito de um rio. As ideias desse algoritmo permitiram melhorar significativamente o líder anterior da classificação, o SDS, e o novo líder (SDSm modificado), como de costume, pode ser encontrado no arquivo do artigo.
Técnicas do MQL5 Wizard que você deve conhecer (Parte 44): Indicador técnico Average True Range (ATR)
O oscilador ATR é um indicador muito popular para atuar como um proxy de volatilidade, especialmente nos mercados de forex onde os dados de volume são escassos. Nós o examinamos com base em padrões, assim como fizemos com indicadores anteriores, e compartilhamos estratégias e relatórios de testes graças às classes da biblioteca MQL5 wizard e sua montagem.
Gráficos na biblioteca DoEasy (Parte 94): objetos gráficos compostos, movimentação e eliminação
Neste artigo vamos começar a desenvolver os diversos eventos de um objeto gráfico composto. Analisaremos em parte a movimentação e a eliminação de um objeto gráfico composto. Hoje, estaremos, sobretudo, refinando o que foi criado no último artigo.