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% 的订单)上性能显著下降——训练数据量不足。

逆向工程:把黑箱还原成可读的树

这是本文的方法论贡献:

  1. 集成树输出的是一组分数(每个观测两个类别的置信分数,RUS boost 下两分数之和为常数)——比最终的二分类信息更丰富
  2. 把分数线性变换到概率(缩放到最大值),构造"模拟数据集":特征不变,类别标记换成 HFT 分数
  3. 在这份模拟数据上训回归决策树(深度不限,宁可过拟合;剔除集成模型误分类的约 1% 观测),再剪枝到最多 15 个叶
  4. 得到一棵可读的概率树

剪枝后的回归树在 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 的位置

关键引用

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.