sjk000
作者sjk000·2017-07-10 14:17
其它·456

【交易技术前沿】并行证券核心交易仿真系统设计与实现 / 徐广斌

字数 11303阅读 2712评论 0赞 1

本文选自《交易技术前沿》第二十四期 (2016年9月)。
徐广斌
上海证券交易所 资本市场研究所
Email:Gbxu@sse.com.cn

摘 要:本文根据公开资料,比照并行化证券核心交易系统,首次设计和实现了单机环境下的并发核心交易仿真系统iMatch。在该系统下,证券也被相应划分为不同的产品集合,以并发方式撮合处理属于不同证券集合的交易指令。根据实测,iMatch支持多种竞价模式和行情功能,只需数分钟即可完成一个交易日的订单撮合,并支持并行扩展,为相关金融实验的开展提供了基础。

1引言

现代金融市场的复杂性远远超过经典的金融经济学理论发展的水平。因此近年来,在进一步在原有研究范式中探索理论突破和创新之外,人们不断尝试引入新的研究方法来推动金融经济学发展,这包括成为当下学界关注热点的不完全市场理论、行为金融学、信息不对称理论、博弈论等。其中,借助当今信息技术强大优势,以金融经济学理论为指导,以计算建模和仿真为技术基础的计算金融方法,也成为一个新的重要分支。

计算金融可大致分为有计算代理和无计算代理的两种实验研究方法:前者主要利用人工智能技术,使用智能代理(Agent)对每一个市场主体进行仿真建模,以若干智能代理的自主行为结果总和所形成的市场表现作为对市场真实情况的虚拟。而后者主要是将真实的市场数据集输入预设的功能模型或检验场景,并借助各种指标来刻画不同模型下的市场运行特征,以期为真实市场情况的预判提供依据。由于目前人工智能技术尚处于弱AI阶段,并无实质性突破,拟人效果差,而且对于我国参与者过亿的证券交易市场,建模复杂度过高,所需算力巨大,采用前者来进行市场仿真还难以获得较好的结果,因此在实践中,对证券市场的金融实验研究,往往还是诉诸于后者的方法来开展。

现代证券市场,大多数的交易均是通过集中化的电子化市场进行,这要有一套功能完备、运转高效的技术基础设施作为支撑。在这样的技术基础设施中,核心交易系统起到“心脏”的作用:投资者的委托订单通过券商计算机交易系统传递给证券交易所的核心交易系统,再由证券交易所的核心交易系统进行接收,并对全市场的交易指令进行实时配对处理。如果买卖双方有合适的价格和数据,核心交易系统便自动撮合成交,成交结果和行情被实时发送到投资者的终端设备。上海证券交易所在开业伊始就采用了这种全电子化的交易方式,运行20多年来,上交所已经累积了大量的真实交易数据,这为开展前述的相关金融实验提供了丰富而且得天独厚的素材。

上交所当前使用的新一代交易系统(NGTS)于2009年底正式上线,核心交易系统在个人账户总数过亿、个人持仓记录近8000万的业务需求下,对所有委托指令按价格优先、时间优先的原则自动撮合配对成交,日订单处理能力达到委托1.8亿笔,成交1.8亿笔,每秒10万笔。为达到此业务性能需求,NGTS采用了将证券产品划分到不同证券产品集合(set),并按“主备双活”方式,由不同主机负责对属于不同证券产品集合的交易指令进行并行撮合的工作方式。这突破了以往全市场订单不分标的,完全按照进入系统的时间顺序逐一排队进入单一撮合器进行撮合的做法,不同set的订单不用相互等待处理,大大提高了核心交易系统整体的处理效率和处理容量。

为适应并行交易系统技术环境下交易撮合方式的新调整,更好地开展计算金融实验,本文根据公开资料,比照上交所NGTS的工作方式,首次设计和实现了单机环境下的并发核心交易仿真系统iMatch。在该系统下,证券也被相应划分为不同的产品集合,并由不同的撮合线程来负责处理属于不同证券集合的交易指令。根据实测,iMatch支持多种竞价模式和行情功能,在相应设定下可获得与历史数据完全一致的撮合结果。iMatch在普通个人工作站电脑上平均撮合速度超过10万笔/秒,最高超过100万笔/秒,只需数分钟即可完成一个交易日的订单撮合,并支持并行扩展,为后续计算金融实验的开展提供了较好的基础。

2 总体结构

QQ截图20170710140216.png

QQ截图20170710140216.png

iMatch仿真系统主要由输入模块、撮合模块和输出模块三部分构成,各模块间借助无锁的缓存队列和环形队列进行数据交换。其中,缓存队列主要保存交易指令本身的数据结构。环形队列主要用于在不同模块之间交互记录的序号(位置)信息。如对于委托指令(订单)的处理,输入模块会根据队列设置长度,每批从数据文件中读入512-1024MB大小的订单记录处理,而输入模块为将订单传递给撮合模块在,则需要将序号信息放入环形队列,等待撮合模块自动取出,并依据序号来获取订单信息。

输入模块主要负责从数据文件中读入订单和撤单指令,并在进行必要的前端检查后,将队列号、指令类型及指令在相应队列中的序号插入到不同证券产品集合的环形队列中,等待相应撮合线程来处理。同时,输入模块还分别轮询人工输入UI以及自动化下单服务器线程的环形队列,如果队列中产生新指令且经前端校验合法,则输入模块也将各自队列、指令类别、序号插入到与撮合模块间的环形队列,等待撮合模块进行处理。输入模块还负责在系统初始化时对证券参考数据加载,其中一项主要的内容就是各证券的历史委托量,系统在初始化时将依据负责均衡的原则将证券产品分配到不同的产品集合中。撮合模块由多个撮合线程构成,以并发的方式处理属于不同产品集合的指令,具体工作方式为:不断轮询与输入模块间的环形队列,如有新指令产生,则找到相应的缓存队列,并从中获取指令。如果是新订单,则根据竞价模式设置,撮合模块决定新订单直接插入到相应的订单簿中(集合竞价),还是和订单簿中对手方订单进行撮合匹配(连续竞价),指令处理的结果、产生的成交都被插入到相应的缓存队列中,其序号被插入到撮合模块与输出模块之间的环形队列中,等待以合适的方式输出。

输出模块和输入模块间使用环形队列通信,在闭市信号发出之前,它不断轮询环形队列,并将结果输出,输出的方式主要有屏幕打印和文件输出两种,根据需要也可改为消息广播或多播。输出模块还包括一个行情线程,该线程不断轮询所有证券产品的订单簿,根据订单簿最新更新时间,每30秒钟输出订单簿的档位状态,目前缺省输出十档行情,也可按需输出指定若干档行情,输出方式为屏幕打印和文件输出。

为更便于评估金融实验的结果,仿真系统内嵌了部分统计功能,具体实现利用了共享的数据结构,各模块特别是撮合模块在具体过程中调用相应的统计函数对共享数据结构进行更新。目前系统统计功能包括市场波动性、流动性、交易效率等市场绩效方面的指标,未来拟加入围绕账户为主要维度的分析和统计。

3 系统实现

3.1交易指令

目前iMatch证券仿真交易系统主要支持股票类证券产品买卖,其工作方式与NGTS类似,完全采用订单驱动方式,输入端交易指令主要是订单指令和撤单指令,订单类型进一步分为限价订单、最优五档即时成交剩余撤销申报和最优五档即时成交剩余转限价申报。从内容来看,订单指令主要包括证券账号、证券代码、买卖方向、买卖数量、订单类型、委托价格、报单时间、PBU等要素;撤单指令主要包括订单编号、撤单时间,以及用于校验的证券代码、证券账户等。输出端除确认指令,主要是成交指令,其要素包括成交编号、买卖双方订单号(双向2条记录)、买卖方向、申报数量和价格、成交数量和价格、申报和成交时间、证券账号、证券代码、完全成交标志。行情指令包括发送时间、证券代码、订单簿更新时间、N档(根据参数设置、无上限)买卖数量和价格、昨收(参考数据)、开盘价、最高价、最低价、最新价、成交笔数、成交量、成交额、委买量、委卖量、收盘价(下午三点收市以后最后一幅)。

除人工输入和自动化下单输入,所有历史交易指令均由输入模块从文件中载入各自的队列结构,再由输入模块分批传给撮合模块处理。对于较大的订单数据(几GB到几十GB之间),根据队列设置大小,需要分配予以载入;对于较少的撤单数据,在内存空间大小允许时,可给予一次载入。

3.2订单簿

iMatch中撮合模块负责订单簿的维护。每个撮合线程负责维护所属产品的订单簿。也即,对于上证A股,采用6个并发线程的撮合模块,每个线程需要维护近200个订单簿。订单簿头节点采用静态数组存储,而订单簿本身使用双向动态循环链表存储包含的档位节点。每个档位节点包括买卖两个方向的订单链表,该链表也使用双向动态循环链表存储,订单按时间先后顺序插入。在档位节点中分别有指向该链表头部和尾部的指针。由于订单簿在档位和订单两个维度上均使用了动态数据结构,因此尽管在查找效率上有所让渡,但订单簿的容量得以大大增强。该结构在时间和价格上分别保持有序的安排,也提高了实施“价格优先、时间优先”原则的撮合的进行。

初始时所有订单簿的档位均为空链表,在订单簿插入订单时,按照价格降序生成并插入相应的档位节点。如果无档位节点,则生成相应节点,并按高低序插入档位链表的适当位置,相应的订单节再行插入档位节点的买单链表或卖单链表。如果有档位节点,则直接在该档位节点相应的买单链表或买单链表的尾部插入新订单节点。档位节点中有指向最优买卖价格档位节点的指针,因此如果新订单的进入造成订单簿最优买卖价的更新,则在插入新的档位节点后,还需要更新对应的指针。

3.3竞价模式

与NGTS一致,iMatch仿真交易系统支持当前市场使用的两种竞价方式:集合竞价方式和连续竞价方式。无论在那种模式下,竞价均按价格优先、时间优先的原则撮合成交。成交时价格优先的原则为:较高价格买入申报优先于较低价格买入申报,较低价格卖出申报优先于较高价格卖出申报。成交时时间优先的原则为:买卖方向、价格相同的,先申报者优先于后申报者。先后顺序按交易主机接受申报的时间确定

集合竞价方式是对一段时间内接受的买卖申报一次性集中撮合的竞价方式。根据上海证券交易所目前的交易规则,采用竞价方式交易的,每个交易日的9:15到9:25为开盘集合竞价时间,9:30到11:30,13:00到15:00分别为上下午的连续竞价时间。集合竞价可具体分为收单、定价和匹配三个步骤。9:15到9:25(含)为订单簿收单阶段,9:25结束时订单簿结束收单,核心交易系统根据订单簿包含的订单确定唯一成交价格。集合竞价成交价格的确定原则为:1、实现最大成交量的价格;2、高于该价格的买入申报与低于该价格的卖出申报全部成交的价格;3、该档位发生成交,与该价格相同的买方或卖方至少有一方全部成交的价格。两个以上申报价格符合上述条件的,使未成交量最小的申报价格为成交价格;仍有两个以上使未成交量最小的申报价格符合上述条件的,其算术平均价格为成交价格。一般情况下,上交所个股的开盘价按此方式通过开盘集合竞价产生,无法产生价格的,开盘价由后续竞价阶段的第一笔交易产生。

对于能产生成交价格的集合竞价,所有交易以该成交价格成交。订单簿中订单以此价格进行集中匹配。所有买方有效订单按报单价格由高至低的顺序排列,限价相同者按照订单申报时间(进入核心交易系统的时间)先后顺序排列。所有卖方有效订单按报单价格由低至高的顺序排列,限价相同者按照订单申报时间(进入核心交易系统的时间)先后顺序排列。依次逐笔将排在前面的买方委托与买方委托配对成交,也即按照“报价优先、时间优先”的成交顺序依次成交,直到订单簿不交叉为止,即所有卖单的价格均高于所有买单的价格。所有被匹配的订单均按成交价格成交,没有被匹配的订单继续进入后续的竞价阶段。

连续竞价是对买卖申报逐笔连续撮合的竞价方式。其特点是,每一笔新订单进入交易系统后, 直接与订单簿中对手方订单进行撮合:能成交者即刻予以成交;不能成交者进入订单簿排队等待后续机会成交;部分成交者剩余部分进入订单簿等待后续成交机会。根据上海证券交易所目前的交易规则,连续竞价成交价格的确定原则为:1、最高买入申报价格与最低卖出申报价格相同,以该价格为成交价格;2、买入申报价格高于即时揭示的最低卖出申报价格的,以即时揭示的最低卖出申报价格为成交价格;3、卖出申报价格低于即时揭示的最高买入申报价格的,以即时揭示的最高买入申报价格为成交价格。按成交原则达成的价格不在最小价格变动单位范围内的,按照四舍五入原则取至相应的最小价格变动单位。

除限价订单外,系统接受下列方式的市价申报:1、最优五档即时成交剩余撤销申报,即该申报在对手方实时最优五个价位内以对手方价格为成交价逐次成交,剩余未成交部分自动撤销;2、最优五档即时成交剩余转限价申报,即该申报在对手方实时五个最优价位内以对手方价格为成交价逐次成交,剩余未成交部分按本方申报最新成交价转为限价申报;如该申报无成交的,按本方最优报价转为限价申报;如无本方申报的,该申报撤销。根据《上海证券交易所市场质量报告(2016)》 [1],全市场绝大多数交易都使用了限价订单。

QQ截图20170710140743.png

QQ截图20170710140743.png

与深交所不同,上交所在收市时没有设置一个3分钟的收市集合竞价来产生收盘价,而是保持连续竞价模式到结束。证券的收盘价为当日证券最后一笔交易前一分钟所有交易的成交量加权平均价(含最后一笔交易)。当日无成交的,以前收盘价为当日收盘价。

不同竞价模式的代码实现了模块化,因此在实验仿真时可以设置不同次序和不同时长竞价阶段,既可以与上交所真实竞价规则相同,又可以灵活配置为深交所真实竞价规则,还可以灵活配置为多次集合竞价或连续竞价/集合竞价混合模式等。

3.4开发实验环境

iMatch使用Visual Studio2013 C++开发,是面向单机的仿真实验平台,开发和实验设备平台为惠普Z820个人工作站,其配置如下:HP Z820 850W 88% Efficient Chassis,HP Z820 Country Kit,HP Single Unit Packaging,Windows 7 Professional 64bit OS Chinese (支持最大192GB内存),No Factory OS Recovery Media,Sobey Video Editing SW,Intel Xeon E5-2650 v2 2.6 1866 8C CPU,HP Single Processor Air Air Cooling Kit,64GB DDR3-1866 (4x16GB) 1CPU RegRAM,NVIDIA Quadro K600 1GB GFX Spl,3TB 7200 RPM SATA Hard Drive,HP 14-in-1 Media Card Reader,HP IEEE 1394b FireWire PCIe Card。

iMatch的所有输入和输出数据均采用.csv格式文件记录,采用纯内存操作,未使用任何第三方数据库。除直观、方便外,这可保证处理的效率,还方便了后期统计分析和二次加工。

4 实验案例:竞价模式选择对A股市场绩效的影响

2015年,我国股票市场经历了异常波动。针对这轮波动,习近平总书记在中央经济工作会议上指出“不成熟的交易者、不完备的交易制度、不完善的市场体系、不适应的监管制度”,“资本市场发展不成熟是一个重要原因”。2016年,权威人士又指出股市应回归到自身功能定位,要立足于恢复市场融资功能、充分保护投资者权益,充分发挥市场机制的调节作用,加强发行、退市、交易等基础性制度建设,切实加强市场监管,提高信息披露质量,严厉打击内幕交易、股价操纵等行为。

中国股市的基本功能主要是服务企业融资、投资者投资,对资产进行定价,促进资源的优化配置和企业治理水平提高。以证券市场微观结构的角度,交易机制作为影响价格形成过程的内生变量,会对市场流动性、价格波动性和市场效率产生影响。尤其是对于我国这种个人投资者占绝大多数的市场,合理设计交易机制对保障股市基本功能充分、有效发挥,维护市场的公平、公正、公开有十分重要的意义。需要指出的是,由于投资者结构、投资文化的不同,不能生搬硬套欧美证券市场的机制体制,而应注重借鉴情况相近且发展良好的日本、韩国、台湾等东亚市场,这些市场总体上产品丰富、制度完备、交易活跃,发展经验更值得A股市场借鉴。

价格发现机制是交易机制最核心的内容。从国内外各证券市场实践看,使用最为广泛的证券交易模式是集合竞价模式和连续竞价模式。在连续竞价市场,交易在交易日的各个时点连续不断地进行逐笔撮合,只要存在符合订单匹配规则的对手方订单,交易就会发生。与连续交易相反,集合竞价采用间歇性撮合,投资者的买卖委托不能立即成交,而是在某一规定的时间,由交易机构将订单集中起来,并在特定的时点按照同一价格进行匹配成交。

境外不少文献对集合竞价制度和连续竞价制度进行了实证研究,例如Amihud和Mendelson(1987, 1991a和1991b)。Friedman(1993)使用 Mendelson's(1982)有关集合竞价和连续竞价的模型,通过实证研究比较了连续竞价制度和集合竞价制度对市场效率和交易量的影响,发现集合竞价市场具有与连续竞价市场同样的信息效率,配置效率也几乎一致,连续交易的交易量更大, 而集合竞价市场的深度更大。Domowitz和Wang(1994)采用模拟技术证明,连续竞价市场比集合竞价市场波动性更大、买卖价差更小,并且交易量更大。

Amihud(1997)研究了以色列的特拉维夫证券交易所交易制度的改变。该交易所在1987年12月从单一集合竞价模式改为集合竞价开盘-连续竞价模式,研究发现连续竞价市场的流动性和效率都优于集合竞价市场。 Lang和Lee(1999)研究了台湾证券交易所交易制度的改变。该所在1993年期间多次改变了集合竞价的频率:1993年9月由原来的2分钟变为90秒,1993年11月又变为根据交易量不同每90秒执行一次或两次交易,实证研究后发现,连续竞价市场流动性和波动性都高于集合竞价市场,但是对市场效率的影响无法确定。Chang等(1999)的看法与Lang和Lee(1999)相反,Chang等(1999)也是利用台湾证券交易所的数据,用台湾证券交易所1993年集合竞价的实际委托数据模拟连续竞价,然后用集合竞价的数据和模拟产生的连续竞价数据进行比较分析,结果发现集合竞价的波动性更低,而且流动性和效率也有提高。

目前,全球主要的交易所均采用连续竞价交易制度进行盘中交易,如纽约证券市场、Euronext、东京、上海、深圳、香港、法兰克福等。而集合竞价则常被用于开盘价与收盘价的形成,如台湾、纽约、东京、上海、深圳等股票市场。捷克、拉脱维亚、立陶宛、以色列、波兰、马来西亚等股市,以及东京大阪期货市场、法国与德国股市交易不活跃的股票,也曾采用盘中多次集合竞价交易制度。除此之外,集合竞价还被广泛用作市场产生波动性中断后恢复竞价交易时的价格发现手段。

2004年以前纳斯达克交易所没有采用开盘集合竞价机制,在上午9点30分直接进入连续竞价交易,开盘价(NOOP)为第一笔交易的成交价,而纽交所由指定做市商组织开盘集合竞价,电子化订单、场内交易商订单均进入集合竞价,当买卖订单不均衡时,指定做市商一般会以做市的方式吸收过剩的订单。从2004年以前的开盘情况来看,纳斯达克开盘前后的波动幅度显著高于纽交所。为缓解开盘大幅波动,纳斯达克于2004年11月引入了自动化的开盘集合竞价机制(Opening Cross)。从统计结果来看,2004年以后纳斯达克的开盘波动已经与纽交所没有显著差别,而纽交所经常由于做市商的干预发生推迟开盘的情况。此外,以色列、波兰、捷克、立陶宛等股市、台湾期交所的盘中交易,在以连续竞价方式替代集合竞价方式后成交量和波动性都有所上升。

值得一提的,台湾证券市场至今仍然采用集合竞价作为盘中交易的主要价格形成方式。台交所从1987年开始使用电脑辅助人工进行交易,1993年改为全自动撮合方式,每日早上8:30开始接受订单,9点撮合。盘中、收盘均采用集合竞价,每2分钟撮合一次。台交所在当前9月将撮合间隔分别改为90秒和45秒,后又在11月改为每90秒撮合2次:每85秒撮合一次,5秒后若有符合成交条件的订单,则再进行第5次撮合。台交所在2002年7月到2015年8月期间分别作出调整,将撮合间隔逐步缩减到47秒、43秒、40秒、27秒和25秒。后又在2013年7月、2014年2月和2014年12月分别将撮合间隔调整到15秒、10秒和至今的5秒。台湾期货交易所在1998年7月开始正式运行,刚开始时采用集合竞价进行盘中交易,后分别在1998年12月和1999年12月进行调整,将集合竞价间隔从最初的30秒改为20秒和10秒。最终,台期所于2002年7月将盘中竞价由集合竞价改为至今的连续竞价方式。

根据北京大学刘玉珍教授在上证联合研究计划相关研究课题中的研究,台交所和台期所逐步缩短竞合竞价撮合间隔,乃至台期所最后改竞合竞价为连续竞价,主要原因是为了活跃成交、提高交易所交易量。根据刘教授的分析,集合竞价主要有以下四个优点:1)波动性较低;2)流动性较高;3)在非专业投资者为主的市场价格效率更优;4)信息不对称程度较高,投资者恐慌程度较高,或发生重大政治经济事件时,更有利于维持市场的正常运作;连续竞价主要有以下三个优点:1)等待交易时间较短;2)可形成更大的成交量:3)在以专业投资者为主的市场中,价格反映信息的速度较快。反之,刘教授认为集合竞价的缺点在于:1)参与者等待交易完成的时间较长;2)可形成的成交量较低;3)在专业投资者为主的市场,价格反映信息的速度较慢;连续竞价的缺点在于:1)波动性较高;2)流动性较低(交易对价格的冲击较大);3)在以非专业投资者为主的市场,效率较低;4)在信息不对称较高、市场较恐慌,以及发生重大政治经济事件时,市场难以维持正常运作或难以获得较好的市场运行质量。基于这样的分析,刘教授认为台湾模式的分盘集合竞价机制可以解决市场波动性较大的问题:分盘集合竞价机制定价效率较高,可以最大程度减少激进报价订单产生的价格冲击,可以缓解成长性上市公司流动性不足的问题,还可以有效减少抢先交易和市场操纵行为。根据台湾的经验,分盘集合竞价会降低交易效率,这也是作为平衡,台交所逐步缩短撮合间隔的原因,但出于对机构投资者和个人投资者利益和公平性的权衡,分盘集合竞价削弱了高频交易者的速度优势,降低了高频交易对市场秩序的影响.

从境内来看,利用实证方法研究比较连续竞价模式和集合竞价模式对A股市场影响的研究还相对较少。因此,本文基于上交所A股历史交易数据,使用iMatch仿真交易系统,对两种竞价模式对A股市场绩效的影响进行了基于实证的比较研究。

本研究主要利用A股高频交易数据进行了波动性、流动性、定价效率等与市场绩效相关的特征值的实证比较。需要说明的是,本实验主要比较采用不同竞价模式的交易机制本身对市场整体绩效的影响,因此使用了相同的交易指令输入流。为更好评估在不同的交易连续程度下,对市场绩效造成影响程度的不同,除连续竞价外,我们还分别测算了按一分钟、五分钟和十分钟间隔进行日内多次集合竞价下的情况。

选取2016年4月某平稳交易日数据作为研究对象,剔除非A股产品交易数据、交易异常(停牌、除权除息等)相关标的,以9:30-15:30的指令数据作为输入,按照设定的4种竞价模式进行处理,并观测结果。对于大部分快照类指标,从9:30开始,以30秒为周期进行指标数据的取样,算出全天个股均值后,再计算全市场均值;对于以交易日为计算周期的超额波动率和定价效率指标,则在全天收盘之后计算个股指数值后,再计算全市场均值。本文通过实验,对市场波动性、流动性、订单效率等指标进行了计算,部分结果如下表。
QQ截图20170710140926.png

QQ截图20170710140926.png

其中,订单深度主要衡量市场流动性,订单深度越大,市场流动性越好。另一方面,市场流动性越好,抗操纵的能力越强。本节所指的订单深度是快照时刻各个股订单簿快照的十档买卖档位报单金额总和,全市场在全天的一个平均水平,单位为元。从实验结果可知,集合竞价比连续竞价的订单深度要大,其日内抗操纵能力要较连续竞价模式强。

总成交量是全市场成交个股股数的加总。总成交量越大,表明在同样的订单流下,连续竞价比集合竞价产生更多的成交。这种结果差异的原因,是因为在具体撮合时,集合竞价收集了更多的信息,因而可以产生更为“公平”的价格结果,而连续竞价撮合时决策依赖于的信息相对少,因而总体上有更多相对价格分歧更大的买卖意向被匹配,而其中的一些委托在信息更加充分时可能因为“有失公允”而不被成交。从结果来看,总成交量下降并不严重,这也说明这种情况发生的占比实际上并不高。

订单平均成交时间是全市场订单从申报时间到成交时间的时间差的平均水平。订单平均成交时间越短,市场撮合的效率就越高。实验的结果与直观判断一致,两种竞价模式下,连续竞价模式能让投资者的订单更快获得成交。

超额波动率用于衡量市场的波动率,其计算公式为|(最高价-最低价)/昨收价-|(今收价-昨收价)/昨收价||。超额波动率是衡量由噪声交易、交易机制等因素导致的临时波动性的近似指标。根据本文的实验结果,集合竞价的超额波动率要优于连续竞价模式,这也反映了集合竞价在抑制临时波动性方面要优于连续竞价。

实现价差是全市场平均每股申报价格和成交价格之间的差异。由于集合竞价收单时间长,收集信息多,因此成交价格平均上比投资者下单时价格产生更大的差异。也说明尽管在集合竞价机制下,产生结果在总体上更公允,对个体投资者的错价纠偏更强,但另一方面,也为投资者的 准确估值和风险管理带来更大难度。

报价偏离度衡量加权申报价格和市场最新成交价之间的差异程度。根据实验结果,集合竞价的报价偏离度要优于连续竞价。这反映了集合竞价的成交价格是基于更多信息得到,价格有效性更高、相对更稳定,也就是说集合竞价下的价格即能更好反映全体投资者在一段时间内对股价的群体性估计。

定价效率(有效性)衡量收盘价与当日均价绝对差距与该日均价的比率,其值越小,表明收盘价越接近市场当日平均价格,市场当日定价的指导意义更强,是反映市场定价有效性的指标之一,其计算公式为|收盘价-日成交均价|/日成交均价。根据实验结果,集合竞价的定价有效性要略优于连续竞价,而且撮合频率越低,其有效性越高。

从本文的实验结果可知,就交易机制本身对市场绩效的影响而言,集合竞价比连续竞价具有更低的波动性、较好的市场深度、略优的定价效率,适合交易不活跃、价格波动性大(或处于波动时期)、参与者定价能力弱的标的,而连续竞价比集合竞价具有更高的订单执行效率、较高的成交量、较低的交易系统压力,适合交易

流动性好、市场稳定、参与者定价能力强(或有指导定价,如指定做市商)的标的。

5 小结

经过测试,使用6线程撮合iMatch在前述的惠普Z820型号工作站上仿真上交所真实交易规则,其性能为:开盘期间的集合竞价处理,订单处理速度平均为30-40万笔/秒,最高到80+万笔/秒;连续竞价阶段订单处理速度平均为10-20万笔/秒,最高达到100+万笔/秒,时间损耗的瓶颈在于数据文件的IO。从交易日的角度,根据交易量具体大小的不同,连续竞价撮合一个交易日订单的时间在1-5分钟;依据撮合频率的不同,多次集合竞价撮合一个交易日订单的时间在3-13分钟。总体上,iMatch的性能已基本可满足大部分仿真交易实验的需求。

目前iMatch主要实现了核心交易系统的撮合功能,后续为便于对市场参与者的行为分析,可进一步加入对证券账号的委托行为统计和多日时序数据分析的功能。在性能上,进一步改进可按“空间换时间”原则,将set动态结构改为两维map索引的静态链表实现。

6 参考文献

[1] 徐广斌,程琬芸,苏正华。上海证券交易所市场质量报告(2016)。

文章转自微信公众号:上交所技术服务
内容仅供参考。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

X社区推广