金融科技与金融创新全媒体
 本文共字,预计阅读时间.
 (本文为"证券机构数字化转型与证券科技创新"征文活动入围文章.)
 摘要:高频交易在现代交易体系中已成为重要的交易方式之一,在发达金融市场中高频交易已经占市场全部交易量的70%.虽然目前国内高频交易尚属发展阶段,但是却愈加受到各个市场参与者的重视.因此当前对高频交易技术平台的探索具有重要的意义和广泛的市场应用需求.
 当前的高频交易平台普遍是部署在软件平台上,通过软件系统升级降低交易时延.但是软件系统时延依然很高,且稳定性差等问题,推动我国高频交易平台的发展从"软件时代"进入到"硬件时代".
 本文尝试讨论在国内金融市场中通过应用硬件FPGA技术来改善各个交易场景的架构,提升交易速度的可能性,以及该技术应用的优缺点.同时提供基于各个场景下应用FPGA提速的业务架构的探索结果.
 关键词:FPGA,高频交易,HFT,极速交易,低延时,交易架构
 第一章 研究背景
 一,高频交易简述
 高频交易是现代金融市场交易中重要的交易行为之一,在各国金融市场中都占有重要的地位.通常高频交易者利用高速的电子计算机系统完成价格的采集,判断,交易订单生成和订单分发的步骤.该种交易行为获利的核心可以归结为"薄利多销",即采取大量报单交易,完成单笔获利低但获利笔数高的交易行为.交易者为避免隔夜价格风险,通常在日内完成所有交易,收盘前清空持仓,因此高频交易也被称作日内交易.
 对市场参与者而言,高频交易可以帮助交易者利用更快的交易信息发现市场中的交易机会,也可以帮助参与者采用更加高频的交易降低交易成本.对整个市场而言,高频交易可以增强市场有效性,提升市场中的流动性.
 在发达的金融市场中,高频交易因其价格发现效率更高,交易成本更低的特点越来越被市场的参与者重视,在美国市场中,高频交易已占其交易所全部交易量的70%以上.我国高频交易虽然起步时间晚,但发展速度快,除期货,期权等衍生品市场采用高频交易的方式较多,股票市场中的也有越来越多的投资者出于规避成本等方面考虑采用高频交易的方式进行交易.
 二,低延时系统对于高频交易的意义
 高频交易作为一种交易手段的产生和发展是同计算机技术在金融领域的发展和交易系统的进步是分不开的.对于高频交易而言其主要获利手段是以更快的时间发现市场中价格的偏离,在市场价格恢复前完成交易实现获利.因此对于高频交易者而言最为重要的两个因素就是信息尤其是价格的信息获取的速度和从系统下单到完成交易的速度.随着高频交易参与者的增加,交易速度上的竞争越来越大,想要更好的实现高频交易获利就需要交易系统帮助其实现更高的速度和更低的时延.
 在高频交易过程中另外一个对于低时延的需求的原因是,交易滑点带来的成本增加.如前所述,对于高频交易者而言重要的是"薄利多销",因此单次交易的成本控制对于高频交易者而言至关重要.对于低频交易者,因其交易次数有限,单次成本往往对整个交易而言无足轻重,哪怕是1%的成本对于一个持仓周期以月计的交易者来说,都可以通过更长的时间去分摊和消化.但是对于交易次数在单日内可达百次甚至更多的交易者,交易成本控制的好坏很可能决定其交易的成功与否.而在所有的交易成本中,佣金和印花税等都是固定成本,最为可控的就是滑点成本了.滑点的高低往往取决于交易者发单到交易所成交的时间,时间越长其交易滑点越高.因此更低的延时有助于实现报单的快速成交,就更容易实现交易的"可见即可得".
 低延时系统可以帮助交易者更快的获得信息,更早的发现价差;也可以更迅速的完成下单成交流程,实现利润的同时降低成本,因此探索和开发更低时延的交易系统也是高频交易者一直以来的努力方向.
 三,低延时交易系统结构简述
 一个低延时交易系统的结构在组成上是同普通的交易系统结构类似,组成部分是,交易者系统,经纪系统和交易所系统.整个系统中,交易所系统对外提供的报单接口统一,对于所有参与者而言都是相同的,因此无法实现低时延和加速.系统实现加速的主要任务就在交易系统和经纪系统的优化上.
 交易系统的主要是实现投资者接受行情,完成交易逻辑,生成订单等功能,据此可将整个交易者系统分解为:行情接收模块,逻辑执行模块和订单下发模块;值得一提的是,在普通低频交易中,交易逻辑的生成和执行是可以通过投资人自己进行决定的,但是对于高频交易而言,行情接收,交易指令下发通常都是发生在毫秒甚至微妙间的,因此通过人力进行肯定是不现实的,往往通过预设的计算机算法实现交易逻辑的判断和订单下发,保证时效性,因此我们通常也将交易逻辑模块称为算法模块,高频交易也被称为算法交易.
 当交易系统产生交易信号后,无法直接将信号传输给交易所,通常是通过证券公司的经纪柜台系统实现报单操作.经纪柜台的职能是将客户传递的下单指令经过风控后组装成交易所的可识别的信号进行报单操作.对于经纪柜台系统而言,吸引高频交易账户的重要因素是在于其是否能够提供低延时,快速的交易所连接的通道.
 四,低延时系统对于市场监管者影响
 随着目前市场中越来越多的高频交易出现,交易系统不断进化,对于市场监管者而言其压力也不断增大.高频交易一方面带来了交易量的增长,提升市场繁荣度,增强市场的有效性,但同时也可能会产生不法交易者利用低时延交易系统进行探单,老鼠仓等违规违法操作获利行为.因此这也要求监管提升市场监控能力,对应采取更加低延时自动化的监控方式和监控系统对市场交易进行监控监督.
 第二章 解决交易延时性的探索
 对于交易系统提升交易速度,降低交易时延的方案主要有以下几个类型:降低网络延迟,降低协议延迟,降低操作系统的延迟和降低应用的延迟.目前对降低交易延迟的探索基于采用的技术方式主要有两个方向,一是以软件方案为基础,一是以硬件方案为基础.
 一,基于软件的解决方案
 基于软件的提升的方案在国外有Mantara, Ullink and QuantHouse[1]等提供定制交易方案的软件,国内目前各个券商也有各自的基于软件的极速交易系统,其主要的产品供应包括,恒生电子证券UFT(Ultra Fast Trading)极速交易系统(简称UFT系统)[2],迅投QMT极速策略交易系统等.
 软件方案在实现上通过优化系统结构(采用Linux系统替代Windows系统),简化交易流程(如降低非必要的风控流程),采取传输效率更高的协议(如Binary协议代替step协议),采用传输效率更高的网卡(如利用IB网卡替代以太网卡),利用更高效率的计算方式(如采用并行计算替代单线程计算).
 即使经过上述方法的加速,软件与软件之间网络传输的不确定性和高延时性等问题依然难以解决,无论是哪一种操作系统,由操作系统带来的时延都难以从软件技术上解决.
 二,基于硬件上的解决方案
 基于以上软件系统的问题,业内开始考虑利用定制化的硬件系统来解决低延时的问题.相比较软件系统,利用硬件的方式可以直接将交易处理逻辑放在数据流的路径上,降低数据流处理的复杂度.
 在不同的集成电路中,ASICs因为无法实现灵活编程,无法适应新的协议,无法在交易系统中使用.GPUs虽然可以灵活编程,但是延时性高的问题依然无法解决,因此加速效果也不理想.目前市面上常用的金融领域进行硬件加速的方案都是通过现场可编程门阵列(FPGA)进行的.
 FPGA是一种半定制化集成电路系统,一方面因其门阵列逻辑结构保证了并行计算的效率,另一方面又因为其可现场编程的特点,扩展性和适用性相比较于传统的集成电路系统有很大的提升.根据其不同的特点,在应用上也有不同方面的侧重,一方面可以利用FPGA并行计算的优势进行运算速度要求高的算法场景,另一方面利用FPGA集成电路在网络交互和数据流传输效率高的特点可以降低交易系统的时延.
 三,FPGA在应用上的优缺点
 1,FPGA优点
 如前文所述,FPGA在低延时交易系统中拥有比较广泛的应用场景.相比较于基于FPGA的交易系统,软件交易系统在接收到数据流后需要将数据流存储到操作系统的存储空间,然后由CPU调用应用来启动计算,最后计算完成再将数据交给网络转运组件传输出去.FPGA系统则可以直接将接收到的数据流传给定制的逻辑单元进行处理和操作,大大简化了传输流程,降低了传输流程中可能出现的信息丢失.
 同时在数据通过网络进入系统后,FPGA系统的处理也有特殊的优势.信息以数据包的形式进入硬件系统时,FPGA无需等待全部数据进入后才能进行处理,可以进行数据接收和数据处理的并行操作,显著的提升操作效率.传统的软件操作系统在接收数据包是则必须等待全部数据接收完成后才可以推送到下一步的应用中进行操作.这样FPGA系统在数据的接收操作上保持了一个良好的循环,减小数据的堵塞,带来的速度上的提升对交易低延时实现意义重大.
 2,FPGA缺点
 相比较与传统的软件交易系统,FPGAs的缺点也十分明显.在目前金融系统开发领域,现有的软件语言如c++,java,python等语言已有比较广泛的使用,部分核心的产品功能已有比较成熟的软件包和开发社区,新系统开发所需时间和人力成本均不高.但是,FPGA硬件的应用大部分是在通信领域,金融领域的应用并不广泛,缺乏具有相关经验的开发者.FPGA基础的设计语言是硬件描述语言(HDLs),其开发过程中需要工程师直接编写电路图结构,显然这种方式对开发者要求高,效率也不高.FPGA硬件开发,验证的过程需要耗费的时间更长,相比较于软件而言其开发周期可能延长2-3倍.针对上述问题,目前已有开发者在社区中提供通用的预设好的FPGA的IP模块,可以实现高频交易中一些底层基础功能,如数据接收的TCP/IP网络协议接口,数据解码模块等,这些模块虽然目前在稳定性和便利性上不如Linux,Windows系统上的此类接口,但是随着越来越多的开发者参与进来,FPGA的开发成本在未来会大幅下降.
 除上述问题,FPGA系统在部署和同步上相比于软件系统,其难度更大,所需时间更长,部署过程涉及到软硬件对接,FPGA板卡插卡等流程,无法类似软件系统实现编程和实现的无缝衔接.
 第三章 细分金融场景下FPGA应用探索
 采取FPGA的方式实现更低延时的交易流程,不是单对某一个交易流程进行加速,而是可以通过FPGA方式实现整个流程的加速.诚然,对于单一流程的加速也是有效的,如实现一个更加快速的算法逻辑生成系统,是可以生成更加快速的订单,但是如果订单无法及时通过柜台系统报单到交易所,依然无法实现前文说的"所见即所得",其冲击成本依然可能很大.因此FPGA之所以有广泛的应用前景,就在于在整个交易流程中,都可以利用其进行加速.交易流程分为交易系统,经纪柜台系统,监管风控系统,下面分别简述FPGA如何实现各个流程的加速.
 一,交易的提速
 对与交易者而言,其参与的交易流程是首先接收行情信息,然后将行情信息传递进入其自己的算法模块,由算法模块完成计算,如果触发发单逻辑则向券商柜台下单.因此其涉及到的两个主要系统分别是行情系统和算法逻辑系统.下面分别对两种系统采用FPGA技术加速的过程进行描述.
 1,行情加速系统
 行情一般是由交易所将市场交易信息定时推送出来,交易者通过接口获取到行情信息,之后需要将交易所行情进行解码为可识别的信息方可进入算法逻辑的模块.在我国行情系统一般是通过各个券商提供解码和推送的.对于高频交易而言我国股票交易所上交所和深交所提供level-2行情,相比较普通的level-1行情其包含了更多的成交信息,行情深度等,其传输采用效率更高的协议(上交所采用FAST协议,深交所采用BINARY协议).
 行情的提速主要实现的主要方式是,在接收行情后采用更快的方式对行情进行解码,因此该系统也可称为行情解码系统.采用FPGA的方式进行行情解码在目前市场上已有解决方案,招商证券基于RTL+软件的异构结构实现上交所level-2的行情加速,其实现行情解码速度达到了0.5微妙的级别,相对于软件系统毫秒级别的延迟提升了1000倍以上的速度.[3]
 2,算法加速系统
 算法系统是一个量化交易系统中最为重要的一个部分,一方面其决定了交易的逻辑,交易是否能够获利很大程度上取决于算法是否足够优秀;另一方面,算法一般也是整个交易流程最为耗时的部分,一些复杂的算法如机器学习,深度学习算法等,动辄需要处理百万以上的数据量.在发达的金融市场中算法交易普遍度很高,其中最为出名的算法类别是以TWAP和VWAP为代表的拆单算法.这类算法流行的主要原因是发达金融市场中机构投资者占比大,对于机构投资者而言,其进行的买卖操作往往数量金额较大,其冲击成本和滑点成本可能都比较大,通过拆单算法将一笔大单分成若干小单进行执行可以大大降低交易成本.在这种需要快速完成逻辑判断,完成报单的场景中,低延时对算法的意义十分重要.
 FPGA因其在并行计算和数据处理方面的优势在提升算法性能上十分明显.图1以拆单算法为例展示FPGA硬件实现算法模块的流程.
 图 1 FPGA交易系统逻辑结构
 FPGA算法系统主要分为网络层,以黄色的箭头为代表系统同外部进行交互,交互的信息包括接收行情数据,推送订单消息,接收成交回报,接受主机消息,向主机推送成交状态灯;内部应用层,包括算法运算逻辑,行情处理逻辑,成交回报处理逻辑;存储层,用来存储系统计算所需要的参数以及实现成交记录,持仓控制等功能.
 一,经纪订单系统的提速
 经纪柜台一般是指由券商提供的给交易者进行交易的经纪系统,交易者通过经纪系统完成向交易所报单的操作.经纪系统在交易流程中执行的是交易所和交易者之间的连接操作,订单的执行在交易所内执行的时间是固定的,想要提升交易的成交速度的重点就在于经纪订单系统能否快速的将订单发往交易所.
 经纪订单系统普通的报单的处理流程如图2所示:
 图 2 订单处理逻辑
 订单进入系统后需经过参数检查,风控检查,费用计算,验资验券,冻资冻券,订单生成等逻辑,最后将订单按交易所规定的格式的报送.
 上述基础功能为利用FPGA实现订单委托功能的最小范围,其他经纪业务的常见功能如:订单管理系统,资金清算系统,可利用此FPGA系统外接的软件系统完成,保证在交易链路上无其他程序影响交易的速度.
 三,风控系统的提速
 在现代金融体系中,风控越来越成为金融公司,监管机构所重视的内容.对高频交易而言,风控更是显的尤为重要.当交易在高延时的环境中进行时,尚可以利用人力进行监控和分析.但是在利用FPGA交易系统这样的超高频交易体系中,以微秒为交易计量单位的时间段中,不单是"人力有时而竭",普通的软件风控系统可能都难以在如此短暂的时间内完成风控流程.高频交易若出现风控问题往往带来的影响都会十分重大,曾经的市场中屡次出现的"乌龙指事件"都是由于程序化交易过程中良好风控导致的问题.因此在面对技术不断进步,速度不断提升的交易系统时,风控系统也需要不断进步.
 FPGA的风控系统,可以将用户自设的风控规则提前写入硬件系统中,在交易信号进入系统后进行解码,规则验证,信号下发/信号拒绝等操作的流程.一方面确保下单满足风控规则保障交易的安全性,另一方面该系统也可以最小程度上降低风控对交易时延的影响.
 FPGA风控系统不单是对交易者的一种保证,监管机构也可以采取FPGA结构的审核监管系统对交易进行实时监控,保障市场的稳定运行.
 在高频交易的发展过程中,交易者探索各种极速交易平台,以期实现更低延时的算法交易和风险控制流程.本文通过对FPGA技术与软件技术以及其他硬件技术的对比,展示了FPGA应用与高频交易系统在灵活性,稳定性,高并发性上的优势.但是FPGA开发耗时,学习成本高的缺点也很在很大程度上制约了其发展.同时本文也探讨了FPGA在低延时交易中具体实现场景中的流程,为未来利用该技术实现快速算法构建,超高速订单柜台,超高速风控逻辑提供支.
 在发达金融市场中,利用FPGA手段进行算法逻辑构建和交易系统搭建已经是比较成熟的做法,但在我国目前此方面尚处于初步发展的阶段,但其技术上的优势决定了未来FPGA在金融领域开发和应用会有比较大的空间.
 您的评论提交后会进行审核,审核通过的留言会展示在上方留言区域,请耐心等待.