- 一句话总结
- 网络架构:为什么要嵌套 CNN-LSTM
- 数据
- 两套数据
- 归一化(论文特别强调)
- 输入与标签
- 结果一:FI-2010 基准上超越全部方法
- 结果二:LSE 数据的稳健性与泛化(本文最有价值的部分)
- 时间外样本(同一批股票,后 3 个月)
- 品种外样本(训练集未包含的品种:GLEN、HSBC、CNA、BP、ITV)
- 结果三:交易模拟
- 结果四:LIME 敏感性分析(可解释性)
- 对 A 股实践的启示(本 wiki 记录的重点)
- 1. 归一化方案可能比模型选择更重要
- 2. 数据频率的影响
- 3. 迁移能力是关键检验
- 4. 一个必须一起读的反面结论
- 对本 wiki 的位置
- Open Questions
- 关键引用
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 的位置
- 入口概念: concepts/microstructure/DeepLOB(新建)、 concepts/microstructure/LOB 深度学习序列 (Deep LOB Literature)(新建,串起 #17–19)
- 源论文: 本文
- 作者: Zihao Zhang(牛津 Oxford-Man Institute)— 需新建实体页
- 必读配套: Briola Bartolucci Aste 2024 Deep Limit Order Book Forecasting(作者的自我批评)
- 同方向的 A 股研究: Yang Fang Zhang Zhou 2025 Efficient Deep Learning LOB(A 股 + OFI 孪生网络)
- 数据前提: concepts/data-features/Level-2 档位与委托队列 (L2 Depth and Order Queue)
- 高频可预测性框架: concepts/microstructure/高频收益可预测性
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]。