当前位置:首页 > 业界动态 > 正文

加速行情实现,提升金融交易能效——基于FPGA的超低延时行情系统

小金要给大家分享的是行业大佬的技术分享,不要错过!

一大批金融量化人才涌现,量化选股和多因子策略在中国落地,股指和金融服务推出……量化投资,在中国才十几年,发展迅速。 目前,国内量化体系正处于从低风险量化向主动量化的行业转型时期:大资产管理行业的转型; 个股期权、股指期权等金融工具相继推出; 交换技术系统的不断升级等。上述变化的发生离不开相应硬件(系统)和软件(人才)的双重升级。 在硬件方面,拥有更低的延迟通道、更灵敏的系统响应、更稳定的交易系统是量化策略快速计算和快速运行的必要条件。

由于摩尔定律的瓶颈和行业不断变化的发展需求,FPGA(现场可编程门阵列)以其独特的可编程性、高并行性、高带宽等特性和优势进入了大众的视野,并得到了广泛的应用。广泛应用于人工智能领域。 已广泛应用于智能、云计算、通信、医疗、航空航天、自动化控制等领域的各种应用场景。

金士达结合国内外金融环境和技术,以基于FPGA实现超低延迟的上海、深圳二级市场为切入点,进而深入思考和探索FPGA在金融交易领域的研究方向。 本文介绍了我司基于FPGA开发的超低延迟行情系统(如FPGA硬件设计与实现、延迟性能等),希望能够帮助交易团队、科技公司等相关方进一步探索研究FPGA 及其应用. 这将进一步提升交易服务质量,改善投资环境。

1. 概述 1.1 市场对低延迟报价的需求

行情作为交易过程的重要组成部分,揭示了市场微妙的实时变化。 更快、更准确地获取市场信息,意味着在“起点”上领先别人一步。 因此,构建超低延迟市场成为提高整体交易速度的必由之路。 随着市场基础设施的快速建设和发展,量化交易、算法交易、高频交易等各种自动化投资工具在交易行为中得到有效运用。 与传统的人工市场跟踪和人工订单交易方式相比,自动化交易执行具有更高的处理能力和更快的响应速度,更容易在不断变化的市场情况下捕捉交易机会并快速完成交易。 在此背景下,低延迟的交易数据获取和系统交互受到市场参与者的广泛追捧。 低时延通道不仅成为服务商差异化竞争的“法宝”,也成为交易团队在竞争加剧、优胜劣汰的市场中获取更丰厚投资回报的利器。 围绕构建超低延迟系统的无形军备竞赛正在如火如荼地进行。

1.2 FPGA构建超低延迟市场

FPGA(Field Programmable Gate Array)是一种可以通过硬件编程语言改变其内部连接结构和逻辑单元,实现定制化功能的芯片。 灵活编程不同于传统的ASIC(专用应用)。 集成芯片)。 FPGA作为一种硬件架构,具有硬件运行速度和可靠性的优势,特别是在逻辑/算术运算定制、高并行性、高带宽等方面。 FPGA硬件电路的固定延迟替代了系统软件延迟抖动,不仅可以实现低延迟,还可以提高金融交易系统的延迟稳定性。

国外对冲基金已将FPGA硬件加速技术深度植入交易流程的诸多环节。 对于中国来说,FPGA产品在期货行业(如行情、交易柜台、网关风控等场景)的落地,为证券行业的低时延建设思路提供了可靠的技术和产品基础。 基于在期货行业的技术和业务的深入积累,我们的FPGA团队将FPGA的低延迟特性应用于对上海和深圳市场行情的分析,开发了具有超低延迟特性的行情系统。

2. FPGA硬件市场加速的设计与实现 2.1 总体系统架构设计及设备选型

FPGA作为硬件芯片,在数据的并行计算和处理(流水线并行性和数据并行性)方面具有独特的优势; 另一方面,不言而喻,基于CPU的软件程序在系统交互方面具有方便的优点。 因此,我司采用“FPGA(RTL)+软件”的异构架构来满足前述的市场需求——利用FPGA实现TCP/IP协议栈和以太网MAC控制器,这些原本属于主CPU的工作就完成了通过额外的硬件电路,从而减轻CPU的负担,加速网络处理能力,提高系统性能。

具体来说,FPGA硬件部分实现了沪深交易所行情数据分析的核心环节,软件部分实现了与外围系统交互的管理功能,包括与交易所市场网关(MDGW/VDE)的登录连接管理、行情管理等。用户管理。 登录连接管理、系统监控等功能。 FPGA板卡与服务器之间通过PCIe接口进行数据交换。 为了实现行情分析的全链路低延时性能解决方案,我司采用了自带网络接口的FPGA板卡,在FPGA内部完成行情的网络协议分析/重组,实现端到端发送、接收和处理市场信息分析。 。 系统总体架构如图1所示。

图1

基于上海和深圳市场业务,并考虑业务的实际应用场景,FPGA板卡需要支持以下特性:

两个或更多 10 GB 以太网接口。 该接口用于接收来自交易所的实时行情信息、组播行情推送等功能。 PCIe Gen3x8 或 PCIe Gen3x16,并向下兼容 Gen1/2。 支持部分重配置,支持硬件FPGA版本热加载(使FPGA版本更新升级像软件版本更新升级一样方便)。

2.2 FPGA硬件市场加速架构

采用自带FPGA芯片的硬件单板,对原始行情数据进行独立纯硬件分析处理,实现行情接收、行情解码、行情组播等全链路功能。

如图2所示,交易所原始TCP行情数据从10吉比特以太网端口A进入FPGA,通过RTL级别设计的行情处理电路在内部完成行情分析。 最后将解码后的行情数据以UDP组播方式发送至FPGA。 从千兆位以太网端口 B 发出。

图2

硬件市场处理按照处理流程可以分为以下几个部分,如图3所示:

图3

10吉比特以太网接入层:实现从光纤上的串行比特数据流中有效数据前导码的识别,并将串行数据经过CRC校验后转换为并行数据接口的标准以太网包结构。

TCP/IP协议解析/过滤层:根据以太网协议格式解析从10G以太网接口接收到的数据包结构,根据IP字段和TCP字段信息过滤非市场数据包,完成TCP保单和提取市场数据包 将现场有效的市场来源信息字段发送至市场分析层。

行情分析层:根据交易所的行情传输协议进行解码(上海和深圳分别处理),解析出所需的行情数据字段,并发送给UDP协议组件层。

UDP协议构建层:将解码后的行情数据按照以太网标准协议构建成UDP组播报文,如图3所示,发送到10G以太网出层。

10G以太网输出层:实现与接入层相反的功能,从UDP组播数据包中计算CRC字段,将并行数据包结构数据接口转换为串行码流发送到光纤。

配置寄存器:该模块通过PCIe接口与服务器HOST交互。 例如:HOST将市场源的IP/PORT信息配置到FPGA寄存器中,TCP/IP协议解析/过滤层获取对应寄存器的值,实现对非市场源数据包的过滤。 同时,UDP组播包的IP/PORT信息也会配置到FPGA寄存器中,实现UDP协议包的构建。

状态寄存器:为了实现服务器对FPGA运行状态的监控,各层模块内部开放一系列运行状态寄存器供行情系统软件部分读取,实现行情系统软件部分对硬件的监控,并执行微秒级重启复位等异常。 处理。

2.3 市场协议分析功能的实现

硬件市场加速架构可应用于多种金融应用场景。 对于沪深市场来说,市场来源涉及多种业务(股票/基金/债券/期权/指数等)的市场信息。 为了实现并行化,提高行情业务数据处理的带宽,行情分析层可以采用高度并行、高度扩展的业务结构,如图4(将出口作为单个以太网口,结合多路轮询)以进入一个通道为例)。

图4

同时,根据不同业务的重要性和速度优先级,可以通过软件灵活安排注册接口,实现发送不同业务数据包的优先级。

2.4 市场表现优化

2.4.1 数据压缩与传输——交易所提供的行情源信息字段中大量数据采用Unit64表示,但实际业务中有些字段有上限,因此可以采用较短的位宽来表示。 例如:交易所规定单笔最大下单数量不得超过100万。 数据压缩:(1)可以提高网络报文传输效率,大大降低客户端交易端接收行情信息的延迟(通过减少数据长度调整输出字段格式,将UDP发送长度减少30% 70%); (2)可以优化数据存储结构。 在上交所全恢复等大规模存储访问场景下,减少存储访问次数可以有效降低快照行情处理延迟。

2.4.2 数据的完整内部RAM存储——市场分析涉及的一些场景需要存储完整或历史的市场信息。 如果延迟关键路径上的数据处理采用FPGA外挂DDR存储器存储,则访问周期比FPGA大很多。 内部BLOCK RAM (BRAM) 以及分布式RAM。 FPGA内部的存储器可以在单个时钟周期内完成读写,而DDR存储器则需要数十个时钟周期的延迟。 在SSE快照全恢复场景下,延迟关键路径上的数据存储全部使用BRAM,可以大大降低快照解析延迟。

2.4.3 多时钟域解决方案——对于硬件数字电路来说,时钟频率越高,同一电路的运行延迟越低。 在解析字段长度不确定的复杂协议(如上证Fast协议)时,除了在设计解析逻辑时通过增加并行度来减少延迟外,还可以为模块采用更高频率的时钟,以提高模块的计算速度。 实现最优并减少关键路径延迟。

2.5 性能验证 2.5.1 延迟性能

图5

该延迟测试方案是测量从发送行情源的时间T0到客户端接收到解析出的行情数据的时间T1的延迟(T0和T1是在同一台服务器上获取的)。 鉴于实时行情源(MDGW或VDE)连接限制的特殊性,行情回放方法可以有效记录行情源发送时的时间T0,以便进行验证测试。 为了有效模拟真实行情系统的上下游交互场景,测试需要两台服务器,如图5所示。服务器2插在FPGA板上,服务器1通过行情回放程序进行行情,原市场通过光纤进入服务器2上的FPGA。 该板的10G网口A和FPGA解析出的市场价格通过10G光纤通过10G网口B传回服务器1的接收网口。 行情接收程序接收解析后的行情数据并执行行情信息。 和时间戳T1。 同步,当服务器1发出原始行情时,需要另一软件行情分析软件程序也对原始行情进行分析处理,从而得到解析后的标准行情数据(以便与FPGA解析后的行情一一对应) )及其发送时间T0,以便硬件分析后测算行情的延迟,一一对应。 具体测试步骤如下:

步骤1 获取播放源——在生产环境中使用网络抓包工具记录一段原始行情数据,即MDGW/VDE发送过来的网络数据包,并生成行情pcap包(TCP协议包) 。

步骤2:获取市场价格并获取发送时间——市场重播程序读取pcap数据包,将数据包发送到网络端口,并在发送TCP数据包时添加时间戳。 时间戳全部在TCP数据包中。 市场数据的起始时间记为T0。

步骤3 获取标准数据源 - 为了测量硬件解码行情的延迟,行情回放程序还会通过另一个软件行情分析程序(位于服务器一)解析pcap源,以获取分析一后的行情数据一个。 。 每条行情数据都对应发送TCP数据包的时间戳T0。

第四步:FPGA分析后获取行情并计算延时——FPGA板接收原始行情TCP协议包进行分析处理,并将解码后的行情数据通过网口B发送给行情接收分析程序。接收到行情数据后,行情接收分析程序一一记录行情数据到达的时间,记为T1。 使用clock_gettime获取时间戳,形成登陆文件。 市场分析的渗透延迟为T=T1-T0。

注:由于上交所的快速分析累积机制,包裹数量的不同会导致延迟数据波动较大,无法定期采集。 这里仅显示快照数据。 2.5.2 吞吐量性能

同样的延迟性能测试方法,通过调整市场重播节目的播放速度倍数来实现吞吐量压力测试。 测试过程中,观察分析行情服务器的运行情况以及解析的行情数据,获得行情服务器的最大吞吐负载。

2.5.3 数据准确性/完整性

为了验证FPGA市场系统分析数据的正确性和完整性,将FPGA市场系统的数据与目前市场广泛使用的另一个市场系统的分析结果进行了比较。 测试部署方案如图6所示。 图6

步骤1 分别启动服务器A和服务器B上的FPGA市场系统和另一个市场系统,两个系统对应的数据接收登陆程序和登陆格式一致。

步骤2 市场网关发送的数据通过分光器发送到两台服务器,保证两个市场系统分析的数据来源一致。

第三步:编写市场数据对比程序,逐一对比各个数据项的数据准确性,判断是否有数据项缺失。 输入:两个系统的实施数据,输出:每只股票的每条数据的比较结果。

经过长期稳定测试,根据对比程序输出结果,FPGA市场系统分析数据稳定无丢失,数据项全部正确。

3. 未来FPGA应用前景

FPGA硬件加速技术在交易过程中的技术突破需要充分发挥其低延迟、高并行性、可扩展性、分布式等优势。 目前FPGA硬件市场产品的商业实现和稳定运行不仅得到了客户的高度认可,也为其在证券业务其他场景的应用潜力提供了有力支撑。 在此趋势下,金士达根据市场需求,在低延时交易柜台领域进行了尝试和实践,目前已经实现了基于FPGA异构的低延时证券交易柜台(柜台稳定穿透延时3μs)。

未来量化策略的发展将呈现多元化、复杂化,投资者机构化,海外机构加速布局。 由于市场有效性迫切需要提高,大资产管理行业将加速技术系统升级。 FPGA作为低时延赛道的核心技术,将因此成为金融生态的关键。 鉴于此,金士达将积极推动高频研究创新中心、仿真FPGA实验中心、FPGA金融行业云中心的建立,并与知名FPGA厂商、芯片厂商合作,打造专用高性能硬件设备为客户提供长期稳定可靠的硬件设施。 借助“三中心、一平台”FPGA金融生态,金士达将在交易合规风控、智能交易执行、量化选股、信息仓库等多个领域进行更深入的探索和尝试,并期待期待更多同行加入。开发FPGA行业应用的团队加速金融技术的迭代升级,为提高金融交易的能源效率做出贡献。

0
收藏0

最新文章

随机文章

取消
扫码支持支付码