← Retour aux articles
March 19, 2026
5 min de lecture

L'empreinte digitale d'un trader : comment identifier un market maker à son comportement dans le carnet d'ordres

L'empreinte digitale d'un trader : comment identifier un market maker à son comportement dans le carnet d'ordres
#fingerprint
#market maker
#order book
#Hawkes process
#clustering
#spoofing
#Hyperliquid
#market microstructure
📖
Part 6 of 6 · Collection
Order Book & Market Microstructure

Digital fingerprint of a trader Empreinte comportementale d'un algorithme de trading : motifs uniques de timing, de taille et de placement

Chaque algorithme laisse une empreinte unique. Apprenez à la lire — et vous saurez qui se trouve de l'autre côté de votre trade.


Introduction : le carnet d'ordres comme scène de crime

Lorsqu'un enquêteur judiciaire arrive sur une scène de crime, il cherche des empreintes digitales, des traces de pas, de l'ADN — tout ce qui relie un événement à un individu précis. Le carnet d'ordres est un endroit où, chaque seconde, des centaines de participants laissent leurs "empreintes" : des ordres d'une taille précise, à une fréquence précise, à une distance précise du prix, avec une durée de vie précise.

Sur les bourses centralisées (CEX), ces empreintes sont anonymes — on ne voit que le volume agrégé à chaque niveau de prix. Mais même à partir de données agrégées, on peut apprendre beaucoup. Et sur les DEX dotés d'un carnet d'ordres on-chain — comme Hyperliquid — chaque ordre est rattaché à une adresse de wallet précise, et les "empreintes" deviennent personnelles.

Dans cet article, nous allons explorer comment construire un système d'"empreintes comportementales" pour identifier les types de participants et les algorithmes de market making spécifiques.


Partie 1 : qu'est-ce qu'une empreinte comportementale

Five dimensions of a digital fingerprint Diagramme radar : les cinq dimensions clés de l'empreinte comportementale d'un trader

Chaque algorithme est un ensemble de règles

Un bot de market making est un programme qui prend des décisions selon des règles rigides (ou apprises) :

  • À quelle distance du mid-price faut-il placer les ordres ? Chaque MM a son propre "profil de spread".
  • Quelle taille ? Des lots ronds (100, 500, 1000) ? Des nombres aléatoires ? Une taille fixe avec un bruit de ±5 % ?
  • À quelle fréquence les cotations doivent-elles être mises à jour ? Toutes les 50 ms ? Seulement quand le mid-price change ? Sur une minuterie ?
  • Comment réagir aux exécutions ? Requoter instantanément ? Faire une pause ? Décaler le côté restant ?
  • Comment réagir à la volatilité ? Élargir le spread ? Retirer les cotations ? Réduire la taille ?
  • Comment gérer l'inventaire ? Skewer les cotations en cas d'accumulation de position ?

Chaque ensemble de réponses à ces questions constitue une "signature" unique de l'algorithme.

Les cinq dimensions de l'empreinte

┌─────────────────────────────────────────────────────────────────┐
│              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      │
│──────────────────┴─────────────────────────────────────────────  │
└─────────────────────────────────────────────────────────────────┘

Partie 2 : extraction des features

Hawkes process and timing patterns Processus de Hawkes auto-excitant : clusters d'événements avec décroissance exponentielle

Timing : quand et à quelle fréquence

Le motif de timing est l'élément de l'empreinte le plus difficile à falsifier. Il est déterminé par l'architecture de l'algorithme, la latence réseau, le matériel, et même le fuseau horaire des développeurs.

Métriques clés :

  • Intervalle inter-ordres (IOI) — le temps entre deux ordres consécutifs d'un même participant. Pour un bot HFT, IOI = 50–500 microsecondes. Pour un trader manuel — de quelques secondes à quelques minutes.

  • Temps de réaction à un trade — le délai entre l'exécution d'un ordre et l'action suivante. Reflète l'architecture interne du bot.

  • Motif circadien — le profil d'activité quotidien. Un MM institutionnel opère pendant les sessions de trading. Un bot crypto tourne 24h/24 et 7j/7.

  • Auto-excitation (intensité de Hawkes) — dans quelle mesure un ordre actuel "déclenche" le suivant. Les market makers présentent une forte auto-excitation.

Pour modéliser les motifs de timing, les processus de Hawkes — des processus ponctuels auto-excitants — sont idéaux. Les paramètres du processus de Hawkes (intensité de base μ, coefficient d'excitation α, taux de décroissance β) forment une "empreinte chronologique" compacte d'un participant.

Sizing : combien et comment

  • Distribution des tailles — la distribution des tailles d'ordres. Les MM professionnels utilisent souvent des lots ronds avec du bruit : 100 ± 5, 500 ± 10.
  • Corrélation taille-profondeur — la taille de l'ordre dépend-elle de la profondeur actuelle du carnet ?
  • Asymétrie de taille bid-ask — le ratio des tailles entre bid et ask. Le motif de skew est l'"écriture" de la gestion d'inventaire.
  • Autocorrélation des tailles — répétabilité des tailles dans le temps.

Placement : où dans le carnet

  • Décalage de spread — distance par rapport au mid-price en ticks ou en bps
  • Préférence de niveau — ancrage à des niveaux spécifiques (nombres ronds ?)
  • Symétrie de cotation — dans quelle mesure les ordres bid et ask sont-ils symétriques
  • Empreinte multi-niveaux — combien de niveaux sont cotés simultanément

Reaction : comment il répond aux événements

  • Comportement post-exécution — ce qui se passe après l'exécution d'un ordre
  • Réponse à la volatilité — comment le comportement change quand la volatilité augmente
  • Quote-to-trade ratio (QTR) — le ratio entre mises à jour d'ordres et exécutions
  • Réponse à la sélection adverse — réaction à un mouvement de prix défavorable à la position

Lifecycle : le cycle de vie de l'ordre

  • Distribution de la durée de vie des ordres — durée de vie moyenne d'un ordre
  • Modify vs Cancel+New — met-il à jour via modify ou via cancel+new ?
  • Clustering des annulations — annule-t-il un par un ou par lots ?

Partie 3 : classification des participants

Market participant classification Taxonomie des participants de marché : market makers, HFT, opportunistes, fondamentaux et traders de bruit

Taxonomie des participants de marché

Sur la base des features comportementales, les participants peuvent être classés en catégories stables. Recherche de la CFTC (Kirilenko et al., 2011) :

1. Market Makers

  • Cotations à double sens (bid + ask) plus de 80 % du temps
  • Position nette nulle ou quasi nulle en fin de journée
  • QTR élevé (>100:1)
  • Réagissent à la volatilité en élargissant les spreads

2. High-Frequency Traders (HFT)

  • Débit de messages ultra-élevé (>1000 événements/minute)
  • Période de détention très courte (secondes)
  • Temps de réaction sub-milliseconde

3. Traders opportunistes

  • Fréquence modérée
  • Réagissent à des conditions de marché spécifiques
  • Timing irrégulier, regroupé autour d'événements

4. Traders fondamentaux

  • Accumulent des positions à long terme
  • Faible fréquence, tailles d'ordres importantes
  • Algorithmes TWAP/VWAP pour l'exécution

5. Traders de bruit (retail)

  • Petites tailles, timing irrégulier
  • Réactifs : tradent après les mouvements de prix, pas avant
  • Ordres au marché aux pics de volatilité

Méthodes de classification

Apprentissage supervisé : Pour les données DEX (Hyperliquid), un ensemble d'entraînement peut être constitué à partir d'adresses de market makers connus. Les modèles RNN atteignent une précision >85 %.

Apprentissage non supervisé :

  • Spectral Clustering (Cont et al., 2023) — clustering par matrice de similarité des motifs de flux d'ordres
  • FIDR-SCAN (2024) — interpolation de features + réduction de dimension + clustering basé sur la densité
  • Inverse Reinforcement Learning (CFTC, 2014) — reconstruction de la fonction de récompense de chaque trader

Partie 4 : identifier des market makers spécifiques

De la classification à l'identification

La classification répond à la question "Est-ce un market maker ?" L'identification répond à la question "Est-ce ce market maker précis ?"

Construire le vecteur d'empreinte

À partir des cinq dimensions, on extrait un vecteur numérique — l'embedding du participant :

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 d'adresses : "un opérateur — N wallets"

Wallet address clustering Graphe de clusters d'adresses : un opérateur — plusieurs wallets, regroupés par similarité comportementale

Sur Hyperliquid, un seul market maker peut opérer via des dizaines, voire des centaines d'adresses.

Algorithme de clustering :

  1. Pour chaque adresse active — construire un vecteur d'empreinte sur une fenêtre de N heures
  2. Clustering hiérarchique — fusionner les adresses dont la distance est inférieure à un seuil
  3. Validation temporelle — vérifier la stabilité du cluster dans le temps
  4. Validation cross-pair — si deux adresses tradent des paires différentes mais que les empreintes correspondent — signal fort
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%

Partie 5 : scénarios de manipulation et leurs empreintes

Spoofing : l'empreinte d'un faux mur

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 : le piège à liquidité

Quatre phases : accumulation silencieuse, retrait de liquidité, cascade de stop-orders, prise de profit. Une détection en temps réel est possible en identifiant la transition de la phase 1 à la phase 2.

Iceberg / accumulation cachée : la construction silencieuse

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 : l'auto-transaction

Deux adresses ou plus, issues du même cluster, se placent simultanément à l'achat et à la vente et s'exécutent l'une contre l'autre. Objectif : gonfler le volume.


Partie 6 : implémentation dans Marketmaker.cc

Architecture du système d'empreinte comportementale

┌─────────────────────────────────────────────────────────────┐
│  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                         │
└─────────────────────────────────────────────────────────────┘

Ce que le trader voit dans le 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             
╚═══════════════════════════════════════════════════════════════════════════╝

Alertes

  • 🔴 Spoof détecté à votre niveau de prix — un bloc suspect a été identifié devant votre ordre
  • 🟡 Retrait de MM — un market maker a retiré ses cotations, la liquidité a chuté
  • 🟡 Squeeze setup détecté — un cluster d'adresses accumule une position et retire de la liquidité
  • 🟢 Mur renforcé — du volume provenant d'un MM connu a été ajouté à votre niveau

Partie 7 : éthique et limites

Ce qui est acceptable et ce qui ne l'est pas

Acceptable et encouragé :

  • Classifier des participants anonymes par type pour ses propres décisions de trading
  • Détecter la manipulation pour se protéger de la sélection adverse
  • Clusteriser les adresses sur un DEX pour comprendre la structure du marché

Non acceptable :

  • Désanonymiser des individus par leurs adresses de wallet
  • Vendre des motifs identifiés sans consentement
  • Utiliser les données pour manipuler le marché

Limites

  1. Algorithmes adaptatifs — les MM avancés ajoutent de la randomisation
  2. Changement de régime — un même bot peut changer de comportement selon le régime de marché
  3. Faux positifs — deux participants peuvent partager des paramètres similaires par coïncidence
  4. Opacité des CEX — les données L3 ne sont pas disponibles sur les CEX

Conclusion : de la lecture du carnet à la lecture des participants

Un trader traditionnel voit : 2 400 lots au niveau 10000. Un trader avancé voit : "mon ordre est 1 800e dans la file, ETA — 15 secondes." Mais un trader disposant du fingerprinting comportemental voit :

"800 de ces 2 400 lots proviennent d'un market maker (probablement Wintermute), le mur est solide. 500 sont des spoofs suspectés, la véritable file devant moi est de 1 300, pas 1 800. ETA ajusté — 10 secondes. Le market maker ne retire pas ses cotations — donc aucun mouvement important n'est attendu pour l'instant."

Chaque nouvelle couche d'information est un avantage. Et contrairement à la vitesse, la qualité d'interprétation du carnet d'ordres est un domaine où un trader retail peut rivaliser.

Chez Marketmaker.cc, nous construisons ce système — de la position dans la file au fingerprinting comportemental — comme un produit unifié.


Article précédent de la série : "Queue Inside the Wall: Analyzing Order Position in Order Book Density"


Références et lectures complémentaires

blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

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.

Newsletter

Gardez une longueur d'avance sur le marché

Abonnez-vous à notre newsletter pour des insights exclusifs sur le trading IA, des analyses de marché et des mises à jour de la plateforme.

Nous respectons votre vie privée. Désabonnement possible à tout moment.