Discusión sobre el artículo "Redes neuronales en el trading: Modelo multidimensional de extremo a extremo para la previsión de series temporales (Componentes principales)"

Artículo publicado Redes neuronales en el trading: Modelo multidimensional de extremo a extremo para la previsión de series temporales (Componentes principales):

Hoy les invitamos a explorar una nueva implementación de los componentes clave del framework GinAR, un algoritmo adaptativo para trabajar con series temporales de grafos. El artículo ofrece un análisis paso a paso de la arquitectura y los algoritmos de propagación directa e inversa del error.

El mecanismo de Interpolation Attention ocupa un lugar central en la arquitectura. No se trata de un núcleo de Self-Attention clásico, sino de un módulo adaptativo completo capaz de considerar tanto las dependencias globales entre variables como el contexto de observación local. En la práctica, esto significa que el modelo es capaz de, por ejemplo, predecir el valor de un indicador financiero, incluso en ausencia de sus últimas mediciones, usando la estructura de los indicadores vecinos y el panorama general del mercado. Este enfoque resulta fundamental en entornos reales donde los datos a menudo llegan tarde, de forma desigual o con grandes lagunas.

La característica distintiva de GinAR es su capacidad para reconstruir dinámicamente la estructura de grafos durante el entrenamiento. A diferencia de la mayoría de los modelos de grafos, donde la estructura está fijada de antemano, aquí se conforma durante el proceso de aprendizaje. Esto nos permite considerar las condiciones cambiantes del mercado, las correlaciones y los factores ocultos. El modelo decide de forma independiente qué variables deben vincularse entre sí, cuáles deben debilitarse y cuáles deben destacarse como clave para el contexto actual. Esto crea una arquitectura flexible que puede adaptarse a los regímenes y dinámicas del mercado.

En la parte práctica del artículo anterior, realizamos una cantidad significativa de trabajo, sentando las bases para los cálculos en el programa OpenCL. Asimismo, implementamos todas las funciones clave, desde reducciones locales y cálculos SoftMax hasta las pasadas directa y inversa en el módulo de Interpolation Attention. Además, prestamos especial atención al manejo correcto de la memoria local, la sincronización de flujos y la estabilidad numérica, lo cual es especialmente importante al trabajar con series temporales incompletas en condiciones de computación paralela.

Esta preparación nos abre el camino a la siguiente etapa: la integración del núcleo del modelo en el programa principal. Aquí es donde el algoritmo cobra vida: así, obtendremos los datos del entorno comercial, los procesaremos mediante dispositivos OpenCL, los pasaremos a través del modelo y los devolveremos como pronósticos y decisiones comerciales. Este puente entre la lógica de alto nivel y la computación acelerada de bajo nivel supone una parte fundamental de toda nuestra implementación de la arquitectura GinAR.


Autor: Dmitriy Gizlyk

Un artículo muy interesante y una valiosa continuación de la serie sobre la implementación de GinAR. La arquitectura nos ha llamado la atención porque actualmente estamos desarrollando un marco de investigación más amplio y de varias etapas sobre aprendizaje automático para el trading algorítmico, y una de las áreas que estamos investigando activamente es si la modelización entre activos puede aportar información que no captan los modelos tradicionales por símbolo.

Nuestro marco está dividido intencionadamente en capas independientes: recopilación de datos de mercado, ingeniería de características, construcción de conjuntos de datos históricos, investigación de modelos, validación, generación de candidatos y ejecución. El aprendizaje automático se trata como una capa de evidencia, más que como una fuente de autoridad directa para la negociación. Por lo tanto, no se permite que un modelo influya en las decisiones de negociación posteriores simplemente porque tenga un buen rendimiento dentro de la muestra; primero debe demostrar un valor incremental estable fuera de la muestra.

Actualmente trabajamos con un universo multiactivos que abarca divisas, oro, índices estadounidenses, acciones e instrumentos energéticos. Los datos históricos se procesan a través de un flujo de trabajo «Bronce → Plata → Oro», con estrictos controles puntuales. La información disponible en el momento de la decisión se mantiene separada de la información futura utilizada para las etiquetas y el análisis de resultados.

Nuestro actual contrato de entrenamiento «Gold» contiene 142 características de origen por observación, compuestas por 129 características numéricas y 13 categóricas. El conjunto de características incluye volatilidad, tendencia, impulso, estructura del mercado, comportamiento ante rupturas, contexto de la acción del precio, condiciones de liquidez, estado de la sesión y otros descriptores determinísticos del mercado.

Antes de probar GinAR, ya habíamos creado una familia de modelos de segunda generación utilizando regresión logística, XGBoost, LightGBM y CatBoost. Estos modelos se evaluaron mediante validación cronológica «walk-forward», filtrado por umbrales, análisis de estabilidad por bootstrap, comprobaciones de calibración, análisis de regímenes y una etapa de validación independiente.

Diez instrumentos alcanzaron nuestra fase de candidatos «PASS» en la validación profunda:

GBPUSD, USDCHF, US500, US30, USDCAD, EURUSD, USDJPY, EURGBP, USTEC y XAUUSD.

Estos se convirtieron en el universo de investigación inicial para nuestro experimento con GinAR.

Lo que hizo que GinAR nos resultara especialmente interesante es que introduce algo fundamentalmente diferente de nuestros modelos existentes. Nuestros modelos GEN2 actuales son, en gran medida, clasificadores por símbolo, mientras que GinAR ofrece la posibilidad de aprender relaciones dinámicas entre activos y representaciones latentes en varios instrumentos simultáneamente.

Esto es especialmente relevante en los mercados financieros, ya que los instrumentos no son independientes entre sí. Las relaciones entre divisas, el oro, los índices bursátiles y otros activos cambian en función del régimen de mercado, la volatilidad y la estructura de la sesión. Además, un universo de negociación multiactivos contiene, por naturaleza, períodos en los que no todos los instrumentos tienen cotizaciones válidas o sesiones activas al mismo tiempo.

Por este motivo, creamos una rama de investigación de GinAR completamente independiente, sin autoridad para operar y sin ningún efecto sobre nuestro sistema de ejecución actual.

El objetivo no era reproducir línea por línea la implementación descrita en este artículo, ni sustituir de inmediato nuestros modelos actuales. En cambio, queríamos responder a una pregunta de investigación más concreta:

¿Puede un modelo de grafos entre activos al estilo GinAR proporcionar información adicional fuera de la muestra más allá de nuestros modelos GEN2 existentes por símbolo?

Por lo tanto, nuestra implementación fue un modelo de investigación «clean-room» inspirado en GinAR y basado en las principales ideas arquitectónicas:

  • atención por interpolación,
  • relaciones de grafo adaptativas,
  • transformaciones convolucionales de grafos,
  • estado de grafo recurrente,
  • clasificación a nivel de nodo.

Para el primer experimento utilizamos la parte numérica común del contrato de características Gold, lo que proporcionó al modelo 129 características numéricas por nodo.

El objetivo utilizado en este experimento fue un problema de clasificación WHIPSAW de 240 minutos.

La integridad de las etiquetas resultó ser una cuestión metodológica importante. Nuestras etiquetas históricas contienen:

WHIPSAW

NO_WHIPSAW

AMBIGUOUS_FIRST_MOVE

y, en algunos casos, INCOMPLETO.

AMBIGUOUS_FIRST_MOVE se produce cuando se alcanzan ambas barreras de primer movimiento dentro de la misma barra M1, lo que significa que no es posible determinar el orden real dentro de la barra a partir de los datos de origen disponibles.

Por lo tanto, utilizamos un:

AMBIGUOUS_DO_NOT_GUESS

.

El contrato objetivo binario quedó así:

WHIPSAW = 1

NO_WHIPSAW = 0

mientras que AMBIGUOUS_FIRST_MOVE e INCOMPLETE se excluyeron de las métricas binarias de pérdida y evaluación, en lugar de ser asignados forzosamente a una de las dos clases.

Este punto era importante para nosotros, ya que convertir los resultados ambiguos en una de las dos clases introduciría ruido artificial en las etiquetas.

También mantuvimos controles estrictos contra la anticipación.

El protocolo de validación fue el siguiente:

180 días de entrenamiento

30 días de validación

paso de avance de 60 días

Purga/intervalo de 240 minutos

Muestra de validación final sin tocar de 60 días

El conjunto de validación final permaneció sellado durante el experimento inicial de GinAR.

Evitamos deliberadamente la división aleatoria entre datos de entrenamiento y de prueba.

Otro punto importante se refiere a las variables que faltan. La «Atención de Interpolación» de GinAR resulta potencialmente muy útil para un entorno de negociación de múltiples activos en el que los instrumentos pueden no estar disponibles temporalmente debido a las diferentes sesiones de negociación.

Sin embargo, no utilizamos el modelo para generar observaciones históricas.

Las observaciones de origen que faltaban siguieron sin aparecer en los conjuntos de datos originales y se representaron explícitamente mediante máscaras. La interpolación interna se utilizó únicamente como parte de la representación neuronal. No se reescribieron valores reconstruidos en nuestros conjuntos de datos de referencia.

A continuación, entrenamos el modelo de investigación GinAR en seis pliegues cronológicos de avance progresivo.

El número de observaciones objetivo válidas fue elevado y relativamente estable en todas las series. La evaluación OOF resultante generó aproximadamente 114 558 predicciones fuera de la serie.

Los valores de PR-AUC en los seis pliegues fueron:

Plegado 1: 0,6894

Plegado 2: 0,6910

Plegado 3: 0,6833

Plegado 4: 0,6866

Plegado 5: 0,6584

Plegado 6: 0,6999

La mayoría de los pliegues se mostraron razonablemente estables, aunque el pliegue 5 fue notablemente más débil. Consideramos que ese periodo es especialmente interesante para un análisis posterior del régimen y de la estructura del grafo.

El siguiente paso fue la parte que consideramos más importante: una comparación directa con nuestros modelos GEN2 de referencia.

Alineamos las predicciones OOF de GinAR con las predicciones GEN2 correspondientes en la misma intersección de símbolo y marca de tiempo.

La comparación incluyó 90 122 observaciones «out-of-fold» coincidentes.

El resultado fue:

Delta PR-AUC: -0,0161

Delta LogLoss: +0,0059

Dado que es preferible un PR-AUC más alto y un LogLoss más bajo, el resultado actual favorecía claramente a los modelos GEN2 existentes.

En otras palabras, en nuestro primer experimento, GinAR no superó a nuestra familia de modelos existente de regresión logística / XGBoost / LightGBM / CatBoost como clasificador WHIPSAW independiente.

Por lo tanto, no promovimos GinAR como sustituto de GEN2.

Sin embargo, no creo que este resultado haga que GinAR carezca de interés para aplicaciones financieras.

De hecho, el experimento podría sugerir que la parte más valiosa de la arquitectura no es necesariamente el clasificador independiente final.

GinAR crea una representación latente entre activos que nuestros modelos independientes por símbolo no poseen de forma natural.

Por este motivo, mantenemos GinAR como codificador de investigación y cambiamos la siguiente pregunta de investigación de:

«¿Puede GinAR sustituir a GEN2?»

a:

«¿Puede GinAR proporcionar información complementaria que abarque distintos activos a GEN2?»

Por lo tanto, nuestro próximo experimento previsto es:

Línea de referencia de GEN2

frente a

GEN2 + GinAR con incrustaciones entre activos

utilizando apilamiento «fold-safe», análisis de desacuerdo de probabilidades, análisis de regímenes, análisis de estabilidad de grafos y pruebas de ablación.

Nos interesa especialmente examinar los casos en los que el modelo GEN2, considerado el mejor, se equivoca mientras que GinAR acierta, y viceversa. Si estos conjuntos de errores son lo suficientemente diferentes, la representación de GinAR podría seguir siendo útil como capa de características adicional, aunque su PR-AUC por sí sola sea inferior.

También tenemos previsto examinar si la matriz de adyacencia aprendida se mantiene estable a lo largo del tiempo o si las relaciones entre instrumentos cambian de forma significativa en función de los distintos regímenes de volatilidad y de mercado.

Es aquí donde creemos que los modelos basados en grafos pueden resultar especialmente útiles en los sistemas de negociación.

Por ejemplo, la relevancia de relaciones como:

Oro ↔ USD,

divisas ↔ índices estadounidenses,

USDCAD ↔ energía,

o USTEC ↔ grandes valores tecnológicos

no tiene por qué mantenerse constante a lo largo del tiempo.

Un modelo capaz de aprender estas relaciones de forma dinámica puede ofrecer un contexto valioso, incluso si su módulo de clasificación directa no es el predictor independiente más sólido.

También merece la pena mencionar una lección metodológica de nuestro experimento: es muy fácil juzgar una nueva arquitectura neuronal basándose únicamente en la pérdida de entrenamiento o en una única prueba retrospectiva. Nuestros resultados cambiaron la interpretación del modelo una vez que lo comparamos con un índice de referencia existente sobre las mismas observaciones fuera de pliegue.

Para nosotros, este tipo de comparación es esencial.

Un nuevo modelo no debe considerarse útil simplemente porque produzca una métrica razonable. Debe demostrar, o bien:

  • un mejor rendimiento predictivo,
  • una mejor calibración,
  • una mayor robustez,
  • errores complementarios,
  • representaciones latentes útiles,
  • o un valor incremental cuantificable cuando se combina con un sistema ya existente.

Por lo tanto, en esta fase, nuestra conclusión es la siguiente:

GinAR no es, por el momento, un clasificador autónomo mejor que nuestros modelos GEN2, pero sigue siendo un candidato prometedor como capa de representación y generación de características para distintos activos.

Hemos mantenido deliberadamente sellado el conjunto de validación final sin modificar hasta que se defina esta próxima etapa de investigación, con el fin de evitar utilizar repetidamente dicho conjunto para tomar decisiones sobre el desarrollo del modelo.

Me interesaría mucho ver los próximos experimentos del autor con datos reales del mercado, en particular:

  • cómo se comporta GinAR bajo validación «walk-forward»,
  • cómo se gestionan las variables que faltan a lo largo de las diferentes sesiones de negociación,
  • si la estructura de grafo aprendida se mantiene estable en distintos regímenes,
  • si la arquitectura resulta más eficaz para la predicción o para la clasificación,
  • y si las representaciones de grafos aportan un valor añadido cuando se combinan con modelos basados en árboles más robustos.

Gracias por publicar esta serie. Es una de las líneas de investigación más interesantes que hemos encontrado para aplicar el aprendizaje multivariante basado en grafos a las series temporales financieras.

Aunque nuestra primera comparación independiente no mostró una ventaja por sí sola frente a GEN2, el experimento nos abrió una nueva vía de investigación que podría resultar más útil: utilizar GinAR como una capa de inteligencia entre activos, en lugar de simplemente como otro clasificador más.

Espero con interés el próximo artículo y estaría muy interesado en comparar nuestros hallazgos con los resultados del autor basados en datos de mercado.