← К списку статей
March 19, 2026
5 мин. чтения

Цифровой слепок трейдера: как идентифицировать маркетмейкера по его поведению в ордербуке

Цифровой слепок трейдера: как идентифицировать маркетмейкера по его поведению в ордербуке
#fingerprint
#маркетмейкер
#ордербук
#Hawkes процесс
#кластеризация
#спуфинг
#Hyperliquid
#микроструктура рынка

Цифровой слепок трейдера Поведенческий отпечаток торгового алгоритма: уникальные паттерны timing, sizing и placement

Каждый алгоритм оставляет уникальный отпечаток. Научитесь его читать — и вы будете знать, кто стоит по другую сторону сделки.


Введение: ордербук как место преступления

Когда криминалист приезжает на место происшествия, он ищет отпечатки пальцев, следы обуви, ДНК — всё, что связывает событие с конкретным человеком. Ордербук — это место, где каждую секунду сотни участников оставляют свои «отпечатки»: ордера определённого размера, с определённой частотой, на определённом расстоянии от цены, с определённым временем жизни.

На централизованных биржах (CEX) эти отпечатки анонимны — вы видите только агрегированный объём на каждом ценовом уровне. Но даже по агрегированным данным можно многое понять. А на DEX-биржах с on-chain ордербуком — таких как Hyperliquid — каждый ордер привязан к конкретному адресу кошелька, и «отпечатки» становятся персональными.

В этой статье мы разберём, как построить систему «цифровых слепков» (behavioral fingerprints) для идентификации типов участников и конкретных алгоритмов маркетмейкеров.


Часть 1: Что такое поведенческий отпечаток

Пять измерений цифрового слепка Радарная диаграмма: пять ключевых измерений поведенческого отпечатка трейдера

Каждый алгоритм — это набор правил

Маркетмейкерский бот — это программа, которая принимает решения по жёстким (или обучаемым) правилам:

  • На каком расстоянии от mid-price выставлять ордера? У каждого MM свой «спред-профиль».
  • Какого размера? Round lots (100, 500, 1000)? Случайные числа? Фиксированный размер с шумом ±5%?
  • Как часто обновлять котировки? Каждые 50мс? Только при изменении mid-price? По таймеру?
  • Как реагировать на исполнение? Мгновенное перевыставление? Пауза? Смещение оставшейся стороны?
  • Как реагировать на волатильность? Расширение спреда? Снятие котировок? Уменьшение размера?
  • Как управлять инвентарём? Скос котировок (skew) при накоплении позиции?

Каждый набор ответов на эти вопросы — это уникальная «подпись» алгоритма.

Пять измерений «слепка»

┌─────────────────────────────────────────────────────────────────┐
│              ЦИФРОВОЙ СЛЕПОК ТРЕЙДЕРА                           │
│                                                                 │
│  1. TIMING       │  Интервалы между ордерами, реакция           │
│                  │  на события, суточные паттерны                │
│──────────────────┼─────────────────────────────────────────────  │
│  2. SIZING       │  Распределение размеров ордеров,             │
│                  │  кратность, дисперсия                         │
│──────────────────┼─────────────────────────────────────────────  │
│  3. PLACEMENT    │  Расстояние от mid-price,                    │
│                  │  симметрия bid/ask, привязка к уровням        │
│──────────────────┼─────────────────────────────────────────────  │
│  4. REACTION     │  Ответ на fills, cancels, price jumps,       │
│                  │  изменение волатильности                      │
│──────────────────┼─────────────────────────────────────────────  │
│  5. LIFECYCLE    │  Средний lifetime ордера,                    │
│                  │  условия отмены, modify vs cancel+new         │
│──────────────────┴─────────────────────────────────────────────  │
└─────────────────────────────────────────────────────────────────┘

Часть 2: Извлечение признаков

Hawkes-процесс и timing-паттерны Hawkes-процесс с самовозбуждением: кластеры событий с экспоненциальным затуханием

Timing: когда и как часто

Timing-паттерн — самый трудноподделываемый элемент слепка. Он определяется архитектурой алгоритма, задержкой сети, hardware и даже часовым поясом разработчиков.

Ключевые метрики:

  • Inter-order interval (IOI) — время между последовательными ордерами одного участника. У HFT-бота IOI = 50-500 микросекунд. У ручного трейдера — секунды-минуты.

  • Reaction time to trade — задержка между исполнением ордера и следующим действием. Отражает внутреннюю архитектуру бота.

  • Circadian pattern — суточный профиль активности. Институциональный MM работает во время торговых сессий. Крипто-бот — 24/7.

  • Self-excitation (Hawkes intensity) — насколько текущий ордер «провоцирует» следующий. Маркетмейкеры демонстрируют сильную self-excitation.

Для моделирования timing-паттернов идеально подходят Hawkes-процессы — точечные процессы с самовозбуждением. Параметры Hawkes-процесса (базовая интенсивность μ, коэффициент возбуждения α, скорость затухания β) формируют компактный «хронологический отпечаток» участника.

Sizing: сколько и как

  • Size distribution — распределение размеров ордеров. Профессиональные MM часто используют round lots с шумом: 100 ± 5, 500 ± 10.
  • Size-depth correlation — зависит ли размер ордера от текущей глубины стакана?
  • Bid-ask size asymmetry — соотношение размеров на bid и ask. Паттерн скоса — «почерк» inventory management.
  • Size autocorrelation — повторяемость размеров во времени.

Placement: где в стакане

  • Spread offset — расстояние от mid-price в тиках или bps
  • Level preference — привязка к определённым уровням (round numbers?)
  • Quoting symmetry — насколько симметричны bid и ask ордера
  • Multi-level footprint — сколько уровней одновременно котируется

Reaction: как отвечает на события

  • Post-fill behavior — что происходит после исполнения ордера
  • Volatility response — как меняется поведение при росте волатильности
  • Quote-to-trade ratio (QTR) — соотношение обновлений ордеров к исполнениям
  • Adverse selection response — реакция на движение цены против позиции

Lifecycle: жизненный цикл ордера

  • Order lifetime distribution — среднее время жизни ордера
  • Modify vs Cancel+New — обновляет через modify или cancel+new?
  • Cancel clustering — отменяет поодиночке или пакетами?

Часть 3: Классификация участников

Классификация участников рынка Таксономия рыночных участников: маркетмейкеры, HFT, оппортунисты, фундаментальные и шумовые трейдеры

Таксономия участников рынка

На основе поведенческих признаков можно классифицировать участников на устойчивые категории. Исследование CFTC (Kirilenko et al., 2011):

1. Market Makers (маркетмейкеры)

  • Двухсторонние котировки (bid + ask) в >80% времени
  • Нулевая или близкая к нулю чистая позиция к концу дня
  • Высокий QTR (>100:1)
  • Реагируют на волатильность расширением спреда

2. High-Frequency Traders (HFT)

  • Сверхвысокая частота сообщений (>1000 events/минута)
  • Очень короткий holding period (секунды)
  • Sub-millisecond reaction times

3. Opportunistic Traders (оппортунисты)

  • Умеренная частота
  • Реагируют на конкретные рыночные условия
  • Нерегулярный timing, кластеризованный вокруг событий

4. Fundamental Traders (фундаментальные)

  • Набирают долгосрочные позиции
  • Низкая частота, большие размеры ордеров
  • TWAP/VWAP алгоритмы для исполнения

5. Noise Traders (шумовые/ритейл)

  • Маленькие размеры, нерегулярный timing
  • Реактивные: торгуют после движения, не до
  • Market orders в момент пика волатильности

Методы классификации

Supervised Learning: Для DEX-данных (Hyperliquid) можно собрать обучающую выборку из адресов известных маркетмейкеров. RNN-модели достигают accuracy >85%.

Unsupervised Learning:

  • Spectral Clustering (Cont et al., 2023) — кластеризация по матрице сходства order flow patterns
  • FIDR-SCAN (2024) — feature interpolation + dimension reduction + density-based clustering
  • Inverse Reinforcement Learning (CFTC, 2014) — восстановление reward function каждого трейдера

Часть 4: Идентификация конкретных маркетмейкеров

От классификации к идентификации

Классификация отвечает на вопрос «это маркетмейкер?». Идентификация отвечает на вопрос «это тот самый маркетмейкер?».

Построение вектора слепка

Из пяти измерений мы извлекаем числовой вектор — embedding участника:

Fingerprint Vector (пример):
┌──────────────────────────────────────────────────────────┐
  Timing:                                                 
    hawkes_mu:           0.3       (базовая интенсивность)│
    hawkes_alpha:        0.7       (self-excitation)      
    hawkes_beta:         1.2       (decay rate)           
    median_IOI_ms:       240       (мс между ордерами)    
    circadian_peak_utc:  14.5      (пик активности)       
                                                          
  Sizing:                                                 
    median_size:         500                              
    size_cv:             0.08      (коэфф. вариации)      
    round_lot_ratio:     0.92      (доля круглых лотов)   
    bid_ask_size_ratio:  0.97                             
                                                          
  Placement:                                              
    median_offset_bps:   3.2       (от mid-price)         
    quoting_symmetry:    0.94      (0=асимметрия,1=симм)  
    num_levels:          5         (котируемых уровней)    
                                                          
  Reaction:                                               
    post_fill_delay_ms:  12                               
    vol_spread_elasticity: 2.1     (спред/σ)             
    qtr:                 850       (quote-to-trade ratio)  
                                                          
  Lifecycle:                                              
    median_lifetime_ms:  1200                             
    modify_ratio:        0.85      (modify vs cancel+new) 
    batch_cancel_rate:   0.60      (доля пакетных отмен)  
└──────────────────────────────────────────────────────────┘

Кластеризация адресов: «один оператор — N кошельков»

Кластеризация адресов кошельков Граф кластеров адресов: один оператор — множество кошельков, объединённых по поведенческому сходству

На Hyperliquid один маркетмейкер может оперировать через десятки или сотни адресов.

Алгоритм объединения:

  1. Для каждого активного адреса — строим fingerprint vector по окну N часов
  2. Hierarchical clustering — объединяем адреса с расстоянием < threshold
  3. Temporal validation — проверяем стабильность кластера во времени
  4. Cross-pair validation — если два адреса торгуют разные пары, но fingerprint совпадает — сильный сигнал
Кластер #7 (предположительно: Wintermute)
├── 0x3a1f...2e8c  — BTC/USDT, 45% активности
├── 0x7b2d...9f1a  — ETH/USDT, 30% активности
├── 0xc4e8...5d3b  — SOL/USDT, 15% активности
└── 0x91fa...0c7e  — ARB/USDT, 10% активности

Общий паттерн: symmetric quoting, 5 levels, median_IOI=240ms,
median_size=500±8%, batch cancel 60%, presence 95%

Часть 5: Сценарии манипуляций и их отпечатки

Spoofing: слепок фальшивой стены

Отпечаток спуфера:
  cancel_rate:         > 95%
  lifetime:            < 2 секунд
  placement:           1-3 тика от mid-price
  size:                аномально большой (>10x median depth)
  reaction_to_approach: отмена при приближении цены
  cyclicity:           повторение >3 раз / минута

Squeeze: ловушка ликвидности

Четыре фазы: тихое накопление → удаление ликвидности → каскад стоп-ордеров → фиксация прибыли. Обнаружение в реальном времени возможно по переходу из Фазы 1 в Фазу 2.

Iceberg / Hidden accumulation: тихий набор

Отпечаток тихого накопления:
  visible_size:        маленький (10-50 лотов)
  refill_speed:        мгновенный (< 100ms после fill)
  refill_count:        > 20 на одном уровне за сессию
  price_reaction:      цена не двигается несмотря на объём

Wash Trading: самосделки

Два или более адреса из одного кластера одновременно стоят на bid и ask и исполняют друг друга. Цель: накрутка объёма.


Часть 6: Реализация в Marketmaker.cc

Архитектура системы Behavioral Fingerprint

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

Что видит трейдер в терминале

╔═══════════════════════════════════════════════════════════════════════════╗
  10000 USDT    Total: 3,200                                           
║──────────────┼───────────────────────────────────────────────────────── 
  Breakdown:    🤖 MM (cluster#7, ~Wintermute): 800 лотов [5 levels]  
                🤖 MM (cluster#12, unknown):     400 лотов [3 levels]  
                ⚠️ Suspicious (spoof score 87):  500 лотов [lifetime<2s]
                🟡 @pro_scalper:                 100 лотов              
                🔴 МОЙ:                          10 лотов               
                👤 Retail / unclassified:         1,390 лотов           
║──────────────┼───────────────────────────────────────────────────────── 
  Queue ahead   Реальных: ~1,200 (excl. spoof)   Nominal: 1,800       
  «Чистый»ETA   6.7s (vs nominal 10s)                                  
  Wall type:    MM-backed (65% MM volume)  likely to hold             
╚═══════════════════════════════════════════════════════════════════════════╝

Алерты

  • 🔴 Spoof detected at your price level — перед вашим ордером выявлен подозрительный блок
  • 🟡 MM withdrawal — маркетмейкер снял котировки, ликвидность упала
  • 🟡 Squeeze setup detected — кластер адресов набирает позицию и удаляет ликвидность
  • 🟢 Wall reinforced — на вашем уровне добавился объём от известного MM

Часть 7: Этика и ограничения

Что можно, а что нельзя

Можно и нужно:

  • Классифицировать анонимных участников по типу для собственных торговых решений
  • Детектировать манипуляции для защиты от adverse selection
  • Кластеризовать адреса на DEX для понимания структуры рынка

Нельзя:

  • Деанонимизация физических лиц по адресам кошельков
  • Продажа идентифицированных паттернов без согласия
  • Использование для market manipulation

Ограничения

  1. Адаптивные алгоритмы — продвинутые MM добавляют рандомизацию
  2. Режимные переключения — один бот может менять поведение в зависимости от рыночного режима
  3. False positives — два участника могут случайно иметь похожие параметры
  4. CEX opacity — на CEX L3-данные недоступны

Заключение: от чтения стакана к чтению участников

Традиционный трейдер видит: 2,400 лотов на уровне 10000. Продвинутый трейдер видит: «мой ордер стоит 1,800-м в очереди, ETA — 15 секунд». А трейдер с behavioral fingerprinting видит:

«800 из этих 2,400 — маркетмейкер (вероятно, Wintermute), стена надёжная. 500 — подозрение на spoof, реальная очередь передо мной — 1,300, а не 1,800. Adjusted ETA — 10 секунд. Маркетмейкер не снимает котировки — значит, крупного движения пока не ждёт.»

Каждый новый слой информации — это преимущество. И в отличие от скорости, качество интерпретации стакана — это территория, где розничный трейдер может конкурировать.

В Marketmaker.cc мы строим эту систему — от queue position до behavioral fingerprinting — как единый продукт.


Предыдущая статья серии: «Очередь внутри стенки: анализ позиции ордера в плотности ордербука»


Источники и дальнейшее чтение

Дисклеймер: Информация в этой статье предоставлена исключительно в образовательных и ознакомительных целях и не является финансовым, инвестиционным или торговым советом. Торговля криптовалютами сопряжена с высоким риском убытков.

MarketMaker.cc Team

Количественные исследования и стратегии

Обсудить в Telegram
Newsletter

Будьте в курсе событий

Подпишитесь на нашу рассылку, чтобы получать эксклюзивную аналитику по AI-трейдингу и обновления платформы.

Мы уважаем вашу конфиденциальность. Отписаться можно в любой момент.