nota de investigación

Características de Order-Flow Imbalance: ¿qué señales predicen movimientos de cripto/acciones a 1-5 minutos?

Order-Flow Imbalance Features: Which Signals Predict Crypto/Equity Moves 1-5 Minutes Out?

publicado
lectura
37 min · 5,591 palabras
Registro de afirmaciones
40/40 afirmaciones verificadas · 16 fuentes

Ediciones: English · عربي · Français

Respuesta directa

Ninguna afirmación de esta base de evidencia ejecuta una prueba head-to-head de OFI versus desequilibrio de profundidad multinivel versus características de flujo de operaciones sobre los mismos datos de cripto y acciones bajo purged, embargoed walk-forward cross-validation, así que no puede declararse honestamente un ranking directo; esta brecha se aplica por igual al código, a los pasos de construcción y a la discusión de límites de abajo, y no se repite más en esta nota. Lo que las afirmaciones sí respaldan es un orden de construcción: empezar con el desequilibrio bid-ask en el mejor nivel del libro I=(qb-qa)/(qb+qa), porque se informa que un desequilibrio alto del libro es, en promedio, un buen predictor de movimientos del precio medio y que los libros altamente desequilibrados indican que es probable que venga un movimiento de precio en un tiempo relativamente corto [2]. Extenderlo a multi-level order-flow imbalance (MLOFI), porque para las 6 acciones estudiadas, la bondad de ajuste fuera de muestra mejora con cada nivel de precio adicional incluido en el vector MLOFI [6]. Añadir características de flujo de operaciones y liquidez (signo de la operación, tamaño de la orden de mercado, liquidez del mejor bid/ask) porque se muestra, mediante regresión logística LASSO, que son consistentemente informativas para predecir el siguiente salto de precio en acciones del CAC40 [4]. Nada de esta evidencia de acciones y de dinámica de colas del libro de órdenes se probó en exchanges de cripto en las afirmaciones citadas. La pregunta pide explícitamente resultados "across three crypto exchanges" y la base de evidencia no contiene tal comparación multi-exchange, lo que hace la brecha aún más amplia que una simple extrapolación de clase de activos: la parte de cripto de la pregunta queda abierta a la espera de un backtest nuevo.

Por qué importa el desequilibrio del flujo de órdenes para la predicción a corto horizonte

El desequilibrio del flujo de órdenes y sus parientes son candidatos atractivos para características de precio a corto horizonte porque varios estudios independientes, en distintas clases de activos y distintos períodos de tiempo, informan una relación entre el desequilibrio en el libro de órdenes límite y la dirección o el tamaño del siguiente movimiento de precio [2][4][6]. Un relato secundario informa que Cont et al. encuentran una dependencia lineal simple entre los cambios de precio y un indicador que mide desequilibrios entre el flujo de órdenes del lado de compra y del lado de venta del LOB [3], lo cual es consistente con estos hallazgos primarios aunque no es en sí mismo un resultado primario. Esta nota recopila lo que realmente se ha medido sobre estas características, indica claramente dónde se detiene la evidencia y ofrece un plan de construcción concreto.

Lo que está en juego en la práctica es que la dirección del precio medio durante los próximos eventos del libro de órdenes suele ser un objetivo demasiado simple: el pasaje 644 afirma directamente que predecir el cambio de dirección del precio medio para los próximos eventos es demasiado simplista y no es adecuado para una estrategia de trading práctica [1]. Eso es una advertencia contra el diseño de etiqueta más simple posible; no especifica por sí mismo qué etiqueta o familia de modelos debería reemplazarlo, así que cualquier movimiento hacia un objetivo diferente (magnitud, tiempo de espera o un diseño multi-horizonte) es nuestra propia inferencia, no algo que la afirmación establezca, y esta inferencia se usa más adelante en los pasos de construcción cuando recomendamos informar el tiempo de espera y el movimiento de precio normalizado como funciones de la característica de desequilibrio.

Finalmente, la pregunta abarca cripto y acciones, y los estudios citados se dividen por clase de activos: los estudios de desequilibrio del LOB y de saltos de precio son sobre acciones chinas [1], dinámica general de colas del libro de órdenes límite [2][3], acciones francesas del CAC40 [4], acciones del Nasdaq [6], mientras que un sistema separado integra flujos de datos de cripto (BTC) para inferencia en vivo [5].

Qué son realmente el desequilibrio del flujo de órdenes y el desequilibrio de profundidad

El desequilibrio bid-ask en el mejor nivel del libro se define con precisión en uno de los artículos citados: I=(qb-qa)/(qb+qa), donde qb y qa son las cantidades bid y ask publicadas en el mejor nivel del libro [2, pasaje 649]. Un desequilibrio positivo indica un libro de órdenes más cargado del lado bid, y un desequilibrio negativo indica uno más cargado del lado ask [2, pasaje 649]. Esta es la versión más simple y barata de la característica: una resta, una suma, una división, calculada a partir de una única instantánea del LOB.

Multi-Level Order-Flow Imbalance, o MLOFI, generaliza esta idea. MLOFI se describe como una cantidad vectorial que mide el flujo neto de órdenes de compra y de venta en diferentes niveles de precio de un libro de órdenes límite [6]. A diferencia del desequilibrio de un solo nivel I, MLOFI es un vector, así que transporta información de varios niveles de profundidad simultáneamente en lugar de comprimir todo en una única ratio en el mejor bid y el mejor ask.

Las características de flujo de operaciones y de liquidez forman una tercera familia. Un artículo define un salto de precio con precisión como la llegada de una orden de mercado de venta (compra) ejecutada a un precio menor (mayor) que el precio del mejor bid (mejor ask) inmediatamente después de la llegada de la orden de mercado precedente [4, pasaje 661]. Ese mismo artículo extrae características de volúmenes de órdenes límite, gaps de precio de órdenes límite, información de órdenes de mercado e información de eventos de órdenes límite [4, pasaje 661], lo cual es un conjunto de características más amplio que el desequilibrio por sí solo: incluye el signo y el tamaño de la operación, no solo la liquidez en reposo. El pasaje 661 afirma por separado que el balance de liquidez en el mejor bid y el mejor ask es bastante informativo para predecir la dirección de la futura orden de mercado [4], que es un objetivo de predicción diferente del propio salto de precio.

Una línea de trabajo separada trata el LOB y el proceso de trading como un sistema estocástico conjunto en lugar de una instantánea estática. Un artículo estudia la probabilidad de movimientos de precio y llegadas de operaciones como función del desequilibrio de cotizaciones en el mejor nivel del libro de órdenes límite, y propone un modelo estocástico para capturar la dinámica conjunta de las colas del mejor nivel del libro y el proceso de trading [2, pasaje 647]. Por separado, el pasaje 653 informa, como relato secundario del resultado de Cont et al. y no como hallazgo primario propio, que Cont et al. encuentran una dependencia lineal simple entre los cambios de precio y un indicador que mide desequilibrios entre el flujo de órdenes del lado de compra y del lado de venta del LOB [3, pasaje 653], lo cual es consistente en espíritu con el enfoque basado en desequilibrio, aunque es un estudio separado y no un benchmark conjunto contra los otros.

Mecanismo: cómo se vincula el desequilibrio con el siguiente movimiento de precio

El mecanismo informado para el desequilibrio en el mejor nivel del libro se expresa mediante dos cantidades: el movimiento promedio del precio medio normalizado por el spread bid-ask, y el tiempo de espera hasta el siguiente movimiento del precio medio, ambos estudiados como funciones del desequilibrio del libro [2, pasaje 646]. Esto da a quien construye dos objetivos de salida, no uno: una magnitud (movimiento normalizado) y un tiempo (tiempo de espera), ambos indexados por la misma entrada de desequilibrio.

Para una orden publicada en el lado bid, el stopping time relevante es el momento de la primera llegada de una operación de venta, y para una orden publicada en el lado ask, es el momento de la primera llegada de una operación de compra [2, pasaje 651]. Esta es una definición precisa, dirigida por eventos, útil para cualquiera que quiera reproducir el cálculo del tiempo de espera en lugar de aproximarlo con tiempo de reloj fijo.

El tamaño del efecto está acotado. En el caso mostrado, el movimiento promedio de precio puede ser de hasta un tercio del spread en un libro altamente desequilibrado [2, pasaje 646], y de manera más general el cambio de precio hasta el siguiente tick se aproxima bien mediante una función lineal del desequilibrio y suele estar muy por debajo del spread bid-ask, incluso para libros de órdenes altamente desequilibrados [2, pasaje 650]. Un desequilibrio alto del libro es, en promedio, un buen predictor de movimientos del precio medio [2, pasaje 650], y los libros altamente desequilibrados indican que es probable que venga un movimiento de precio en un tiempo relativamente corto [2, pasaje 650]. Pero el mismo artículo es explícito en que esto no se traduce por sí solo en una ventaja de trading: aunque el desequilibrio del libro puede usarse como predictor del siguiente movimiento de precio, no ofrece por sí solo una oportunidad para un arbitraje estadístico directo [2, pasaje 650]. Esta es una advertencia importante para cualquiera que esté tentado de operar directamente la señal cruda.

Subyacente a todo esto hay una afirmación sobre los datos: los datos muestran la naturaleza no martingala de los precios en las escalas de tiempo cortas consideradas [2, pasaje 646]. Esa es la base empírica para esperar alguna predictibilidad a corto horizonte en esta línea de trabajo; es una propiedad de los datos estudiados, no una ley universal, y proviene de este estudio específico.

Construcción de características usada en los estudios de saltos de precio y de MLOFI

El estudio de saltos de precio del CAC40 construye un conjunto de características más amplio que el desequilibrio por sí solo. Extrae características de volúmenes de órdenes límite, gaps de precio de órdenes límite, información de órdenes de mercado e información de eventos de órdenes límite [4, pasaje 661], y aplica regresión logística para predecir el salto de precio a partir de características del libro de órdenes límite [4, pasaje 661]. Para manejar la cantidad de características candidatas, introduce regresión logística LASSO para realizar selección de variables y resaltar la importancia de distintas características al predecir el futuro salto de precio [4, pasaje 661]. LASSO da un ranking interpretable: qué características sobreviven al shrinkage y cuáles no.

El resultado de esa selección de variables, basado en las cuarenta acciones francesas más grandes del CAC40, es que el signo de la operación y el tamaño de la orden de mercado, así como la liquidez en el mejor bid y el mejor ask, son consistentemente informativos para predecir el salto de precio entrante [4, pasaje 661]. Esta es una respuesta directa y con nombre a qué características importan más en ese entorno de acciones: signo de la operación, tamaño de la orden de mercado y liquidez en el mejor nivel del libro, retenidas por el shrinkage de LASSO en lugar de elegidas a mano [4, pasaje 661].

Qué se midió: números, benchmarks y condiciones

Aparecen varios números concretos en estos artículos, cada uno ligado a su propio benchmark y clase de activos. El benchmark de LOB del mercado chino cubre unos pocos miles de acciones desde junio hasta septiembre de 2020 [1], y su protocolo pronostica el próximo cambio de precio medio ponderado por volumen y el volumen al final de cada segundo en 12 horizontes que van de 1 segundo a 300 segundos [1]. Dentro de ese protocolo, se comparan resultados basados en un modelo de regresión lineal y modelos de deep learning [1], y el mismo artículo propone un conjunto de características más eficaz en la práctica para capturar tanto instantáneas del LOB como datos periódicos [1]. Este es el único conjunto de afirmaciones aquí que compara directamente un modelo lineal contra modelos de deep learning en un benchmark declarado [1]; la comparación establece que las dos familias de modelos se probaron head-to-head, pero las afirmaciones no dicen cuál logró mejor rendimiento, así que un lector no puede saber a partir de esta evidencia si ganó el lineal o el deep learning.

Para MLOFI, el resultado medido es una comparación de bondad de ajuste entre niveles de profundidad, no entre familias de características. Usando datos de 6 acciones líquidas del Nasdaq, el artículo ajusta una relación lineal entre MLOFI y el cambio contemporáneo del precio medio [6], y para las 6 acciones estudiadas, la bondad de ajuste fuera de muestra mejora con cada nivel de precio adicional incluido en el vector MLOFI [6]. Esta es una comparación dentro de la misma característica (nivel 1 versus nivel 2 versus niveles más profundos de la misma construcción MLOFI), no una comparación de MLOFI contra flujo de operaciones o contra el desequilibrio de un solo nivel I.

Las condiciones detrás del resultado del CAC40 son específicas y se exponen una vez, en la sección de notas de implementación más abajo: la ventana del conjunto de datos, el registro en milisegundos, la profundidad visible de cinco niveles, la restricción de 09h05 a 17h25, y los conjuntos de datos separados de mañana y tarde [4].

Para el estudio de desequilibrio en el mejor nivel del libro, las cantidades medidas son el movimiento promedio de precio normalizado y el tiempo de espera como funciones de I, con la única cifra específica reportada de que el movimiento promedio de precio puede ser de hasta un tercio del spread en un libro altamente desequilibrado [2, pasaje 646]. No hay ningún número de exactitud, precisión o R-cuadrado asociado a esta afirmación en la fuente; es una afirmación de magnitud sobre movimientos de precio, no una estadística de evaluación de modelos. En conjunto, la evidencia medida responde preguntas más estrechas que la que se plantea aquí: cuántos niveles de profundidad incluir en un vector MLOFI [6], qué características sobreviven a la selección LASSO en acciones del CAC40 [4], cuán grande es el siguiente movimiento de precio relativo al spread [2, pasaje 646], y cómo se compara un modelo lineal con modelos de deep learning en un benchmark chino a escala de segundos [1].

Notas de implementación: datos, granularidad y alcance de los conjuntos de datos de origen

Quien construya cualquiera de estas familias de características necesita saber los datos exactos que usó cada estudio, porque la frecuencia de muestreo y la profundidad difieren marcadamente. El estudio de saltos de precio del CAC40 usa un conjunto de datos que comprende operaciones y actividades de órdenes límite de las 40 acciones miembro del CAC40 entre el 1 de abril de 2011 y el 30 de abril de 2011 [4], con cada transacción y cada modificación del libro de órdenes límite registrada en milisegundos [4]. Usa una profundidad visible de cinco niveles, con L=5 [4], y, para evitar las horas de apertura y cierre, los datos se restringen de 09h05 a 17h25 [4]. También omite explícitamente las stop orders y las iceberg orders porque son relativamente raras en comparación con los eventos de órdenes límite y de órdenes de mercado [4], y, para eliminar la estacionalidad intradía, el análisis se basa en conjuntos de datos separados de mañana y tarde [4]. Cada una de estas es una decisión de preprocesamiento concreta que quien construya debería copiar o de la que debería apartarse conscientemente.

El conjunto de datos de benchmark del mercado chino abarca unos pocos miles de acciones entre junio y septiembre de 2020 [1], con etiquetas a escala de segundos en 12 horizontes de 1 a 300 segundos [1]. Esta es una granularidad temporal mucho más gruesa que las modificaciones del LOB en milisegundos, así que se adapta a ingeniería de características a escala de segundos en lugar de a escala de tick.

El estudio de MLOFI del Nasdaq trabaja con 6 acciones líquidas [6], una muestra pequeña y elegida a mano por liquidez, no un universo amplio; quien generalice MLOFI a un nuevo universo de activos debería tratar la mejora reportada en el ajuste fuera de muestra con cada nivel de precio añadido [6] como una hipótesis que hay que volver a probar con sus propios datos, no como una propiedad ya establecida más allá de esas 6 acciones.

Un sistema de referencia en vivo y multimodelo para pronóstico de libros de órdenes

Un sistema reciente descrito en las fuentes está construido explícitamente para despliegue en tiempo real en lugar de estudio offline, y es una referencia arquitectónica útil aunque no se probó aquí contra las características de desequilibrio anteriores. El sistema integra conjuntos de datos históricos (FI-2010, LOBSTER, BTC) con feeds de mercado en vivo basados en WebSocket, un motor de preprocesamiento modular y múltiples arquitecturas de deep learning para pronóstico de libros de órdenes límite en tiempo real [5]. Su preprocesamiento normaliza las instantáneas entrantes del libro de órdenes usando Z-score y Batch-Instance Normalization (BiN) [5], y extrae características multinivel de precio y volumen y genera etiquetas de movimiento multi-horizonte [5], lo cual está alineado conceptualmente con los diseños multinivel y multi-horizonte usados en la literatura de desequilibrio anterior, aunque es un artículo de ingeniería separado, no un estudio de comparación de características.

Los modelos nombrados son MLPLOB, TLOB, DeepLOB y BinCTABL, entrenados con datos preprocesados y servidos a través de un backend FastAPI [5]. Para inferencia en vivo, un frontend transmite datos de exchange en tiempo real como Binance vía WebSockets, y el backend procesa estos datos para producir predicciones instantáneas [5]. Como este pipeline maneja datos de cripto (BTC) directamente, es la única parte de esta base de evidencia que toca inferencia de cripto de estilo producción, aunque no reporta una comparación de familias de características de OFI versus desequilibrio de profundidad versus flujo de operaciones sobre esos datos.

De manera útil para quien construya y quiera comparar conjuntos de características o familias de modelos con honestidad, el sistema permite que se carguen múltiples modelos de forma concurrente, pero sus predicciones se devuelven de forma independiente para permitir una comparación transparente [5]. Ese diseño, ejecutar varios modelos en paralelo e informar cada salida por separado en lugar de un promedio de ensamble, es exactamente el patrón necesario para ejecutar una comparación walk-forward justa entre conjuntos de características basados en OFI, basados en MLOFI y basados en flujo de operaciones sin que uno enmascare el perfil de error del otro.

Nada de esto es solo CPU por construcción: según nuestra propia lectura, y no como una afirmación con fuente, DeepLOB, TLOB y arquitecturas similares son típicamente redes profundas entrenadas en GPU. Para un objetivo de producción solo CPU como sam, este sistema se lee mejor como un patrón de arquitectura (multimodelo, servicio independiente, ingesta WebSocket en vivo) para imitar con modelos lineales o logísticos baratos sustituyendo a las redes profundas, en lugar de como un sistema para desplegar sin cambios.

Límites y preguntas abiertas

Como se afirma en la respuesta directa anterior, esta base de evidencia no contiene ninguna prueba head-to-head de OFI, desequilibrio de profundidad multinivel y conjuntos de características de flujo de operaciones sobre los mismos datos bajo purged, embargoed walk-forward cross-validation, y nada de ello se ejecuta conjuntamente en tres exchanges de cripto nombrados y acciones. El estudio del mercado chino compara regresión lineal contra modelos de deep learning en objetivos de precio ponderado por volumen y volumen a escala de segundos [1], pero no aísla OFI versus desequilibrio de profundidad versus flujo de operaciones como entradas separadas. El estudio de MLOFI informa que el ajuste mejora con la profundidad en 6 acciones del Nasdaq [6], pero no compara MLOFI contra características de flujo de operaciones. El estudio del CAC40 selecciona signo de la operación, tamaño de la orden y liquidez en el mejor nivel del libro como consistentemente informativos [4], pero este es un resultado de selección de variables dentro del modelo, no una comparación fuera de muestra validada cruzadamente contra un modelo de desequilibrio de profundidad definido por separado. El estudio de desequilibrio en el mejor nivel del libro establece una relación predictiva y advierte explícitamente que no es una oportunidad de arbitraje por sí sola [2], lo cual es una advertencia fuerte contra vender en exceso cualquier estrategia basada solo en desequilibrio.

Un segundo límite es la cobertura de clases de activos. Los estudios de desequilibrio, MLOFI y saltos de precio son todos sobre acciones (acciones chinas [1], acciones del Nasdaq [6], acciones del CAC40 [4]); el único sistema que toca cripto aquí es la arquitectura de despliegue en vivo [5], que no reporta una comparación de características. Aplicar rankings de características derivados de acciones a libros de órdenes de cripto, en tres exchanges, es por lo tanto una extrapolación que la evidencia no respalda; debe probarse, no asumirse.

Un tercer límite es que ninguna de las afirmaciones citadas menciona purged o embargoed walk-forward cross-validation como su protocolo de evaluación. El benchmark chino usa una estructura de horizontes declarada [1], el estudio del CAC40 usa datos divididos en mañana/tarde [4], y los artículos de desequilibrio informan relaciones promedio poblacionales sin ningún protocolo declarado de división train/test [2][3]. Quien construya y necesite validación purged, embargoed walk-forward para un modelo de producción debe imponer ese protocolo por su cuenta; no está ya presente en ningún método citado.

Finalmente, la advertencia sobre el diseño de etiquetas discutida en la introducción proviene de un solo estudio [1]. Dado esto, la respuesta práctica es construir el pipeline de características descrito aquí, pero evaluarlo con el protocolo más estricto que exige la pregunta, sobre los propios datos de cripto y acciones de quien construye, antes de sacar cualquier conclusión comparativa.

Cómo construirlo, o cómo usarlo

Pasos de construcción basados en afirmaciones (cada uno basado en un pasaje citado):

  1. Ingerir primero instantáneas del LOB. Cada paso a continuación requiere un feed funcional de instantáneas del libro de órdenes límite, ya que las características definidas en las afirmaciones citadas operan sobre cantidades del mejor nivel del libro y multinivel, no solo sobre barras OHLCV.
  2. Recopilar instantáneas del LOB para cada exchange o serie de acciones objetivo. Mantener varios niveles de profundidad por instantánea; como referencia, el estudio del CAC40 usó una profundidad visible de cinco niveles, con L=5 [4], y el ajuste fuera de muestra mejoró con cada nivel de precio adicional incluido en el vector MLOFI en las 6 acciones del Nasdaq estudiadas [6].
  3. Calcular el desequilibrio de un solo nivel I=(qb-qa)/(qb+qa) a partir de la cantidad del mejor bid qb y la cantidad del mejor ask qa, siguiendo la definición de esa fórmula sobre cantidades publicadas en el mejor nivel del libro [2]. Almacenar su signo (positivo significa cargado hacia el bid, negativo significa cargado hacia el ask) [2] como característica de referencia.
  4. Construir el vector MLOFI extendiendo la idea de desequilibrio al flujo neto de órdenes en múltiples niveles de precio en lugar de una ratio de instantánea de un solo nivel, siguiendo la definición de MLOFI como una cantidad vectorial que mide el flujo neto de órdenes de compra y venta en diferentes niveles de precio [6]. Mantener al menos tantos niveles como permita la profundidad de su instantánea del LOB, ya que el ajuste mejoró con cada nivel añadido en el estudio citado sobre acciones [6].
  5. Construir por separado el conjunto de características de flujo de operaciones: volúmenes de órdenes límite, gaps de precio de órdenes límite, información de órdenes de mercado e información de eventos de órdenes límite [4], incluyendo signo de la operación y tamaño de la orden de mercado [4] y liquidez en el mejor bid y el mejor ask [4]. Excluir stop orders e iceberg orders de esta construcción de características si son raras en sus datos, siguiendo la justificación del estudio del CAC40 [4].
  6. Si quiere una etiqueta direccional (salto/no-salto), defínala exactamente como lo hace el estudio del CAC40: la llegada de una orden de mercado de venta (compra) ejecutada a un precio menor (mayor) que el precio del mejor bid (mejor ask) inmediatamente después de la llegada de la orden de mercado precedente [4].
  7. Dividir los datos intradía por mitad de sesión (mañana/tarde o equivalente) para controlar la estacionalidad intradía antes de ajustar, como se hizo en el estudio del CAC40 [4], y restringir fuera de las horas de apertura/cierre si su exchange tiene efectos de borde análogos, siguiendo la misma justificación de restricción 09h05-17h25 de ese artículo [4].
  8. Ajustar dos modelos de referencia por familia de características: una regresión lineal para un objetivo de magnitud (siguiendo el modelo lineal usado como una referencia en la comparación del benchmark chino [1] y el ajuste lineal usado para MLOFI contra el cambio del precio medio [6]) y una regresión logística, opcionalmente con selección de variables LASSO, para un objetivo direccional/de salto (siguiendo el método del estudio del CAC40 [4]).
  9. Evaluar un componente de tiempo de espera usando la definición de stopping time dada en el estudio de desequilibrio: para una orden en el bid, la primera llegada de una operación de venta; para una orden en el ask, la primera llegada de una operación de compra [2]. Informar el tiempo de espera y el movimiento de precio normalizado como funciones de la característica de desequilibrio (este paso se basa en nuestra propia inferencia a partir de la advertencia sobre el diseño de etiquetas [1], no en una instrucción directa de esa afirmación), reflejando el resultado reportado de que un libro altamente desequilibrado indica que es probable que venga pronto un movimiento de precio [2].
  10. No tratar un número de ajuste predictivo como una estrategia: la evidencia de origen afirma explícitamente que el desequilibrio del libro, incluso cuando es predictivo, no ofrece por sí solo una oportunidad para un arbitraje estadístico directo [2].

Inferencia propia del autor, no afirmada por ninguna afirmación citada: el pasaje que critica las etiquetas de dirección del precio medio de un solo tick [1] afirma que tal etiqueta es demasiado simplista para una estrategia de trading práctica, pero no prescribe un reemplazo. Según nuestro propio razonamiento, quien construya podría considerar en cambio una etiqueta en un horizonte de 1 a 5 minutos, o el diseño de dos salidas que refleja lo que se midió para el desequilibrio en el mejor nivel del libro (movimiento promedio de precio normalizado y tiempo de espera hasta el siguiente movimiento del precio medio) [2], en lugar de recurrir por defecto a una etiqueta de dirección de un solo tick. Esta recomendación es nuestra, no de la afirmación.

Comparar familias de características entre sí (desequilibrio versus MLOFI versus flujo de operaciones, sobre los mismos datos, bajo un protocolo purged, embargoed walk-forward) no es algo que ya haga ninguna afirmación citada; véase la respuesta directa anterior para esa advertencia, expuesta una vez.

Código: una implementación funcional

Apéndice: código de arnés ilustrativo, construcción propia del autor, no basado en ninguna afirmación citada. Nada de la ingeniería concreta de abajo (el paso StandardScaler, el splitter walk-forward purgado/con embargo, la configuración logística LASSO, la construcción de bandas de cuantiles) está especificado por ninguna afirmación de esta nota; las afirmaciones solo proporcionan las definiciones de características y las familias de modelos, no esta implementación. Se incluye como un arnés de pipeline ilustrativo.

Tampoco es una implementación de los pasos de construcción anteriores. Los métodos citados aquí operan sobre instantáneas del libro de órdenes límite: el desequilibrio de un solo nivel I=(qb-qa)/(qb+qa) se define sobre cantidades publicadas de bid y ask en el mejor nivel del libro [2, pasaje 649], y MLOFI se define sobre flujo neto de órdenes en varios niveles de profundidad [6]. Nuestra tabla bars contiene solo datos OHLCV y no contiene ninguna tabla LOB, así que las características de abajo son proxies solo-OHLCV que comparten la forma de esas características pero no sus entradas. Por eso, los pasos de construcción de la sección anterior requieren un paso separado de ingesta de instantáneas del LOB antes de que se pueda escribir código de características basado en afirmaciones; este script de apéndice ejercita la maquinaria circundante (ensamblado de características, ajustes por familia para conjuntos de características solo-desequilibrio, solo-MLOFI, solo-flujo de operaciones y combinado, evaluación walk-forward, escritura de pronósticos) para que el arnés esté listo en el momento en que se añada un lector de LOB real.

No se puede proporcionar ninguna implementación ejecutable basada en las afirmaciones citadas a partir de las afirmaciones y los datos dados. Los métodos descritos en esta nota requieren instantáneas del libro de órdenes límite como entrada: el desequilibrio de un solo nivel I=(qb-qa)/(qb+qa) se define sobre cantidades publicadas de bid y ask en el mejor nivel del libro [2, pasaje 649], MLOFI es una cantidad vectorial sobre flujo neto de órdenes en diferentes niveles de precio del libro [6], y las características de flujo de operaciones se extraen de volúmenes de órdenes límite, gaps de precio de órdenes límite, información de órdenes de mercado e información de eventos de órdenes límite [4, pasaje 661]. Las tablas disponibles para ejecución de código (bars, forecasts, trades, book) no establecen que las instantáneas del libro de órdenes límite en la forma que requieren estas afirmaciones estén presentes: bars es una tabla OHLCV, y un proxy derivado de OHLCV para desequilibrio, MLOFI o flujo de operaciones no estaría probando las afirmaciones citadas, solo imitando su forma sobre datos de entrada no relacionados. En lugar de presentar código que parece implementar los métodos citados mientras en realidad se ejecuta sobre datos diferentes y no verificados, esta sección declara llanamente que ninguna implementación de ese tipo puede construirse sin confirmar primero que la tabla book (o una fuente equivalente de instantáneas del LOB) contiene cantidades bid/ask del mejor nivel del libro y multinivel como las definen las afirmaciones, más una especificación de cómo se alinean temporalmente esas instantáneas con las tablas trades y bars. Nada de eso está establecido en las afirmaciones proporcionadas.

El script lee barras de un minuto para todos los símbolos de la base de datos desde bars(symbol, tf, ts, open, high, low, close, volume) construye las características proxy, ajusta una regresión lineal para predecir el retorno de la siguiente barra y una regresión logística penalizada L1 para predecir el signo del siguiente movimiento, ajusta y evalúa cada familia de características por separado (solo-desequilibrio, solo-MLOFI, solo-flujo de operaciones) así como el conjunto combinado bajo la propia división walk-forward purgada y con embargo del autor, y escribe pronósticos q10/q50/q90/p_up en la tabla forecasts. El horizonte es un parámetro que el usuario define en la parte superior de main() (HORIZON), en cualquier lugar de la ventana de 1 a 5 minutos; ninguna afirmación citada elige un valor específico dentro de esa ventana, así que la elección queda para quien llama. Cada fila de pronóstico se marca con made_atque registra la marca temporal de la barra desde la que se hizo el pronóstico (el propio campo ts de la barra), no el tiempo de reloj de pared en que se ejecutó el script; esto permite que la tabla de pronósticos mapee cada predicción de vuelta a la instantánea de mercado exacta desde la que se generó. La referencia a superar es un modelo de persistencia ingenuo (predecir retorno cero, predecir p_up=0.5); el número a revisar es el R-cuadrado fuera de muestra para el modelo lineal y la exactitud fuera de muestra para el modelo logístico, ambos contra esa referencia ingenua.

""" Illustrative harness: OFI-style feature pipeline and CPU-only baselines on OHLCV bars.
This script is the author's own construction. No cited claim specifies the
scaling, cross-validation splitter, solver settings or quantile band used here.
Runs fully offline (no network). Python 3.12, numpy, pandas, scikit-learn, sqlite3.

The script expects bars(symbol, tf, ts, open, high, low, close, volume) and
forecasts(symbol, horizon, made_at, q10, q50, q90, p_up) tables to exist in
data.sqlite.

IMPORTANT: this schema has no limit-order-book snapshot table, so this script
CANNOT test the cited claims. The single-level imbalance I = (qb - qa)/(qb + qa)
[2, passage 649] and MLOFI over depth levels [6] both require book-level
quantities we do not have here. The "imbalance", "MLOFI" and "trade-flow"
features below are OHLCV-only proxies that reproduce the *shape* of those
feature families, not their inputs:
  - single-level imbalance proxy, shaped after I = (qb - qa) / (qb + qa)   [2, passage 649]
  - MLOFI proxy, a vector over pseudo-levels, shaped after MLOFI          [6]
  - trade-flow / signed volume proxy, shaped after the CAC40 feature set  [4]
A real LOB-snapshot ingestion step must be added before the build steps in
"How to build it" can be implemented against this harness.
"""

import sqlite3
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression, LogisticRegression
from sklearn.preprocessing import StandardScaler

DB_PATH = "data.sqlite"

# User-set parameters. HORIZON is the forecast horizon in minutes; any value in
# the 1-to-5 minute window is valid and no cited claim prefers one over another,
# so the caller picks it. EMBARGO is our own cross-validation choice (see
# purged_embargo_walk_forward_splits).
HORIZON = 3
EMBARGO = 5


def list_symbols(conn, tf="1m"):
    # Returns every symbol that has bars at the given timeframe.
    q = "SELECT DISTINCT symbol FROM bars WHERE tf = ? ORDER BY symbol ASC"
    return [r[0] for r in conn.execute(q, (tf,)).fetchall()]


def load_bars(conn, symbol, tf="1m"):
    # Reads one symbol's bars, ordered by timestamp. Input: sqlite3 connection,
    # symbol string, timeframe string. Output: pandas DataFrame.
    q = """
        SELECT symbol, tf, ts, open, high, low, close, volume
        FROM bars WHERE symbol = ? AND tf = ? ORDER BY ts ASC
    """
    df = pd.read_sql_query(q, conn, params=(symbol, tf))
    return df


def build_single_level_imbalance_proxy(df):
    # Proxy only. The real feature is I = (qb - qa) / (qb + qa), defined over
    # top-of-book bid and ask quantities [2, passage 649], which this schema
    # does not store. We build a directional pressure proxy from the bar itself:
    # how close the close is to the high (buy pressure) versus the low (sell pressure).
    rng = (df["high"] - df["low"]).replace(0, np.nan)
    buy_pressure = (df["close"] - df["low"]) / rng
    sell_pressure = (df["high"] - df["close"]) / rng
    imbalance = (buy_pressure - sell_pressure).fillna(0.0)
    return imbalance


def build_mlofi_proxy(df, levels=(1, 2, 3, 5)):
    # Proxy only. Real MLOFI is a vector of net order flow across depth levels
    # of the book [6]. With OHLCV alone we build lagged/smoothed versions of the
    # single-level proxy so the model receives a vector of related signals,
    # matching the vector shape of MLOFI but not its book-level definition.
    base = build_single_level_imbalance_proxy(df)
    out = {}
    for lvl in levels:
        out[f"mlofi_l{lvl}"] = base.rolling(lvl, min_periods=1).mean()
    return pd.DataFrame(out)


def build_trade_flow_features(df):
    # Proxy for the trade-flow family found consistently informative on CAC40:
    # trade sign and market order size [4]. Signed volume: sign of the bar
    # return times the bar volume.
    ret = df["close"].pct_change().fillna(0.0)
    sign = np.sign(ret)
    signed_volume = sign * df["volume"]
    trade_intensity = df["volume"].rolling(5, min_periods=1).mean()
    return pd.DataFrame({
        "signed_volume": signed_volume,
        "trade_intensity": trade_intensity,
    })


def build_feature_matrix(df, horizon):
    # Assembles the full feature set and the two targets:
    #   y_ret: forward return over `horizon` bars (regression target)
    #   y_dir: sign of forward return (classification target)
    # `horizon` is explicit (no default) so the 1-to-5 minute target range is
    # always a deliberate choice at the call site.
    imb = build_single_level_imbalance_proxy(df).rename("imbalance")
    mlofi = build_mlofi_proxy(df)
    tf = build_trade_flow_features(df)
    feats = pd.concat([imb, mlofi, tf], axis=1)

    fwd_close = df["close"].shift(-horizon)
    y_ret = (fwd_close / df["close"] - 1.0)
    y_dir = (y_ret > 0).astype(int)

    data = pd.concat(
        [df["ts"], feats, y_ret.rename("y_ret"), y_dir.rename("y_dir")], axis=1
    )
    # Drop rows with missing target labels (forward returns that fall off the
    # end of the series). This determines which rows are used for training.
    data = data.dropna().reset_index(drop=True)
    return data


def feature_families(feature_cols):
    # Splits the combined feature set into the three families the note compares,
    # so each can be fitted and scored on its own as well as together.
    imbalance = [c for c in feature_cols if c == "imbalance"]
    mlofi = [c for c in feature_cols if c.startswith("mlofi_")]
    trade = [c for c in feature_cols if c in ("signed_volume", "trade_intensity")]
    return {
        "imbalance-only": imbalance,
        "mlofi-only": mlofi,
        "trade-flow-only": trade,
        "combined": list(feature_cols),
    }


def purged_embargo_walk_forward_splits(n, n_splits=5, horizon=HORIZON, embargo=EMBARGO):
    # Author's own purged, embargoed walk-forward split. Expanding train window,
    # a test block after it, and purging of rows within `horizon` bars of the
    # test start (because forward-looking labels from those rows overlap with
    # the test set), plus an embargo gap between the purge cutoff and test start
    # to simulate real-time deployment latency. This splitter removes all training
    # rows within `horizon` bars of the test period, implementing true purging
    # as well as an embargo; the horizon and embargo values are our own choice.
    fold_size = n // (n_splits + 1)
    splits = []
    for i in range(1, n_splits + 1):
        test_start = fold_size * (i + 1)
        test_end = min(test_start + fold_size, n)
        if test_start >= test_end:
            continue
        # Purge: remove training rows within `horizon` of test_start (their labels
        # reach into the test period). Embargo: add a further gap of `embargo` bars.
        purge_cutoff = test_start - horizon - embargo
        if purge_cutoff  0 else 0.0
    acc_naive = max(y_dir_test.mean(), 1 - y_dir_test.mean())
    return r2_naive, acc_naive


def make_lasso_logistic():
    # L1-penalized (LASSO) logistic regression. Passage 661 states that LASSO
    # logistic regression is used for variable selection over LOB features [4],
    # but it does not specify the solver, l1_ratio or max_iter, so these
    # hyperparameters are our own choice.
    return LogisticRegression(penalty="l1", solver="saga", l1_ratio=1, max_iter=1000)


def fit_and_evaluate(data, feature_cols, horizon):
    # Two model choices, each mapped to a specific claim:
    #  - Linear regression on the return target mirrors the linear regression
    #    model that is compared against deep learning models on the Chinese
    #    stock market LOB benchmark [1], and the linear relationship
    #    fitted between MLOFI and the contemporaneous mid-price change on 6
    #    Nasdaq stocks [6].
    #  - LASSO logistic regression on the direction target mirrors the LASSO
    #    logistic regression used to predict price jumps and to perform
    #    variable selection over LOB features on CAC40 stocks [4]; the solver,
    #    l1_ratio and max_iter settings are our own choice, not stated in that claim.
    # StandardScaler normalization is our own choice; claim [5] mentions Z-score
    # and Batch-Instance Normalization for a different system, but StandardScaler
    # is neither of those and is explicitly flagged here as an author's addition.
    n = len(data)
    splits = purged_embargo_walk_forward_splits(n, n_splits=5, horizon=horizon, embargo=EMBARGO)

    lin_r2s, log_accs = [], []
    lin = log = scaler = None
    for train_idx, test_idx in splits:
        train = data.iloc[train_idx]
        test = data.iloc[test_idx]

        scaler = StandardScaler()  # author's own normalization choice
        X_train = scaler.fit_transform(train[feature_cols])
        X_test = scaler.transform(test[feature_cols])

        # Linear regression on forward return: the linear baseline compared
        # against deep learning models on the China benchmark [1], and the
        # linear MLOFI-vs-mid-price-change fit [6].
        lin = LinearRegression()
        lin.fit(X_train, train["y_ret"])
        pred_ret = lin.predict(X_test)
        ss_res = np.sum((test["y_ret"] - pred_ret) ** 2)
        ss_tot = np.sum((test["y_ret"] - test["y_ret"].mean()) ** 2)
        r2 = 1 - ss_res / ss_tot if ss_tot > 0 else 0.0
        lin_r2s.append(r2)

        # LASSO-style logistic regression on direction: the LASSO logistic
        # variable-selection method applied to price-jump prediction on
        # CAC40 limit order book features [4], with our own solver, l1_ratio
        # and max_iter settings.
        if train["y_dir"].nunique()  r2_naive)
    print(f"[{symbol}] model beats baseline on accuracy:", acc > acc_naive)

    write_forecasts(conn, symbol, horizon, lin, log, scaler, feature_cols, data)


def main():
    conn = sqlite3.connect(DB_PATH)
    horizon = HORIZON  # minutes ahead; user-set parameter, any value in the 1-to-5 minute window

    symbols = list_symbols(conn, tf="1m")
    if not symbols:
        print("No symbols with 1m bars found.")
        conn.close()
        return
    print("Symbols found:", symbols)

    for symbol in symbols:
        run_symbol(conn, symbol, horizon)

    conn.close()


if __name__ == "__main__":
    main()

Qué construiríamos

Lo siguiente es nuestro propio plan de proyecto. Ningún cronograma, línea de tiempo, estimación de personal u ordenamiento de tareas de abajo aparece en ninguna afirmación citada.

Construiríamos un arnés pequeño de comparación de características, solo CPU, para sam, usando nuestras propias barras SQLite en tres exchanges de cripto y una serie de acciones. Como primera etapa, implementaríamos características a nivel de LOB (desequilibrio de un solo nivel I como se define en [2], MLOFI como vector sobre niveles de profundidad como en [6], y características de flujo de operaciones como en [4]) a partir de instantáneas crudas del libro de órdenes, no los proxies OHLCV usados en el código ilustrativo anterior, ya que se requieren datos LOB reales para probar las afirmaciones reales. Como segunda etapa, ejecutaríamos nuestra propia división walk-forward purgada y con embargo en los tres exchanges y la serie de acciones, ajustando las mismas referencias lineales y logísticas LASSO para cada familia de características por separado y en combinación.

Juzgaríamos el proyecto por si alguna familia de características supera la referencia de persistencia ingenua (retorno cero, p_up=0.5) en R-cuadrado fuera de muestra y tasa de aciertos, por exchange y para la serie de acciones por separado, y por si el ajuste de MLOFI mejora monótonamente con el nivel de profundidad como lo hizo en las 6 acciones del Nasdaq en [6], ahora comprobado en nuestros propios libros de órdenes de cripto. Informaríamos explícitamente, en lugar de inferir, si el ranking de características derivado de acciones de [4] se transfiere a cripto, ya que ninguna afirmación citada ya prueba eso.

Costo, de nuevo nuestra propia estimación: esto necesita almacenamiento de instantáneas del LOB para tres exchanges (mayor que solo OHLCV) y ajuste lineal/logístico solo CPU, así que no se requiere presupuesto de GPU; el costo principal es la recolección y el almacenamiento de datos para historial de LOB a nivel de tick o de instantánea, más tiempo de ingeniería.

Registro de afirmaciones

  1. factrespaldada

    Passage 644 states that the benchmark LOB dataset from the Chinese stock market covers a few thousand stocks from June to September 2020.

    [1] Benchmark Dataset for Short-Term Market Prediction of Limit Order Book in China Markets, abstract S2 7aaaecac0598
    “Limit order books (LOBs) have generated big financial data for analysis and prediction from both academic community and industry practitioners. This article presents a benchmark LOB dataset from the Chinese stock market, covering a few thousand stocks for the period of June to Se…”
  2. methodrespaldada

    Passage 644 states that the experiment protocol forecasts the upcoming volume-weighted average price change and volume at the end of every second over 12 horizons ranging from 1 second to 300 seconds.

    [1] Benchmark Dataset for Short-Term Market Prediction of Limit Order Book in China Markets, abstract S2 7aaaecac0598
    “Limit order books (LOBs) have generated big financial data for analysis and prediction from both academic community and industry practitioners. This article presents a benchmark LOB dataset from the Chinese stock market, covering a few thousand stocks for the period of June to Se…”
  3. methodrespaldada

    Passage 644 states that results based on a linear regression model and deep learning models are compared.

    [1] Benchmark Dataset for Short-Term Market Prediction of Limit Order Book in China Markets, abstract S2 7aaaecac0598
    “Limit order books (LOBs) have generated big financial data for analysis and prediction from both academic community and industry practitioners. This article presents a benchmark LOB dataset from the Chinese stock market, covering a few thousand stocks for the period of June to Se…”
  4. methodrespaldada

    Passage 644 states that a more practically effective set of features is proposed to capture both LOB snapshots and periodic data.

    [1] Benchmark Dataset for Short-Term Market Prediction of Limit Order Book in China Markets, abstract S2 7aaaecac0598
    “Limit order books (LOBs) have generated big financial data for analysis and prediction from both academic community and industry practitioners. This article presents a benchmark LOB dataset from the Chinese stock market, covering a few thousand stocks for the period of June to Se…”
  5. limitationrespaldada

    Passage 644 states that predicting mid-price direction change for the next few events is too simplistic and not suitable for a practical trading strategy.

    [1] Benchmark Dataset for Short-Term Market Prediction of Limit Order Book in China Markets, abstract S2 7aaaecac0598
    “Limit order books (LOBs) have generated big financial data for analysis and prediction from both academic community and industry practitioners. This article presents a benchmark LOB dataset from the Chinese stock market, covering a few thousand stocks for the period of June to Se…”
  6. factrespaldada

    Passage 646 states that the average mid price move normalized by the bid-ask spread and the waiting time until the next mid price move are studied as functions of book imbalance.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, section 1 Introduction
    “features by introducing a stochastic model for diffusion in three dimensions. We compute the probabilities of price movement and trade occurrence from the model, and calibrate them to recent historical market data. Figure 1: Average mid price move normalised by the bid-ask spread…”
  7. resultrespaldada

    Passage 646 states that the data display the non-martingale nature of prices at the short time scales considered.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, section 1 Introduction
    “features by introducing a stochastic model for diffusion in three dimensions. We compute the probabilities of price movement and trade occurrence from the model, and calibrate them to recent historical market data. Figure 1: Average mid price move normalised by the bid-ask spread…”
  8. resultrespaldada

    Passage 646 states that in the case shown, the average price move can be up to a third of the spread in a highly imbalanced book.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, section 1 Introduction
    “features by introducing a stochastic model for diffusion in three dimensions. We compute the probabilities of price movement and trade occurrence from the model, and calibrate them to recent historical market data. Figure 1: Average mid price move normalised by the bid-ask spread…”
  9. methodrespaldada

    Passage 647 states that the paper studies the probability of price movements and trade arrivals as a function of the quote imbalance at the top of the limit order book.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, abstract arXiv:1312.0514v1
    “We examine the dynamics of the bid and ask queues of a limit order book and their relationship with the intensity of trade arrivals. In particular, we study the probability of price movements and trade arrivals as a function of the quote imbalance at the top of the limit order bo…”
  10. methodrespaldada

    Passage 647 states that a stochastic model is proposed to capture the joint dynamics of the top-of-book queues and the trading process.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, abstract arXiv:1312.0514v1
    “We examine the dynamics of the bid and ask queues of a limit order book and their relationship with the intensity of trade arrivals. In particular, we study the probability of price movements and trade arrivals as a function of the quote imbalance at the top of the limit order bo…”
  11. factrespaldada

    Passage 649 defines bid-ask imbalance as I=(qb−qa)/(qb+qa), where qb and qa are the bid and ask quantities posted at the top of the book.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, section 2 Empirical observations
    “A common intuition among market practitioners is that the order sizes displayed at the top of the book reflect the general intention of the market. When the number of shares available at the bid exceeds those at the ask, participants expect the next price movement to be upwards, …”
  12. factrespaldada

    Passage 649 states that positive imbalance indicates an order book heavier on the bid side and negative imbalance indicates one heavier on the ask side.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, section 2 Empirical observations
    “A common intuition among market practitioners is that the order sizes displayed at the top of the book reflect the general intention of the market. When the number of shares available at the bid exceeds those at the ask, participants expect the next price movement to be upwards, …”
  13. methodrespaldada

    Passage 649 states that the effect of book imbalance on the average mid price change and on the waiting time until the next price change is calculated using the stopping time defined by the next change in either the best bid or the best ask.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, section 2 Empirical observations
    “A common intuition among market practitioners is that the order sizes displayed at the top of the book reflect the general intention of the market. When the number of shares available at the bid exceeds those at the ask, participants expect the next price movement to be upwards, …”
  14. resultrespaldada

    Passage 650 states that a high book imbalance is, on average, a good predictor of mid price movements.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, section 2 Empirical observations
    “Here, we use the same probabilities to compute the average size of the price jump11 1 A mid price change event can be induced by several actions, such as a trade, a cancellation or even the addition of a new quote between the current bid and ask spread, if the spread is big enoug…”
  15. resultrespaldada

    Passage 650 states that the price change until the next tick is well approximated by a linear function of the imbalance and is typically well below the bid-ask spread, even for highly imbalanced order books.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, section 2 Empirical observations
    “Here, we use the same probabilities to compute the average size of the price jump11 1 A mid price change event can be induced by several actions, such as a trade, a cancellation or even the addition of a new quote between the current bid and ask spread, if the spread is big enoug…”
  16. limitationrespaldada

    Passage 650 states that although book imbalance may be used as a predictor for the next price movement, it does not by itself offer an opportunity for a straightforward statistical arbitrage.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, section 2 Empirical observations
    “Here, we use the same probabilities to compute the average size of the price jump11 1 A mid price change event can be induced by several actions, such as a trade, a cancellation or even the addition of a new quote between the current bid and ask spread, if the spread is big enoug…”
  17. resultrespaldada

    Passage 650 states that highly imbalanced books indicate that a price move is likely to come in a relatively short time.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, section 2 Empirical observations
    “Here, we use the same probabilities to compute the average size of the price jump11 1 A mid price change event can be induced by several actions, such as a trade, a cancellation or even the addition of a new quote between the current bid and ask spread, if the spread is big enoug…”
  18. factrespaldada

    Passage 651 states that for an order posted at the bid side, the relevant stopping time is the time of first arrival of a sell trade, and for an order posted at the ask side, it is the time of first arrival of a buy trade.

    [2] Trade arrival dynamics and quote imbalance in a limit order book, section 2 Empirical observations
    “context of microstructure studies, this is usually interpreted as the order flow having an impact on the limit book, but it can also be seen more generally as the natural supply and demand influence on the price of an asset. Another stopping time with economic significance is the…”
  19. resultrespaldada

    Passage 653 states that Cont et al. find a simple linear dependence between price changes and an indicator measuring imbalances between the order flow on the buy and sell sides of the LOB.

    [3] Stochastic Price Dynamics Implied By the Limit Order Book, section 1 Introduction
    “M. Bartolozzi [Bar10] proposes a multi-agent model for the dynamics of the LOB, with a particular focus on capturing key features of high-frequency trading. M. Avellaneda et al. [AS06] also propose a probabilistic framework for a utility optimizing agent in the context of high-fr…”
  20. resultrespaldada

    Passage 661 states that liquidity balance on best bid and best ask is quite informative for predicting the future market order's direction.

    [4] Price Jump Prediction in Limit Order Book, abstract arXiv:1204.1381v1
    “A limit order book provides information on available limit order prices and their volumes. Based on these quantities, we give an empirical result on the relationship between the bid-ask liquidity balance and trade sign and we show that liquidity balance on best bid/best ask is qu…”
  21. factrespaldada

    Passage 661 defines a price jump as a sell (buy) market order arrival executed at a price smaller (larger) than the best bid (best ask) price immediately after the preceding market order arrival.

    [4] Price Jump Prediction in Limit Order Book, abstract arXiv:1204.1381v1
    “A limit order book provides information on available limit order prices and their volumes. Based on these quantities, we give an empirical result on the relationship between the bid-ask liquidity balance and trade sign and we show that liquidity balance on best bid/best ask is qu…”
  22. methodrespaldada

    Passage 661 states that features are extracted from limit order volumes, limit order price gaps, market order information, and limit order event information.

    [4] Price Jump Prediction in Limit Order Book, abstract arXiv:1204.1381v1
    “A limit order book provides information on available limit order prices and their volumes. Based on these quantities, we give an empirical result on the relationship between the bid-ask liquidity balance and trade sign and we show that liquidity balance on best bid/best ask is qu…”
  23. methodrespaldada

    Passage 661 states that logistic regression is applied to predict the price jump from limit order book features.

    [4] Price Jump Prediction in Limit Order Book, abstract arXiv:1204.1381v1
    “A limit order book provides information on available limit order prices and their volumes. Based on these quantities, we give an empirical result on the relationship between the bid-ask liquidity balance and trade sign and we show that liquidity balance on best bid/best ask is qu…”
  24. methodrespaldada

    Passage 661 states that LASSO logistic regression is introduced to perform variable selection and highlight the importance of different features in predicting the future price jump.

    [4] Price Jump Prediction in Limit Order Book, abstract arXiv:1204.1381v1
    “A limit order book provides information on available limit order prices and their volumes. Based on these quantities, we give an empirical result on the relationship between the bid-ask liquidity balance and trade sign and we show that liquidity balance on best bid/best ask is qu…”
  25. methodrespaldada

    Passage 661 states that to remove intraday seasonality, the analysis is based on separate morning and afternoon datasets.

    [4] Price Jump Prediction in Limit Order Book, abstract arXiv:1204.1381v1
    “A limit order book provides information on available limit order prices and their volumes. Based on these quantities, we give an empirical result on the relationship between the bid-ask liquidity balance and trade sign and we show that liquidity balance on best bid/best ask is qu…”
  26. resultrespaldada

    Passage 661 states that, based on forty largest French stocks of CAC40, trade sign and market order size as well as liquidity on the best bid and best ask are consistently informative for predicting the incoming price jump.

    [4] Price Jump Prediction in Limit Order Book, abstract arXiv:1204.1381v1
    “A limit order book provides information on available limit order prices and their volumes. Based on these quantities, we give an empirical result on the relationship between the bid-ask liquidity balance and trade sign and we show that liquidity balance on best bid/best ask is qu…”
  27. methodrespaldada

    Passage 664 states that the study uses a visible depth of five levels, with L=5.

    [4] Price Jump Prediction in Limit Order Book, section 1 Description and data notation
    “In this study, for simplicity, we focus on limit order arrival events, limit order cancellation events and market order arrival events, see Figure  2. The number of visible limit order levels is chosen to be five L=5L=5. Our dataset is provided by NATIXIS via Thomson Reuter’s ‘Re…”
  28. factrespaldada

    Passage 664 states that the dataset comprises trades and limit order activities of the 40 member stocks of the CAC40 between April 1st 2011 and April 30th 2011.

    [4] Price Jump Prediction in Limit Order Book, section 1 Description and data notation
    “In this study, for simplicity, we focus on limit order arrival events, limit order cancellation events and market order arrival events, see Figure  2. The number of visible limit order levels is chosen to be five L=5L=5. Our dataset is provided by NATIXIS via Thomson Reuter’s ‘Re…”
  29. methodrespaldada

    Passage 664 states that to avoid open and close hours, the data are restricted to 09h05 to 17h25.

    [4] Price Jump Prediction in Limit Order Book, section 1 Description and data notation
    “In this study, for simplicity, we focus on limit order arrival events, limit order cancellation events and market order arrival events, see Figure  2. The number of visible limit order levels is chosen to be five L=5L=5. Our dataset is provided by NATIXIS via Thomson Reuter’s ‘Re…”
  30. factrespaldada

    Passage 664 states that every transaction and every limit order book modification are recorded in milliseconds.

    [4] Price Jump Prediction in Limit Order Book, section 1 Description and data notation
    “In this study, for simplicity, we focus on limit order arrival events, limit order cancellation events and market order arrival events, see Figure  2. The number of visible limit order levels is chosen to be five L=5L=5. Our dataset is provided by NATIXIS via Thomson Reuter’s ‘Re…”
  31. limitationrespaldada

    Passage 666 states that the study neglects stop orders and iceberg orders because they are relatively rare compared with limit order and market order events.

    [4] Price Jump Prediction in Limit Order Book, section 1 Description and data notation
    “In case of iceberg orders, the disclosed part has the same priority as a regular of limit order while the hidden part has lower priority. The hidden part will become visible as soon as the disclosed part is executed. The case that the hidden part is consumed by a market order wit…”
  32. factrespaldada

    The system in passage 669 integrates historical datasets (FI-2010, LOBSTER, BTC) with live WebSocket-based market feeds, a modular preprocessing engine, and multiple deep learning architectures for real-time limit order book forecasting.

    [5] OrderBook Microstructure Prediction, abstract S2 1d7511240190
    “High-frequency financial markets generate vast volumes of limit order book (LOB) data, demanding models capable of capturing complex spatial-temporal patterns for accurate short-term price movement prediction. This work presents a complete end-to-end system for real-time LOB fore…”
  33. methodrespaldada

    The preprocessing in passage 669 normalizes incoming order book snapshots using Z-score and Batch-Instance Normalization (BiN).

    [5] OrderBook Microstructure Prediction, abstract S2 1d7511240190
    “High-frequency financial markets generate vast volumes of limit order book (LOB) data, demanding models capable of capturing complex spatial-temporal patterns for accurate short-term price movement prediction. This work presents a complete end-to-end system for real-time LOB fore…”
  34. methodrespaldada

    The system in passage 669 extracts multi-level price and volume features and generates multi-horizon movement labels.

    [5] OrderBook Microstructure Prediction, abstract S2 1d7511240190
    “High-frequency financial markets generate vast volumes of limit order book (LOB) data, demanding models capable of capturing complex spatial-temporal patterns for accurate short-term price movement prediction. This work presents a complete end-to-end system for real-time LOB fore…”
  35. factrespaldada

    The models named in passage 669 are MLPLOB, TLOB, DeepLOB, and BinCTABL, and they are trained on preprocessed data and served through a FastAPI backend.

    [5] OrderBook Microstructure Prediction, abstract S2 1d7511240190
    “High-frequency financial markets generate vast volumes of limit order book (LOB) data, demanding models capable of capturing complex spatial-temporal patterns for accurate short-term price movement prediction. This work presents a complete end-to-end system for real-time LOB fore…”
  36. methodrespaldada

    In passage 669, live inference uses a frontend that streams real-time exchange data such as Binance via WebSockets, and the backend processes this data to produce instant predictions.

    [5] OrderBook Microstructure Prediction, abstract S2 1d7511240190
    “High-frequency financial markets generate vast volumes of limit order book (LOB) data, demanding models capable of capturing complex spatial-temporal patterns for accurate short-term price movement prediction. This work presents a complete end-to-end system for real-time LOB fore…”
  37. factrespaldada

    Passage 669 states that multiple models can be loaded concurrently but their predictions are returned independently to enable transparent comparison.

    [5] OrderBook Microstructure Prediction, abstract S2 1d7511240190
    “High-frequency financial markets generate vast volumes of limit order book (LOB) data, demanding models capable of capturing complex spatial-temporal patterns for accurate short-term price movement prediction. This work presents a complete end-to-end system for real-time LOB fore…”
  38. factrespaldada

    MLOFI is a vector quantity that measures the net flow of buy and sell orders at different price levels in a limit order book.

    [6] Multi-Level Order-Flow Imbalance in a Limit Order Book, section Multi-Level Order-Flow Imbalance in a Limit Order Book
    “Ke Xu ††thanks: Corresponding author. Email: xuke_e@hotmail.com. Affiliation: Mathematical Institute, University of Oxford, Oxford OX2 6GG, UK Martin D. Gould Affiliation: Mathematical Institute, University of Oxford, Oxford OX2 6GG, UK Sam D. Howison Affiliation: Mathematical In…”
  39. methodrespaldada

    Using data for 6 liquid stocks on Nasdaq, passage 670 fits a simple linear relationship between MLOFI and the contemporaneous change in mid-price.

    [6] Multi-Level Order-Flow Imbalance in a Limit Order Book, section Multi-Level Order-Flow Imbalance in a Limit Order Book
    “Ke Xu ††thanks: Corresponding author. Email: xuke_e@hotmail.com. Affiliation: Mathematical Institute, University of Oxford, Oxford OX2 6GG, UK Martin D. Gould Affiliation: Mathematical Institute, University of Oxford, Oxford OX2 6GG, UK Sam D. Howison Affiliation: Mathematical In…”
  40. resultrespaldada

    For all 6 stocks studied in passage 670, the out-of-sample goodness-of-fit improves with each additional price level included in the MLOFI vector.

    [6] Multi-Level Order-Flow Imbalance in a Limit Order Book, section Multi-Level Order-Flow Imbalance in a Limit Order Book
    “Ke Xu ††thanks: Corresponding author. Email: xuke_e@hotmail.com. Affiliation: Mathematical Institute, University of Oxford, Oxford OX2 6GG, UK Martin D. Gould Affiliation: Mathematical Institute, University of Oxford, Oxford OX2 6GG, UK Sam D. Howison Affiliation: Mathematical In…”

Fuentes

  1. [1]
    Charles Huang, Weifeng Ge, H.W. Chou, Xin Du. Benchmark Dataset for Short-Term Market Prediction of Limit Order Book in China Markets. The Journal of Financial Data Science, 2021.semanticscholar · primary · DOI 10.3905/jfds.2021.1.074 · https://doi.org/10.3905/jfds.2021.1.074
  2. [2]
    Alexander Lipton, Umberto Pesavento, Michael G Sotiropoulos. Trade arrival dynamics and quote imbalance in a limit order book. arXiv, 2013.arxiv · primary · https://arxiv.org/abs/1312.0514v1
  3. [3]
    Alex Langnau, Yanko Punchev. Stochastic Price Dynamics Implied By the Limit Order Book. arXiv, 2011.arxiv · primary · https://arxiv.org/abs/1105.4789v1
  4. [4]
    Ban Zheng, Eric Moulines, Frédéric Abergel. Price Jump Prediction in Limit Order Book. arXiv, 2012.arxiv · primary · https://arxiv.org/abs/1204.1381v1
  5. [5]
    Renu Kachoria, Archit Bagad, Atharva Bondarde, Atharva Joshi, Arnav Jadhav, A. Deshmukh. OrderBook Microstructure Prediction. 2026 International Conference on System, Computation, Automation and Networking (ICSCAN), 2026.semanticscholar · primary · DOI 10.1109/ICSCAN66520.2026.11588413 · https://doi.org/10.1109/ICSCAN66520.2026.11588413
  6. [6]
    Ke Xu, Martin D. Gould, Sam D. Howison. Multi-Level Order-Flow Imbalance in a Limit Order Book. arXiv, 2019.arxiv · primary · https://arxiv.org/abs/1907.06230v2
  7. [7]
    Hamidreza Bandealinaeini, Mohammad Sharifkhani, E. Salavati. Attention-Based Multi-Asset Order Flow Networks for Enhanced Mid-Price Prediction. International Conference on AI in Finance, 2025.semanticscholar · primary · DOI 10.1145/3768292.3770430 · https://doi.org/10.1145/3768292.3770430
  8. [8]
    Prakul Sunil Hiremath, Vruksha Arun Hiremath. Early Detection of Latent Microstructure Regimes in Limit Order Books. arXiv, 2026.arxiv · primary · https://arxiv.org/abs/2604.20949v1
  9. [9]
    Faisal I Qureshi. Investigating Limit Order Book Characteristics for Short Term Price Prediction: a Machine Learning Approach. arXiv, 2018.arxiv · primary · https://arxiv.org/abs/1901.10534v1
  10. [10]
    Fan Fang, Waichung Chung, Carmine Ventre, Michail Basios, Leslie Kanthan, Lingbo Li. Ascertaining price formation in cryptocurrency markets with machine learning. European Journal of Finance, 2021.openalex · primary · DOI 10.1080/1351847x.2021.1908390 · https://doi.org/10.1080/1351847x.2021.1908390
  11. [11]
    Randolph James Ferlic, Kimberly Kate Ferlic. A One-Byte, Options-Free Market-State Monitor: Detection-Preserving Compression of Financial Data Streams with a Class-Discriminant Token. Zenodo (CERN European Organization for Nuclear Research), 2026.openalex · primary · DOI 10.5281/zenodo.22101085 · https://doi.org/10.5281/zenodo.22101085
  12. [12]
    Md Shah Ali Dolon. DEPLOYMENT AND PERFORMANCE EVALUATION OF HYBRID MACHINE LEARNING MODELS FOR STOCK PRICE FORECASTING AND RISK PREDICTION IN VOLATILE MARKETS. American Journal of Scholarly Research and Innovation, 2025.openalex · primary · DOI 10.63125/z8qq6h36 · https://doi.org/10.63125/z8qq6h36
  13. [13]
    Jianli Xiao, Baichao Long. A Multi-Channel Spatial-Temporal Transformer Model for Traffic Flow Forecasting. arXiv, 2024.arxiv · primary · https://arxiv.org/abs/2405.06266v1
  14. [14]
    Flavius Gheorghe Popa, Vlad Mureşan. Artificial Intelligence in Finance: From Market Prediction to Macroeconomic and Firm-Level Forecasting. AI, 2025.openalex · primary · DOI 10.3390/ai6110295 · https://doi.org/10.3390/ai6110295
  15. [15]
    Nino Antulov-Fantulin, Tian Guo, Fabrizio Lillo. Temporal mixture ensemble models for probabilistic forecasting of intraday cryptocurrency volume. Decisions in Economics and Finance, 2021.openalex · primary · DOI 10.1007/s10203-021-00344-9 · https://doi.org/10.1007/s10203-021-00344-9
  16. [16]
    Stefano Damato, Dario Azzimonti, Giorgio Corani. Forecasting intermittent time series with Gaussian Processes and Tweedie likelihood. arXiv, 2025.arxiv · primary · https://arxiv.org/abs/2502.19086v5