LOBFrame 与可交易性评估 (LOBFrame and Practicality Assessment)

大白话:一个模型"预测对了很多次",不等于"能靠它赚钱"。本文给出替代指标:不看预测对了多少次,而看能不能准确找出开仓和平仓的时点。

来源: Briola Bartolucci Aste 2024 Deep Limit Order Book Forecasting 提出,并开源 LOBFrame 代码库(github.com/FinancialComputingUCL/LOBFrame)。

核心问题:传统指标为什么不够

LOB 深度学习文献普遍用 准确率 / F1 / MCC 评价模型。Zhang Zohren Roberts 2018 DeepLOB 甚至报告了漂亮数字(大 tick 股票 F1 > 0.45、准确率 > 0.7,加阈值后 F1 > 0.7、准确率 > 0.9)。

但这些数字与"能不能交易"相距甚远。

论文构造了 CT = 0(完全没有一次正确成交)的极端例子:传统指标给出的数值与 p_T 相距甚远。这就是"学术上可接受的结果"与"实际可行的结果"之间的距离。

替代指标:p_T(正确预测完整成交的概率)

三个集合

集合 含义
PT(Prediction Trade set) 依据模型预测而开仓或平仓的位置集合
TT(True Trade set) 实际最优开/平仓点构成的集合
CT(Correct Trade set) PT ∩ TT——预测点与真实最优点重合的那些

p_T = \frac{|CT|}{|PT|} = \frac{|PT \cap TT|}{|PT|}

论文的"无假设"说明

当我们说"开仓/平仓"和"执行成交"时,指的是模型准确识别发起或结束一笔交易的最优进场点的能力(可以是两个独立动作,也可以合并)。

评价哲学的根本不同(本文最重要的一句话)

在这个应用领域,我们感兴趣的是预测错误的时间位置,而不是错误发生的数量。具体说: (i) 每一个 "Down" 或 "Up" 变动至少有一个正确的预测与之对应; (ii) 对已有的持仓没有任何过早的平仓信号。

当这两个条件满足时,其他性质与数量的错误都是可以容忍的。

这与传统准确率是两种哲学:前者问"分类对了几次",后者问"信号的时序完整性如何"。

p_T 与 MCC 的方向相反(关键发现)

指标 提高置信度阈值(0.3→0.9)时
p_T 下降
MCC 上升

论文的解释:

提高阈值会打断信号的连续性。即使经典 ML 指标因为信号强度提升而改善,我们却无法正确管理仓位。

换句话说:提高置信度阈值能让准确率更好看,但会让交易变得无法执行。

这正是 Zhang Zohren Roberts 2018 DeepLOB 自己观察到"准确率更低但盈利更高"现象的指标层解释——准确率与可用性是两个独立的轴。

实务含义:MCC 与 p_T 必须一起看,没有单一指标能同时"准确"且"可用"。

p_T 揭示了传统指标看不到的差异

小 tick 组、H10、平均 PT = 1.63 \times 10^5、无阈值:

股票 平均 p_T
CHTR、GOOG、GS 0.06
IBM、MCD、NVDA 0.12

这种个股间的分离在 MCC 图上完全看不出来(论文明确说 "not evident in Figure 9"),直接源于微观结构性质的差异。

tick size 是判别变量(本文最强的实证)

论文按 tick size 把股票分为小/中/大三组。

MCC 结果(H10,无阈值)

组 MCC 标准差
小 tick 约 0.11(由"大 tick 高 18 个单位"推出) —
中 tick 0.13 0.03
大 tick 0.29(比小 tick 高 18 个单位、比中 tick 高 16 个单位) 0.017(最稳)

提高置信度阈值时:大 tick 股票的所用数据量下降更平缓——阈值 0.9 时仍保留 31% 的可用预测,说明每个预测的信号强度更高。

混淆矩阵的诊断

组 误分类情况
小 tick 真实 class 1 的 29% 被误判为 -1;真实 -1 的 27% 被误判为 1
中 tick 类似,真实 class 1 误判为 -1 升至 36%
大 tick 明显不同——极端类别分类能力强得多,错误主要集中为误判为 0("不动")

策略含义:小 tick 股票上模型在"涨/跌"之间来回摇摆(会导致频繁反向开平仓);大 tick 股票上它倾向于说"不动"(更接近不交易)。

p_T 的跨组结论

p_T 从大 tick 向小 tick 递减;MCC 则相反。

论文结论:大 tick 股票更有可能真正以全自动方式交易——不只是模型准,而是信号可用。

tick size 是判别变量:三篇论文的跨领域共识

本 wiki 记录的最强一条跨领域共识——三篇论文路径完全不同,但都指向 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 显著更高更稳

机制上说得通:大 tick → w/u_\ast 大 → 可及流动性多 → 冲击更线性、深度学习更容易学到有效模式。见 concepts/microstructure/流动性漏斗 (Liquidity Funnel)。

一个被否证的"可预测性指标":IR

论文检验了 IR(information richness score) 这个新提出的指标:

原文声称它是股票可预测性的度量;这只部分正确。附录 A 实证显示 IR 与 tick size 存在直接映射——因此 tick size 本身就可以用作可预测性的代理。

即:IR 并不携带超出 tick size 的信息。 一个具体的指标去冗余结论。

数据处理上值得借鉴的两点

1. 滚动窗口归一化

5 天特征维度的滚动窗口 z-score(Lucchese 等的建议)。论文明确说这不同于多数文献(后者用整个训练集一次性标准化),并强调在演化且强非平稳的 LOB 环境中更有效。

这与 Zhang Zohren Roberts 2018 DeepLOB 的"前 5 天归一化"是同一思路——LOB 深度学习中归一化方式可能比模型选择更重要。

2. 验证集随机选取

每年 45 天训练 / 5 天验证(从训练期随机选取、非连续) / 10 天测试。论文说这样保证验证步骤的稳健性,且因采用标准化程序所以不会数据泄漏。

3. 排除开盘收盘

只保留 9:40–15:50(美东)——排除开盘前 10 分钟与收盘前 10 分钟(这两个时段动态差异大、波动高)。

p_T 方法的评价(本 wiki 补充)

优点:

  1. 直接面向策略——问的是"能不能下单"
  2. 无假设——不预设阈值或参数
  3. 揭示传统指标看不到的差异(0.06 vs 0.12 的个股分离)
  4. 给出 tick size 这一单一、可事前测量的判别变量

局限:

  1. 只评估"信号可用性",不评估"信号是否有正期望"——p_T 高不代表赚钱。仍需扣成本后的 PnL 检验。这是 p_T 最重要的补充。
  2. p_T 也随阈值下降,与 MCC 方向相反——没有单一指标同时"准确"且"可用"。
  3. PT / TT 的定义依赖"最优开平仓点"的判定,虽声称无假设,集合构造仍隐含标准。

A 股应用的障碍(关键)

障碍 说明
T+1 当日买入次日才能卖 → "最优开平仓点"的判定与美股(T+0)不同
涨跌停 触板时价格被锁定 → 封板期间"最优开平仓点"几乎无定义
tick 结构 沪深固定 0.01 元;低价股 tick 相对大、高价股相对小 → 大/小 tick 的分组可能与 NASDAQ 完全不同
成本结构 印花税、佣金与美股不同 → p_T 高但扣成本后 PnL 为负的风险更高

这是 p_T 落到 A 股的第一个障碍,已记入 summary 的 Open Questions。

待验证

  • p_T 能否在 A 股定义? 需要先处理 T+1 与涨跌停。
  • p_T 高但 PnL 为负的情形有多少? 这是本 wiki 认为最重要的补充检验。
  • 跨交易所验证:论文自己列为未来工作。本 wiki 认为必要——NASDAQ 大 tick 占多数,A 股 tick 结构不同。

Cross-ref