中国证券IT发展简史

1、手工时代

个人认为上海证券交易所为中国证券市场做出的最伟大的贡献是采用无纸化交易,没有之一。

1990年12月19日上海证券交易所正式开业后一段时间内,行情通过亚洲一号通讯卫星传送国各地的证券营业部,它的数据格式就是当时流行的桌面数据库dBASE的数据文件存储格式,俗称DBF格式。

证券营业部需要安装一个指向亚洲一号通讯卫星接收天线,与这个天线相连的设备叫「卫星室内单元」,「卫星室内单元」同时连接到一台运行「上海单向小站」数据接收程序的PC机上,接收行情数据文件,然后再经过一台PC机进行简单的处理,送到一块几米见方的由双色发光二级管(可显示红色、绿色及混合而成的黄色)构成的阵列屏上显示。

我第一次见到这玩艺是在成都市冻青树菜市场楼上一家证券营业部,其显示的股票分别是延中实业、真空电子、飞乐音响、爱使电子、申华电工、飞乐股份、豫园商城、浙江凤凰。

1991年7月3日深圳证券交易所正式开业(首批上市股票深发展、深万科、深宝安、深安达、深原野)后,证券营业部就多了一块这样的行情显示屏,股民或站或坐在这两块行情显示屏下,看着两块屏幕上不断变化着红、绿色的数字就成立了电视新闻中涉及股市的经典画面之一。

股民想交易时,先填写「证券委托单」,递给营业部的柜员,柜员检查无误后,再由营业部的报盘员用长途电话告知在上海证券交易所或者深圳证券交易所的场内交易员(他们因为穿着统一的红背心而被称作红马甲),再由场内交易员通过各自的终端输入到交易所的计算机内,等待成交。

每一笔委托都包含一笔现在已经不存在的费用叫通讯费,好像是每笔委托5元吧。

场内交易员可在交易终端上以查看成交,想知道自己的委托是否成交,需要填写「成交查询单」递给柜员,再由柜员长途电话询问场内交易员,费用大概是一次查询3-5元。

最早的营业部有手工记帐的,也有借助单台计算机运行一个基于dBASE/FoxPro的桌面应用程序来完成交易清算、记账的。

那个时候的主要标签分别是「有形席位」(一个席位一个红马甲)、「场内报盘」、「上海单向小站」、「深圳单向小站」。

由于上市股票很少,股民也不多,因此交易笔数也不高,这样的手工为主的模式勉强可以应对,尽管不时会出现一些人为失误引起的一些纠纷。

 

2、局域网共享网络时代

在中国改革开放历程中,首先吃螃蟹者也是最初的获利者。1992年5月21日,取消了5%的涨跌幅限制,实行自由竞价交易,上证指数5月21日上涨了105%,且连续上涨了三天。

1993年12月,上海证券交易所开通卫星通讯双向网,1994年8月30日,深证证券交易所可开通卫星通信双向网。全国各地证券营业部的单向小站陆续增设双向小站,实现证券营业部通过卫星向交易所发送交易指令,以及交易所将成交信息通过卫星回传给证券营业部。

与之配套的就是交易所增设了「无形席位」,与原有的「有形席位」、「场内报盘」相对应,「无形席位」无需红马甲,因为「卫星报盘」。

电视新闻中涉及股市的经典画面之一是交易大厅,随着「无形席位」的开通,红马甲快速减少,直至若大的交易厅空无一人。

「无形席位」、「卫星报盘」是个重大的技术提升,它解决了交易所与全国各地证券营业部之间异地实时数据交换的瓶颈,为证券营业部打开了业务规模提升的空间。

证券营业部已有的手工或者简易计算机辅助运营管理方式已经无法满足业务规模提升的要求,一套基于Novell网的柜面交易系统迅速受到所有证券营业部的青睐。

这个柜面交易系统主要具备下述的基本功能:

一是行情揭示系统,大屏滚动显示行情。

二是柜员业务系统,包括开户,资金存入取出、委托、查询等。

三是盘后清算、记帐。

那个时代的证券营业部是「酒香不怕巷子深」,根本没有营销的概念,股民都是自己找上门的,多好的时代。

早期Novell支持的共享网络,本质上就是一个共享磁盘文件系统,在Novell迅速普及之时,dBASE/FoxPro等桌面个人数据库管理系统也迅速升级,支撑Novell环境下的共享磁盘文件,从而构建了一个共享数据处理模式。

1994年,主要是上海和深圳两地,迅速出现几百家专门开发柜面交易系统的小型软件公司,早期他们主要看中营业部建设带来的计算机网络集成带来的丰厚利润,柜面交易软件则是重要的筹码,但还不是主要获利的工具。

因此柜面交易系统绝大多数基于dBASE/FoxPro也就不奇怪了,因为开发快、维护方便,证券营业部的IT人员可以通过直接修改数据库来纠正出现的小错误,所带来的各种风险也始终如影随行。

由于桌面操作系统DOS只能访问640KB的内存,I/O吞吐能力有限。dBASE/FoxPro只能同时打开2-10个数据文件。尽管dBASE/FoxPro是一种简化的关系型数据库管理系统,但数据文件之间的关联设计却受到很大的约束,设计者并没有将数据表之间的关系设计成第三范式(3NF),而多采用1NF和2NF,俗称宽表设计,就是一个表包含很多的字段,并大量使用编码方式来让一个字段能存储更多的信息。

系统设计是综合权衡各种不利因素的结果,这一点对理解今天证券IT格局的形成非常重要。

dBASE/FoxPro自带的程序设计语言是一种解释型语言,执行效率并不高,且系统自身几乎没有什么优化能力,与今天的大型数据库不可同日而语。

一个高性能的柜面交易系统对软件设计与编码有相对较高的技能要求,一些在软件研发投入较低的公司在证券营业部业务规模扩张过程中逐渐被淘汰。

针对dBASE/FoxPro存在的问题,一些软件公司使用Btrieve来实现柜面交易系统,Btrieve是一种基于B+树的共享文件存储系统,它不提供程序设计语言,而是通过API的形式来支持那时候非常流行的C。

C是一种编译型程序设计语言,执行效率远优于解释型的dBASE/FoxPro,但开发难度以及升级、维护的成本却远高于后者。

基于Btrive的柜面交易系统得到一些大型证券营业部的青睐,但由于升级、维护的缺陷却让它没有成为最后的胜利者。

一个应用软件,技术上的「叫好」不代表其生命周期内的「叫座」。

人生不是百米竟速,而是马拉松,应用软件也一样。

如同参加高考一样,能决定你上大学的不只是哪一门单科成绩,而是总分。

大屏滚动显示行情显然难以支撑瞬息万变的市场,因此个人行情及技术分析系统、自助交易系统迅速进入证券营业部。

来自台湾的「钱龙」和「建功」迅速占领了这个市场,尤其是「钱龙」,还一举奠定了这个市场的标准和规范。

国内也有一些软件开发商开发了类似的系统,由于处于起步的模仿、学习阶段,国内的这些软件最终没能成为主流,包含其中的佼佼者「宏汇」。

交易所发布的行情是最新的全量,「钱龙」通过转码软件,按时间轴,转换成为连续的分时行情和日行情,从而构造出连续的分时走势和日K线,再以5、15、30日的移动平均为基础,计算出各种技术指标,这些都是国外成熟证券市场的经典做法。后来交易所加强了信息披露,传送了更多的信息,「钱龙」也及时将这些信息整合到行情及技术分析中,出现了诸如「换手率」、「量比」这类技术指标。

「钱龙」的技术实现难度并不高,尽管它可以实时服务于营业部的几百台各种终端,但并不存在一个服务器的概念,一个转码系统持续收集行情,并按时间轴进行连续存储到Novell的共享磁盘文件中,终端机则间隔固定时间取这些文件,显示在屏幕上。

全量与增量读取数据相比,反映在信息更新频率上,进入286时代后,一种可以在16位DOS下访问32位地址内存空间的「保护模式」编程技术诞生,应用软件开发的技术门槛提高了,DOS保护模式成为一个应用软件的「高科技」特征。

柜台自助交易系统则多由柜面交易系统开发商提供。DOS是单任务操作系统,为了在行情技术分析期间,切换到交易任务,柜台自助交易系统采用了一种称为内存驻留(TSR)的技术,通过一个键盘热键,以软件中断的形式进行任务切换。

TSR需要较高的软件设计技术,多般用汇编或C实现,这种程序不能有任何的缺陷,否则导致计算机锁死。柜台自助交易系统称作键盘热自助交易。

证券营业部通常在交易大厅为股民提供几十台支持行情技术分析以及键盘热自助交易的Novell无盘工作站作为自助终端提供给股民使用,争夺这些终端的使用权就是股民的头等大事。为了提高效率,降低股民占用终端的使用时间,读取股民身份信息的磁卡阅读器也随之配备到这些终端上。

公平从来是相对的。证券营业部开始为资金量大的股民提供更好的服务,中户室、大户室相继出现,配置与交易大厅并无本质区别,但可以保证资金量大的股民可以独占自助终端进行交易。

当音频电话横扫传统的模拟电话之时,基于音频电话技术的电话自助委托系统迅速进入证券营业部,从4线、6线、到16线,直到多达上百条线路的电话自助委托系统。

电话自助委托系统的进入,在家里、办公室炒股成为可能,使中国进入了全民炒股的时代。

初期电话卡可以说是一本万利的好买卖。我记得在深圳初差期间,住在一个朋友宿舍里,晚上帮他手工焊接了4块16线的电话卡。

电话自助委托系统其实并无什么特别的技术含量,因为将电话的按键转换成数字,有NEC、TEXAS等厂商的集成电路提供支撑。电话自助委托系统的成功是因为解决了股民「炒股必须去证券营业部」的痛点。

在那个火红的时代,基于触摸屏的自助交易终端也被摆在了一些证券营业部的交易大厅。记得当时的大券商华夏证券,成立了一个电子交易中心,主要依托电话自助交易,其业务增长非常迅猛。2000年前后,在史上最严厉的证券行业清理整顿中,华夏证券没落,这个电子交易中心也随之消失。

3、局域网C/S时代

SystemR是蓝色巨人IBM组织来自世界各地的专家在圣约瑟实验室开展的一个关系型数据库研发项目。基于SystemR,IBM推出运行在其大、中型计算机VMS操作系统上的DB2,随即被世界各地的各类机构广泛采用。

Oracle、Sybase、Infomix也随后成立,在计算机硬件技术飞速发展的年代,基于UNIX操作系统的关系型数据库管理系统得到迅猛发展。在微软的Windows平台发展到NT之后,Oralce、Sybase陆续被移植到NT平台上,微软在获得Sybase 4.2的版权后,开始研发自己的SQL Server,为此NT还专门为SQL Server进行针对性的优化。

Novell基于IPX/SPX的共享网络文件系统,已经难以满足以关系型数据库为核心的高密度计算的需要,即使支撑大型营业部柜面交易系统的发展也难以为续,由此证券营业部进入了局域网C/S时代。

在上一轮竞争中存活下来软件开发商,随即进入一场基于C/S的柜面交易系统的研发竞赛。不同的软件开发商采取了不同的策略,有选择Unix/NT+Oracle组合的,也有选择NT+Sybase/SQL Server组合的。

无论是Oracle还是Sybase/SQL Server,所提供的基于SQL的解释型程序设计语言均是运行在服务器端的,而非客户端,他们均提供了一组API来实现客户端与服务器端的通讯。

基于客户机的应用软件,将在Windows平台上基于Delphi/MFC实现,而服务器端则多采用存储过程实现。

这与基于Btrive完全不同,由于业务的实现被分割成服务器端和客户端,服务器端的存储过程相对于dBASE/FoxPro是功能巨大提升,升级、维护并没有太大的障碍,但客户端基于Delphi/MFC却面临升级和维护的巨大问题,好在那个时代,核心业务规则是由交易所、监管机构联合制定的,证券营业部并无太多的个性化空间,因此客户端升级、维护的潜在问题暂时被忽略了。

Oracle、Sybase/SQL Server是一个完备的关系性数据库系统,且没有太多的限制,那数据库表格的设计是不是该得到规范?数据库的设计是不是应该遵循3NF?

证券属于金融行业,金融行业的对数据存储年限以法律、法规形式进行了明确的规定,业务规则以及与之相配套数据向前兼容成为一种强制性的要求,因此数据库的设计并没有本质上的提升,而只是做了局部的优化。

SQL基于关系代数,是完备的,但违反范式的表格设计将导致用SQL书写业务逻辑非常别扭,因此在存储过程中,包含大量的游标。

其实游标是层次型数据库系统的产物,也是因为上个世纪70年代大量的金融机构使用COBOL程序设计语言+层次型数据库实现以银行业务为核心的金融类应用系统,因业务处理逻辑向前兼容的需要而保留在关系型数据库系统之中。

这是行业的第一次真正的硬实力升级,技术实力不济的公司陆续倒下,也有些公司认识在自身的能力的局限,需要与其他公司抱团相互取长补短。1995年杭州恒生电子股份有限公司成立,1998年金证科技股份有限公司成立。

早期的Oracle、Sybase/SQL Server并不包含自动优化能力,因此使用索引、书写高效率的SQL语句对软件编程人员有着较高的要求,Delphi/MFC的开发也与dBASE/FoxPro不可同日而语,一些软件开发商被淘汰出局。

也有使用PowerBuilder来实现客户端的,由于PowerBuilder过于臃肿,对运行它的PC计算机性能要求过高,而早早被淘汰出去。

这个时代,软件开发商的主要利润依旧来自营业部的网络集成,但柜面交易软件带来的利润在迅速提升。

在2001年5月16日之前,并没有所谓的三方存管。股民要炒股,需要从银行取出现金,再到证券营业部办理资金存入,股民的炒股的钱是存到证券公司名下的。

在证券交易持续火爆后,银行眼睁睁看到巨额的资金取出,流入证券公司,为了确保不流失优质客户,银行纷纷主动与证券营业部开展银证合作。初期是银行派人在证券营业部设立专柜,现场办理股民的资金提取、存入业务。后来通过专用通信线路实现了证券柜面交易系统与银行储蓄系统之间的转账业务。银证通的开通,促进了证券交易的持续火爆。

当互联网席卷世界的时候,中国自然不能幸免。经过多年的积累,基于互联网的桌面行情分析系统逐渐普及,与证券营业部的「钱龙」相比,除资讯信息更加丰富以外,技术分析指标可以自定义参数,甚至根据需要创设新的指标,这其中的佼佼者包括「通达信」和「核新」,尤其是「核新」,与证券营业部合作,极力拓展安全的网络自助交易系统,柜面交易系统开发商则为证券营业部提供一个简易的网关来应对这个日益增长的需求。

证券营业部为股民提供的交易通道包括,营业部交易大厅、中户室、大户室的自助交易终端、电话自助交易系统、网上自助交易系统、以及银证转账系统,相对于柜面交易系统,它们被称为外围系统。柜面交易系统开发商提供的简易网关同时扮演两个角色,对外围系统,它是服务器;对柜面交易系统,它是客户机。

在中国有史以来的第一个全民炒股疯癫时期,技术分析似乎成为炒股的无往不胜的宝剑,软件开发商深度挖掘仅有的行情数据和从各种渠道收集的各种信息,「创新」了很多指标,比如「内盘」、「外盘」,并据此加上成交量,演化出「主力资金流入」、「主力资金流出」,这些指标甚至出现在央视的财经频道中,还有令人眩目的「筹码分布图」。各种与技术分析有关的图书也层出不穷。

交易所发布的行情大约是每分钟更新6-9次。行情数据就是过去几秒钟内数次成交的累加。所谓的「外盘」、「内盘」就是比较最新的成交与前一次行情的最高委托买入价、最低委托卖出价的关系,用简单逻辑判断计算而来,这种计算最多只能称作估算,所谓的「大单」,「主力」则是根据成交量来判断的,就更不靠谱了。

那个时代发明的玩艺,直到今天依旧还有人深信不疑,有需求就有供应,所以依旧保留在现今的行情及技术分析软件中。

为了满足股民深度研习指标系统,一个叫「分析家」的桌面应用红遍大江南北,它最大的特色就是允许使用者自定义指标,并用行情历史数据进行检验,得出最佳的买入点和卖出点。如果耦合度高,这个指标就可以拿到网上去叫卖。

其实指标这东西咋说呢,如果央行宣布收紧流动性或者证监会宣布增加交易印花税,这些指标管啥用?!

今天许多吹得神乎其神的智能投顾的核心还是这个玩艺,只不过用AI这个时髦的科技新瓶包装了疯癫时代的旧酒而已。

在证券公司由共享网络时代转移到局域网C/S期间,证券营业部几乎将当时最好的CompaQ、HP工作组级服务器、最好的UPS以及最好的Cisco网络交换机统统搬进了证券营业部(那个时代妥妥的剁手党),还煞有其事为这些办公、家庭级别的计算机配备了堪比中、小型计算机才能享用的机房。

有钱确实任性,不得不服。那时候证券营业部一个普通柜员的年终奖,就可以让这些小姑娘轻松出国旅行了。

同一时期,我先后在两家美资软件外企做高级工程师,收入比不上一个证券营业部的普通柜员。,男怕入错行啊。

证券营业部的交易网络全部替换成TCP/IP网络后,行情依旧采用基于IPX/SPX的Novell网。

这一轮升级,Cisco成为一个大赢家,它在中国的成功很大程度归功于其在证券行业的成功,Cisco网络交换机几乎成为证券营业部的标配。

现在大家知道了,我们真的是养肥了一条白眼狼。还记得同一个时代摩托罗拉各种颜色的塑料翻盖手机吗?和今天的牌机比都是个渣,可它的广告语却是「其完美程度非笔墨可以形容」,是不是比今天的互联网能忽悠多了。嗯,美国佬真的很坏的。

进入新世纪后,在证券营业部进行证券交易的股民人数已经大幅度减少,但依旧不时人头攒动,因为只有在证券营业部里才有交头接耳交换各种所谓「内幕消息」的氛围。

 

4、广域网的C/M/S时代

2001年2月19日B股市场正式对国内个人开放,与A股的一个营业部至少有一个交易席位不同,B股一个证券公司只有1-2个交易席位。

经过近10年的发展(因为地方保护政策,异地开设营业部也是一部证券公司的血泪史,因为IT无关,就不细述了),大的证券公司已经有几十家证券营业部了,选哪家营业部呢,这个问题讨论下去显然永远没有最佳答案。唯一可行的解决方案就是将证券营业部的B股业务集中起来,共享这个宝贵的B股交易席位。

由此证券行业开始试水广域网。每个开展B股业务的营业部都通过DDN连接到一个指定证券营业部,再由这个营业部连接到交易所,这个事其实并不难。

异地DDN在当时也是一笔不小的开支,只处理B股业务显然有些浪费。区域集中柜面交易系统出现了,但其最终没有成为一个支持异地营业部集中管理的主要系统,反而更适合集中管理同一个城市的多个营业部,必竞同城DDN费用还是低了许多,建设高大上的独立营业部让一些地方性中、小券商也吃不消了。

另一个方面,由于当时证券行业大量存在不同程度的挪用股民证券交易保证金,以及证券营业部柜台销售企业债的烂事,东窗事发导致证券行业开始一次力度空前的清理整顿,证券公司为啥会挪用股民的证券交易保证金,看看今天的共享单车为啥会提取押金困难的相关分析报道,就知晓了。

这个整顿持续到2004年才基本结束,历史上颇有名气的大券商南方证券、华夏证券(我第一次开户就是在华夏证券)消失了。

国家为处理证券行业捅的这个大娄子,付出了高昂的代价,我因为工作关系在意外翻阅一叠报表时,看到这个以亿为单位的确切数字,我不知道这个算不算国家秘密,因为还没有过去25年就不说了。

2001年5月16日是证券业的黑暗之日,中国证监会发布了《客户交易结算资金管理办法》,明确了证券、期货投资者的资金必须有第三方存管机构存管,以保障客户的资金安全。

这此整顿对证券行业最深的伤害就是推行三方存管制度,这令多少证券从业人员心碎,因为它导致国外非常成熟的账户管理无法在中国落地,没有这个,财富管理就永远无法对标国际先进水平了。而且最悲催的是,这还是由证监会的相关人员主动提出的,妥妥的投降啊,自然乐坏了银行业。

意识到已有的以证券营业部为主的分散经营模式风险实在太大,且持续发展成本过高(想想一个证券营业部的建设成本),于是将证券业务集中到证券公司总部进行集中管理的思路就被提了出来。

采用星型结构,将总部和各个营业部连接在一起,使用广域DDN,不可靠?那就两条。带宽?总比卫星强,这不是问题。

关键是数据库服务器,这个事不好办。有银行背景的券商,偏向于中、小型计算机,其他证券公司呢,工作组级别的服务器显然无法满足要求,咋办?一台不行就多台组合,组合的方法就是群集。

那时候,券商和软件开发商估计一门心思就是集中才好控制风险,控制风险成为首要目标,至于为以后业务开展预留架构上的发展空间,早就抛到了太平洋里。

与此同时,性能他们却始终念念不忘,这个是关键的技术指标。

那毕竟是2001年,没有人是神仙,无论券商,还是软件开发商,在构建基于广域网的集中式证券交易系统上都是小白。

两种实现思路,一种就是将局域网简单放大成广域网,一种是采用当时国际流行的中间件技术。

于是软件开发商又开始进行新一轮的研发竞赛,这次竞赛对技术的要求比上一次更高。

如果A与B之间关系过于复杂,那就在A之间引入一个C,使得A与C的之间的复杂度以及B与C之间的复杂度远小于A与B之间的复杂度。这就是多种设计模式的核心思想,比如适配器、中介者以及门面等设计模式。

在C/S架构中,中间件位于客户机和服务器之间,为构建大规模、高性能、分布式C/S应用程序提供了通信,事物、安全、容错等基础服务,屏蔽了底层应用细节,应用程序不必从底层开发,以自身的复杂性换取应用程序开发的简单。

基于局域网的中间件只要是事物处理中间件(TPM),而基于广域网的中间件则包含消息中间件(MOM)和事务处理中间件。

当时,知名的事务处理中间件有IBM的CICS和BEA公司的Tuexdo,而消息中间件则是IBM的MQ。那时开源才开始启蒙,因此无法获取CICS和Tuexdo以及MQ的源代码。

根据用户手册,金证的研发工程师用近2年的时间主要参考CICS开发了KCBP,参考MQ开发了KCXP,而恒生电子的研发工程师则开发了具有类似功能的AS和AR,金仕达也开发了类似的组件,至于顶点的内部产品叫什么,我就不知晓了。

金证、恒生、金仕达内部研发的产品/组件,尽管名字不同,部署方式存在差异,功能也不尽相同,但它们所起的作用则是非常类似的——「以自身的复杂性换取应用程序开发的简单」,尤其是恒生和金证,它们由此共同塑造了今天证券IT的主要格局。

在各自的产品/组件之上,恒生的支持广域网的证券集中交易系统叫「证券交易企业版」,金证叫「新一代集中交易」,顶点叫「A.BOSS」,而金仕达好像没有具体的名字,如果有我也不知道,因为我没有太关心过这个事,如同顶点的A.BOSS的实现思路。

相比较而言,恒生产品的命名及本版号管理更加规范,金证比较有意思,新产品喜欢冠以「新一代」,现在是新几代?

集中式证券交易系统的招标无一例外都来自大券商,这些大券商心甘情愿成为小白鼠,为推动中国证券业迈入广域网集中式证券交易时代作出了伟大的贡献。

软件开发商则忙于带着自己的原型系统参与一轮又一轮的测试、评估、改进、再测试、再评估。最终恒生、金证、金仕达均得了大券商的认同,找到合作券商研发集中式证券交易系统。

没有找到合作伙伴的软件开发商则惨遭淘汰逐步退出市场竞争,而坚持下来的就只剩下顶点了,它的策略是暂避锋芒,选择为中、小券商提供服务。

2001年到2002年间,恒生、金证先后正式发布集中式证券交易系统,随后集中式证券交易系统陆续在各自的合作伙伴券商那里成功上线,由此进入了基于广域网的集中交易时代。国泰君安的集中交易上线后,还给上海证监局专门打过一个报告,陈述大集中的必要性、合理性以及可行性。

无论是金证的KCBP、KCXP还是恒生的AS、AR,其实都谈不上是成熟的商业软件,它们的设计目标就是自用(金仕达更彻底,就是内部组件级别),因此无论是功能的完备性还是可靠性都难以与国际上的商业软件相匹敌,自然构建在其基础之上的集中式证券交易系统都无一例外或多、或少造成了大大小小的各种级别的事故,通过处理事故,修改BUG,它们逐渐稳定下来,在2015年的天量行情中经受住了考验。

中国的芯片由于没有适合的生态,所以成长不起来,而恒生和金证是幸运的。

恒生、金证、金仕达的系统还是多少有差别的,讨论它们,比较优劣如同当年我在Sybase比较Sybase与Oralce的优劣,其实是一件很无聊的事情(其实都是基于市场需要做的宣传),因为站在不同的角度、在不同时间,即使是同一件事情,得出截然相反的结论,实属正常。今天我已经退休了,就更不会去比较了。

恒生的系统基于Unix/NT+Oralce,Unix运行在中、小型计算机上,与台式机相比,当年的中、小计算机的内存带宽与I/O吞吐能力是台式机无法比拟的,尽管主频并不高,运行数据库这类软件还是有相当优势的。

NT运行在工作组级别的服务器上,早年,单台其还是无法与中、小机抗衡,因此需要多台进行群集,OracleRAC自带的群集能力还是非常卓越的。

金证的系统就五花八门了,有AS/400+DB2,也有Unix+Oralce,Unix+DB2,还有NT+SQL Server,群集则是通过KCBP实现的,功能自然没有OracleRAC完备,但够用。

金仕达相对比较单一,Unix+Oracle。

早期的集中式证券交易系统主要解决广域网环境下的业务集中处理问题,性能是核心要素,因为大家都没有底,主要精力也在这上面。所谓的数据库设计主要是根据同一套系统管理多个营业部的需要,做了扩展。

基于中国证券IT发展简史(上)中的描述的原由,基础数据库并没有太大的变化,继续兼容以前的业务处理逻辑以及与之配套的历史数据。

到2006年,证券行业陆续完成了集中式证券交易系统的升级,恒生、金证成为最大的赢家——拥有最多的客户,并先后在2003、2004年上市。它们最终杀出重围,脱颖而出,技术在其中究竟起什么作用,才是我写这个简史的主要原因。

「(中间件)以自身的复杂性换取应用程序开发的简单」,我个人的总结就是如此,其实何止是换取应用程序开发的简单,更是换取了工程实施,维护以及满足不同证券公司个性化需要所带来二次开发的简单,更是换取了在证券行业高速发展过程中,快速响应不断推出新业务的能力。那些被淘汰的软件开发商,都没有自己的TPM/MOM,你以为是偶然吗?我认为是必然。

简单当然是相对的,但成本下降却是绝对的。

在激烈竞争中,维持低成本不是核心要素又是啥?如果采用商业化的CICS或者Tuxedo呢?可当年它们的售价是难以想象的。当然如果当年它们的售价就是今天的售价,我想无论是恒生还是金证,或许也不会选择这条路,但没有如果。

回想当年,行业通常认为金仕达的技术最好,为何其客户数始终停留在五个,而且也在逐渐被恒生和金证的产品所替换?

如果集中式证券交易系统全部用C++写成,无论是采用对象继承派生,还是基于接口的组合,20年(尤其是最近10年,新增了多少业务?),能支撑的下去吗?或许你说可以,现实的参考对象互联网企业好多呢,可这些成功的互联网企业所开发的系统是自用,恒生、金证可是面对不同需求的客户,你打算维护多少个版本?金仕达就是现实中的例子。

抽象,封装?2001年,你能预测今天中国证券的业务以及生态?没有对需求的全面了解,所谓的抽象真的只是抽筋。

自研的中间件还有另一个好处,通过隔离,避免小白的致命错误导致系统崩溃。所以谈平台,必然是容器+插件,而且插件的执行错误一定要被隔离。

因为「赖格宝」项目,在最牛逼的互联网公司,讨论一个小概率的业务风险处理方法时,一个职级相当高的架构师说,忽略,真的发生了,赔偿损失就是了。

妈的,当初我内心就嘀咕,真他娘的羡慕你,我在监管下必须严格遵守ACID,因为错了一分钱或者股民先看到成交回报、再看到委托,股民可以砸了证券公司营业部柜台上的玻璃,你丫的倒是绝对的自由,可以开心玩BASE,还有大数原理让你可以任性。

恒生、金证基于自己的中间件,积累了大量的软件资产,并构建了相对完整的研发、测试、工程、服务体系,并陆续通过CIMM5认证,这个其实还不重要。

如果你将证券发展在其时间维度上作一个切片,以今天的技术实现一个集中式证券交易系统并不难,但要向前保持业务处理以及相关数据的兼容,就难了,而且恒生、金证20年积累下来的数据又不那么规范、标准,你要翻译都难上加难,所以进入这个行业门槛其实非常之高,你同意我这个观点吗?,当然恒生、金证之间相互换来换去,还不算个事,因为双方都太了解彼此了。

至于集中交易系统的自身存在的问题以及解决的历史,如何迈向移动互联网时代,未来大致会如何,下次再写吧。

5、B/S与C/M/S混合的时代

方向成功,努力(忙)才有意义,否则只能是(装忙)窘迫。

恒生、金证成功的密码就是市场发生变化时,能明确判断出市场需要什么技术,真的明白这个技术的究竟是什么,能调动自身资源把这个技术做成一个成型的东西(产品/工具),最后是能用好这个成型的东西。这是科技型企业在竞争中必须具有的能力,恒生、金证很好诠释了科技成果如何转换成生产力,而很多企业则是倒在了其中的不同阶段。

一切都不是永恒的,进入新世纪后,市场在悄然发生着改变。

番外:

1992年8月10日,深圳发生了著名的「8.10事件」,10月证监会与国务院证券委员会同时成立,国务院证券委员会是管理机构(写PPT的),证监会是执行机构(干活的),只是一直没有啥活干。

直到1997年8月,上海证券交易所和深圳证券交易所划归证监会管理,11月,证券营业部由人民银行监管转变成由证监会监管,对证券公司而言,营业部都换了婆婆,自己自然是跑不掉的。

1998年3月,国务院证券会员会撤销,证监会又写PPT,又干活了。12月29日,距上海证券交易所开业整整8年之后,人大通过了《证券法》。

交易所在负责交易的同时,又负责登记、结算(证券登记、存管、清算、交收),活干的显然过多了,无纸化交易风险实在太大。于是按《证券法》的要求,2001年3月30日,证券登记结算公司成立,同年10月1日起,接管了两个交易所的登记业务以及账户开销户及管理业务,地方证管办关门的钟声敲响了。

结束了多头管理,以证监会为核心的市场监管、运行体制框架被建立起来,证券业的清理整顿也在持续进行。

2001年5月16日,证监会3号主席令发布,第三方存管制度正式实施。通稿措词非常严厉,「应当」全部是「必须」。

如果仅仅是证券买卖款,也可以理解,可证券公司向股民收取的包括佣金在内的全部费用都被包含在内,股民的第三方存款账户成了与证券公司发生关系的唯一通道。

直到今天,都说证券行业同质化难以根除,源头在哪里,谁「无心插柳柳成荫」?

做为不直接面对市场的机构,如何统一、如何监管都没有问题,但对需要直接面向市场的证券公司,问题就来了。

2005年,清理整顿结束后,8月30中国证券投资者保护中心成立。证监会全面推行以净资本为核心的分类监管体系。

没有钱(净资本),想空手套白狼,不行,不带你玩。

有钱乱来,分类评级就低,不仅一些业务不能开展,而且向投资者保护中心上缴的保护费也更多。

集中管理没有错,但可不是业务处理系统的简单集中。

前文说过,基于DDN的广域网,支持业务处理,带宽是没有问题,可要支持营销及服务,那带宽的问题就非常突出了。

2000-2005年底,各种原因促成的熊市,证券公司要生存,全力开展有史以来的最强的营销服务,呼叫中心和客户经理考核系统、CRM整合在一起,成为一体化营销服务平台,其实在所谓的CRM中,C代表的不是股民,而是客户经理,这种平台本质上讲是客户经理工作平台+客户经理考核平台+呼叫中心的混合体。

以客户为中心,八字还没有一撇呢,是以能拉来客户的客户经理为中心。只要客户开了户,客户经理就能鼓动客户交易、参加资产管理计划以及购买各种证券公司代销的其他金融产品。只有这样,证券公司才有饭吃。

集中式证券交易系统的架构显然承载不了这样的业务,开始还做过尝试,但很快就放弃了,相应的一些功能被关闭而废弃。

互联网网速在飞快提升,成本也在下降,与提高DDN带宽相比,显然是合算的。

于是软件开发商采用B/S架构基于互联网来实现这类系统,随着这类系统的部署,券商总部的网路也开始升级,应对安全风险隐患极高的互联网应用。

为了更好支持营销服务,首先从集中交易系统中剥离出来的就是涉及账户相关的业务,成为一个独立的账户管理系统。这是集中交易系统的第一次瘦身。

早期的中登结算系统在执行清算时,是将股民看作虚拟的结算参与人来进行清算的,然后汇总股民到相应的券商完成一级清算,再向券商输出清算数据,券商再根据清算数据在进行营业部间(二级),营业部股民间(三级)清算。集中后,三级自然就不存在了。

清算后的交收(划付),显然与证券交易之间是相对独立的,因此1997年成立的福建新意科技有限公司与此相关的业务自然延续到集中交易时代,并没有被整合到集中交易系统中。

2003年9月29日出台《证券公司客户资产管理业务试行办法》,证券公司才具备真正意义上的资产登记和存管职能,经纪业务只有便于业务开展以及服务客户的「资产簿记」,并没有「资产存管」功能。

涉及客户资产管理的资产登记与存管、投资交易、结算等,这些要求与经纪业务完全分离,因此独立建设系统,与集中交易系统本身没有太大的关系。至于允许股民用证券交易资金账户的资金参与资产管理计划,也只是增加证券交易资金账户的使用,这个变更对集中式证券交易系统业务并无本质的影响。

集中式证券交易的群集模式只适合(也非常适合于)经纪、代销类业务,原因是客户A的行为与客户B的行为之间的没有任何交集,除了在盘后的清算阶段。

不管集中交易支持多少客户、有多少个集中交易节点,特定客户都在指定的节点上进行交易,这与「云计算」完全不同。

其实「赖格宝」也是如此实现的,即使太阳系的所有人都参与「赖格宝」,它的架构也无须调整,只需增加处理节点就好了,对客户而言,账户号的HASH运算永远只能有一个相同结果,就是处理它的那个节点的编号。

换句话说,经纪类、代理类的业务没有影响并发性能的「热点」存在,因此通过线性扩展处理单元,系统处理能力就能满足要求。

2006年6月30日《证券公司融资融券业务管理办法》出台,证券行业终于迎来了信用交易,而集中式证券交易系统是用来处理经纪类和代销类业务的,处理信用交易业务显然免为其难。

经纪类、代销类业务本质上不需要考虑业务运营风险问题,证券公司的所谓风险管理系统(其实就是一个预设条件的自动查询系统,只是查询结果少有人问津)就是用来应付检查的,但信用交易存在的风险将影响券商自身的利益,因此风险处理是个重要的问题。

另外客户A和客户B之间存在交集,就是融资/融券总额度,会成为制约系统并发处理性能的一个「热点」。

信用交易的规则导致其与证券经纪在业务处理上是高度耦合的。

软件开发商都是参考集中交易的架构,来实现一个融资融券业务系统,然后通过中间件,在集中交易于融资融券系统之间通过RPC实现业务上需要的耦合。在业务量不大的早期,单节点的融资融券系统并没有暴露太大的性能问题。

随着业务规模的扩大,单节点无法满足需求时,扩展多节点就成为必需,如何在多个节点之间分配融资/融券总额度呢?这个问题并没有完美的解决方案,到今天也没有。

融资融券处理节点的扩展与性能的提升并非是线性关系,未来如果业务规模持续提升,这个终究是一个早晚要引爆的地雷。

融资融券只是信用交易的一个类型,金融衍生类交易均属于信用交易,包括期权。

金融交易必须严格遵循ACID,基于RPC的2PC如果不能高性能、高可靠实现,就始终存在隐患。由于云计算应用的前提是接受BASE,因此到今天,金融交易也难以上云,不是南方有个大券商努力尝试了吗?结果如何呢?!

从2006到今天,总体上来讲,券商是以证券经纪业务为核心的,尽管收入、利润在发生改变。集中式证券交易的总体架构也无本质的变化,只是在不断优化,拆解中。

清算被分离出去,成立中登,就是认为交易所即做交易又做登记、结算实在不靠谱。清算与交易分离,业务上的意义大于技术上的意义。

交易(订单)被分离出去,还进行了针对性的优化和重构,满足自动化快速交易的需要。

证券行业一直想利用SOA来重构业务系统,最终实现「设计适应变化 」,赋予新业务实现的弹性,但由于构成SOA组件的边界非常模糊,因此这一努力并不成功,组件都不成功,再细分成更小的原子,可行吗?

拆简单,关键如何重新整合成为一个整体。业务、管理人员永远看到的是一个整体,而不是局部。

始于2013前后的OTC,和沪、深交易所并无太大的关系,场外嘛,因此基本选择一个完全独立于集中交易系统的实现。随后的新三版也是如此,在此之后,不少券商将包含基金在内的金融产品代销、以及自身的资管产品的销售等都迁移到了OTC上。

与此同时,券商还一直在做另外两件事,一个就是所谓营销服务体系的建设,令一个则是所谓的数据中心的建设。

与证券交易不同,营销服务的业务规则基本上完全有券商自行设定,只要满足证监会的合规要求即可。对客户经理的考核、营销策略的执行等等,几乎是一代相关的负责人,一套相关的业务及管理思路,需求变化非常频繁。由于带宽的原因,这类系统是基于互联网,采用B/S架构实现的。

从最早的网站类程序,逐步过渡到应用程序,再到今天的移动APP,支撑其后台处业务流程处理的框架主要来自互联网的开源架构,页面的构成也是基于开源产品。

由于证券公司的软件开发商自身人员流动非常频繁,互联网上的开源产品也迅速变更,各种开源框架,软件包被无序集成在一起,形成了大杂烩,为应对来自业务部门不断变换的需求和一年一变的考核政策,IT人员苦苦支撑。

没有自己的平台,自然也就无法形成自己的规范,面对快速变化的程序员队伍,加上层出不穷的需求,完全采用硬编码,如何支撑的下去?

顶点的LiveBOS在此时横空出世,仿佛吸取了集中式证券交易败北的教训,它向市场推出的LiveBOS称为灵动业务架构平台,通过平台自身的复杂性,来简化应用的实现,让互联网类应用由杂乱无章变得有序、可控,一些简单的业务流程,证券公司自己就可以组织较低技能的IT人员,快速予以实现。随着LiveBOS接受度越来越高,营销服务这一细分市场的版图就迅速发生了改变。

站在商业角度讲,LiveBOS无疑是成功的。站在技术角度讲,LiveBOS还缺乏深度,在应付完全是人操控需求的软件应用而言,依旧非常吃力,但已经远胜于硬编码了。

至于移动手机端的APP,就不想多言了,统计一下微信或者今日头条有多少个功能点,对比统计证券公司的APP有多少个功能点就明白了。

只要不是傻子,都知道花钱买东西的流程,但金融业务呢?证券公司如何培训自己的客户使用APP的?证券公司遇到的困境其实银行早就遇到了,银行手机APP的功能点比证券公司还要多,可内部功能点使用统计表明,大多数功能只录得测试人员使用的痕迹,而客户从来没有。

行情火爆的时候,有空就发布「日活」数据,啥客户最喜爱APP评选、颁奖,行情低迷的时候,也发布发布啊。低频应用无法和高频比,当然证券公司都希望自己的应用也是高频的,但理想很丰满,现实却很骨感。

另一个就是所谓的数据中心了。营销服务需要股民账户以及资产数据,合规风险管理虽然说用处不大,但做样子也需要客户账户及资产数据,还有其他各种应用都需要,如何获得这些数据?采集。

多个应用同时采集交易系统的数据,不但交易系统的性能受损,更重要是给交易系统的稳定运行带来极大的隐患,于是建立一个数据中心,由其采集交易系统的数据,再提供给其他系统使用,就是一个看上去可行的方案。

这种数据中心采取全量数据采集策略,严格意义上讲就是交易系统某个时刻的备份,保护交易系统的主要目标达到的了,但却没有起到数据中心应该起到的作用,建立在其上的所谓多维数据挖掘、分析系统,也只是个表象,并没有成为真正有价值的应用。

进入移动互联网时代后,证券公司充分认识到数据的价值,因此参考互联网数据中心架构重构真正意义上的数据中心。看过几家证券公司的方案,都是在拉卡拉数据中心(其实也是大多数互联网应用的)的基础上增加了一些证券行业的应用构造而成。

期间,证券公司的网络架构也发生质的改变,从分段式到三层网络架构,目前一些证券公司已经过渡到更好的大二层网络架构,其安全防护措施早已今非昔比。只是一个问题一直没有解决,就是投资不菲的灾备系统的利用率问题。

 

6、未来

中国证券市场自诞生那天起,就是一个以散户为主的市场,20多年过去了,这个特征会改变吗?为啥世界主要证券市场的客户是以机构为主?

中国证券市场是一个以满足融资为主要目标的市场,市场结构并不完整,缺乏能形成闭环的风险管理工具。

会改变吗?一定会,只是早晚的问题。

客户机构化是一种必然。

面对机构/高净值客户、以及风险管理工具完备的融资、投资平衡的市场,证券公司需要什么样的IT架构以及业务系统?

肯定不是现在的,那会是什么?

证券信息技术管理办法出台了,包括券商在内的金融机构打算抛开曾经的合作伙伴——软件开发商,自己玩了,会玩得很溜吗?软件开发商踩过的坑,证券公司自己的队伍也同样会去踩吗?

规律性的东西永远不会改变,换一批人来做同样如此。

呵呵,我退休了,不用在去思考这类问题啦。

作为简史,夸张了,当野史吧。

环球期货原创文章,作者:环球期货之家,如若转载,请注明出处:https://www.huanqiuqihuo.com/post/2399.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注