Discusión sobre el artículo "Gradient boosting (CatBoost) en las tareas de construcción de sistemas comerciales. Un enfoque ingenuo"
No hay necesidad de mezclar aquí
train_X, test_X, train_y, test_y = train_test_split(X, y, train_size = 0.5, test_size = 0.5, shuffle=True)
Según la ayuda de https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
Si barajar o no los datos antes de dividir. Si shuffle=False entonces stratify debe ser None.
Los datos se barajan antes de la división, es decir, algunos ejemplos de la prueba se incluirán en el tren.
En general, me gustó el artículo, muestra que es bastante fácil de implementar y utilizar la IA en el comercio.
- scikit-learn.org
Supongo que la validación empeoraría y la prueba con datos desconocidos podría mejorar.
No hay necesidad de revolver aquí
Según la ayuda https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
Los datos se mezclan antes de la división, es decir, algunos ejemplos de la prueba se incluirán en el tren.
En general, me gustó el artículo, muestra que es bastante fácil de implementar y utilizar la IA en el comercio.
Yo lo hago a propósito para igualar un poco las muestras. Sin mezclar la prueba sale peor, pero casi no tiene efecto en los nuevos datos. Mostraré ejemplos más adelante.
Eso es lo que no entiendo:
if dataset['close'][i] >= (dataset['close'][i + rand]): labels.append(1.0) elif dataset['close'][i] <= (dataset['close'][i + rand]): labels.append(0.0) else: labels.append(0.0)
Las condiciones que nunca funcionarán están marcadas en rojo.
Eso es lo que no entiendo:
Las condiciones que nunca funcionarán están marcadas en rojo.
Aquí no pasa nada, he cambiado las condiciones y sigo teniendo artefactos.
Sobre todo por la importación del modelo python en mql5.
Porque no soy un experto en ALGLIB pero creo firmemente que XGBoost CATBoost y Pytorch son de lejos superiores para hacer machine y deep learning.
Los árboles se construyen independientemente unos de otros, y luego se hace el recuento en las hojas (enumeración por predictores no cuantificados) de forma que se reduzca el error de gradiente.
Al seleccionar los predictores para la construcción del árbol y las divisiones del árbol, se utilizan coeficientes aleatorios, lo que permite, en teoría, aumentar la exhaustividad (Recall) y evitar el sobreentrenamiento.
Es mejor preguntar a los desarrolladores

- 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 Gradient boosting (CatBoost) en las tareas de construcción de sistemas comerciales. Un enfoque ingenuo:
Entrenamiento del clasificador CatBoost en el lenguaje Python, exportación al formato mql5; análisis de los parámetros del modelo y simulador de estrategias personalizado. Para preparar los datos y entrenar el modelo, se usan el lenguaje de programación Python y la biblioteca MetaTrader5.
Tras compilar el bot, podemos ponerlo a prueba en el simulador estándar de MetaTrader 5. No debemos olvidarnos de seleccionar el periodo temporal correcto (tiene que ser igual que en el entrenamiento del modelo), así como las entradas look_back y MA_period, que también son similares a los parámetros del programa Python. Luego, comprobamos el modelo durante el periodo de entrenamiento (muestra de entrenamiento + muestra de validación):
Rendimiento del modelo (muestra de entrenamiento + muestra de validación)
Si comparamos el resultado con el resultado del simulador personalizado, son iguales, salvo algunas desviaciones en los diferenciales. Ahora, vamos a probar el modelo con datos completamente nuevos, desde principios de año:
Rendimiento del modelo con los nuevos datos.
El modelo se ha comportado significativamente peor con los nuevos datos. Este resultado tan negativo está relacionado con razones objetivas que intentaremos exponer más tarde.
Autor: Maxim Dmitrievsky