Prototipo académico para explorar representación multimodal, clasificación de tendencias y meta-labeling sobre datos EURUSD M15.
Important
Este repositorio documenta un experimento universitario. No es un sistema de trading, no ejecuta órdenes y sus resultados no demuestran rentabilidad real ni superioridad frente al estado del arte.
| Campo | Estado |
|---|---|
| Tipo | Proyecto académico exploratorio |
| Datos incluidos | EURUSD M15, desde 2013-01-01 hasta 2024-12-31 UTC |
| Evaluación publicada | Walk-forward experimental con XGBoost |
| Uso en vivo | No implementado |
| Reproducibilidad | Parcial; requiere correcciones y artefactos generados localmente |
| Auditoría metodológica | Pendiente antes de extraer conclusiones financieras |
El valor principal del repositorio está en integrar distintas ideas de representación temporal y documentar un flujo experimental. Las métricas publicadas deben leerse como resultados de clasificación bajo una función de pago sintética.
El proyecto explora cinco familias de características:
- representación temporal mediante un encoder tipo PatchTST;
- embeddings de un foundation model para series temporales;
- características de liquidez derivadas de OHLCV;
- tokens de patrones mediante K-Means;
- características espectrales y firmas geométricas.
Las etiquetas se generan con Trend Scanning sobre ventanas futuras de 20 a 100 velas. Después se prueban dos rutas diferentes:
- una arquitectura neuronal multimodal experimental, denominada HyperFusion;
- un pipeline walk-forward de XGBoost base más un meta-modelo que intenta estimar cuándo acertará el clasificador base.
Los archivos resultados_wf.csv, metricas_resumen.csv y las figuras publicadas corresponden a la segunda ruta, basada en XGBoost y features precomputadas. No constituyen una evaluación aislada de la arquitectura neuronal HyperFusion.
- encoder.ipynb: representación temporal con entrenamiento walk-forward.
- datos.ipynb: exportación de embeddings temporales.
- 01a_Foundation_Features.ipynb: embeddings del foundation model.
- 01b_Liquidity_Features.ipynb: características de liquidez.
- 01c_Semantic_Tokens.ipynb: tokenización K-Means.
- 01d_Spectral_Features.ipynb: características espectrales.
- 01e_Geometric_Signatures.ipynb: firmas de trayectoria.
- 02_Trend_Scanning_Labels.ipynb: construcción de etiquetas.
- 03_Main_Pipeline_WalkForward.ipynb: ensamblaje, modelos y evaluación.
Este orden todavía no constituye un pipeline reproducible de un solo comando. Hay rutas y nombres de artefactos que deben unificarse antes de poder ejecutar el proyecto de extremo a extremo sin intervención manual.
| Resultado publicado | Valor | Interpretación correcta |
|---|---|---|
| Observaciones OOS | 172.026 | Observaciones etiquetadas; no son operaciones independientes |
| Acierto del modelo base | 51,98 % | Exactitud sobre etiquetas de Trend Scanning |
| Actividad del filtro meta | 48,9 % | Fracción de observaciones aceptadas por el umbral |
| Acierto tras el filtro | 52,46 % | Exactitud condicional sobre observaciones aceptadas |
| Pago acumulado | 2.454,62 R | Suma sintética de +1/-1 R menos 0,02 R por observación activa |
| Drawdown del filtro meta | -864,34 R | Caída en unidades sintéticas; no es un porcentaje de capital |
| Sharpe publicado | 4,54 | Anualización simplificada; no es comparable directamente con un Sharpe de trading real |
| Bloques walk-forward positivos | 28 de 49 | El resultado agregado oculta una variabilidad temporal considerable |
La serie raw_pnl publicada presenta una autocorrelación de primer orden cercana a 0,81. Esto es coherente con etiquetas construidas sobre ventanas futuras solapadas y confirma que el número efectivo de observaciones independientes es mucho menor que 172.026.
El resultado asigna +1 R cuando el clasificador acierta la etiqueta y -1 R cuando falla. No calcula el retorno de una posición abierta y cerrada sobre precios reales. Por ello, retorno, drawdown, profit factor y Sharpe describen una simulación de clasificación, no una estrategia ejecutable.
Trend Scanning utiliza ventanas futuras de hasta 100 velas y genera etiquetas para puntos consecutivos. Muchas observaciones comparten parte del mismo movimiento de precio, por lo que no deben tratarse como trades independientes. Esto afecta la significancia estadística y la anualización de métricas.
El notebook de tokens contiene una primera versión que ajusta K-Means con todo el historial y una segunda versión que crea market_tokens_honest.h5 usando solo el 60 % inicial. Sin embargo, el ensamblaje neuronal referencia market_tokens.h5, la variante ajustada con todo el historial.
El pipeline XGBoost final aplica un embargo externo de 150 observaciones, mayor que el horizonte máximo de etiqueta, pero el split interno entre modelo base y meta-modelo no incorpora una purga equivalente. La ruta neuronal inicial tampoco purga las fronteras train/validation/test.
El CSV final se genera con XGBoost sobre features concatenadas. No existe una ablación que compare, bajo exactamente los mismos folds, HyperFusion neuronal, XGBoost simple, cada modalidad individual y combinaciones de modalidades. Por tanto, no puede atribuirse el desempeño publicado a la arquitectura completa.
El meta-modelo se entrena y el umbral se selecciona sobre el mismo bloque meta. Falta un bloque separado de calibración o validación para elegir el umbral sin optimismo in-sample.
Se descuenta un costo fijo de 0,02 R. No se modelan spread variable, slippage, latencia, tamaño de posición, turnover, horario, rollover, margen ni restricciones de ejecución. Tampoco existe integración con broker o paper trading.
Los baselines publicados son variaciones del mismo vector de aciertos: operar siempre, filtrar aleatoriamente u operar con un umbral alto. No incluyen reglas de mercado independientes, modelos estadísticos simples ni comparaciones reproducidas con trabajos publicados. En consecuencia, no puede afirmarse superioridad frente al estado del arte.
- Los artefactos HDF5 y checkpoints requeridos no están versionados.
- Las rutas esperadas por algunos notebooks no coinciden entre sí.
- requirements.txt no fija versiones y omite imports usados por los notebooks, entre ellos chronos, pywt, scipy e iisignature.
- No hay pruebas automatizadas, CI ni script único de ejecución.
- El repositorio contiene un solo commit, por lo que la evolución experimental no queda documentada.
El archivo EURUSD_M15_all.parquet está incluido, pero el repositorio todavía debe documentar su proveedor, método de descarga y permiso de redistribución. No se debe asumir que un dataset de mercado puede redistribuirse sin revisar su licencia.
- Reemplazar todas las referencias a market_tokens.h5 por una variante ajustada únicamente con datos pasados y regenerar resultados.
- Aplicar purged splits y embargo en todas las fronteras, incluido el split base/meta/calibración.
- Separar entrenamiento del meta-modelo, calibración del umbral y evaluación final.
- Convertir etiquetas en eventos no solapados o estimar incertidumbre con métodos que respeten la dependencia temporal.
- Construir un backtest sobre retornos y posiciones reales, con costos, turnover y reglas de entrada/salida explícitas.
- Ejecutar ablaciones de modalidades y comparar contra baselines temporales simples bajo los mismos folds.
- Reportar intervalos de confianza, estabilidad por período y sensibilidad a semillas e hiperparámetros.
- Unificar rutas, fijar dependencias, agregar tests y proporcionar un flujo reproducible de extremo a extremo.
- Documentar la procedencia del dataset y definir una licencia para el código.
El archivo requirements.txt enumera una base mínima, pero todavía no representa un entorno reproducible. Antes de ejecutar se deben añadir las dependencias faltantes, fijar versiones compatibles y documentar la versión de CUDA/PyTorch utilizada.
Este código se publica con fines educativos y de investigación. No debe utilizarse para operar capital real ni interpretarse como asesoría financiera. Cualquier conclusión posterior requiere una nueva evaluación con metodología corregida, datos cuya procedencia esté documentada y un holdout final que no se haya usado durante el desarrollo.
- Cristóbal Césped
- Boris Sagredo
Universidad Técnica Federico Santa María — proyecto académico, diciembre de 2025.
El repositorio no incluye actualmente un archivo LICENSE. No asumas permiso de reutilización o redistribución hasta que los autores incorporen una licencia explícita.