2021-4-10 | 证券交易论文
1证券交易接口数据是指行情、订单、成交、参考数据、盘后数据等的证券交易相关信息,它具有产生量大、对实时性传输要求高的特点.为保证交易信息高可用、可审计,以及处理上的方便,诸如卫星行情等的一些证券交易接口往往采用DBF、XML等格式的文件作为数据交换的格式.但这类文件的信息冗余度较高,影响了传输带宽的有效利用率和传输速度.此外,根据不同的传输协议,接口文件往往需要分成分段来进行传输,接收方必须收齐所有分段才能获得所含的记录信息,若有分段丢失则会引起整个文件的重传,这不仅造成了带宽的浪费,也影响了信息交换的速度.尽管可以通过使用ZIP等通用的压缩工具对接口文件进行压缩来解决信息冗余度高的缺陷,但文件分段拼接等待和丢失重传影响传输速度的问题仍然无法解决.
FAST(FIXAdaptedforStreaming,适流FIX)[1]是一种面向消息数据流的二进制编码方法,它是2005年由全球主要交易所和金融企业联盟组织FPL所提出的、针对证券交易业通行的金融信息消息协议FIX[2]的一套压缩和传输方法.
FAST针对FIX消息的格式设计,在将FIX消息流序列化为字节流的过程中利用消息数据间的逻辑关系来对FIX消息所含的数据字段进行编码,可在FIX消息的基础上获得高达70-80%的压缩率.FAST协议对消息的处理开销很小,一般在数个微秒内即可完成对一条消息的编、解码.此外,FAST还具有简单、易实现的优点,其最新的扩展版本[3]FAST1.2于2009年被提出.
为解决前述现有文件类证券交易接口的问题,本文提出基于扩展FAST的文件类证券交易数据高速交换方法-Fast-File.文件类证券交易接口数据一般由相同格式的多行记录构成,FastFile将接口文件中的每行记录映射为一条消息,使用FAST对每条记录所含的字段逐一进行编解码,这样可通过利用记录之间数据的逻辑联系来降低数据冗余度.由于Fast-File的编码粒度是基于一条记录的,因此即便只是收到编码文件的分段,也可对其进行FAST的解码,从而恢复出所含部分的记录,这可使已收到分段的记录能被快速地传输.本文设计并实现了扩展FAST和FastFile方法,通过实验与多种常用的接口文件格式进行了测试比较,并与几种通用的压缩工具进行了压缩率比较.实验结果表明FastFile除按照每行记录为单位进行编解码,可降低重传外,可大大降低现有文件接口的数据大小:比DBF小约70%、比XML小95%.即使与通用的压缩算法相比,FastFile在数据压缩率上也相当接近,如果FastFile叠加使用通用压缩方法则可以达到更高的压缩率.实验结果验证了FastFile方法的可行性与有效性.
2证券交易接口系统及接口数据
证券交易接口系统主要负责通过卫星和地面网络等各种通信介质在电子交易主机,市场参与者、登记结算单位、外部交易所等外部系统,以及监察、行情分发等周边系统之间进行证券交易服务过程中交易相关信息(也即接口数据)的交换.
对于证券交易所这种集中化的交易方式,电子化交易的发生时间集中、数据密集,在每一交易日内交易所往往能产生数十吉字节的大量接口数据.据估计,全球股票和期权市场日均产生的消息量将从2007年的七十多亿条猛增至2010年的一千两百多亿条[4].考虑到这些数据将被进一步分发到成百上千的内部和外部用户,带宽占用的总量十分地庞大.
众所周知,证券交易接口数据的交换与一般信息通信系统的信息交换不同,对速度具有极高的要求.近年来,国际、国内资本市场获得高速发展,资本流动性急剧增大,随之带来与日俱增的交易量、高频交易的大量使用,都使得降低交易延迟的需求凸现出来.事实上,交易指令延迟时间及运行性能的问题已成为各证券交易所目前最大的技术挑战[5].为此,全球交易所纷纷采取措施降低交易延迟.其中,纳斯达克OMX在2009年以250微秒的交易延迟成为世界上最快的交易所.
由于市场发展水平和技术应用环境不同,各交易所采用了不同的接口实现方式,这包括:文件接口、数据库接口、API程序接口、消息协议接口等.典型的证券交易接口包括开放协议FIX、Euronext的MMTP、Xetra的VALUES、纳斯达克的CTCI、NWII、以及QIX等[6].其中,为保证接口数据的高可用、和/或业务过程的可审计,某些证券交易接口数据往往需要以文件的形式"落地"到外存中进行可持久性存储后再进行发送.同时,为处理上的方便,一般采用TXT、DBF、XML等标准格式的文件来进行存储.以我国的上海证券交易所和深圳证券交易所为例,各自公开的数十种市场参与者接口均使用了基于数据库文件的DBF接口.
然而,DBF、XML、文本等文件格式本身没有考虑对于存储空间的节省,如果若按照这类格式来表示数据,信息的冗余度比较高,在传输时这会导致带宽的有效利用率不高,从而造成浪费,这对于我国带宽资源受限且发展欠均衡的证券市场网络技术条件来说尤为不佳.
其次,在证券交易接口数据传输的过程中,由于传输协议的限制,接口文件往往会被分割成多个分段进行传输.譬如在基于UDP传输协议的网络条件下,往往采用64KB大小来分段文件,在因特网上可能按4k、8k等较小的粒度来进行文件分段,而在局域网上则可能以更大的尺寸来进行分段.但是,按照现有的接口文件的数据交换模式,接收方必须要等到收齐所有文件分段之后,才能进行拼装和验证,从而获得所含的记录信息,这首先会引起等待的时间开销.其次,如果在传输中文件分段丢失,则依据具体实现,会引起对丢失分段甚至所有分段的重传,由这种重传所造成的延迟则可能更大,进一步加重了文件分段带来的延迟问题.
对现有方法冗余度高的一种可能的改进方法如图2.该方法借助ZIP、RAR、ARJ等无损的通用压缩工具来进行文件压缩,降低文件接口数据冗余度,但这仍然无法解决由文件分段传输所带来的延迟问题.
3基于扩展FAST的文件接口数据交换方法
FAST是FPL在1995年提出的、针对FIX消息流的一种压缩和传输方法.FIX消息流消息一般由消息头、消息体和消息尾三部分组成,其中每部分由"tag=value"加分隔符的基本字段格式组成,其中消息尾为两个字节的验证码.FAST针对FIX消息,在将FIX消息流序列化为字节流的过程中,通过"字段编码"和"传输编码"的处理来利用消息数据间的逻辑关系,将字段数据编码为二进制字节流,通过这样的处理可以大大降低字段所含数据的冗余度.譬如对于序号类别的字段来说,可以使用"递增"的规律来总结字段数据的逻辑联系,这样就无需在传输每条消息时都对该字段数据内容进行发送.