Discussão do artigo "Criação de EAs auto-otimizáveis em MQL5 (Parte 7): Negociação simultânea com indicadores de vários períodos"

 

Novo artigo Criação de EAs auto-otimizáveis em MQL5 (Parte 7): Negociação simultânea com indicadores de vários períodos foi publicado:

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.

Em nossa discussão anterior sobre EAs auto-otimizáveis, desenvolvemos uma classe RSI que nos forneceu uma forma coerente e estruturada de obter dados do indicador para diversos períodos do RSI. Caso você tenha perdido essa parte, o artigo pode ser encontrado aqui. No entanto, nesta discussão deixaremos o RSI de lado e o substituiremos pelo indicador Williams' Percent Range (WPR).

O WPR costuma ser considerado um oscilador de momentum, e seu intervalo completo de valores vai de 0 a -100. Valores entre 0 e -20 são considerados baixistas, enquanto valores entre -80 e -100 são considerados altistas. Em essência, o indicador funciona comparando o preço atual de determinado símbolo com o valor máximo alcançado durante o período escolhido pelo usuário. Nossa primeira tarefa será criar uma nova classe SingleBufferIndicator, que servirá de base tanto para a classe RSI quanto para a classe WPR. Como as classes RSI e WPR terão a mesma classe base, poderemos manter um comportamento consistente entre ambas. Começaremos definindo a classe SingleBufferIndicator e listando seus membros.

Essa abordagem de projeto oferece várias vantagens. Por exemplo, se futuramente implementarmos uma nova funcionalidade que desejamos disponibilizar em todas as classes de indicadores, precisaremos atualizar apenas uma classe: a classe base no arquivo SingleBufferIndicator.mqh. Depois disso, bastará recompilar as classes derivadas para que as alterações passem a estar disponíveis. A herança é um recurso fundamental da programação orientada a objetos, pois permite gerenciar várias classes de forma eficiente modificando apenas uma delas.


Autor: Gamuchirai Zororo Ndawana