Discusión sobre el artículo "Redes neuronales en el trading: Modelo multidimensional de extremo a extremo para la previsión de series temporales (Final)"

 

Artículo publicado Redes neuronales en el trading: Modelo multidimensional de extremo a extremo para la previsión de series temporales (Final):

Les presentamos la parte final de la serie dedicada a GinAR, un framework de red neuronal para la predicción de series temporales. En este artículo, vamos a analizar los resultados de las pruebas realizadas al modelo con datos nuevos y a evaluar su robustez en condiciones reales de mercado.

Hoy vamos a abordar la parte más importante y, quizás, la más interesante: la evaluación del rendimiento del framework GinAR en condiciones reales. Ya hemos superado las etapas de diseño de la arquitectura, la implementación de los componentes clave y la construcción de los algoritmos de pasada directa e inversa. Todos los elementos del sistema han sido minuciosamente desarrollados, probados y adaptados a las particularidades de las series temporales financieras. Ahora es el momento de combinarlos y ponerlos a prueba, para comprobar así la eficacia con la que GinAR aborda las tareas prácticas de análisis y previsión.

Tras completar la formación offline, pasamos a la segunda fase: el perfeccionamiento online, realizado en condiciones muy similares a las del mercado real. El entrenamiento se ha realizado en el simulador de estrategias de MetaTrader 5, donde el modelo ha analizado el mercado paso a paso, vela por vela, en modo de transmisión en tiempo real. Esto no solo nos ha permitido probar la resistencia del modelo al ruido, las distorsiones del mercado y las fluctuaciones aleatorias, sino que también se ha convertido en una importante herramienta de adaptación: el modelo no solo ha memorizado, sino que ha aprendido a funcionar en condiciones reales e impredecibles. Este enfoque ha aumentado significativamente su capacidad de supervivencia, reducido el sobreajuste y mejorado su capacidad de generalización.

El último paso ha sido probar el modelo con datos completamente nuevos: las cotizaciones correspondientes al periodo comprendido entre enero y marzo de 2025. Todos los parámetros y ajustes internos utilizados durante el entrenamiento se han mantenido sin cambios. De este modo, los resultados obtenidos nos permiten evaluar objetivamente no solo la exactitud, sino también la fiabilidad aplicada del enfoque propuesto.

Los resultados de las pruebas del modelo ofrecen una comprensión objetiva de su eficacia y estabilidad reales fuera de la muestra de entrenamiento. El depósito inicial de 100 dólares se ha incrementado a 1087,74 dólares, lo que equivale a un aumento de capital de más de 10 veces, un resultado impresionante a primera vista. Sin embargo, si profundizamos, se hace evidente una característica distintiva: el modelo demuestra una alta eficiencia al comienzo del periodo de prueba, pero luego, a medida que se aleja de la muestra de entrenamiento, su rendimiento comienza a disminuir.


Autor: Dmitriy Gizlyk

 
Redefinición del parámetro por defecto NeuroNet.mqh 13794 177
ninguna de las sobrecargas se puede aplicar a la llamada a la función Math.mqh 66 20

bool Math::MathPow(const double&[], const double, double&[]) Math.mqh 2976 6

 

Parece que han vuelto a hacer alguna chapuza con la llamada a las funciones... Ayudadme a aclararlo, por favor...

No reconoce

double Math::MathPow(double a), por ejemplo, pero solo ofrece implementaciones para matrices:

bool Math::MathPow(const double&[], const double, double&[])Math.mqh

¿Para qué sirven estas, si ni siquiera se entiende?!(((

 
Andrew_7543 la llamada a las funciones... Ayudadme a aclararlo, por favor...

No lo ve

double Math::MathPow(double a), por ejemplo, pero solo ofrece implementaciones para matrices:

bool Math::MathPow(const double&[], const double, double&[])Math.mqh

¿Para qué sirven estas, si ni siquiera se entiende su finalidad?!(((

En los lugares donde se produce el error, sustituye MathPow por::MathPow; esto permitirá acceder a las funciones del compilador, en lugar de a las declaradas en la clase.

 
(gracias) Bueno, en realidad, ¿qué otra opción me quedaba? Por eso seguí ese camino...
 
Dmitriy Gizlyk MathPow por::MathPow; esto permitirá acceder a las funciones del compilador, en lugar de a las declaradas en la clase.
Además, hay problemas similares en el módulo NeuroNet.mqh:

 call resolves to 'bool CNeuronPSBlock::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint)' instead of 'bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 3513 25
   see declaration of function 'CNeuronPSBlock::Init' NeuroNet.mqh 48451 22
   see declaration of function 'CNeuronConvSAMOCL::Init' NeuroNet.mqh 11308 22
no one of the overloads can be applied to the function call NeuroNet.mqh 21835 18
could be one of 2 function(s) NeuroNet.mqh 21835 18
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11308 22
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11309 22
call resolves to '<NA>' instead of 'bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 21835 18
   see declaration of function 'CNeuronConvOCL::Init' NeuroNet.mqh 10973 22
no one of the overloads can be applied to the function call NeuroNet.mqh 21840 18
could be one of 2 function(s) NeuroNet.mqh 21840 18
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11308 22
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11309 22
call resolves to '<NA>' instead of 'bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 21840 18
   see declaration of function 'CNeuronConvOCL::Init' NeuroNet.mqh 10973 22
no one of the overloads can be applied to the function call NeuroNet.mqh 21846 18
could be one of 2 function(s) NeuroNet.mqh 21846 18
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11308 22
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11309 22
call resolves to '<NA>' instead of 'bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 21846 18
   see declaration of function 'CNeuronConvOCL::Init' NeuroNet.mqh 10973 22
no one of the overloads can be applied to the function call NeuroNet.mqh 30722 16
could be one of 2 function(s) NeuroNet.mqh 30722 16
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10973 22
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10974 22
call resolves to '<NA>' instead of 'bool CNeuronProofOCL::Init(uint,uint,COpenCLMy*,int,int,int,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 30722 16
   see declaration of function 'CNeuronProofOCL::Init' NeuroNet.mqh 10856 22
no one of the overloads can be applied to the function call NeuroNet.mqh 30730 16
could be one of 2 function(s) NeuroNet.mqh 30730 16
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10973 22
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10974 22
call resolves to '<NA>' instead of 'bool CNeuronProofOCL::Init(uint,uint,COpenCLMy*,int,int,int,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 30730 16
   see declaration of function 'CNeuronProofOCL::Init' NeuroNet.mqh 10856 22
no one of the overloads can be applied to the function call NeuroNet.mqh 30755 16
could be one of 2 function(s) NeuroNet.mqh 30755 16
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10973 22
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10974 22
call resolves to '<NA>' instead of 'bool CNeuronProofOCL::Init(uint,uint,COpenCLMy*,int,int,int,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 30755 16
   see declaration of function 'CNeuronProofOCL::Init' NeuroNet.mqh 10856 22
wrong parameters count, 12 passed, but 15 requires NeuroNet.mqh 64222 22
   bool CNeuronTimeMoEAttention::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 63529 22
call resolves to 'bool CNeuronTimeMoEAttention::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' instead of 'bool CNeuronCrossDMHAttention::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 64222 22
   see declaration of function 'CNeuronTimeMoEAttention::Init' NeuroNet.mqh 63529 22
   see declaration of function 'CNeuronCrossDMHAttention::Init' NeuroNet.mqh 50759 22
7 errors, 8 warnings 7 8
 
Andrew_7543 #:
A continuación, se observan los mismos problemas en el módulo NeuroNet.mqh

Biblioteca corregida en el artículo «Redes neuronales en el trading: descomposición en lugar de escalado — Creación de módulos» - Artículos sobre MQL5

Нейросети в трейдинге: Декомпозиция вместо масштабирования — Построение модулей
Нейросети в трейдинге: Декомпозиция вместо масштабирования — Построение модулей
  • 2025.08.08
  • www.mql5.com
В этой статье продолжаем практическое знакомство с SSCNN — архитектурным решением нового поколения, способным работать с фрагментированными временными рядами. Вместо слепого масштабирования — разумная модульность, внимание к деталям и точечная нормализация. Мы шаг за шагом создаём вычислительные блоки в среде MQL5 и закладываем основу для надёжного прогнозного анализа.
 
Gracias) ¡Todo funciona como antes de la actualización del terminal... y un gran respeto por el artículo!!!!
 
@Dmitriy Gizlyk, hola... No acabo de entender muy bien qué ocurre con la formación en línea: ¿qué periodo habéis elegido y qué ajustes habéis utilizado en el simulador de estrategias para acercaros a las condiciones reales?