如何构建一个交易系统(一)
比起下面我们要介绍的交易系统,一个真正的交易系统复杂程度将超过数个数量级, 交易系统作为一个比较成熟,也是最早电子化的系统---估计比现在的大部分大家接触的系统都要早, 他的模型、 理论基础也非常健全; 整个产业非常成熟,提供基础服务的非常之多;大部分的人或许多多少少有点交易的经历, 但是对于整个交易系统后台怎么运作,可能不太熟悉。 这个系列的文章, 将会从一个IT 角度解析如何构建一个交易系统, 过程中将交叉结合业务逻辑和基本的架构设计的原则, 寄希望能够以通俗易懂的方式, 给大家揭秘整个交易系统的运作原理。同时这也试图探讨了一些在互联网思维下一个交易系统如何突破原有的障碍, 做到去中心、扁平化、真正意义上面的普惠金融的方法和心得。
何为交易系统?在任何一个终端,当你输入某个买、卖指令后,后面是如何运作的? 有本书《The Trade Lifecycle: Behind the Scenes of the Trading Process》, 在摩根工作的时候曾有人大力推荐, 当时粗略扫过一遍, 理解不是太深入, 只挑选了和自己工作交集比较多的地方:OTC 和 后交易(Post Trade) 部分东西了解了; 里面介绍的金融产品非常丰富, 超出了我们大多数人接触和理解的范围, 但是对于一个交易的生命周期, 在本书中得到淋漓尽致的描述,而且非常通俗易懂, 同时还有些许金融八卦, 有兴趣的同学可以了解下。 当自己试图去构建一个真正的交易系统时候, 翻尽网上资料,收获不多, 倒是引来了一堆google,某度的大量广告的推荐, 都是某某交易软件怎么牛X!-_-!; 但是最后找到了一个很不错的 CMEGroup 的资料库。开放透明详细, 还有视频, 实属不易。在迷茫中找到了一丝光明。
一个互联网思维下的交易系统, 当然和一个部署在银行或者一个算法交易平台后面的系统, 不太一样,在时效上会稍逊一筹; 但是在扩展上面将会便捷强大得多; 他本身致力于服务于万千被拒之于在现有交易平台、系统之外的人们, 目标是任何一个能连上网的人都可以交易。 任何一种产品,金融非金融的,只要有价格波动的均可交易; 这个让我回想起很多OTC 产品,听起来都让人摸不着脑袋, 比如天气里面的温度雨水等; 但是他们都是一些非常优质的标的:公开、透明、唯一且权威。 所以某种意义上任何一种符合这样属性的产品, 都可以称为金融产品---当然需要有波动, 越频繁越好! 比如上海二号线人民广场4号口每天的人流量。 如果这个作为一个数字进行交易, 很有可能变成一个非常炙手可热的产品。 所以某种意义上, 金融产品和菜场里面的菜,百货市场里面的衣服、电器没有本质差别。 如此一来一个交易系统, 不就是一个淘宝系统吗? 嗯, 差不离,基本挺像,但是有些特征非常具有挑战是淘宝没有的(后续再表述)。 所以总体来说设计、实现一个交易系统其实并不十分难, 但是这个是让人听起来挺高级的玩具。关键他可以为自己所用,真正来源于生活,最终服务你生活日常。
言归正传, 这个系列的文章将分为下面几个部分(可能后面会修改调整)来探讨, 一个是对团队埋头捣鼓做些总结, 另外抛砖引玉,寻找更多志同道合同学共勉学习。
交易系统是什么: 交易系统主要功能和特点。
交易系统几大模块: 参考 CMEGroup, 剔除不需要的留下最核心的东西。
交易系统需求: 不管采用何种底层技术,一个交易系统在技术上比较满足条件。
技术架构选择: 围绕需求, 如何选择技术框架, 这里以JAVA 语言下平台为主。
搭建交易系统: 着手开始设计,分模块,列接口。
如何测试: 压力压力压力, 正确性。
准备上线: 终于可以解脱了?吗?
展望: 算法交易, AI 其他
这将是一个初级的交易系统, 不能保证在真实的环境中能够非常平稳的工作, 同时由于部分工作的问题, 内容细节多有删减和调整。
做这个系统的感受是, 开始是无限的困惑, 中间是无尽的煎熬,最后---没有最后,后面其实是永远的煎熬.... 但是这一年来, 接触过的技术理论实践, 可能超过以前很多年的经历;个中原因,唯有过来的人方能体会。
希望自己能够写完, 作为一个组织资产, 也是自己的资产。