Discusión sobre el artículo "Desarrollo de un robot en Python y MQL5 (Parte 1): Preprocesamiento de datos"
В задаче прогнозирования EURUSD мы добавили бинарный столбец "labels", указывающий, превысило ли следующее изменение цены спред и комиссию.
Por cierto, de más de 700.000 datos, el precio cambió más que el diferencial sólo en 70.000 casos.
EURUSD tiene ~0 spread el 90% de las veces. Usted trabaja con datos H1. ¿Cómo has obtenido este resultado?
Фича инжиниринг — преобразование исходных данных в набор признаков для обучения моделей машинного обучения. Цель — найти наиболее информативные признаки. Есть ручной подход (человек выбирает признаки) и автоматический (с помощью алгоритмов).
Utilizaremos un enfoque automático. Aplicaremos el nuevo método de creación de características para extraer automáticamente las mejores características de nuestros datos. A continuación, seleccionaremos las más informativas del conjunto resultante.
La mejor característica para la predicción de precios resultó ser el propio precio de apertura. En la parte superior se incluyeron señales basadas en medias móviles, incrementos de precios, desviación típica y variaciones de precios diarias y mensuales. Las señales generadas automáticamente resultaron ser poco informativas.Cabe preguntarse por la calidad de los algoritmos de generación de características, o más bien por su total ausencia.
Una persona generó todos los atributos a partir de datos OHLCT: cinco columnas en total. Está empujando el algoritmo de generación de rasgos sobre un número mucho mayor de rasgos originales. Es difícil imaginar que el algoritmo de generación de rasgos no pueda reproducir el más simple de los rasgos MA.
La agrupación de características combina características similares en grupos para reducir el número de características. Esto ayuda a eliminar datos redundantes, reducir la correlación y simplificar el modelo sin sobreajustarlo. La mejor característica para la predicción de precios resultó ser el propio precio de apertura.
¿El clustering descartó los precios HLC porque caían en el mismo cluster que el precio O?
Si el precio resultó ser el mejor signo para su predicción (y los demás signos son sus derivados), ¿significa que deberíamos olvidarnos de los demás signos y que es razonable añadir más datos de entrada pasando a un marco temporal inferior y tomando los precios de otros símbolos como signos?
Por supuesto, los precios deben eliminarse de la muestra de entrenamiento, ya que MO no funcionará adecuadamente con los nuevos datos, especialmente si caen fuera del rango de entrenamiento.
La gran capacidad informativa de los precios se debe a que sus valores son únicos, es decir, al algoritmo le resulta más fácil recordar o emparejar los precios con las etiquetas.
En la práctica, no sólo se eliminan las características poco informativas, sino también las sospechosamente sobreinformativas, que son los precios brutos.
En un escenario ideal, debería haber varios atributos que sean +- igual de informativos. Es decir, no hay líderes claros ni marginados. Esto significa que ninguno de los atributos ensucia el entrenamiento y no tira de la manta sobre sí mismo.Por supuesto, los precios deben eliminarse de la muestra de entrenamiento, ya que MO no funcionará adecuadamente con los nuevos datos, especialmente si caen fuera del rango de entrenamiento.
Si pasamos a las devoluciones, el algoritmo de generación de características se verá obligado a generar una suma acumulativa, que serán los mismos precios. Al mismo tiempo, no se sabrá que son los precios.
Si vamos a devoluciones, el algoritmo de generación de características está obligado a generar una suma acumulativa, que serán los mismos precios. No se sabrá que estos son los precios.
No lo entiendo
Todas las señales deberían ser pseudoestacionarias, como los incrementos. Los precios brutos deberían eliminarse de la formación.- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Desarrollo de un robot en Python y MQL5 (Parte 1): Preprocesamiento de datos:
Desarrollar un robot de trading basado en aprendizaje automático: Una guía detallada. El primer artículo de la serie trata de la recogida y preparación de datos y características. El proyecto se ejecuta utilizando el lenguaje de programación y las librerías Python, así como la plataforma MetaTrader 5.
El mercado es cada vez más complejo. Hoy se está convirtiendo en una batalla de algoritmos. Más del 95% del volumen de negocio lo generan los robots.
El siguiente paso es el aprendizaje automático. No son IA fuertes, pero tampoco son simples algoritmos lineales. El modelo de aprendizaje automático es capaz de obtener beneficios en condiciones difíciles. Es interesante aplicar el aprendizaje automático para crear sistemas de negociación. Gracias a las redes neuronales, el robot de trading analizará big data, encontrará patrones y predecirá los movimientos de los precios.
Examinaremos el ciclo de desarrollo de un robot de negociación: recopilación de datos, procesamiento, ampliación de muestras, ingeniería de características, selección y formación de modelos, creación de un sistema de negociación mediante Python y supervisión de las operaciones.
Trabajar en Python tiene sus propias ventajas: la velocidad en el campo del aprendizaje automático, así como la capacidad de seleccionar y generar características. La exportación de modelos a ONNX requiere exactamente la misma lógica de generación de características que en Python, lo que no es fácil. Por eso he elegido el comercio en línea a través de Python.
Autor: Yevgeniy Koshtenko