La Huella Digital de un Trader: Cómo Identificar a un Market Maker por su Comportamiento en el Libro de Órdenes
Huella conductual de un algoritmo de trading: patrones únicos de tiempos, tamaños y colocación
Cada algoritmo deja una huella única. Aprende a leerla — y sabrás quién está al otro lado de tu operación.
Introducción: El Libro de Órdenes como Escena del Crimen
Cuando un investigador forense llega a la escena de un crimen, busca huellas dactilares, huellas de zapatos, ADN — cualquier cosa que vincule un evento con una persona concreta. El libro de órdenes es un lugar donde, cada segundo, cientos de participantes dejan sus "huellas dactilares": órdenes de un tamaño específico, con una frecuencia específica, a una distancia específica del precio, con un tiempo de vida específico.
En los exchanges centralizados (CEX), estas huellas son anónimas — solo se ve el volumen agregado en cada nivel de precio. Pero incluso a partir de datos agregados se puede aprender mucho. Y en los exchanges DEX con libro de órdenes on-chain — como Hyperliquid — cada orden está vinculada a una dirección de wallet específica, y las "huellas" se vuelven personales.
En este artículo exploraremos cómo construir un sistema de "huellas conductuales" para identificar tipos de participantes y algoritmos específicos de market makers.
Parte 1: Qué Es una Huella Conductual
Gráfico de radar: cinco dimensiones clave de la huella conductual de un trader
Cada Algoritmo Es un Conjunto de Reglas
Un bot de market making es un programa que toma decisiones basándose en reglas rígidas (o aprendidas):
- ¿A qué distancia del precio medio deben colocarse las órdenes? Cada MM tiene su propio "perfil de spread".
- ¿Qué tamaño? ¿Lotes redondos (100, 500, 1000)? ¿Números aleatorios? ¿Tamaño fijo con ±5% de ruido?
- ¿Con qué frecuencia se actualizan las cotizaciones? ¿Cada 50ms? ¿Solo cuando cambia el precio medio? ¿Con un temporizador?
- ¿Cómo reacciona ante ejecuciones (fills)? ¿Recotiza al instante? ¿Se pausa? ¿Desplaza el lado restante?
- ¿Cómo reacciona a la volatilidad? ¿Ampliando el spread? ¿Retirando cotizaciones? ¿Reduciendo el tamaño?
- ¿Cómo gestiona el inventario? ¿Sesga las cotizaciones al acumular posición?
Cada conjunto de respuestas a estas preguntas es una "firma" única del algoritmo.
Cinco Dimensiones de la Huella
┌─────────────────────────────────────────────────────────────────┐
│ DIGITAL FINGERPRINT OF A TRADER │
│ │
│ 1. TIMING │ Inter-order intervals, reaction │
│ │ to events, circadian patterns │
│──────────────────┼───────────────────────────────────────────── │
│ 2. SIZING │ Order size distribution, │
│ │ round-lot ratio, dispersion │
│──────────────────┼───────────────────────────────────────────── │
│ 3. PLACEMENT │ Distance from mid-price, │
│ │ bid/ask symmetry, level anchoring │
│──────────────────┼───────────────────────────────────────────── │
│ 4. REACTION │ Response to fills, cancels, price jumps, │
│ │ volatility changes │
│──────────────────┼───────────────────────────────────────────── │
│ 5. LIFECYCLE │ Average order lifetime, │
│ │ cancel conditions, modify vs cancel+new │
│──────────────────┴───────────────────────────────────────────── │
└─────────────────────────────────────────────────────────────────┘
Parte 2: Extracción de Características
Proceso de Hawkes autoexcitante: clústeres de eventos con decaimiento exponencial
Timing: Cuándo y Con Qué Frecuencia
El patrón de timing es el elemento más difícil de falsificar de la huella. Está determinado por la arquitectura del algoritmo, la latencia de red, el hardware e incluso la zona horaria de los desarrolladores.
Métricas clave:
-
Intervalo entre órdenes (IOI, Inter-order interval) — el tiempo entre órdenes consecutivas del mismo participante. Para un bot HFT, IOI = 50–500 microsegundos. Para un trader manual — segundos a minutos.
-
Tiempo de reacción tras un trade — el retraso entre la ejecución de una orden y la siguiente acción. Refleja la arquitectura interna del bot.
-
Patrón circadiano — el perfil de actividad diario. Un MM institucional opera durante las sesiones de trading. Un bot de cripto funciona 24/7.
-
Autoexcitación (intensidad de Hawkes) — cuánto "dispara" una orden actual a la siguiente. Los market makers exhiben una fuerte autoexcitación.
Para modelar patrones de timing, los procesos de Hawkes — procesos puntuales autoexcitantes — son ideales. Los parámetros del proceso de Hawkes (intensidad base μ, coeficiente de excitación α, tasa de decaimiento β) forman una "huella cronológica" compacta de un participante.
Sizing: Cuánto y Cómo
- Distribución de tamaños — la distribución de los tamaños de las órdenes. Los MM profesionales suelen usar lotes redondos con ruido: 100 ± 5, 500 ± 10.
- Correlación tamaño-profundidad — ¿depende el tamaño de la orden de la profundidad actual del libro?
- Asimetría de tamaño bid-ask — la proporción de tamaños en bid y ask. El patrón de sesgo es la "caligrafía" de la gestión del inventario.
- Autocorrelación de tamaño — repetitividad de los tamaños a lo largo del tiempo.
Placement: Dónde en el Libro
- Offset del spread — distancia desde el precio medio en ticks o bps
- Preferencia de nivel — anclaje a niveles específicos (¿números redondos?)
- Simetría de cotización — qué tan simétricas son las órdenes de bid y ask
- Huella multinivel — cuántos niveles se cotizan simultáneamente
Reaction: Cómo Responde a los Eventos
- Comportamiento post-fill — qué ocurre después de que se ejecuta una orden
- Respuesta a la volatilidad — cómo cambia el comportamiento cuando aumenta la volatilidad
- Ratio cotización-trade (QTR) — la proporción entre actualizaciones de órdenes y ejecuciones
- Respuesta a selección adversa — reacción ante un movimiento de precio en contra de la posición
Lifecycle: El Ciclo de Vida de la Orden
- Distribución del tiempo de vida de la orden — tiempo de vida promedio de la orden
- Modify vs Cancel+New — ¿actualiza mediante modify o mediante cancel+new?
- Agrupación de cancelaciones — ¿cancela una por una o en lotes?
Parte 3: Clasificación de Participantes
Taxonomía de los participantes del mercado: market makers, HFT, oportunistas, fundamentales y traders de ruido
Taxonomía de los Participantes del Mercado
A partir de las características conductuales, los participantes pueden clasificarse en categorías estables. Investigación de la CFTC (Kirilenko et al., 2011):
1. Market Makers
- Cotizaciones bidireccionales (bid + ask) durante más del 80% del tiempo
- Posición neta nula o casi nula al final del día
- QTR alto (>100:1)
- Reaccionan a la volatilidad ampliando los spreads
2. High-Frequency Traders (HFT)
- Tasa de mensajes ultra alta (>1000 eventos/minuto)
- Periodo de tenencia muy corto (segundos)
- Tiempos de reacción de submilisegundos
3. Traders Oportunistas
- Frecuencia moderada
- Reaccionan a condiciones de mercado específicas
- Timing irregular, agrupado en torno a eventos
4. Traders Fundamentales
- Acumulan posiciones a largo plazo
- Baja frecuencia, tamaños de orden grandes
- Algoritmos TWAP/VWAP para la ejecución
5. Traders de Ruido (Retail)
- Tamaños pequeños, timing irregular
- Reactivos: operan después de que el precio se mueve, no antes
- Órdenes de mercado en el pico de volatilidad
Métodos de Clasificación
Aprendizaje supervisado: Para datos de DEX (Hyperliquid), se puede armar un conjunto de entrenamiento a partir de direcciones de market makers conocidos. Los modelos RNN alcanzan una precisión >85%.
Aprendizaje no supervisado:
- Spectral Clustering (Cont et al., 2023) — agrupamiento por matriz de similitud del patrón de flujo de órdenes
- FIDR-SCAN (2024) — interpolación de características + reducción de dimensionalidad + clustering basado en densidad
- Inverse Reinforcement Learning (CFTC, 2014) — recuperación de la función de recompensa de cada trader
Parte 4: Identificación de Market Makers Específicos
De la Clasificación a la Identificación
La clasificación responde a la pregunta "¿Es esto un market maker?". La identificación responde a la pregunta "¿Es este market maker en concreto?".
Construcción del Vector de Huella
A partir de las cinco dimensiones, extraemos un vector numérico — el embedding del participante:
Fingerprint Vector (example):
┌──────────────────────────────────────────────────────────┐
│ Timing: │
│ hawkes_mu: 0.3 (base intensity) │
│ hawkes_alpha: 0.7 (self-excitation) │
│ hawkes_beta: 1.2 (decay rate) │
│ median_IOI_ms: 240 (ms between orders) │
│ circadian_peak_utc: 14.5 (peak activity) │
│ │
│ Sizing: │
│ median_size: 500 │
│ size_cv: 0.08 (coeff. of variation) │
│ round_lot_ratio: 0.92 (round lot share) │
│ bid_ask_size_ratio: 0.97 │
│ │
│ Placement: │
│ median_offset_bps: 3.2 (from mid-price) │
│ quoting_symmetry: 0.94 (0=asymmetric,1=symm) │
│ num_levels: 5 (quoted levels) │
│ │
│ Reaction: │
│ post_fill_delay_ms: 12 │
│ vol_spread_elasticity: 2.1 (spread/sigma) │
│ qtr: 850 (quote-to-trade ratio) │
│ │
│ Lifecycle: │
│ median_lifetime_ms: 1200 │
│ modify_ratio: 0.85 (modify vs cancel+new) │
│ batch_cancel_rate: 0.60 (batch cancel share) │
└──────────────────────────────────────────────────────────┘
Clustering de Direcciones: "Un Operador — N Wallets"
Grafo de clústeres de direcciones: un operador — múltiples wallets, agrupadas por similitud conductual
En Hyperliquid, un único market maker puede operar a través de decenas o cientos de direcciones.
Algoritmo de clustering:
- Para cada dirección activa — construir un vector de huella en una ventana de N horas
- Clustering jerárquico — fusionar direcciones con distancia < umbral
- Validación temporal — verificar la estabilidad del clúster a lo largo del tiempo
- Validación cruzada de pares — si dos direcciones operan pares distintos pero sus huellas coinciden — señal fuerte
Cluster #7 (suspected: Wintermute)
├── 0x3a1f...2e8c — BTC/USDT, 45% of activity
├── 0x7b2d...9f1a — ETH/USDT, 30% of activity
├── 0xc4e8...5d3b — SOL/USDT, 15% of activity
└── 0x91fa...0c7e — ARB/USDT, 10% of activity
Common pattern: symmetric quoting, 5 levels, median_IOI=240ms,
median_size=500±8%, batch cancel 60%, presence 95%
Parte 5: Escenarios de Manipulación y Sus Huellas
Spoofing: La Huella de un Muro Falso
Spoofer fingerprint:
cancel_rate: > 95%
lifetime: < 2 seconds
placement: 1-3 ticks from mid-price
size: anomalously large (>10x median depth)
reaction_to_approach: cancel when price approaches
cyclicity: repeats >3 times / minute
Squeeze: La Trampa de Liquidez
Cuatro fases: acumulación silenciosa, retirada de liquidez, cascada de órdenes stop, toma de beneficios. La detección en tiempo real es posible identificando la transición de la Fase 1 a la Fase 2.
Iceberg / Acumulación Oculta: La Construcción Silenciosa
Hidden accumulation fingerprint:
visible_size: small (10-50 lots)
refill_speed: instant (< 100ms after fill)
refill_count: > 20 at a single level per session
price_reaction: price does not move despite volume
Wash Trading: Autonegociación
Dos o más direcciones del mismo clúster se colocan simultáneamente en bid y ask y se ejecutan entre sí. Objetivo: inflar el volumen.
Parte 6: Implementación en Marketmaker.cc
Arquitectura del Sistema de Huellas Conductuales
┌─────────────────────────────────────────────────────────────┐
│ DATA LAYER │
│ ├── Hyperliquid Node → L3 order-by-order + wallet IDs │
│ ├── CEX WebSocket → L2 depth + trades │
│ └── Historical Store → QuestDB / Parquet │
├─────────────────────────────────────────────────────────────┤
│ FEATURE EXTRACTION │
│ ├── Timing Engine → Hawkes fit, IOI distribution │
│ ├── Sizing Engine → Size stats, round-lot detection │
│ ├── Placement Engine → Offset calc, symmetry analysis │
│ ├── Reaction Engine → Post-fill tracker, vol response │
│ └── Lifecycle Engine → Lifetime stats, cancel patterns │
├─────────────────────────────────────────────────────────────┤
│ CLASSIFICATION / IDENTIFICATION │
│ ├── Online Classifier → Real-time participant tagging │
│ ├── Cluster Engine → Address clustering (DEX) │
│ ├── Similarity Search → Fingerprint matching │
│ └── Anomaly Detector → Spoof / squeeze / wash detection │
├─────────────────────────────────────────────────────────────┤
│ VISUALIZATION │
│ ├── Queue Position + Participant Labels │
│ ├── Cluster Graph (known MM clusters) │
│ ├── Alert System (manipulation detected) │
│ └── Historical Fingerprint Browser │
└─────────────────────────────────────────────────────────────┘
Lo Que el Trader Ve en la Terminal
╔═══════════════════════════════════════════════════════════════════════════╗
║ 10000 USDT │ Total: 3,200 ║
║──────────────┼───────────────────────────────────────────────────────── ║
║ Breakdown: │ 🤖 MM (cluster#7, ~Wintermute): 800 lots [5 levels] ║
║ │ 🤖 MM (cluster#12, unknown): 400 lots [3 levels] ║
║ │ ⚠️ Suspicious (spoof score 87): 500 lots [lifetime<2s]║
║ │ 🟡 @pro_scalper: 100 lots ║
║ │ 🔴 MINE: 10 lots ║
║ │ 👤 Retail / unclassified: 1,390 lots ║
║──────────────┼───────────────────────────────────────────────────────── ║
║ Queue ahead │ Real: ~1,200 (excl. spoof) Nominal: 1,800 ║
║ "Clean" ETA │ 6.7s (vs nominal 10s) ║
║ Wall type: │ MM-backed (65% MM volume) — likely to hold ║
╚═══════════════════════════════════════════════════════════════════════════╝
Alertas
- 🔴 Spoof detectado en tu nivel de precio — se ha identificado un bloque sospechoso delante de tu orden
- 🟡 Retirada de MM — un market maker ha retirado sus cotizaciones, la liquidez ha caído
- 🟡 Setup de squeeze detectado — un clúster de direcciones está acumulando posición y retirando liquidez
- 🟢 Muro reforzado — se ha añadido volumen de un MM conocido en tu nivel
Parte 7: Ética y Limitaciones
Qué Es y No Es Aceptable
Aceptable y recomendado:
- Clasificar participantes anónimos por tipo para tus propias decisiones de trading
- Detectar manipulación para protegerse de la selección adversa
- Agrupar direcciones en DEX para entender la estructura del mercado
No aceptable:
- Desanonimizar individuos a partir de direcciones de wallet
- Vender patrones identificados sin consentimiento
- Usar los datos para manipular el mercado
Limitaciones
- Algoritmos adaptativos — los MM avanzados añaden aleatorización
- Cambio de régimen — un mismo bot puede cambiar su comportamiento según el régimen de mercado
- Falsos positivos — dos participantes pueden compartir parámetros similares por coincidencia
- Opacidad de los CEX — los datos L3 no están disponibles en los CEX
Conclusión: De Leer el Libro a Leer a los Participantes
Un trader tradicional ve: 2.400 lotes en el nivel 10000. Un trader avanzado ve: "mi orden está en el puesto 1.800 de la cola, ETA — 15 segundos". Pero un trader con huellas conductuales ve:
"800 de esos 2.400 son de un market maker (probablemente Wintermute), el muro es sólido. 500 son presuntos spoofs, la cola real por delante de mí es de 1.300, no 1.800. ETA ajustada — 10 segundos. El market maker no está retirando cotizaciones — así que por ahora no se espera un movimiento grande."
Cada nueva capa de información es una ventaja. Y a diferencia de la velocidad, la calidad de interpretación del libro de órdenes es un terreno donde un trader minorista puede competir.
En Marketmaker.cc estamos construyendo este sistema — desde la posición en la cola hasta las huellas conductuales — como un producto unificado.
Artículo anterior de la serie: "La Cola Dentro del Muro: Análisis de la Posición de las Órdenes en la Densidad del Libro de Órdenes"
Referencias y Lecturas Adicionales
- Kirilenko A., Kyle A., Samadi M., Tuzun T. — "The Flash Crash: High-Frequency Trading in an Electronic Market" (CFTC, 2011)
- Paddrik M., Hayes R., Scherer W., Beling P. — "Gaussian Process-Based Algorithmic Trading Strategy Identification" (CFTC / OFR, 2014)
- Cont R. et al. — "Unsupervised spectral clustering of trader order flow" (2023)
- FIDR-SCAN — "Explainable Machine Learning for HFT Dynamics Discovery" (2024)
- Do B.L., Putniņš T.J. — "Detecting Layering and Spoofing in Markets" (SSRN, 2023)
- Hawkes A.G. — "Spectra of Some Self-Exciting and Mutually Exciting Point Processes" (Biometrika, 1971)
- Avellaneda M., Stoikov S. — "High-Frequency Trading in a Limit Order Book" (Quantitative Finance, 2008)
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.