Goudarzi & Bazzana (2023) — 用机器学习识别高频交易
作者: Mostafa Goudarzi(特伦托大学经济与管理系 / LUT 大学商学院)、Flavio Bazzana(特伦托大学经济与管理系,通讯作者)。
发表: Research in International Business and Finance 66 (2023) 102078,DOI 10.1016/j.ribaf.2023.102078。收稿 2022-11-30,修回 2023-07-21,接受 2023-08-27。开放获取(CC BY-NC-ND)。
数据: BEDOFIH 数据库的 AMF Euronext Paris 部分,2017 年 5 月 4 日一天(建模用)+ 2017 年 1 月 2–6 日(样本外测试)。样本为 307 只证券(12 只债券 + 295 只股票),超过 900 万笔订单。微秒时间戳。
一句话总结
用法国监管的账户级 HFT 标签做训练目标,配上 16 个从订单簿重建出来的特征,训出一个随机欠采样提升(RUS boost)决策树——TPR 高达 0.99,但 TNR 只有 0.54–0.73;再用"逆向工程"把集成树还原成一棵 15 叶的回归树,读出每一类订单被判为 HFT 的概率。
AMF 的 HFT 认定标准(作为训练标签)
法国 AMF(2017)把参与者分三类。满足以下任一条件即为 HFT:
- (i) 该参与者一年内撤单至少 100,000 笔,且这些被撤委托的存活期低于订单簿中所有委托存活期的均值
- (ii) 该参与者在提交后 0.1 秒内撤单至少 500,000 笔,且其中 1% 的被撤委托存活不足 0.0005 秒
再按机构属性细分:若是投资银行 → 混合型 HFT(Mix-HFT),否则 → 纯 HFT;两个条件都不满足的为 Non-HFT。
这是两步分类:先功能上区分 HFT 与非 HFT,再按身份细分。本文只用第一步(因为投资银行身份在订单簿数据里没有)。
这套标准与 Chakrabarty Comerton-Forde Pascual 2022 HFT Proxies 里的"账户级真值"是同一类东西——监管方用账户信息打标签,研究者用公开数据去复原。
特征工程(16 个)
前 10 个直接来自数据库:委托特征 ID o\_cha\_id(每次修改 +1)、离簿状态 o\_state、买卖方向、委托类型、有效期类型、委托价格、初始数量、累计成交量、成交笔数、账户类型 o\_account。
后 6 个由重建订单簿得到:
| 特征 | 含义 |
|---|---|
| o\_price\_diff | 委托价与上一笔成交价之差 |
| forecastError | 委托价与下一笔成交价之差 |
| o\_life | 委托存活期(毫秒) |
| depth | 提交时该档在簿中的深度 |
| BBO_diff | 委托价与当时最优买/卖价之差 |
| recs | 是否在"连续竞价 + 静态 collar"的受监管交易组 |
o\_price\_diff 与 forecastError 的用意:跟得紧的人(o\_price\_diff 最低)与领跑的人(forecastError 最低)是两类。
样本的委托存活期中位数是 6.7 秒,约三分之一存活不足 1 秒(注意:表 1 的特征说明写 o_life 单位是毫秒,但表 2 的中位数 265 / 4,863,101 与「6.7 秒」的口径一致,说明表 2 的实际单位是秒;表 8 的文字描述也写成秒。论文内部单位表述不一致)——因此多数委托在几秒内就离簿,暴露出更多信息(存活期、离簿方式、修改次数、forecastError、累计成交量)。论文的判断是:把识别推迟到委托生命周期结束,信息更丰富,精度更高,而延迟远小于现行年度认定。
排除项:无价格的委托(市价单、集合竞价期间)被排除——大多数特征都基于委托价,且集合竞价的交易机制不同(引 Bellia 2018)。
冰山委托的影响
论文专门检查了冰山:占订单簿全部订单的约 1%;隐藏比例从 0.2% 到 99.96%,均值 78%;没有完全隐藏的订单。
因此提取的特征与识别方法对冰山是稳健的——特征只依赖委托价,不受隐藏量影响;而且用冰山的可见部分做实时识别仍然可行。
描述统计:HFT 与非 HFT 差异明显
| 变量 | HFT | Non-HFT |
|---|---|---|
| o\_cha\_id 中位数 | 1 | 1 |
| o\_cha\_id 均值 | 7.96 | 2,862 |
| o\_q\_ini 中位数 | 1 | 1.132 |
| o\_q\_neg 均值 | 0.15 | 0.68 |
| o\_life 中位数(秒) | 265 | 4,863,101 |
| o\_life 均值 | 6.36 × 10⁵ | 3.78 × 10⁷ |
| depth 中位数 | 2 | 2 |
| BBO_diff 均值 | 1.4 × 10⁻³ | 0.011 |
类别极度不平衡:HFT 订单 877 万笔(97.2%) vs 非 HFT 订单 25.3 万笔。
HFT 在不同证券的参与度差异极大:最低 0%(某只股票的 287 笔订单全部为非 HFT),最高 99.77%(Eutelsat,95,919 笔订单中 99.77% 属 HFT)——这正是作者构造 recs 特征(区分流动性最好的交易组)以控制反向因果的动机。
分类变量(表 3,百分比):
| HFT | Non-HFT | |
|---|---|---|
| 离簿方式:全部成交 | 7.51 | 16.12 |
| 离簿方式:被券商撤单 | 78.33 | 12.50 |
| 离簿方式:被修改 | 13.91 | 66.46 |
| 账户类型:客户账户 | 4.84 | 19.93 |
| 账户类型:自营账户 | 25.48 | 17.04 |
| 账户类型:零售流动性提供者 | 8.19 | 0 |
| 账户类型:流动性提供者 | 61.36 | 53.83 |
| recs(高流动性交易组) | 99.59 | 45.30 |
两个最直观的信号:HFT 的委托主要被券商撤掉(78%),非 HFT 的委托主要被修改(66%);99.59% 的 HFT 活动发生在高流动性的 recs 交易组。
方法:为什么是决策树 + RUS boost
数据特征:观测数极多但特征少(低维)、类别分布高度偏斜、特征之间的交互是决定性的。决策树正好对上这三点——不假设变量关系(不怕共线)、序贯算法天然处理交互、对离群点免疫(订单簿里有"手误"和操纵性委托)、不需要缩放或哑变量。
四种提升方法比较:AdaBoostM1、LogitBoost、RobustBoost、RUSBoost。选 RUS boost 的理由是类别不平衡(HFT 只占一小部分)——它对多数类随机欠采样,使两类样本数相等。
验证设置:非分层随机划分,20% 留出;标准 CART 算法配 surrogate split(因数据有缺失值),100 个弱学习器。
评价指标的选择是一个明确的立场:论文关注敏感度(TPR)与特异度(TNR)而非精确率,因为目标是"检测能力"而非"预测类别解释"。若误判 HFT 的代价高,看 TPR;若误判非 HFT 的代价高,看 TNR。本文选择后者——宁可漏掉一些 HFT,也不愿把非 HFT 误判为 HFT。
结果
留出集与样本外(表 4,5 月 4 日训练)
| 模型 | 留出 TNR | 留出 TPR | 01-02 TNR | 01-02 TPR | 01-06 TNR | 01-06 TPR |
|---|---|---|---|---|---|---|
| AdaBoostM1 | 0.73639 | 0.99859 | 0.53894 | 0.99576 | 0.67545 | 0.99797 |
| LogitBoost | 0.39691 | 0.99996 | 0.08962 | 0.99981 | 0.38210 | 0.99994 |
| RobustBoost | 0.73195 | 0.99947 | 0.53794 | 0.99752 | 0.64299 | 0.99886 |
| RUSBoost | 0.73694 | 0.99564 | 0.63961 | 0.98808 | 0.72286 | 0.99418 |
RUS boost 的 TNR 最高,TPR 只比其他模型低约 0.45%(作者的说法是"至少提升 8.14% 的 TNR,只牺牲 0.45% 的 TPR")。
TPR 普遍极高的原因:HFT 的交易活动高度同质,模型容易识别;非 HFT 类别是异质的集合(各种策略与目标),识别困难。这是类别本身的性质,不是模型的缺陷。
PPV / NPV(表 5,RUS boost):
| 20% 留出 | 01-02 | 01-03 | 01-04 | 01-05 | 01-06 | |
|---|---|---|---|---|---|---|
| PPV | 0.9924 | 0.9812 | 0.9847 | 0.9845 | 0.9853 | 0.9882 |
| NPV | 0.8306 | 0.7385 | 0.8007 | 0.7764 | 0.8245 | 0.8418 |
PPV ≈ 99%,NPV 只有 74%–84%——被判定为 HFT 的几乎真是 HFT,但非 HFT 的识别不可靠。
鲁棒性检验(表 6)
改用 2017-01-02 数据训练,RUS boost 仍然在 TNR 上大幅领先(留出 TNR 0.89767,其余模型 0.70771–0.75301;TPR 0.95654 对 0.99252–0.99349)。
按市值分层的表现(表 7)
| 子集 | 占比 | 5 月 4 日训练 F-score | 1 月 2 日训练 F-score |
|---|---|---|---|
| 大盘 | 70% | 0.9954 | 0.9774 |
| 中盘 | 25% | 0.9952 | 0.9749 |
| 小盘 | 4% | 0.9770 | 0.9170 |
| 微盘 | 1% | 0.8923 | 0.7730 |
微盘(仅占 1% 的订单)上性能显著下降——训练数据量不足。
逆向工程:把黑箱还原成可读的树
这是本文的方法论贡献:
- 集成树输出的是一组分数(每个观测两个类别的置信分数,RUS boost 下两分数之和为常数)——比最终的二分类信息更丰富
- 把分数线性变换到概率(缩放到最大值),构造"模拟数据集":特征不变,类别标记换成 HFT 分数
- 在这份模拟数据上训回归决策树(深度不限,宁可过拟合;剔除集成模型误分类的约 1% 观测),再剪枝到最多 15 个叶
- 得到一棵可读的概率树
剪枝后的回归树在 2017-01-02 样本外:PPV 97.1%、NPV 79.7%,与原集成模型(98.12% / 73.85%)非常接近。
树只用 16 个特征中的 5 个:recs、$o\_life$、离簿状态、账户类型、BBO_diff。
读出的几条概率(表 8):
| 条件 | 判为 HFT 的概率 |
|---|---|
| recs + 做市商/零售做市商/母公司账户 + 被券商撤单或被 STP 撤单 | 99% |
| recs + 做市商账户 + 14,389 秒内离簿 + 价格在 BBO ±0.2% 内 | 95% |
| recs + 做市商账户 + 14,389 秒内离簿 + 价格在 BBO ±0.2% 外 | 88% |
| recs + 自营账户 + 428 秒内被撤 + 价格在 BBO ±2% 内 | 88% |
| recs + 自营账户 + 全成或被修改 + 428 秒内 | 83% |
| 非 recs + 98 秒内被券商撤单 | 80% |
| recs + 客户账户 | 66% |
| recs + 零售做市商组织(RMO) | 1.7% |
| 非 recs + 做市商/RMO + 存活超 98 秒 | 0.2% |
最有效的两个判别量是 recs 与委托存活期——几乎所有 recs 交易组的订单、以及所有存活期低于阈值的订单,都更可能是 HFT。
局限
- 数据只有 2017 年一天用于主训练,且作者自陈:HFT 的策略此后可能已因疫情而显著改变。但论文的辩护是:目标是识别单笔订单而非 HFT 的整体策略模式——无论策略如何,HFT 都通过提交、修改、撤单来执行。
- R² 极低(0.009–0.034),即模型只能解释很少的方差——但 AUC 很高(0.98–0.99)。作者认为原因是数据不平衡(HFT 订单占 97.2%)。这是一个需要存疑的解释:低 R² 通常意味着模型没抓到信号。待检验。
- 未做的对比:bagging / 随机森林与 total boost 因算力与存储限制跑不动,作者承认在缩减数据版本上它们可能表现更好。
- 依赖欧树给出的 AMF 标签做训练目标——如果 AMF 的两条判据本身有系统性偏差,模型会继承它。论文没有做标签噪声的稳健性检验。
- TNR 只有 0.54–0.73——在 50 只股票的样本上区分"非 HFT"并不容易。
对本 wiki 的位置
- 入口概念: concepts/microstructure/HFT 代理指标的可靠性 (Reliability of HFT Proxies)
- 相关: HFQ 高频报价识别(A 股版识别路线)· 冰山委托与隐藏流动性
- 同批论文: Chakrabarty Comerton-Forde Pascual 2022 HFT Proxies(用代理指标对真值)· Sato Kanazawa 2023 Order Splitting(交易所账户级真值)
- 作者: Mostafa Goudarzi · Flavio Bazzana
关键引用
Goudarzi, M., & Bazzana, F. (2023). Identification of high-frequency trading: A machine learning approach. Research in International Business and Finance, 66, 102078. DOI 10.1016/j.ribaf.2023.102078.