Discusión sobre el artículo "Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 7): Trading con múltiples períodos simultáneamente"

 

Artículo publicado Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 7): Trading con múltiples períodos simultáneamente:

En esta serie de artículos, hemos analizado diversas formas de determinar cuál es el mejor período para utilizar nuestros indicadores técnicos. Hoy, demostraremos al lector cómo puede aplicar la lógica opuesta; es decir, en lugar de elegir un único período óptimo, le mostraremos cómo emplear todos los períodos disponibles de forma eficaz. Este enfoque reduce la cantidad de datos descartados y ofrece casos de uso alternativos para los algoritmos de aprendizaje automático, más allá de la predicción habitual de precios.

En nuestro análisis anterior sobre asesores expertos autooptimizables, creamos una clase RSI que nos proporcionó una forma significativa y organizada de obtener datos de indicadores en muchos períodos RSI diferentes. Los lectores que no estén familiarizados con ese debate pueden ponerse al día rápidamente siguiendo el enlace que se proporciona aquí. Para este análisis, sin embargo, dejaremos de lado el RSI y lo sustituiremos por el indicador Williams Percent Range (WPR).

El WPR se considera generalmente un oscilador de momento, y su rango total posible va de 0 a -100. Las lecturas entre 0 y -20 se consideran bajistas, mientras que las lecturas entre -80 y -100 se consideran alcistas. El indicador funciona básicamente comparando el precio actual de un símbolo determinado con el máximo alcanzado dentro del período seleccionado por el usuario. Nuestro primer objetivo será crear una nueva clase llamada "SingleBufferIndicator" que será compartida por nuestras clases RSI y WPR. Al hacer que nuestras clases RSI y WPR compartan una clase padre común, experimentaremos una funcionalidad coherente en ambas clases de indicadores. Comenzaremos definiendo la clase "SingleBufferIndicator" y enumerando sus miembros. 

Este enfoque de diseño nos ofrece muchas ventajas; por ejemplo, si en el futuro queremos que todas las clases de indicadores tengan una nueva funcionalidad, solo necesitamos actualizar una clase, la clase padre "SingleBufferIndicator.mqh", y a partir de ahí solo necesitamos compilar las clases hijas para que las actualizaciones estén disponibles. La herencia es una característica indispensable de la programación orientada a objetos porque nos permite controlar eficazmente muchas clases modificando únicamente una de ellas. 


Autor: Gamuchirai Zororo Ndawana