基于 FPGA 的授时与守时技术在证券交易中的应用研究
2022-04-29顾焕峰
摘要:在金融领域,特别是证券高频交易方面,“时间”是个非常敏感的词;证券交易需要第一时间准确地将订单送出去,而且在整个交易环节中订单的“穿越时间”要尽量小。文章主要阐述了如何用基于FPGA的授时与守时技术来精准测试订单的“穿越时间”,并搭建相应的测试系统。测试结果表明,该方案具有测试精度高、部署方便、易于扩展等优点,非常适合金融领域中多套系统异地部署场景下的时延测量。
关键词:FPGA;原子钟;GPS;时间同步;时延测量
中图法分类号:F832文献标识码:A
Research on application of FPGA-based timing and punctuality technology in securities trading
GU Huanfeng
(Shengli Anyuan Technology(Hangzhou) Co.,Ltd.,Hangzhou 310000,China)
Abstract:In the financial field, especially in the high-frequency trading of securities, “time” is a very sensitive word. Securities trading needs to send out the order accurately at the first time,and the “traveling time” of the order in the entire trading link should be as far as possible small. This article mainly expounds how to use the FPGA-based timing and punctuality technology to accurately test the “transit time” of an order, and build a corresponding test system. The test results show that the scheme has the advantages of high test accuracy,convenient deployment, and easy expansion, and is very suitable for delay measurement in the remote deployment scenario of multiple systems in the financial field.
Key words: FPGA,atomic clock,GPS, time synchronization, time delay measurement
1 引言
如何測试系统的“穿越时间”在金融领域一直是个难度较大的问题。以证券市场来说,在最优的环境下订单需要穿越下单系统、柜台系统、交换机等,最终到达交易所的撮合系统。同时,订单又是根据行情产生的,需要经过交易所行情系统、交换机、行情接收服务器到达下单系统,以此形成闭环系统[1 ~2]。实际上,绝大部分情况下的系统还做不到本地部署,异地网络的穿越时延更是不可估计。
2 方法
2.1 测试系统框架
测试系统(图 1) 以金融证券领域的行情为例。由于地域和机房位置不同,导致不同的券商收到同一行情的时间是不一样的,如何准确地测量出哪家券商的行情是最优的(最快到达),对于高频交易[3]客户来说,意味着能最快下订单,从而更大概率在目标价成交。
该系统框架中,两台异地设备—系统1 和系统2 分别部署在两家券商(图2),通过光纤分光器接入行情线路中,并且在通过分光器“监听”到的行情中打上高精度的时间戳。理论上,两个系统的时间戳都是绝对时间[4]。因此,直接对比同一行情的时间就可以明确两家券商中哪家的行情更优。绝对时间的获取需要通过 GPS(或者北斗系统)来实时同步。事实上,大部分券商的系统都托管在证券交易的机房中,实际环境无法做到与 GPS 实时同步。如何在 GPS 信号丢失的情况下保证时间精度则是本文研究的重点及难点。
系统1 接 GPS 天线,确保一直处于绝对时间授时环境下;系统2 在 GPS 信号校正2 个小时后收回天线,确保设备处于没有 GPS 信号环境下,从而测试设备在没有 GPS 信号下获取的绝对时间精度满足要求。为方便测试,简化测试系统,即同一个模拟行情通过分光器一分为二后直接接两台设备,保证进入两台设备的行情数据是同源且同时刻进入。
为确保系统2 在没有 GPS 信号下获取的绝对时间精度满足要求,需要在设备中实现授时与守时两套系统。
2.2 授时系统
异地时间同步需要采用同一时间作为基准时间。考虑到部署和后期扩展,该同一时间采用绝对时间具有较大优势。因此,我们采用 GPS 来获取绝对时间。 GPS 授时精度可以达到<30ns。
GPS( Global Positioning System)全球定位系统共有 24颗卫星运行在6 个地心轨道平面内。GSP 时钟是通过接受 GPS 卫星发射的低功率无线电信号以及通过计算得出 GPS 时间的接收装置。为获得准确的 GPS 时间,GPS 时钟必须先接收到至少4 颗 GPS 卫星的信号,以计算出自己所在三维位置。在获取位置后,GPS 时钟也需要至少1 颗 GPS 卫星来保证时钟的准确性。
GPS 授时设备绝对时间通过 RS232串口输出,时间格式为 NMEA 协议,图3 为 NMEA 协议的具体格式。图3 中,时间解析出来就是2002年 3月 22日 14点 16分 44秒 0毫秒。由此可见,GPS 授时系统直接输出的绝对时间只精确到毫秒。要获得纳秒级的精度,我们需要用到1PPS 输出信号。1PPS 输出格式时间信号每秒输出一个脉冲,脉冲不含具体时间信息,其输出精度可达<30ns。
2.3 守时系统
前文提到,GPS 时间的获取需要至少一颗 GPS 卫星来保证时钟的准确性。为解决在无法接收 GPS 卫星的券商委托机房里保证时钟的精度的问题,在系统中加入芯片级原子钟 ( Chip?Scale Atomic Clock , CSAC)。CSAC 是一种计时装置,精度可以达到每2000万年才误差1 秒。最初,其是由物理学家创造出来用于探索宇宙本质的,目前已经用于 GPS 导航系统上。本质上,CSAC 是一种铷原子钟,通过 GPS 输出的 1PPS 信号锁定后可以输出与 GPS 的1PPS 同步的1PPS 输出信号,锁定后的精度可达15ns 。而且,一旦锁定后,在 GPS 信号丢失的情况下,不会失锁。在没有 GPS 信号的情况下,锁定后的原子钟能很好地完成 s 级的系统守时。
FPGA(Field-Programmable Gate Array ,即现场可编程门阵列)在本系统中作为主要处理芯片,分光器发出的光信号通过内部 MAC IP 实现行情数据帧的接收,并且打上时间戳。在250MHZ 的主频下,两台不同设备的 MAC 处理时延精度可达4ns ,误差控制在±8ns 。FPGA 时钟模块的时钟源采用频率偏差为5PPM 以内的高精度温控时钟,保证 us 级甚至 ns 级的系统守时。
在本系统中,CSAC 与 FPGA 板级温控晶振组成守时系统时钟源。
3 系统的搭建
系统授时通过外接 GPS 实现(也可使用北斗系统),秒级精度的绝对时间通过 RS232 串口输出 NMEA 协议到 FPGA 内部时间模块。FPGA 提取 NMEA 协议中的绝对时间来更新和同步系统时间。
系统 s 级授时通过原子钟来实现,GPS 输出的高精度1PPS 信号输出到原子钟,该1PPS 信号对原子钟输出的1PPS 信號进行同步校正。需要1 小时以上的时间进行校正,之后原子钟的输出基本稳定在 GPS 的频率上。
CSAC 原子钟输出稳定的1PPS 信号给 FPGA 时间模块,FPGA 内部时间模块接受来自原子钟的1PPS 信号作为更新 s 级精度时间的触发源。同时,FPGA 内部用高精度温控时钟实现 ns 级精度的授时时间。
4 结论
根据实验结果可知,两台异地设备的时间同步精度基本可保持在100~ 500ns ,且成周期性分布。72小时内,偶尔有几个时刻的精度蹿升至800~ 1000ns。
GPS 授时和 CSAC 守时基本满足要求。
参考文献:
[1] 王康,胡永辉,马红皎.基于 IEEE1588的智能变电站时钟同步技术[J].电力科学与技术学报,2011,26(3):9?14.
[2] 郑翊.基于 IEEE1588的高精度时间同步技术分析与性能测试[J].中国电子科学研究院学报,2019,14(6):605?610.
[3] 孙达昌,毕秀春.基于深度学习算法的高频交易策略及其盈利能力[J].中国科学技术大学学报,2018,48(11):923?932.
[4] 高锐.绝对时间同步的探讨[J].现代电子技术,2006(11):35?36.
作者简介:
顾焕峰 (1981— ),硕士,中级工程师,研究方向:金融科技。