Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 129
![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
Aquí, he explicado exactamente lo que estoy haciendo:
En detalles: en la barra actual la señal de compra, como comprar, contar el menor número de barras hacia adelante al futuro y comprobar si el comercio es rentable, si es así, como cerrar, si no - contar una barra más hacia adelante y comprobar de nuevo. Y así llegamos al máximo número de barras y las cerramos finalmente. Se trata de un mecanismo de aprendizaje.
¿Qué no está claro? No es una fantasía, es exactamente lo que hago ahora. La función objetivo es maximizar los beneficios con mínimas detracciones. Me entreno con mi propia genética.
SanSanych Fomenko:
2. Puedes implementarlo así, ¿no?1. ¿Qué enseñamos?
1.la función del objetivo es maximizar los beneficios con las mínimas detracciones. Enseño con la ayuda de mi genética.
2. Sí, muy sencillo.
¿Alguien sabe cómo averiguar en qué idioma está escrito el paquete R?
Documentación. Se abre desde la Ayuda en R:
Además, hay una descripción detallada de cómo trabajar con Cp
Señores, una nueva tarea de mi parte:
Aquí hay un conjunto de datos en formato .R: https://drive.google.com/open?id=0B_Au3ANgcG7CcjZVRU9fbUZyUkE
Hay aproximadamente 40.000 filas y 101 columnas en el conjunto. La columna de la derecha es la variable objetivo. A la izquierda hay 100 entradas.
Te sugiero que intentes construir un modelo de regresión que prediga el valor de la columna 101 en función de las 100 columnas restantes, sobre las primeras 20.000 observaciones.
En las más de 20.000 observaciones restantes, el modelo construido debería mostrar un R^2 de al menos 0,5.
A continuación, revelo la forma en que se generan los datos y doy mi solución.
La pista son los datos de las series temporales. La entrada es de 100 muestras, con una predicción de 1 por delante. No se trata de precios o cotizaciones ni de sus derivados.
Alexey
Intenté encontrar la importancia de los predictores a través del paquete vtreat. Pero el paquete no es capaz de buscar relaciones entre predictores, sólo tiene en cuenta las relaciones directas entre el predictor y el objetivo, no es muy adecuado para esta tarea.
A juzgar por la importancia de vtreat - lag_diff_51 y lag_diff_52 son los más útiles. Poco a poco fui añadiendo otros predictores de la lista recibida y miré el crecimiento de R^2 en los datos de entrenamiento para el bosque. Al final me detuve en estos predictores - 51, 52, 53, 54, 55, 17, 68, muy probablemente se utilizan para calcular el objetivo. R^2 en los datos de entrenamiento con ellos > 0,9, pero en las pruebas y validaciones todo es malo. Ahora necesito probar diferentes operaciones matemáticas con estos predictores, seleccionar fórmulas y demás, para que en la validación cruzada el R^2 también aumente. No lo buscaré más :)
Lo terminé más tarde:
Experimenté un poco más, hice un montón de nuevos predictores a partir de los existentes, con diferentes operaciones matemáticas. Tanto vtreat como forest se decantan por estas dos combinaciones: sum(51,52) y average(51,52). Pero nunca he podido conseguir una fórmula para el valor objetivo. Y los modelos entrenados con estos predictores tampoco pueden predecir nada adecuadamente.
¿100 entradas? Eso es fuerte.
¿Por qué no mil?
No tenéis ni idea de lo que es una red de nervios.
Intenté encontrar la importancia de los predictores a través del paquete vtreat. Pero el paquete no es capaz de buscar relaciones entre predictores, sólo tiene en cuenta las relaciones directas entre el predictor y el objetivo, no es muy adecuado para esta tarea.
A juzgar por la importancia de vtreat - lag_diff_51 y lag_diff_52 son los más útiles. Poco a poco fui añadiendo otros predictores de la lista recibida y miré el crecimiento de R^2 en los datos de entrenamiento para el bosque. Al final me detuve en estos predictores - 51, 52, 53, 54, 55, 17, 68, muy probablemente se utilizan para calcular el objetivo. R^2 en los datos de entrenamiento con ellos > 0,9, pero en las pruebas y validaciones todo es malo. Ahora necesito probar diferentes operaciones matemáticas con estos predictores, seleccionar fórmulas y demás, para que en la validación cruzada el R^2 también aumente. No lo buscaré más :)
Lo terminé más tarde:
Experimenté un poco más, hice un montón de nuevos predictores a partir de los existentes, con diferentes operaciones matemáticas. Tanto vtreat como forest se decantan por estas dos combinaciones: sum(51,52) y average(51,52). Pero nunca he podido conseguir una fórmula para el valor objetivo. Y los modelos entrenados con estos predictores tampoco pueden predecir nada adecuadamente.
Además, 0,9 es sobreentrenamiento. Un R^2 superior a 0,6 en un conjunto de entrenamiento es un máximo realista.
Una cosa más: recuerda lo de las interacciones. Las conexiones individuales pueden llevar a una dirección falsa.
Yo mismo estoy tratando de resolver mi propia tarea. He aplicado NS de una sola capa. La prueba R^2 no supera el 0,148. No encaja...