Briola, Bartolucci & Aste (2024) — Deep Limit Order Book Forecasting
一句话:LOB 深度学习的准确率高不等于能赚钱。论文给出 (1) tick size 决定深度学习是否奏效;(2) 传统 ML 指标不足以评价实用性,应改用"能否正确预测出一整串成交"的概率 p_T——而 p_T 与 MCC 在提高阈值时方向相反。
完整引用: Briola, A., Bartolucci, S., & Aste, T. (2024). Deep Limit Order Book Forecasting: A microstructural guide. arXiv:2403.09267(v4)。PDF 43 页。
机构: University College London(计算机系)、London School of Economics(Systemic Risk Centre)、UCL Centre for Blockchain Technologies。
开源: LOBFrame — github.com/FinancialComputingUCL/LOBFrame
数据: NASDAQ 15 只股票,3 年。L = 10 档。每年 45 天训练 / 5 天验证(随机选取、非连续)/ 10 天测试。只保留 9:40–15:50(美东),排除开盘收盘各 10 分钟。
核心数字
| 项 | 值 |
|---|---|
| 大 tick 股票 MCC(H10,无阈值) | 0.29(标准差 0.017,最稳) |
| 中 tick 股票 MCC | 0.13(标准差 0.03) |
| 小 tick 股票 MCC | 约 0.11(大 tick 高出 18 个单位) |
| 大 tick 阈值 0.9 时保留的数据量 | 31% |
| 大 tick 传统指标(无阈值 / 加阈值) | F1 > 0.45 / > 0.7;Accuracy > 0.7 / > 0.9 |
| 小 tick 组平均 PT(H10) | 1.63 \times 10^5 |
| 个股 p_T 分离 | CHTR/GOOG/GS 0.06 vs IBM/MCD/NVDA 0.12 |
p_T 的定义
p_T = \frac{|CT|}{|PT|} = \frac{|PT \cap TT|}{|PT|}
- PT = 依据模型预测而开/平仓的位置集合
- TT = 实际最优开/平仓点集合
- CT = 二者的交集
本文最重要的一句话
在这个应用领域,我们感兴趣的是预测错误的时间位置,而不是错误发生的数量。我们关心:(i) 每个 "Down" 或 "Up" 变动至少有一个正确预测;(ii) 对已有持仓没有过早的平仓信号。当这两个条件满足时,其他性质与数量的错误都是可以容忍的。
这与传统准确率是两种评价哲学:前者问"分类对了几次",后者问"信号的时序完整性如何"。
p_T 与 MCC 方向相反(关键)
| 指标 | 提高置信度阈值(0.3→0.9)时 |
|---|---|
| p_T | 下降 |
| MCC | 上升 |
提高阈值会打断信号的连续性。即使经典 ML 指标因为信号强度提升而改善,我们却无法正确管理仓位。
这解释了 Zhang Zohren Roberts 2018 DeepLOB 自己观察到的"准确率更低但盈利更高"——准确率与可用性是两个独立的轴。
tick size 判别变量的第三条独立证据
| 来源 | 路径 | 结论 |
|---|---|---|
| Toth et al 2011 Anomalous Price Impact | 流动性曲线 | 小 tick \delta{=}0.5 / 大 tick \delta{=}0.6 |
| Trend Demise (趋势跟踪 PnL 退化的微观结构解释) | CTA PnL 截面 | tick size 是 PnL 退化的唯一判别变量 |
| 本文 | 深度学习效果 | 大 tick 股票 MCC 显著更高更稳 |
三篇路径完全不同却指向同一变量——本 wiki 记录的最强一条跨领域共识。
一个被否证的指标:IR
论文实证(附录 A)显示 IR(information richness score)与 tick size 存在直接映射 → tick size 本身就可以用作可预测性的代理,IR 不携带超出 tick size 的信息。
混淆矩阵的一个诊断
| 组 | 误分类 |
|---|---|
| 小 tick | 真实 class 1 的 29% 被误判为 -1;真实 -1 的 27% 被误判为 1 |
| 中 tick | 类似,真实 class 1 误判为 -1 升至 36% |
| 大 tick | 错误主要集中为误判为 0("不动") |
策略含义:小 tick 上模型在涨/跌间摇摆(频繁反向开平仓);大 tick 上倾向说"不动"。
数据处理上值得借鉴的两点
1. 滚动窗口归一化:5 天特征维度的滚动 z-score(Lucchese 等建议),论文明确说这不同于多数文献(后者用整个训练集一次性标准化),在强非平稳的 LOB 环境更有效。与 DeepLOB 的"前 5 天归一化"同思路——归一化方式可能比模型选择更重要。
2. 验证集随机选取:5 天从训练期随机选,保证验证稳健且不数据泄漏。
在本 wiki 的位置
- 摘要: 中文摘要
- 喂入概念: LOBFrame 与可交易性评估(新建)· 更新 DeepLOB · LOB 深度学习序列 (Deep LOB Literature) · concepts/microstructure/流动性漏斗 (Liquidity Funnel)
- 批评的对象: Zhang Zohren Roberts 2018 DeepLOB(本文用 DeepLOB 做实验并批评其评价方式)
- 作者: Antonio Briola · Silvia Bartolucci · Tomaso Aste
本 wiki 补充的评价
p_T 的重要补充:它只评估信号可用性,不评估信号是否有正期望——p_T 高不代表赚钱。仍需扣成本后的 PnL 检验。这是 p_T 最重要的补充。
A 股应用的障碍
- T+1 → "最优开平仓点"判定与美股(T+0)不同
- 涨跌停 → 封板期间"最优开平仓点"几乎无定义(见 涨跌停与风险警示股涨跌幅 (Price Limit and ST Tickers))
- tick 结构 → 沪深固定 0.01 元,大/小 tick 分组可能与 NASDAQ 完全不同
- 成本结构 → 印花税、佣金不同,p_T 高但扣成本后 PnL 为负的风险更高
论文自陈的未来工作
跨交易所验证。本 wiki 认为必要——NASDAQ 大 tick 占多数,A 股 tick 结构不同。