交易者的数字指纹:如何通过订单簿行为识别做市商
交易算法的行为指纹:独特的timing、sizing和placement模式
每个算法都会留下独特的指纹。学会解读它——你就能知道交易对手方是谁。
引言:订单簿即犯罪现场
当法医鉴识人员到达现场时,他们会寻找指纹、鞋印、DNA——一切能将事件与特定个人关联起来的线索。订单簿就是这样一个场所,每秒钟数百名参与者在此留下自己的"指纹":特定大小、特定频率、距价格特定距离、特定存活时间的订单。
在中心化交易所(CEX)上,这些指纹是匿名的——你只能看到每个价格层级的汇总委托量。但即使从汇总数据中也能了解很多。而在拥有链上订单簿的DEX交易所——如Hyperliquid——每笔订单都绑定到特定的钱包地址,"指纹"变成了个人专属的。
在本文中,我们将探讨如何构建"数字指纹"(behavioral fingerprints)系统,用于识别参与者类型和具体的做市商算法。
第一部分:什么是行为指纹
雷达图:交易者行为指纹的五个关键维度
每个算法都是一套规则
做市商机器人是一个按照严格(或可学习的)规则做出决策的程序:
- 距mid-price多远挂单? 每个MM都有自己的"价差配置"。
- 挂多大的量? 整数手(100、500、1000)?随机数?带±5%噪声的固定大小?
- 多久更新一次报价? 每50毫秒?仅在mid-price变化时?按定时器?
- 如何响应成交? 即时重新挂单?暂停?调整对侧?
- 如何响应波动率? 扩大价差?撤回报价?缩小挂单量?
- 如何管理库存? 仓位累积时的报价偏斜(skew)?
每一组答案都构成了算法的独特"签名"。
"指纹"的五个维度
┌─────────────────────────────────────────────────────────────────┐
│ 交易者数字指纹 │
│ │
│ 1. TIMING │ 订单间隔、对事件的反应、 │
│ │ 日内活动模式 │
│──────────────────┼───────────────────────────────────────────── │
│ 2. SIZING │ 订单大小分布、 │
│ │ 整数倍特征、离散程度 │
│──────────────────┼───────────────────────────────────────────── │
│ 3. PLACEMENT │ 距mid-price的距离、 │
│ │ bid/ask对称性、价格水平锚定 │
│──────────────────┼───────────────────────────────────────────── │
│ 4. REACTION │ 对成交、撤单、价格跳跃、 │
│ │ 波动率变化的响应 │
│──────────────────┼───────────────────────────────────────────── │
│ 5. LIFECYCLE │ 订单平均存活时间、 │
│ │ 撤单条件、modify vs cancel+new │
│──────────────────┴───────────────────────────────────────────── │
└─────────────────────────────────────────────────────────────────┘
第二部分:特征提取
带自激励的Hawkes过程:具有指数衰减的事件簇
Timing:何时以及多频繁
Timing模式是指纹中最难伪造的元素。它由算法架构、网络延迟、硬件甚至开发者的时区所决定。
关键指标:
-
订单间隔(IOI) — 同一参与者连续订单之间的时间间隔。HFT机器人的IOI为50-500微秒,手动交易者为数秒至数分钟。
-
成交反应时间 — 订单被执行到下一次操作之间的延迟。反映了机器人的内部架构。
-
日内周期模式 — 日内活动分布。机构做市商在交易时段活跃,加密货币机器人则全天候运行。
-
自激励(Hawkes强度) — 当前订单"激发"下一个订单的程度。做市商表现出强烈的自激励特征。
Hawkes过程非常适合建模timing模式——这是一种具有自激励特性的点过程。Hawkes过程的参数(基础强度μ、激励系数α、衰减速率β)构成了参与者紧凑的"时序指纹"。
Sizing:多少和如何
- 大小分布 — 订单大小的分布。专业做市商经常使用带噪声的整数手:100 ± 5、500 ± 10。
- 大小-深度相关性 — 订单大小是否取决于当前盘口深度?
- 买卖盘大小不对称性 — bid和ask的大小比例。偏斜模式是库存管理的"笔迹"。
- 大小自相关 — 大小在时间序列上的重复性。
Placement:在盘口的位置
- 价差偏移 — 距mid-price的距离(以tick或基点计)
- 价位偏好 — 是否锚定于特定价位(整数关口?)
- 报价对称性 — bid和ask订单的对称程度
- 多层级足迹 — 同时报价的层级数量
Reaction:如何响应事件
- 成交后行为 — 订单被执行后发生了什么
- 波动率响应 — 波动率上升时行为如何变化
- 报价成交比(QTR) — 订单更新次数与执行次数的比率
- 逆向选择响应 — 价格向不利方向移动时的反应
Lifecycle:订单生命周期
- 订单存活时间分布 — 订单的平均存活时间
- Modify vs Cancel+New — 通过modify还是cancel+new更新?
- 批量撤单 — 逐个撤单还是批量撤单?
第三部分:参与者分类
市场参与者分类体系:做市商、高频交易者、机会主义者、基本面交易者和噪声交易者
市场参与者分类体系
基于行为特征,可以将参与者划分为稳定的类别。CFTC研究(Kirilenko等,2011):
1. Market Makers(做市商)
- 超过80%时间维持双边报价(bid + ask)
- 日终净持仓为零或接近零
- 高QTR(>100:1)
- 通过扩大价差响应波动率
2. High-Frequency Traders(高频交易者)
- 超高消息频率(>1000事件/分钟)
- 极短持仓时间(秒级)
- 亚毫秒级反应时间
3. Opportunistic Traders(机会主义者)
- 中等频率
- 对特定市场条件做出反应
- 不规则timing,围绕事件聚集
4. Fundamental Traders(基本面交易者)
- 建立长期仓位
- 低频率、大订单量
- 使用TWAP/VWAP算法执行
5. Noise Traders(噪声/散户交易者)
- 小订单量、不规则timing
- 反应式:在行情启动后交易,而非提前
- 在波动率峰值时下市价单
分类方法
有监督学习: 对于DEX数据(Hyperliquid),可以从已知做市商地址构建训练集。RNN模型准确率可达>85%。
无监督学习:
- 谱聚类(Cont等,2023)— 基于订单流模式相似矩阵的聚类
- FIDR-SCAN(2024)— 特征插值 + 降维 + 基于密度的聚类
- 逆强化学习(CFTC,2014)— 恢复每个交易者的奖励函数
第四部分:识别具体的做市商
从分类到识别
分类回答的是"这是做市商吗?"的问题。识别回答的是"这是那个特定的做市商吗?"的问题。
构建指纹向量
从五个维度中,我们提取一个数值向量——参与者的embedding:
Fingerprint Vector(示例):
┌──────────────────────────────────────────────────────────┐
│ Timing: │
│ hawkes_mu: 0.3 (基础强度) │
│ hawkes_alpha: 0.7 (自激励) │
│ hawkes_beta: 1.2 (衰减速率) │
│ 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 (报价成交比) │
│ │
│ Lifecycle: │
│ median_lifetime_ms: 1200 │
│ modify_ratio: 0.85 (modify vs cancel+new) │
│ batch_cancel_rate: 0.60 (批量撤单比例) │
└──────────────────────────────────────────────────────────┘
地址聚类:"一个操作者——N个钱包"
地址聚类图:一个操作者——多个钱包,通过行为相似性聚合
在Hyperliquid上,一个做市商可以通过数十甚至数百个地址进行操作。
聚合算法:
- 为每个活跃地址 — 在N小时窗口内构建fingerprint向量
- 层次聚类 — 合并距离 < 阈值的地址
- 时间验证 — 验证聚类在时间维度上的稳定性
- 跨交易对验证 — 如果两个地址交易不同的交易对但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%
第五部分:操纵场景及其指纹
Spoofing:虚假挂单的指纹
幌骗者指纹:
cancel_rate: > 95%
lifetime: < 2 秒
placement: 距mid-price 1-3个tick
size: 异常大(>10倍median depth)
reaction_to_approach: 价格靠近时撤单
cyclicity: 每分钟重复>3次
Squeeze:流动性陷阱
四个阶段:静默建仓 → 撤走流动性 → 止损单级联触发 → 获利了结。通过监测从第1阶段到第2阶段的转变,可以实现实时检测。
Iceberg / Hidden accumulation:静默吸筹
静默吸筹指纹:
visible_size: 小量(10-50手)
refill_speed: 即时(成交后< 100ms)
refill_count: 单一价位每个交易时段> 20次
price_reaction: 尽管有成交量但价格不动
Wash Trading:自成交
来自同一聚类的两个或多个地址同时在bid和ask挂单并互相成交。目的:刷交易量。
第六部分:在Marketmaker.cc中的实现
行为指纹系统架构
┌─────────────────────────────────────────────────────────────┐
│ 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 │ 总量: 3,200 ║
║──────────────┼───────────────────────────────────────────────────────── ║
║ 明细: │ 🤖 MM (cluster#7, ~Wintermute): 800 手 [5 levels] ║
║ │ 🤖 MM (cluster#12, 未知): 400 手 [3 levels] ║
║ │ ⚠️ 可疑 (spoof score 87): 500 手 [lifetime<2s] ║
║ │ 🟡 @pro_scalper: 100 手 ║
║ │ 🔴 我的: 10 手 ║
║ │ 👤 散户 / 未分类: 1,390 手 ║
║──────────────┼───────────────────────────────────────────────────────── ║
║ 前方排队 │ 真实: ~1,200 (排除spoof) 名义: 1,800 ║
║ "净"ETA │ 6.7s (vs 名义 10s) ║
║ 挂单类型: │ MM支撑 (65% MM成交量) — 大概率不会撤走 ║
╚═══════════════════════════════════════════════════════════════════════════╝
警报
- 🔴 在你的价位检测到幌骗 — 在你的订单前方发现可疑大单
- 🟡 做市商撤退 — 做市商撤走报价,流动性下降
- 🟡 检测到Squeeze布局 — 一组地址正在建仓并撤走流动性
- 🟢 挂单墙加固 — 在你的价位有已知做市商增加了委托量
第七部分:伦理与局限性
可以做什么,不可以做什么
可以且应该做的:
- 按类型对匿名参与者进行分类,以辅助自身交易决策
- 检测操纵行为,防范逆向选择
- 在DEX上对地址进行聚类,以理解市场结构
不可以做的:
- 通过钱包地址去匿名化自然人
- 未经同意出售已识别的行为模式
- 用于市场操纵
局限性
- 自适应算法 — 高级做市商会添加随机化处理
- 模式切换 — 同一个机器人可能根据市场状态改变行为
- 假阳性 — 两个参与者可能恰好具有相似参数
- CEX不透明性 — 在CEX上无法获取L3数据
结语:从解读盘口到解读参与者
传统交易者看到的是:10000价位有2,400手委托。进阶交易者看到的是:"我的订单排在第1,800位,预计等待时间15秒"。而拥有行为指纹分析的交易者看到的是:
"这2,400手中有800手是做市商(可能是Wintermute),挂单墙可靠。500手疑似幌骗,在我前面的真实排队是1,300而不是1,800。调整后的预计等待时间为10秒。做市商没有撤走报价——这意味着目前不预期有大幅波动。"
每一层新增的信息都是一种优势。与速度不同,订单簿解读的质量是散户交易者可以参与竞争的领域。
在Marketmaker.cc,我们正在构建这一系统——从排队位置到行为指纹分析——作为一个完整的产品。
上一篇文章:《挂单墙中的排队:订单簿密度中的订单位置分析》
参考文献与延伸阅读
- 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)
MarketMaker.cc Team
量化研究与策略