Zhang, Zohren & Roberts (2018) — DeepLOB

作者: Zihao Zhang、Stefan Zohren、Stephen Roberts(牛津大学 Oxford-Man Institute of Quantitative Finance / 工程科学系)。

发表: arXiv:1808.03668(2018 年 8 月 7 日,v6)。正式版 IEEE Transactions on Signal Processing。PDF 12 页(正文)。

⚠️ 必读提示:本论文是 LOB 深度学习的开山之作,但作者自己在 2024 年的后续论文中批评了这类模型的评价方式——高预测准确率不等于可交易的信号。本库已收录的 #18(LOBFrame)必须与本文配读,详见 Briola Bartolucci Aste 2024 Deep Limit Order Book Forecasting。

一句话总结

用「Inception 模块(卷积)+ LSTM」的嵌套结构直接从原始订单簿预测未来价格方向,在 FI-2010 基准上超越当时全部方法;更关键的是它能迁移到训练集之外的品种,且模型会自动学到符合经济直觉的特征。

网络架构:为什么要嵌套 CNN-LSTM

组件 作用
Inception Module(卷积 + 池化打包) 捕捉订单簿的空间结构(各档位的关系);同时推断不同时间尺度上的局部交互——相当于自动学习特征的"衰减速率"
LSTM 捕捉更长时间依赖
端到端训练 不做手工特征提取。论文明确批评 PCA / LDA 等静态预处理"不是为最大化模型目标而优化的"

关键创新点(论文自陈):这是首个把嵌套 CNN-LSTM 用于原始市场数据的系统性研究,且 Inception Module 在此场景下的用法是新的。

数据

两套数据

数据集 内容 用途
FI-2010 首个公开的高频 LOB 基准数据集,Nasdaq Nordic 市场 5 只股票,连续 10 天 与其他算法公平对比
LSE(自建) 伦敦交易所 5 只高流动性股票(Lloyds Bank、Barclays、Tesco、BT、Vodafone),整一年 检验稳健性与泛化

LSE 数据细节:

  • 期间 2017-01-03 至 2017-12-24,只取 08:30:00–16:00:00(排除集合竞价)。
  • 每侧 10 档,每档含价格与量 → 每个时间戳 40 个特征。
  • 超过 1.34 亿个样本;平均每只股票每天 15 万个事件。
  • 事件间隔不规则,从不到一秒到数秒,平均 0.192 秒。
  • 划分:前 6 个月训练、接下来 3 个月验证、最后 3 个月测试。

⚠️ 论文对 FI-2010 的重要批评(这一点常被忽略):

FI-2010 实际上是降采样的订单簿数据(原作者每 10 个事件取一个不重叠块),且来自流动性较低的市场、只有 10 天数据。作为基准集有价值,但不足以充分验证算法的稳健性。

对比:本文的 LSE 数据不做任何处理,直接喂原始订单簿信息。

归一化(论文特别强调)

动态归一化:用前 5 天数据的均值与标准差来归一化当天数据(每个品种单独归一化)。

理由:金融时间序列存在状态转移(regime shift),静态归一化方案不适合长度为一年的数据集。

论文明确强调归一化的重要性:机器学习算法的性能往往取决于它。

这是本 wiki 记录的重点之一——见下方「对 A 股实践的启示」。

输入与标签

  • 输入:最近 100 个订单簿状态,X = [x_1, x_2, \dots, x_{100}]^\top \in \mathbb{R}^{100\times40},其中 x_t = [p_a^{(i)}, v_a^{(i)}, p_b^{(i)}, v_b^{(i)}]_{i=1}^{10}。
  • 标签:用中间价(best bid 与 best ask 的平均)在未来若干期的变动方向。

结果一:FI-2010 基准上超越全部方法

论文采用两种评估设置:

设置 说明
Setup 1 "锚定前向"——锚定在某一天向前滚动。论文指出这对深度学习不理想:前几折只有一两天训练数据,性能差
Setup 2 随时间推移累积训练数据。性能显著更好

Setup 2 下的对比(Table II):

方法 F1 %
RR / MLP / CDA / BDOF / DeepLOB(部分) 较低
DeepLOB 约 75.01 – 75.10
B(TABL)(同期最强基线) 75.58 / 74.58 / 73.09 / 73.64

(具体数值随预测期变化,见 extracted.md Table II)

参数量反而更少(Table III):虽然层数更多,但因为用 LSTM 替代了全连接层,参数远少于 CNN-I。

计算时间(前向传播,毫秒):BoF 0.972 ms、N-BoF 0.524 ms——GPU 的发展使深度网络训练可行、预测迅速,使高频交易成为可能。

结果二:LSE 数据的稳健性与泛化(本文最有价值的部分)

时间外样本(同一批股票,后 3 个月)

预测期 准确率 % F1 %
k = 20 70.17 70.15
k = 50 63.93 63.49

品种外样本(训练集未包含的品种:GLEN、HSBC、CNA、BP、ITV)

论文的关键发现:

我们仍能在整个测试期得到良好结果。这表明所提模型不仅能提取稳健的订单簿特征,而且表明订单簿中存在调制股票需求与价格的普适特征。

准确性用箱线图展示(Figure 6):所有股票在整个测试期表现一致稳健——四分位距窄、离群值少。

这个"跨品种迁移"能力是论文强调的最重要性质(见下方 caveat)。

结果三:交易模拟

假设(论文明确声明):

  • 每笔交易 1 股(\mu = 1),以中间价成交;
  • 假设等价于交易的一侧可以被动进场;
  • 比较费用前的毛利(假设不同模型交易量相近,因而费用相近)。

理由:聚焦于足够流动的股票,使滑点与市场冲击较小。论文承认这些股票更难预测("difficult to train models on more liquid stocks")。

结果:全期一致的盈利与显著的 t 值(所有股票)。

一个有意思的现象:

虽然更长预测期的准确率更低,但累计盈利反而更高——因为产生了更稳健的信号。

这直接引出 #18 的核心论点:准确率与盈利不是同一件事,评价指标选错了。

结果四:LIME 敏感性分析(可解释性)

用 LIME(局部可解释模型-agnostic 解释)揭示订单簿中哪些成分对预测最重要。

方法:局部扰动输入,观察模型预测的变化,从而给出输入重要性与敏感性的度量。

发现:

模型 表现
CNN-I(对照) 大部分输入成分对预测无影响
DeepLOB 重要性区域覆盖更广

对 CNN-I 失效的解释(论文的诊断很具体):

这是由于该架构用了两个最大池化层。因为 CNN-I 在第一卷积层用了大尺寸滤波器,网络中任何深处的表示实际上都代表从输入的一大部分获取的信息。

结论:DeepLOB 学到的信息符合我们对价格与量的经济直觉——不同档位与不同时间尺度的信息如何贡献于预测。

论文的定位:理解输入成分与预测的关系,帮助我们判断是否可以接受某个预测。

对 A 股实践的启示(本 wiki 记录的重点)

1. 归一化方案可能比模型选择更重要

论文明确说"机器学习算法的性能往往取决于归一化",并用动态归一化(用前 5 天的统计量)而非静态方案。

A 股的意义:跨越多年、经历多轮牛熊与制度变化的数据,静态归一化几乎肯定不合适。动态归一化是必要前提。

2. 数据频率的影响

本文 LSE A 股沪市
快照 事件级,平均间隔 0.192 秒 约 3 秒一帧(见 concepts/data-features/Level-2 档位与委托队列 (L2 Depth and Order Queue))

A 股的 LOB 分辨率显著低于本文。本文的 70.17% 准确率在 A 股能否复现,完全未知——这是该方法落到 A 股的第一个未知数。

3. 迁移能力是关键检验

本文最强的证据是跨品种泛化。A 股的品种间差异更大(主板/创业板/科创板、不同的流动性与投资者结构),迁移能力的检验在 A 股更严格,也更重要。

4. 一个必须一起读的反面结论

高准确率 ≠ 可交易信号。 本文自己在 LSE 上就观察到"准确率更低但盈利更高"的现象。#18(Briola, Bartolucci & Aste 2024)把这一点系统化——指出传统 ML 指标不足以评价 LOB 预测质量,改用"能否正确预测出完整的成交事件"的概率,并开源了 LOBFrame 代码库。

只读本文而不读 #18,会高估这类方法的实用价值。

对本 wiki 的位置

Open Questions

  • 70.17% 的准确率在 A 股(3 秒快照)能否复现? 这是最直接的未知数。
  • 跨品种泛化在 A 股是否成立? A 股品种间差异大于 LSE,检验更严格。
  • "准确率更低但盈利更高"(本文自己观察到的)在 A 股是否更明显? 若成立,则模型选择标准必须是 PnL 而非准确率——这直接指向 #18 的结论。
  • LIME 发现的重要性能否转化为显式因子? 论文用 LIME 只是为了验证"符合经济直觉"。若能识别出"哪些档位、哪个时间尺度最重要",能否直接构造因子? 这是一个明确的转化路径。
  • 端到端 vs 手工特征:本文主张端到端优于 BoF。但 A 股数据质量(沪市 14.2% 配对缺失)是否使端到端的优势消失?在数据噪音更大时,手工特征(OFI 等)可能更稳健。

关键引用

Zhang, Z., Zohren, S., & Roberts, S. (2018). DeepLOB: Deep Convolutional Neural Networks for Limit Order Books. arXiv:1808.03668(正式版 IEEE Trans. Signal Processing)。牛津大学 Oxford-Man Institute。

代码与数据:GitHub zcakhaa(作者主页)。

主要参考文献:FI-2010 基准数据集(首个公开高频 LOB 数据集);CNN-I [26]、CNN-II [27](此前的 CNN 架构,本文批评其不成熟);BoF / N-BoF [24](Bag-of-Features);B(TABL) [25](同期最强基线);Sirignano (2019) 用 1000 只股票的四层 LSTM;Lundberg & Lee (2017) LIME;Ribeiro 等 (2016) CNN 在图像中的应用;Szep et al. (2010) FI-2010 原始数据集论文;Inception Module [9];LSTM [38]。