Py学习  »  机器学习算法

当机器学习进入交换机:LOBIN如何为高频交易“抢回”微秒

映翡量化 • 4 天前 • 53 次点击  

在高频交易中,市场机会往往转瞬即逝。交易系统不仅要判断价格未来可能上涨还是下跌,还要在极短时间内完成行情解析、特征提取、模型推理和交易决策。传统架构通常将这些任务交给服务器处理,但数据从交易所进入网络设备、再转发至服务器,经过模型计算后返回决策,网络传输和主机处理会累积出不可忽视的延迟。

机器学习的加入进一步放大了这一矛盾:模型越复杂,通常意味着更好的预测能力,但也需要更多计算资源和处理时间。如何在“预测准确率”和“执行速度”之间取得平衡,成为机器学习应用于高频交易的关键问题。

牛津大学研究团队在论文《In-Network Market Prediction Using Machine Learning and Limit Order Books》(2026年8月3日)中提出了LOBIN(Limit Order Books In Network)。其核心思想是:不再把所有工作交给服务器,而是将限价订单簿构建、特征提取和机器学习推理直接部署到可编程交换机的数据平面中,使市场预测尽可能靠近数据源完成。实验结果显示,LOBIN能够实现微秒级延迟,并较纳斯达克订单撮合服务器基准降低超过10%的延迟;进一步采用交换机与服务器协同的混合部署后,约45%的行情流量可以在交换机内完成处理,而预测错误率平均变化约为3%。

这项工作展示的并不只是一个更快的预测系统,更是一种交易基础设施的新方向:未来的机器学习模型,可能不再只是“运行在服务器上的软件”,而是直接成为网络设备处理流程的一部分。

核心思路

1️⃣从MBO数据重建限价订单簿

LOBIN处理的是市场订单级数据,即Market-by-Order(MBO)数据。每条消息通常包含订单时间戳、订单编号、买卖方向、价格、数量以及新增、撤销或更新等操作信息。

这些原始订单消息本身并不能直接反映市场状态。研究者需要依据订单的价格和时间优先级,实时维护限价订单簿(Limit Order Book,LOB)。订单簿包括买方和卖方两个部分:买方最高价称为最佳买价,卖方最低价称为最佳卖价,两者的平均值则是中间价(mid-price)。

当新的买单或卖单到达时,系统需要判断它是进入订单簿,还是与另一侧已有订单成交。如果订单价格穿过买卖价差,就必须按照价格优先、时间优先的规则逐档撮合,并更新最佳买价、最佳卖价和中间价。

传统做法通常是:交易所发送MBO数据,服务器重建订单簿,再提取特征并调用机器学习模型。LOBIN则尝试将这一整套流程放进可编程交换机中,让交换机在转发数据包的同时完成订单簿更新和模型推理。

2️⃣将机器学习嵌入数据平面

LOBIN的系统大致分为三个部分。

第一部分在服务器上完成离线训练。研究者利用历史订单簿数据,提取不同价位上的订单量以及中间价等特征,并训练价格方向预测模型。模型目标是预测未来100个tick内中间价的变化方向,将结果分为上涨、下跌和不变三类。

第二部分是模型映射。训练完成的模型需要被转换成适合交换机执行的P4程序。P4是一种用于编程网络数据平面的语言,可以规定交换机如何解析、处理和转发数据包。LOBIN将订单簿更新逻辑、特征工程和模型推理代码整合在一起,生成对应的交换机程序。

第三部分在交换机中实时执行。当新的MBO消息到达时,交换机首先更新订单簿,然后提取特征,再利用已经加载的模型完成预测。整个过程无需将每条消息发送到后端服务器,从而减少主机访问和网络往返带来的延迟。

3️⃣硬件约束下的工程取舍

将订单簿和机器学习模型部署到交换机并不容易。与通用服务器相比,可编程交换机具有明显的资源约束。

一是流水线阶段数量有限,复杂的循环和大量条件判断难以直接实现;二是片上内存容量有限,无法维护无限深度的订单簿;三是寄存器访问存在限制,订单簿状态需要跨越多个消息持续更新,但交换机对寄存器的读写方式并不如服务器灵活。

为此,LOBIN采用了循环展开、并行化处理和消息重新循环(recirculation)等方法。对于Tofino硬件交换机,研究者将原本层层嵌套的订单撮合逻辑改造成更加扁平的并行结构,使同一套逻辑可以作用于不同价格档位。订单簿相关代码在BMv2软件交换机上约有622行,在Tofino上约有680行;机器学习模型则由Planter框架自动生成并映射至数据平面。

实证结果

1️⃣预测能力:速度提升并不意味着模型失效

研究使用纳斯达克TotalView-ITCH历史数据进行测试,选取了三个不同产业的股票:能源行业的Diamondback Energy(FANG)、公用事业行业的Exelon(EXC)和医疗健康行业的AstraZeneca(AZN)。数据来自2020年1月30日,包含约44万条订单消息。

实验比较了k-means、K近邻、决策树、随机森林和极端梯度提升(XGB)等模型,并将Tofino、Tofino 2、BMv2与服务器基准进行对比。服务器使用不受交换机资源约束的较大模型,而交换机只能运行规模更小的模型。

结果显示,BMv2上的LOBIN与服务器表现较为接近。相较服务器基准,BMv2的平均准确率损失为4.39%,平均F1值损失为6.47%,精确率和召回率平均分别下降3.54%和4.16%。这说明,即使模型受到交换机资源限制,只要使用订单簿特征,数据平面仍然能够保留较强的预测能力。

Tofino硬件上的表现则受到更多限制。由于可用流水线阶段和存储资源较少,Tofino只能使用更小的订单簿和模型。在所有股票和模型综合计算后,Tofino达到服务器基准精确率的72.20%、召回率的75.21%、F1值的63.50%和准确率的71.57%。

不过,结果并非对所有股票都同样不利。以FANG为例,Tofino上三种树模型的准确率较服务器基准下降不到1%,F1值下降约3.15%。这表明,模型规模并不是唯一决定因素,股票本身的订单流结构和市场微观特征同样重要。

Tofino 2拥有更多流水线资源,因此可以使用更大的订单簿、更多特征或更复杂的模型。实验显示,增加订单簿特征和扩大模型规模都能改善表现,且两种方式带来的效果较为接近。总体而言,树模型集成方法在交换机环境中表现出较好的稳定性和资源效率。

2️⃣网络性能:微秒级延迟与高吞吐

在延迟方面,LOBIN在Tofino上完成订单簿更新和机器学习推理后,仍保持了与普通交换机转发相近的流水线延迟。虽然由于消息重新循环,完整框架延迟高于简单转发,但系统仍达到微秒级水平。

更重要的是,LOBIN相较纳斯达克订单撮合服务器基准实现了超过10%的延迟改善。该基准主要测量订单簿更新,并未包含机器学习推理过程,因此如果将完整的模型推理也纳入服务器流程,LOBIN的相对优势可能更加明显。

吞吐量测试同样显示出交换机硬件的优势。LOBIN在每条交换机流水线上实现了1.6Tbps的吞吐量,两条流水线合计达到3.2Tbps。对于需要处理高速行情流的高频交易系统而言,这意味着网络设备不仅可以承担转发任务,也有能力在不显著牺牲吞吐量的情况下完成部分复杂计算。

3️⃣混合部署:让交换机处理“高置信度”样本

LOBIN并没有将交换机和服务器视为二选一的方案。论文进一步设计了混合部署架构:交换机上运行一个规模较小的模型,当模型对预测结果具有较高置信度时,直接在交换机内输出;当置信度较低时,再将订单消息转发给服务器,由更大的模型进行判断。

这种设计可以理解为“快速通道+深度通道”。高置信度样本走交换机快速通道,低置信度样本交给服务器深度处理,从而在降低延迟的同时尽量避免预测质量下降。

不同股票需要设置不同的置信度阈值。对于FANG,交换机模型与服务器表现接近,即使将全部推理放到交换机上,错误率增加也不到3%,平均延迟较纳斯达克服务器基准降低约9.5%。对于EXC和AZN,交换机模型与服务器模型之间的差距更大,因此混合部署更有价值:当阈值分别设为0.98和0.96时,错误率增加可以控制在5%以内,同时EXC约48.12%、AZN约27.81%的订单可以直接在交换机内完成处理。

综合三只股票的数据,混合部署约有45%的行情流量无需服务器介入,涉及的潜在交易价值约为19.7亿美元,占总潜在交易价值51.3亿美元的38%;与此同时,平均错误率变化维持在约3%。

结论

LOBIN的核心贡献,是把机器学习市场预测从“服务器上的计算任务”推进为“网络基础设施中的实时处理功能”。它证明,交换机不仅可以转发行情,还可以维护限价订单簿、生成市场微观结构特征,并执行轻量级机器学习推理。

论文的实验结果表明,数据平面部署能够带来三方面收益:第一,延迟达到微秒级,并较订单撮合服务器基准降低超过10%;第二,在资源受限的情况下仍能保持相对稳定的预测能力;第三,通过交换机与服务器协同,可以在预测准确率和处理速度之间取得更灵活的平衡。

当然,LOBIN距离实际大规模交易部署仍有一些限制。交换机的存储、流水线阶段和计算能力决定了订单簿规模及模型复杂度,当前原型也没有完整保存所有MBO订单状态。未来需要进一步支持更大规模的订单簿、更多股票的并行处理,以及订单撤销和更新等更加复杂的市场事件。

从更广义的角度看,LOBIN的意义并不在于证明“交换机一定能够替代服务器”,而在于提出了一种新的系统分工:服务器负责训练复杂模型和处理低置信度样本,交换机负责完成高频、规则化、对延迟极其敏感的计算。随着可编程网络设备、专用芯片和机器学习编译技术不断发展,交易系统的竞争或许将从“谁拥有更大的模型”,进一步转向“谁能以更低延迟、更高吞吐量,把模型部署到离市场更近的地方”。


https://arxiv.org/abs/2608.02424

PDF已更新⬇️,更多策略、资讯⬇️
学术界的Alpha


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/200674