Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 1884
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
1. Así es, tienes que pasar por todas las opciones. El problema es que consume demasiado tiempo.
2. Lo intenté, y empeoró.
3. ¿Cómo sabes cuáles está usando? Es una caja negra, así que lo alimento todo.
Hay optimizadores de hiperparámetros, como el optimizador del probador de MT. Lo pones a 24 horas y lo recoge.
Me aburro esperando que se solucione, pero esto es una peculiaridad de la NS, no hay ciencia exacta, sólo experiencia (propia y ajena) e intuición. Puedo compartir mis resultados aquí o en privado.
Antes he publicado un ejemplo para la formación. La idea es enseñar a la red a comprar señales. Luego invierta la entrada y la red debería producir señales de venta. Se trata de una clasificación binaria de si hay señal o no. Se podría enseñar a la red a reconocer la compra y la venta, pero en mi opinión esto es peor. El rango de salida se limita a 0-1; si buscamos sólo compra, el rango se divide en 2 clases (hay compra y no hay compra) y el umbral se puede mover en 0,8. Si buscamos compra o venta, 0-1 se divide en 3 sectores: compra, venta y algo intermedio. En mi opinión, buscar sólo la señal de compra es: 2 veces más ejemplos de entrenamiento (flip input), menor tamaño de la red (la tarea es más fácil, se necesitan menos neuronas), menos tiempo de entrenamiento, solución más fácil (pensar sólo en una clase), pero esto es sólo teoría.
Tengo una idea, que la red busque las características por sí misma, le das un precio, señales deseadas, y lo hace todo por sí misma. He empezado con lstm, parece que es perfecto, pero de momento no tanto. Quiero probar las redes normales, y si no, ya pensaré qué pasará después. Las CNNs son un poco desordenadas, me estoy cansando de ajustar las configuraciones de las capas y los núcleos. Probablemente, sería más fácil introducir las ondículas en una red normal. Y si no me conviene, tendré que perder más tiempo seleccionando las señales de entrada, pero en este caso tengo una duda: ¿es realmente necesario, sería más fácil usar el sistema "clásico", sería más comprensible, fiable, económico y más fácil de probar.
¿Y cómo se analizan los resultados, sólo mirando los números? ¿Este es el código que utilizas?
Si construyes 2 gráficos, el de errores en la bandeja y el de pruebas, puedes utilizarlos para entender qué le falta a la red y en qué dirección moverse.
También dudé en esperar a que contara, pero esto es una peculiaridad de la NS, no hay ciencia exacta, sólo experiencia (ajena y propia) e intuición. Puedes compartir tus resultados aquí o en privado.
¿Hablamos de fotos o ya se trata del mercado?
¿Y cómo se analizan los resultados, sólo se miran los números? ¿Este es el código que utilizas?
Se construyen dos gráficos, uno para la bandeja y otro para la prueba. Con ellos se puede entender qué le falta a la red y en qué dirección moverse.
Puedo ver fácilmente que estoy en el proceso ))
Al principio lo dibujé usando el algoritmo estándar
import matplotlib.pyplot as plt
Pero fue inútil. Debido al gran ruido, el gráfico ya se encontraba en la línea horizontal después de 10 épocas.
Tengo la clasificación binaria y analizo el nivel de certeza de la red en cada respuesta, es decir, por ejemplo la respuesta correcta es 0 1 y la red da 0,4 0,6 - esta es una buena respuesta, y más a menudo la respuesta correcta es 0 1 y la red da 0,49 0,51
Cuando las respuestas son miles puedo agruparlas por certeza y hacer el análisis.
En consecuencia, en la práctica, este es el euro de hoy en día en M2, algo que la red neuronal está empezando a entender, pero hasta ahora tan débilmente.
El azul pronostica al alza, el amarillo a la baja.
Se nota enseguida que una persona está en el proceso real ))
Al principio dibujé usando el estándar
Pero no sirve de mucho, ya que debido al gran ruido el gráfico se sitúa en la línea horizontal después de 10 épocas.
Tengo la clasificación binaria y analizo el nivel de certeza de la red en cada respuesta, es decir, por ejemplo la respuesta correcta es 0 1 y la red da 0,4 0,6 - esta es una buena respuesta, y más a menudo la respuesta correcta es 0 1 y la red da 0,49 0,51
Cuando las respuestas son miles puedo agruparlas por certeza y hacer el análisis.
¿Puede publicar los gráficos? Cuantas más épocas y cuanto menor sea el tamaño del listón, más veces cambiarán los pesos. Además, tiene sentido cambiar el lerning_rate en el optimizador en +-un orden de magnitud. ¿Qué optimizador utiliza?
¿Puede publicar los gráficos? Además de las épocas, hay que cambiar el tamaño del lote; cuantas más épocas y menor sea el tamaño del lote, más veces se cambiarán los pesos. Además, tiene sentido cambiar lerning_rate en el optimizador por +-un orden de magnitud. ¿Qué optimizador utiliza?
Bach 128, si estamos hablando de lo mismo. Siempre debe ser 128 es algo que tiene que ver con TPU, tal requisito.
También dejé de cambiar las épocas, después de 150 normalmente no cambia nada.
No consigo que funcione con SGD.
Esta es mi cuadrícula, aquí cambio dinámicamente el número de capas
Esta es mi cuadrícula, aquí cambio dinámicamente el número de capas
Podrías probar otra cosa en lugar de la de abandono, reducir el número de neuronas. Añadir la inicialización y la normalización de los pesos. ¿Se procesan los datos de entrada de alguna manera? Mis resultados mejoraron después de multiplicar los datos de entrada por el orden de magnitud. Parece que, después de todo, tengo que deshacerme de la no estacionariedad.
Podrías probar otra cosa en lugar de Dropout, reducir el número de neuronas. Añadir la inicialización y la normalización de los pesos. ¿Se procesan los datos de entrada de alguna manera? Obtuve mejores resultados después de multiplicar los datos de entrada por un orden de magnitud, parece que tenemos que deshacernos de la no estacionariedad.
Ningún paquete dará un resultado exacto. Cualquier NS sólo puede dar una predicción probabilística al alza, a la baja o desconocida. El precio no obedece a las redes neuronales y puede ir fácilmente en contra de ellas. Una opción del 65% ya es aceptable.
Ningún paquete dará un resultado exacto. Cualquier NS sólo puede dar una predicción probabilística al alza, a la baja o desconocida. El precio no obedece a las redes neuronales y puede ir fácilmente en contra de ellas. La opción del 65% ya es aceptable.
Aquí está el 56%. El azul es como debería ser, el rojo es la respuesta de la red. Los porcentajes no significan nada.
aquí es el 48%, la cifra es aún menor, pero al menos tiene algún efecto.
Podrías probar otra cosa en lugar de Dropout, reducir el número de neuronas. Añadir la inicialización y la normalización de los pesos. ¿Se procesan los datos de entrada de alguna manera? Obtuve un mejor resultado después de multiplicar los datos de entrada por el orden de magnitud. Parece que, después de todo, tengo que deshacerme de la no estacionariedad.
Intenta jugar a esto, es bueno para entender cómo los parámetros influyen en los resultados.