Discusión sobre el artículo "Red Neuronal: EA autooptimizable"

 

Artículo publicado Red Neuronal: EA autooptimizable:

¿Podríamos diseñar un EA que periódicamente, según ordenara su código, autooptimizara los criterios de apertura o cierre de posición?.¿Qué pasaría si implementamos en el EA una red neuronal (perceptrón multicapa) que sea el módulo que analice el historial y evalúe la estrategia?. Podríamos decirle al código: "optimiza cada mes (cada semana, cada día o cada hora) la red neuronal y continúa tu trabajo". ¡De esta forma, tendríamos un EA autooptimizable!

Si la prueba la hacemos con la siguiente estructura de red: "10 neuronas en la capa entrada, 35 neuronas en la 1ª capa oculta, 10 neuronas en la 2ª capa oculta, 1 neurona en la capa salida", el script nos facilita la siguiente información conforme se ejecuta...

Autor: Jose Miguel Soriano

 

Lamentablemente, no se observó autooptimización de ninguna función objetivo.

 

Quizá sea un fallo de traducción, pero no lo entiendo:

¿Qué le estás enseñando a la red neuronal?

¿Cuál es la entrada y cuál es el objetivo?

¿Qué se está optimizando exactamente?

Es un artículo farragoso.

Tanto para la ventaja de utilizar Alglig en MT5.

 
<br/ translate="no">
Me gustaría ver los resultados en el probador y el comercio en la demo en los artículos dedicados a la creación de Asesores Expertos. Si no, vuelve a ser un caballo esférico en el vacío. No ha habido ni un solo artículo sobre el uso de redes neuronales en trading. Sólo teorías.
 

Enhorabuena por la información,

faltaba el guión.

 

Hola y Gracias, fue genial ver este auto optimizador bu NN,

¿Cómo puedo usar esto en MT4? ¿tiene la versión MT4?

 
Comentarios sobre el artículo.
1. Las redes neuronales no optimizan. (en general cualquier modelo de aprendizaje automático) se entrenan, se prueban y se pueden seguir entrenando.
2. Preparación de los datos. Antes de normalizar los datos de entrada/salida, el conjunto de datos debe dividirse en entrenamiento/prueba y, a veces, en partes válidas en las proporciones necesarias. Los parámetros de normalización se definen en el conjunto de entrenamiento. Cuando se resuelven problemas de clasificación, la partición debe ser (preferiblemente) estratificada. Y, por supuesto, tener en cuenta el desequilibrio de clases.
El artículo no da datos específicos de entrada y salida, pero este pasaje: " La variable "nVelasPredic" permite extrapolar estos valores indicadores para n velas por delante". plantea una pregunta muda.
El último párrafo del apartado:"Es decir, cada fila del array "arDatos" de la clase CMatrixDouble tendrá tantas columnas como datos de entrada o valores indicadores se utilicen en la estrategia y tantos datos de salida defina." ¿Y cuántos datos de salida se definen? Como puedes adivinar, se resuelve el problema de regresión y el número de salidas = 1.
En general, los datos de entrada y salida en el durmiente son una abstracción, no obstante se da el error de aprendizaje RMSE.
3."Sobremuestreo de datos de entrada/salida".
"Para evitar las tendencias asociadas con la herencia de valores dentro de una matriz de datos, podemos cambiar arbitrariamente (reordenar) el orden de las filas dentro de la matriz. Para ello, aplicamos la función "barajaDatosEntra" que recorre las filas del array CMatrixDouble, define una nueva fila de destino para cada fila, respetando la posición de los datos de cada columna y realizando el barajado de datos mediante el método de la burbuja " ¿Estás hablando de ordenar?
Para los problemas de clasificación, barajar las filas aleatoriamente (no sobrepasar) es deseable, para la regresión no es necesario.
4."3.6.Entrenamiento/optimización de una red neuronal". Repito: una red neuronal no se optimiza ni se ajusta, se entrena. Hoy en día existen bastantes métodos de entrenamiento. Cada uno con sus ventajas e inconvenientes.
"Las pruebas que he realizado no han mostrado ninguna mejora en los resultados al aumentar el número de épocas de entrenamiento. "
"Estos algoritmos realizan el ajuste de tal forma que la reiteración de ciclos de entrenamiento (variable "ciclosEntrena") casi no tiene efecto sobre el error resultante, a diferencia del algoritmo de "back propagation", donde la reiteración puede cambiar significativamente la precisión resultante."
Si tu red neuronal no responde al cambiar el número de épocas de entrenamiento - Es una red neuronal que falla.
"Una red de 4 capas con 35, 45, 10 y 2 neuronas y una matriz de entrada de 2000 filas se puede optimizar usando la función anterior en 4 - 6 minutos (I5, core 4, RAM 8 gb) con un error del orden de 2 - 4 cienmilésimas (4x10^-5)." - Como se puede ver en el artículo hablas de error de aprendizaje, que siempre está muy bien. Pero lo indicativo es el error de comprobación, que evidentemente no has hecho. Sin tener datos concretos de entradas y salidas, la cifra que das no dice nada. Además, no he visto en el artículo el desplazamiento de los datos de salida durante el entrenamiento.
5."3.7 Guardar la red..."
Para seguir trabajando es necesario guardar no sólo la red en sí, sino también los parámetros de normalización que se obtuvieron en el conjunto de entrenamiento. De lo contrario, el trabajo posterior será una pérdida de tiempo.
"Se supone que esta función (respuestaRed()) puede cambiar la normalización aplicada a los datos de salida en la matriz de entrenamiento". ¿Cómo? Los parámetros de normalización se establecen en la etapa de entrenamiento y no pueden cambiarse en la etapa de prueba o predicción.
6. " Autooptimización" Aquí no hay ni optimización ni autooptimización. Se trata de una red neuronal que aprende periódicamente a partir de nuevos datos.

En resumen, puedo decir: como ejercicio de programación es probablemente útil, pero como guía sobre el tema de la creación y uso de una red neuronal es absolutamente inaceptable. El autor (o traductor) debería ceñirse a los términos y definiciones establecidos en este ámbito para no confundir a los usuarios. Y creo que la revisión preliminar de los textos antes de su publicación es muy deseable. No me refiero a la ausencia de gráficos, dibujos que ilustren el texto. Sin ellos es una hoja de código.

Suerte




 

Alexey Volchanskiy:
Хотелось бы в статьях, посвященных созданию советников, увидеть результаты в тестере и торговли на демо. А то опять сферический конь в вакууме. Еще не одной дельной статьи по использованию нейросетей в трейдинге не было. Одни теории.

La afirmación es contundente, pero infundada.

En el apéndice de los artículos (el mío al menos) hay códigos de Asesores Expertos. Ponlos en demo y pruébalos. ¿O prefieres creerte las fotos de los demás? No seas vago, pruébalo.

El propósito de los artículos es darle nuevas ideas, formas y métodos que se pueden aplicar en Asesores Expertos. Pero depende de usted para establecer un trabajo productivo. Es en el mercado que usted puede ser atraído por bellas imágenes.

Suerte

 
Gracias por su gran trabajo! Muy profundo para mi.
 
Excelentísimo trabajo y articulo súper enriquecedor, bien explicado y claro, solo puedo dar las gracias por su aporte en este campo.

Saludos.
 
MetaQuotes Software Corp.:

Se ha publicado un nuevo artículo Redes neuronales: sistemas comerciales inteligentes que se autooptimizan:

Por José Miguel Soriano

Gracias por compartir