woojean的博客 模仿、熟练、超越

《交易系统:更新与跨越》读书笔记


序 一

1990年12月19日上午11时,中国证券市场划时代的第一笔证券交易——第一笔由计算机自动撮合的股票交易——在上海证券交易所交易大厅隆重诞生。交易系统是交易所的安身立命之本。

基于我国资本市场发展的长远目标以及上海证券交易所未来在全球资本市场中的重要位置,上交所于2002年作出了启动新一代交易系统建设的重要决策。

本书是中国第一不研究证券交易系统的专业著作,填补了这一领域的学术空白。

序 二

在全球范围内,各国交易系统的技术水平,都是评价其资本市场能力的重要指标,与原来的系统相比,新一代交易系统的交易处理能力有大幅提高,峰值订单处理能力超过80000笔/秒,平均订单时延较原系统缩短了30%以上,日成交容量不低于1.2亿笔,相当于1.2万亿元的日成交规模,是历史最高成交量的4倍。

新一代交易系统从2001年立项到2009年成功上线花费了整整八年时间。

上交所共交付源程序代码约100万行,编写交付文档约160份,上线前,还制定了106类技术故障的应对措施和系统回退方案。

系统上线工作涉及面广,除了上交所之外,还涉及中国证券登记结算公司、证券公司、基金公司、保险资产管理公司、托管银行等200多个机构和数千名业务、技术人员,其中的组织协调的难度,超乎常人想象。

上交所新一代系统彻底解决了核心交易系统的自主知识产权问题。

前言

证券交易业务是资本市场的核心业务。

交易业务必须支持大量用户并发处理,且在极短的时间内,能够以事务处理的方式完成,并且由于保护投资者利益和保证公开、公正、公平为监管部门最重要的考量,所以市场环境必须满足高安全性、高可靠的需求。

从技术系统角度来看,基本业务功能可概括为如下六点:

  • 把投资者的订单从其所在地址传送到交易所所在地址;
  • 校验投资者订单;
  • 按照交易机制,对订单进行撮合匹配;
  • 把订单执行情况反馈到交易者;
  • 把订单执行情况和成交情况送结算系统;
  • 把市场行情信息向投资者公开;

2001年8月,上海证券交易所立项规划设建设新一代交易系统,经过三年多的前期调研和规划,两年多的开发,两年多的并行运行和测试后,于2009年11月切换上线。回顾2009年全年,上海市场的总交易笔数和总成交金额已经进入全球三甲。第一是纳斯达克证券交易所,第二是纽约证券交易所。

第一章 多见阙殆:2007年前的全球著名交易系统调研

纵观交易所的分布与关系,可以发现证券交易所是地缘政治的产物,创立之初基本上是一个地区或者一个国家设立几个,然后通过竞争,逐步合并到国家级,然后再进一步在盟国间联盟,比如西欧多个交易所合并为泛欧交易所的过程,以及泛欧交易所和纽约交易所的北大西洋联盟等等。

美国由于共和传统以及各证券经纪商的诉求,在纽约证券交易所采用的是专家撮合制度,在纳斯达克交易所采用的是做市商报价制度;而欧洲大陆传统的集权模式,则导致市场主要采用“自动对盘集中撮合”制度。

境外交易业务是分散和集中共存的模式,是做市商和自动撮合共存的模式,中国交易制度目前还是以自动撮合为主的模式,其他模式刚刚进入发展初期。

虽然纽约证券交易所不是历史最悠久的交易所,但是是当前规模最大的交易所。

纽交所的起源可追溯至1792年5月17日,24个在街头买卖股票的经纪人在华尔街签署了著名的《梧桐树协议》,承诺以如下方式交易证券:

  1. 只与在梧桐树协议上签字的经纪人进行有价证券的交易;
  2. 收取不少于交易额25%的手续费;
  3. 在交易中互惠互利; 这24人形成了一个独立的、享有交易特权的有价证券交易联盟;

纽约证券交易所由于利益分配的原因,多年来一直主要采用专家的方式进行人工撮合,但是在其他方面应用技术推进自动化是不遗余力的。

1918年,以第一次世界大战作为转折点,美国从债务国转变为债权国,同时,纽约超过伦敦,变成了世界最大的金融中心。在随后的十年里,超过1700个美国之外的股份公司在纽约进行了首次发行。

纽交所在技术系统方面,奠定了最重大的共享之一是:股票报价器(Ticker)。它确立了一种行情显示和发布的模式,被后来世界各地的证券市场普遍采用。

在股票报价器发明之前,主要的行情发布渠道是:报信人骑自行车在纽约证券交易所和证券公司之间来回穿梭。而发明应用之后,各地的证券经纪一周交纳6美元就可以获得延迟15分钟的行情。股票报价器的设计对电报通信技术、打印技术和纸带强度3个当时的新兴技术提出了巨大挑战。而且,通过股票报价器的迅速推广,把电报技术的应用提到了一个新的高度。

电报、电话、计算机,每当有效率更高的通信方式出现,都会很快被应用到证券行业。

纳斯达克NASDAQ是全美证券交易商协会自动报价系统(National Association of Securities Dealers Automated Quotation)英文的首字母缩写。

纳斯达克证券市场为报价驱动模式,采用多做市商制度,即它的每一个上市公司都有许多做市商为其股票做市,每个做市商根据具体情况实时报出其做市股票的买价和卖价,并将满足报价的定单进行配对成交,对于比与它自身报价更为优越的报价定单,做市商可以有两种选择:修改自身报价以满足更优定单或将该笔定单转送给其他做市商。

纳斯达克证券市场是全自动化的电子市场,它没有证券交易大厅,纳斯达克把分布在各地做市商的系统连接在一起,每个做市商的报价和股票成交信息都通过纳斯达克证券市场的网格系统和计算机系统进行传输和处理,经过整合后再向市场发布。

第二章 拙守于前:上交所新交易系统核心平台选型回顾

对于任何一个组织,硬件设备从购入日开始就步入折旧通道,价值随着岁月的流逝,逐步归零。真正有价值并且逐渐增值的是自身的应用系统源代码、文档、管理流程以及客户数据等软件。

在项目规范方面,上交所按照“可回溯、可审计、交叉验证”的方式来推进。通过完善文档的编写、整理、归档工作,控制团队“只做纸上写下来的工作”,来保证工作在任何时候都可回溯与可审计。

在技术追求方面,上交所按照“自主开发、自主维护、自主管理”三个自主的思路进行规划和布局,力求对系统层面、应用层面的架构设计和技术细节全面掌握和控制。

证券业务严重依赖信息技术,证券业务与银行业务不同,证券买卖机会稍纵即逝,不能下订单或者不能撤销订单可能直接意味着经济损失;而银行业务中面对的可能只是排队时间长,业务处理缓慢的问题。

与全球银行业普遍使用IBM的大型机作为系统平台类似,在全球证券业,大量使用HP的设备作为系统平台。

银行用IBM,证券用HP

上交所新交易系统在系统总体架构设计、网络设计与部署、应用程序开发、系统测试各个方面做到了自主管理、自主开发、自主维护。但是在硬件设备、操作系统和网络设备方面还依赖于第三方设备厂商。如何进一步加强对这几个方面的掌控,也是一直思考的要索。虽然在2002年的时候,出身于开源社区的Linux系统在机群、文件系统等方面的支持还略显幼稚,但是,由于使用最为广泛的硬件平台Intel X86,规模效应突出,发展极为迅速,所以,除了重要计算机厂商的硬件和操作系统发布之外,我们也一直在关注着开源社区的动向。

我们参考了现代化的操作系统的设计,考虑在不同硬件平台之间的移植性,通常都使用“硬件抽象层HAL”这样的分成设计概念,在设计新一代交易系统的时候,采用了“操作系统抽象层OSAL”分成设计概念,把应用系统的大部分逻辑与操作系统隔离开来,使得可以在未来以最低的成本适应设备和操作系统的发展。

第三章 形而上者:大型系统建设中的技术管理

“人多力量大”并不是绝对的,“人多成本高”却是一定的。如果是无序的人多,可能带来的合力极小,而要保持大家有序,需要相当多的沟通成本。处理不好的情况下,所增加的用于沟通的工作量会完全抵销对原有任务分解所产生的作用,很可能把本可以快速完成的工作变得需要更长的时间才能完成。

大部分程序员认为他们自己比其他人更优秀,他们可能抛弃原有的模型、公用库而用自己认为更好的模型和私有库,导致不一致的出现,而且这种替换很难立刻被发现。

人们往往容易低估在测试小组发现问题后,开发小组定位问题上所花的时间,容易低估用来追踪一个潜伏很久的漏洞所花的时间。并且由于测试工作是整个项目或者子项目过程中,时间顺序上排到较后面的工作,那么当面临任何进度方面的压力时,最容易被牺牲的工序就是测试。

屈指算来,新交易系统所花在独立测试上的时间占了总项目时间的一半。

有研究表明:“在系统稳定后,应该投入开发团队内1/4的成员进行公用库函数的维护和发展”。

公开的原则是保持整个系统的一致性的“法理”,需要反复强调、定期固化和发布,最简单的原则包括,函数调用中的参数的顺序,错误代码的定义等等,复杂一些的原则则涵盖增加一些必要的抽象层次以降低实现与接口的耦合程度等设计思路。

如果用户经常提出需求变动,那么很有可能是没有作好需求分析,改变的是理解程度,而并不是需求真的变了。

设计师容易制造很酷的,但是令用户讨厌的蛇足。

知识和技巧需要日积月累,掌握内在精髓需要挫折和顿悟,不存在任何工具使得我们可以走捷径,所以我们需要驾驭工具,但是不能依赖工具。在使用工具的过程中,最好的工具是能让你意识不到它的存在的工具,而差劲的工具总是让使用者不能专心致志于他的真实目的,工具不断地提醒自身的存在。

第四章 巧夺天工:应用架构设计与持续优化

新交易系统中提高单一撮合吞吐率的关键技术是打包,就是设定两个要素来控制事务处理的批量启动,一个是时间片到,另外一个是收集了足够多的处理请求后打为一个包处理。注意,这个时间片的概念,对延时指标是略有伤害的,所以我们只能设定10毫秒这样数量级的时间片。

在新交易系统中改进了成交确认送达客户的机制,从“查询”模式调整为“广播”模式,“查询”模式指前台定期地主动发消息到交易系统后台来检查是否有成交,“广播模式”指交易系统后台在生成成交后,无需前台互动,主动把结果推送到前台。

对数据进行离线备份时,最稳妥的办法是备份到其他城市的独立数据中心。

避免做分布式事务,不管产品供应商如何承诺他的操作系统、文件系统、数据库等如何高性能地支持分布式事务,我们都要避免使用这种类型的功能。总之,多个并行资源之间,能不协调就不要协调,如果一定要频繁协调处理,真的要考虑把相关资源合并到一起处理。

细节,略。

第五章 运筹帷幄:系统就绪以及切换上线

为了考验一个新开发的系统,我们安排了据计算机设备提供方说是最严酷的破坏性测试,目标就是检验我们整个应用系统的设计水准。方法是:安排人员去人为地停掉一些核心进程,并且根据设计架构图,对每一个部件,都设计场景模拟其破坏,对每根连线,都设计场景模拟其断掉,而最极端的场景则是完全将一个数据中心的所有设备全部断电。

第六章 运气+行动:容量管理以及事件处理

由于证券公司向投资者提供隔夜委托的功能,在早上开盘之前会累积许多委托,然后在开盘一瞬间蜂拥而入,在上线之前每日峰值订单速率约为5万笔,在上线之后每日峰值订单约为9万笔。

第七章 中国特色:扩展后的现货交易技术支撑体系

支持五大类产品的业务:股票、债券、基金、权证、期货。

交易业务的本质是把买订单和卖订单达成成交,并把行情发送给投资者。从达成成交的规则来分,分为连续交易、集合竞价、报价驱动和协商交易4种方式。

连续交易指一笔订单进入系统后,如果能够即可和位于订单薄中的对手方订单按照价格优先、时间优先的规则配对,那么就即刻成交,反之则根据该订单是否驻留订单薄的属性决定是否插入订单薄;这个过程循环持续进行。

集合竞价指在一段时间内,系统持续接收订单,并插入订单薄,而当预定时间段结束后,按照诸如最大成交量、最小剩余量等规则批量地进行处理,撮合掉订单薄中的所有买卖价格重叠的订单。其撮合之后留在订单薄的订单通常会进入下一个阶段,而集合竞价之后既可以是另一个集合竞价,也可以是一个连续交易。

报价驱动指有做市商在市场上进行双边报价或者单边报价,其他投资者则是通过输入订单来与报价进行匹配。在纯报价的模式下,投资者的订单如果不能成交,会即刻被自动撤销,使得市场上只能看到做市商的报价。而混合模式下,投资者不能即刻成交的订单也会留在订单薄内,供其他投资者或者做市商撮合。

协商交易包括大宗交易、场外交易申报等不适按照价格优先、时间优先规则进行的交易,通常是指定对手方、指定价格的交易,交易系统主要承担的是基础数据校验、合格投资者校验和把成交确认路由到有关各方的职能。

买卖订单又分为如下类型:限价订单、市价订单、市价转限价订单、冰山订单。同时,还可以通过为订单进行附属执行限制、交易时段限制、订单有效期等参数的设置,组合出更丰富的订单类型。

在有涨跌幅限制制度下的市场,市价订单可以看作是一个以涨跌幅价格输入的订单。

冰山订单是一种在交易系统中完成的程序交易,该订单在行情披露时,只披露冰山一角,撮合的时候也只对冰山一角的部分进行,而在冰山一角成交之后,重新把冰山水中的一部分,变成新的冰上一角,进入下一个循环。

非交易业务特指由交易系统向市场参与者提供申报,但却不是达成买卖合同的业务,大类可以分为发行认购类、行使权利类、指令路由类以及部分特别的实时生效类。

在我国证券市场,开展融资融券业务于2006年被提上议事日程。

我国融资融券业务是一种集中授信模式,而在证券金融公司未成立之前,只能以券商自有资金和证券作为信用。

交易系统提供带有8类标签的订单:信用买入、信用卖出、融资买入、卖券还款;买券还券、融券卖出;平仓买入、平仓卖出,用于区分不同的业务类型,平仓卖入、平仓卖出的交易所逻辑和买券还券、卖券还款是一致的,差别在于是由于券商根据风控条件触发的,还是投资者自愿的。

交易所交易基金的英文名称:Exchange Traded Fund,简称ETF,是一种可在交易所上市交易的开放式基金。

第八章 日新月异:2007年之后的全球交易系统发展

第9章 技术战略:证券行业的宏观思考

在2004年年底,上交所市值规模在国际交易所联合会会员中排名第21,不足纽约证券交易所市值的1/40,不到香港交易所市值的一半,年度交易金额排名第17,不足纽约证券交易所成交金额的1/35。但截止到2009年底,上交所市值规模在国际交易所联合会会员中排名上升到第6,约为纽约证券交易所市值的1/4,超过香港交易所近20%;年度交易金额排名第3,约为交易最活跃的纳斯达克的1/5,是香港的3倍还多。


公众号
文章目录