Discusión sobre el artículo "Uso del algoritmo de aprendizaje automático PatchTST para predecir la acción del precio durante las próximas 24 horas"
Hola, ¿puedes explicarme mejor que son esas barras que veo en MT5? ok tienen dos colores verde y rojo pero ¿que indican? Gracias
Las barras verdes y rojas se generan a partir de este fragmento de código:
ObjectSetInteger(0, obj_name, OBJPROP_COLOR, close > open ? clrGreen : clrRed);
Así que el verde significa que el modelo piensa que el cierre será mayor que la apertura (muy parecido a una barra verde en un gráfico de velas), en el futuro en ese momento. Rojo significa que el cierre será menor que la apertura para esa hora en el futuro.
Como por ejemplo, entrené el modelo para algunos otros pares ayer. Usé el indicador que muestro en el gráfico pero el modelo ONNX fue entrenado para USDJPY y AUDUSD. Esta mañana hice una operación de 15R basada en la predicción del modelo para el USDJPY. Ni siquiera estaba mirando los gráficos mientras todo esto sucedía. Simplemente tomé la operación por la tarde después de completar el entrenamiento y dejé que la posición se ejecutara durante la noche (pagué el swap). En mi experiencia, hasta ahora, lo que he sido capaz de discernir es que en general se puede confiar en la dirección que el modelo está prediciendo. Observe también cualquier patrón que pueda ver, por ejemplo, más barras rojas consecutivas en el gráfico indicarían que el modelo piensa que el precio bajará. Más barras verdes indicarían que el modelo cree que el precio subirá.
Como puedes ver, también perdí alrededor de 1R para el AUDUSD basándome en la predicción del modelo, así que no es perfecto. Usted todavía tiene que utilizar sus otras habilidades como la oferta y la demanda de las zonas para el establecimiento de SL y TP, fundamentos macro, positing tamaño, y la gestión de riesgos, etc. En mi opinión, el uso de modelos PatchTST entrenados le dará mucha más precisión y confianza en la colocación de esas operaciones a la hora correcta del día o en la sesión correcta por lo menos (Asia, Londres o Nueva York). La siguiente captura de pantalla es de una evaluación de una firma de props en la que estoy trabajando en este momento.
Hola, ¡es un trabajo increíble!
Gracias por tu interés y tus atentos comentarios sobre el algoritmo de trading ML. Me alegro de que la idea le haya parecido interesante. Permítanme abordar sus puntos uno por uno:
- Rendimiento de LSTM frente a PatchTST:
- PatchTST me pareció más preciso a la hora de predecir tendencias.
- LSTM pareció funcionar mejor durante las consolidaciones.
- En general, PatchTST obtuvo un porcentaje de victorias ligeramente superior en mis pruebas.
- Periodo de entrenamiento y plazos:
- He experimentado con la formación en diferentes plazos.
- El plazo de 1 hora parece funcionar mejor en mi experiencia.
- No he probado específicamente el entrenamiento en un período de un mes, ya que los datos históricos más largos tienden a producir modelos más robustos.
- Combinación de modelos y plazos:
- Su idea de combinar modelos en diferentes plazos (por ejemplo, H1 y M15) es interesante.
- Hay que tener en cuenta una contrapartida: el uso de plazos más cortos requiere más puntos de datos y aumenta exponencialmente el tiempo de entrenamiento.
- Por ejemplo, utilizar un marco temporal de 15 minutos requeriría 4 veces más barras que el marco temporal de 1 hora para un entrenamiento equivalente, aumentando también el horizonte de predicción en un factor de 4.
- Estrategia scalper en M1:
- Su sugerencia de crear un scalper en el marco temporal M1, utilizando las predicciones como filtro, es creativa.
- La idea de utilizar 7/10 barras verdes para comprar y 5-6/10 para fluctuar es un buen punto de partida para una estrategia.
- Este enfoque podría reducir las señales falsas y mejorar el momento de entrada.
- Trabajo actual y futuras direcciones:
- Actualmente estoy trabajando en un enfoque de 3 niveles: a) Un modelo que predice la acción del precio en un plazo de 1 semana b) Otro modelo para el plazo de 1 día c) Un tercer modelo para el plazo de 5 minutos.
- Todos ellos son modelos diferentes, adaptados a sus marcos temporales específicos.
- El objetivo es crear un sistema de negociación más completo que tenga en cuenta múltiples horizontes temporales.
- Consideraciones adicionales:
- La combinación de predicciones de múltiples plazos y modelos puede mejorar el rendimiento general de la estrategia.
- Sin embargo, es fundamental gestionar la complejidad y evitar el sobreajuste.
- Las pruebas retrospectivas y prospectivas con datos fuera de la muestra son esenciales para validar la eficacia de cualquier enfoque combinado.
Gracias de nuevo por compartir sus ideas. Me han aportado nuevas perspectivas para mi trabajo en curso. Si tienes más ideas o preguntas, no dudes en planteármelas.
# Step 11: Train the model for epoch in range(num_epochs): model.train() total_loss = 0 for batch_X, batch_y in train_loader: optimizer.zero_grad() batch_X = batch_X.to(device) batch_y = batch_y.to(device) outputs = model(batch_X) outputs = outputs[:, -pred_length:, :4] loss = loss_fn(outputs, batch_y) loss.backward() optimizer.step() total_loss += loss.item() print(f"Epoch {epoch+1}/{num_epochs}, Loss: {total_loss/len(train_loader):.10f}")
RuntimeError: permute(sparse_coo): number of dimensions in the tensor input does not match the length of the desired ordering of dimensions i.e. input.dim() = 3 is not equal to len(dims) = 4
Echa un vistazo al nuevo artículo: Uso del algoritmo de aprendizaje automático PatchTST para predecir la acción del precio de las próximas 24 horas.
Autor: Shashank Rai
Gracias por publicar un artículo tan fascinante. Tengo experiencia con python, pero no he incursionado mucho con modelos de IA.
Si quiero entrenar con datos M1 en lugar de H1, ¿sería un cambio razonable en el script de entrenamiento? Gracias.
seq_length = 10080 # 1 semana de datos M1 pred_length = 30 # Predecir los próximos 30 minutos
Todas las series numéricas se calculan en una calculadora normal. Si lo desea, puede introducir todo en Excel, o escribir un inductor MT.
El algoritmo PatchTST es, en efecto, más complejo que los cálculos numéricos básicos, pero eso es por diseño. Mientras que para los cálculos básicos se puede utilizar Excel o herramientas más sencillas, las redes neuronales como PatchTST pueden captar patrones complejos en los datos del mercado que podrían no ser evidentes con métodos de análisis más simples. La fuerza del modelo radica en su capacidad para aprender estos patrones automáticamente a partir de datos históricos.
Gracias por publicar un artículo tan fascinante. Tengo experiencia con python, pero no he incursionado mucho con modelos de IA.
Si quiero entrenar con datos M1 en lugar de H1, ¿sería un cambio razonable en el script de entrenamiento? Gracias.
Gracias por su interés. Sí, esos cambios en los parámetros funcionarían en principio, pero hay algunas consideraciones importantes al cambiar a datos M1:
1. Volumen de datos: Entrenar con 10080 minutos (1 semana) de datos M1 significa manejar significativamente más puntos de datos que con H1. Esto supondrá:
- Aumentará sustancialmente el tiempo de entrenamiento
- Requerirá más memoria
- Potencialmente necesitará aceleración GPU para un entrenamiento eficiente.
2. Ajustes en la arquitectura del modelo: En el paso 8 del entrenamiento del modelo y el paso 4 del código de predicción, es posible que desee ajustar otros parámetros para acomodar la secuencia de entrada más grande:
class Config: def __init__(self): self.patch_len = 120 # Considerar tamaños de parche mayores para los datos M1 self.stride = 120 # Adjust stride accordingly self.d_model = 128 # Podría necesitar un modelo de mayor capacidad3. 3. Calidad de la predicción: Aunque obtendrá predicciones más detalladas, tenga en cuenta que los datos M1 suelen contener más ruido. Puede que desee experimentar con diferentes longitudes de secuencia y ventanas de predicción para encontrar el equilibrio óptimo.
- 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 Uso del algoritmo de aprendizaje automático PatchTST para predecir la acción del precio durante las próximas 24 horas:
En este artículo, aplicamos un algoritmo de red neuronal relativamente complejo lanzado en 2023 llamado PatchTST para predecir la acción del precio durante las próximas 24 horas. Utilizaremos el repositorio oficial, haremos ligeras modificaciones, entrenaremos un modelo para EURUSD y lo aplicaremos para realizar predicciones futuras tanto en Python como en MQL5.
Me encontré por primera vez con un algoritmo llamado PatchTST cuando comencé a investigar los avances de IA asociados con las predicciones de series de tiempo en Huggingface.co. Como sabrá cualquiera que haya trabajado con grandes modelos lingüísticos (LLM), la invención de los transformadores ha supuesto un cambio radical en el desarrollo de herramientas para el procesamiento del lenguaje natural, las imágenes y el vídeo. ¿Pero qué pasa con las series temporales? ¿Es algo que simplemente quedó atrás? ¿O la mayor parte de la investigación se realiza simplemente a puertas cerradas? Resulta que hay muchos modelos más nuevos que aplican transformadores con éxito para predecir series de tiempo. En este artículo, analizaremos una de esas implementaciones.
Lo impresionante de PatchTST es lo rápido que es entrenar un modelo y lo fácil que es usar el modelo entrenado con MQL. Admito abiertamente que soy nuevo en el concepto de redes neuronales. Pero al pasar por este proceso y abordar la implementación de PatchTST descrita en este artículo para MQL5, sentí que di un gran paso adelante en mi aprendizaje y comprensión de cómo se desarrollan, solucionan problemas, entrenan y utilizan estas redes neuronales complejas. Es como coger a un niño, que apenas está aprendiendo a andar, y ponerlo en un equipo de fútbol profesional, esperando que marque el gol de la victoria en la final de la Copa del Mundo.
Autor: Shashank Rai