中泰证券何波:XTP为量化而生!
原创: 排排君 排排网官微 今天
为了探讨新时代新背景下中国私募基金行业发展面临的新机遇新挑战,由深圳市私募基金协会、私募排排网与易方达基金联袂主办第十三届中国(深圳)私募基金高峰论坛于2019年3月21-23日在深圳五洲宾馆隆重举行,本届高峰论坛以“与时进·稳中行·焕新生”为主题,集结诸多国内各类顶尖资产管理机构掌门人及业内知名大咖、资深研究人士共赴盛宴!
2018年,是量化投资表现抢眼的一年,由于期指持续的松绑,市场环境正常化,市场中性策略表现出色,管理期货更是表现出色,取得不俗的正收益,远远跑赢其他策略。2019年开始至今,A股大幅飙升,市场环境再度发生巨大变化,量化投资会否受到影响,该如何应对新的情况。私募排排网特邀期货领域和量化对冲领域的私募大佬及行业专家围绕“期货私募与量化对冲”进行深入探讨。会上,中泰证券科技研发部总经理何波先生发表了主题演讲。
(中泰证券科技研发部总经理何波)
以下为演讲实录:
首先感谢私募排排网提供这个平台,让我们有机会展示我们为私募做的小小工作,今天我做的是XTP的介绍。我们从2015年开始做XTP,到现在四年了。在这四年里,整个团队都秉持“因为专注所以专业”的理念,全身心投入、用心对待这个项目。人们常说,“喜欢是放纵,而爱是克制。”回首这几年的发展,我们非常克制,坚持匠心精神,只为打造最懂程序化交易的极速交易平台。目前XTP已经做到了全业务支持,包括股票、ETF、期权和融资融券。每一步在完成的时候都觉得异常艰难:做完股票的时候觉得很复杂,因为当时我们是第一个也是唯一一个从零开始做柜台交易的券商;当我们做完期权的时候,发现股票实在是简单太多;不久前,当我们完成融资融券开发后又发现,其中涉及的场景比股票和期权加起来都复杂。
经常有人问我:你们用什么理念做系统呢?我想总结起来七个字:有所为,有所不为。”我们不希望在我们的交易平台上什么都做,因为我知道有些是券商应该做的,有些不是我们应该做的。
所以,第一,XTP不做什么? XTP不碰策略。当然不是说XTP不做策略相关的东西,而是中泰证券作为券商不应该构建一个封闭的策略编写系统,我们更希望跟开源的社区合作。如果我们做了封闭的策略平台,让私募在这个平台上写了几千行代码的策略,这对私募来说并不合适。因为私募有一个天然的特点,就是一定会跨券商交易,我们认为客户在策略层面上不应该对我们产生太强的依赖。
再说说,XTP要做什么?第一,要建最快的通道,建极速行情,通过FPGA、组播和Level2-PLUS等实现。其次要做什么?我们要做最好的轮子,我们会做一些短趋势的模式预测放到交易执行、智能条件单,或是基于这些做短趋势的模型预测,希望在策略执行优化的层面上帮助客户。我们始终认为对私募来讲最大的痛点是如何增强收益,所以会努力在增强收益上做到极致。
再次,我们希望借助XTP构建一个程序化交易的生态。在XTP范围内,我们倾向于和开源社区合作。数据我们有了tushare、rqdata、策略编写及回测有米筐、聚宽、优矿,策略交易我们有vn.PY,quant box,要做的就是让没有系统的客户将策略构建在开源的系统上。我们不希望客户是在一个封闭的黑盒子里执行策略,而是希望其拥有属于有自己的策略平台。
“宁要少一些,但要好一些”。我们不求做最多,但做就做最精致。我们是券商里比较另类的——完全从零开始,全部自主研发做出了XTP。大部分券商可能会选择和第三方合作,买一套源代码回来改。我们希望通过一个更新颖的架构,用一些更极客的方式做。我们从2015年7月开始做XTP,一直到2016年10月份才上线,直到现在已经有一百多万行的源代码,经历过八十多次的发布和一万多次的源代码提交。
软件编程有一句名言“不要造轮子”,但我们在各种场景里造了非常多的轮子,从最基础的网络库、内存访问、IO,包括一些数据结构我们全部都自己造轮子,为什么这样做?并不是第三方不好,而是当你要在一个极致的场景内做到极致的时候,就需要一些极致的手段。
为什么要自主研发?“当妈的心,跟当保姆的心不一样的”。自己做XTP就是用当妈的心态来看孩子,把这个孩子从小做好。XTP团队有一个很好的创业心态,大家觉得这是我们必须要做的事情,每天我们每个团队成员都是用当妈的心态做系统。非常荣幸,XTP上线得到了挺多私募的认可,他们对我们系统的评价都非常好,第一觉得很快,第二觉得非常稳定,我们大部分的客户都是私募之间口口相传,靠口碑营销推荐过来的。
“虽乘奔御风,不以疾也”。速度是XTP最重要的保障。在行情上,我们提供双地的托管,上海、深圳两边的Level-2,行情解码上是可以低至2微秒,同时也提供Level-2行情,可以在我们的机房得到最快的股票。大家知道正常的行情,最快的深交所是3秒钟,而我们可以做到小于10毫秒一笔的快照,原理不复杂,就是用深交所的逐笔委托和逐笔行情去拼,但是有非常多数据清洗的工作要做,我们从开始的94%做到后来的99.9%,很多私募就不自己处理直接用我们的。在我看来,这个事情比较适合券商做,券商把最基础的东西做了,才能让私募客户把有限的IT能力投入到策略研发中。我们XTP内部延迟是35微秒左右,收到成交回报,以深交所为例大概是4毫秒+,订单的成交率目前是95%,所以客户对我们是非常满意的。
有人会说,中国的股票需要这么快的行情吗?以我们真实的客户为例,体现在中国市场,阿尔法+T0 已经非常普遍,比如对部分策略和客户快1毫秒,收益可以增加3%左右。我始终认为在中国,T0这种方式来增加收益在一定时间内会长期存在,所以就即便是A股市场,速度也是非常重要的。
我们可以很自豪的说,XTP在品种支持上非常全面,除了沪深股票全市场ETF买卖、申购赎回、新股申购、配股等等,现在还和集中交易打通,我们把XTP和金证的柜台打通,打通之后有很多业务可以在两边同时做。我们通过这种方式增加用户的收益,比如说平时在我们这里做股票,第二天收盘之后去柜台买理财产品等等。
我们上线期权交易已经快一年了,不仅支持上交所50ETF,还支持深交所的期权。刚刚上线的两融交易很复杂,涉及到很多风控的问题,包括很多细节上的问题,我们在融资融券可以做到小于500微秒的委托速度,这其中包括全部的风控,全部的交易。虽然速度比我们的股票交易慢10倍,但是然融资融券领域依然是非常快的。同时我们也支持科创板,会在科创板推出的时候会第一时间上线支持。
我们还有比较大的程序化交易的T0的利器,股票交易有一个痛点,帐户在上海,深圳交易就慢,因为有1000公里的距离,很难避免20毫秒的物理上的距离。我们怎么做呢?我们构建了一个帐户两中心的系统,同样一个帐户,你可以在两边同时部署,同时将资金做调配。比如上交所40%,深交所60%,盘中交易的时候可以把20毫秒省掉。如果是盘中的时候,比如说深圳的钱用完了,可以把上海的钱先转过去,这个功能对做程序化T0是非常有帮助的。
这个过程中,我们也造了很多轮子,构建一个纳秒级的日志系统,日志非常耗时,打一个日志就要5到10微秒,有可能打几条日志,性能就立马下来了。我们构建了50纳秒的日志系统,在系统里可以打非常多的日志,来分析系统的延迟问题。
XTP的愿景是提供最快的通道,帮助客户增强收益。在此之上,我们通过AI构建一个算法交易平台。我们希望在券商交易执行方面做一些更多的努力。这是整个算法交易服务,支持twap,vwap,等等。
首先我们通过两个方面,第一是对上交所的快照交易订单簿进行交易订单簿的猜测,接下来是还原;之后是针对订单簿的不平衡等一百多个特征,对市场未来10分钟内进行快速预测,构建新的特征输入。
这是大致的深度神经网络,并没有用一些传统的LSTM等常用模型,而是重新构建了一个神经网络,通过这个神经网络,将一些重要特征,包括订单簿的不平衡做了短期的预测,目前来看预测效果非常好的。
同时,我们通过强化学习,用深度学习做预测,用强化学习做执行。就是做算法交易,你要做好,重要的因素是什么?就是你的被动单比例必须高,当你的预测做得好的时候,就可以有更多的被动单执行率,这个时候绩效就会更好。
强化学习的时候就是通过深度强化学习进行最优的策略执行。国内和国外有很大的不一样,国外的成交量的曲线是很好的,非常符合主要文章的分布,国内的毛刺很多,需要动态的做一些分析通过强化学习来做执行层面上的优化。
“凡事预则立,不预则废”。我们要看在风控上做好风险防范。风控非常重要的,外部接入管理办法明确提出程序化交易风控。XTP从开始就非常注重风控,并不是简单的验资验券。XTP做了很多专门的风控,在这个过程中,能能区分你是正常的下单,比如说一秒钟下一千个股票,我们认为没问题,那就可以下。但如果同一个品种频繁的下单就会拦截,对特殊的场景可以分得很好。正常的、大量的、高频的交易都可以很顺畅的通过。但是当你的交易是异常的,是系统发生问题造成的,我们就会拦截。在这个过程中,我们帮很多客户发现了问题,希望在柜台做最后一道防线,能够帮你识别程序化交易是不是写错。
XTP一开始就是以API的形式接入,没有做文件单,没有做协议破解,这就是我们构建的社区。接口类似CTP,开始做的时候就在考虑,我们要不要构建一个自己的协议,我们觉得完全没有必要。虽然构建自己的协议,显得我们很专业,或者是显得我们跟别人不一样,但是我们觉得客户会很不方便。大部分做程序化交易的客户,都是从期货过来的,而且将来也一定要接期货的CTP接口。我们没有必要为了标新立异而做一个不一样的接口,所以我们完全参照了CTP做接口。同时我们也提供跨平台的SDK,支持windows,linux,苹果,我们是唯一一家可以接口苹果的,有很多开发人员用苹果来开发程序,开发人员的体验对我们来说非常重要的一件事情。
我们支持的协议接口,非常的全,包括C++,python,java,com,restfus,go等等。Java是自研内部团队开发的,还有com,go,restful都是我们的客户写完之后开放到github上开源的,XTP有比较强的生态环境。
提到回测上,XTP提供了阿里云和上证云两个7×24小时的测试环境。测试环境上提供了疯狂撮合引擎。传统的撮合可能提供的是全成,或是双方买卖来仿真的环境,但对程序化交易的客户来说,其实需要的是确定的不确定性。怎么理解?当你做程序化交易的时候,如果你从来没有在测试环境遇到过废单及或者是从来没有遇到过部成,或是部成两次后成交,或是部成两次之后部撤这样的场景,程序一到生产环境遇到这种情况,很有可能没有处理好,让你产生亏损。所以我们构建的是地狱模式的撮合引擎,可以把各种很少见的、不常见的情况推送给客户,让客户的程序在非常恶劣的情况下去执行。如果你的程序在恶劣的情况下都很健壮,都不会出错的话,那么这个程序将来在生产上的健壮性很高,后面还会加上更恶劣的场景,包括行情中断,超涨跌停的价格等等异常的数据都会通过这个推给你,通过这个让你的系统更加的健壮。
再说到模拟撮合,有一个很大的痛点,就是如何模拟被动单的成交?我们在做程序化交易,主动单成交都非常好模拟,用一个对手盘、价格、下单、成交,算一个折扣率就搞定。如何模拟一个被动单的成交呢?这其实是在做流动性交易非常常见的问题,或是现在的算法交易,T0,当你要用更多的挂单,更多的挂单要如何模拟他的成交?
在这里我们将上交所、深交所进行了分别对待。深交所我们基于Level-2 Plus的连续订单簿构建了一个类真实的撮合环境,通过撮合环境做真实场景的撮合。自己做撮合的时候有一个很大的痛点,如果你挂单,假设挂哪里?假设挂在队列的最前面,过于乐观;假设挂在订单的最后面,你觉得很悲观,但是逃避了反向选择的风险,整个被动单中的模拟是非常复杂的场景。基于上交所我们怎么做呢?这正好是上交所正做的一个课题,就是我们基于GAN对抗神经网络做的一个市场的模拟,用了很多代理,模拟个人投资者,模拟机构投资者,模拟提前知道消息者,通过对抗神经网络不停的训练,模拟成一个市场,希望通过这个项目做上交所被动单的一些模拟的撮合。
去年下半年开始我们构建了一个X-Club,最开始的初衷是觉得券商大都有策略交流会,大家来交流相互的策略。对程序化交易的私募,大家有对技术交流的渴望,所以我们构建了这个Club,当前已经举办了两期,我们对参加对象要求非常高,一共只邀请了40人。XTP的用户热情度非常高,有从北京、深圳、杭州、武汉等地赶过来的客户。我们邀请到业界最牛的内核专家来分享,一堂课讲两天,把每个场景讲得非常深。我们希望将X-Club一直办下去,关注最前沿的技术,找一些技术大牛来做分享,希望帮助大家一起提高技术。
前面说到,XTP在业界最大的口碑是稳定,我认为好的系统离不开好的运维。去年上半年的时候因为手动操作出现了一些小状况,后来我们重新构建了一个强大的自动化运维的体系,从系统的上线、发布、监控等进行一系列的管理,有着详细的日志报警等。
后来我们又想把这个平台向客户进行开放,因为的确有好多客户跟我们提,他们在我们这里跑的程序有各种各样问题的时候,其实他自己不能发现,也不能更好的运维,所以我们下一步会把整个运维平台对我们的客户开放。
我们的团队,目前有自己的内部研发人员150人,外包130人左右,整个XTP和人工智能团队是52人,5名博士。大部分的人员都是来自于互联网、BAT,有从美国Google回来的,有加拿大微软回来的。不管过去的背景多么强悍,大家都义无反顾的加入我们的团队,奔着一个共同的理想聚在一起,希望我们能够把这件事情做得更极致,做得更好。
去年XTP获得了很多的奖项,包括协会的最高成就奖,山东省新旧动能转换优秀金融产品奖,开发创新突出贡献奖等等。
“为了部落”这句话什么意思?XTP刚开始做的时候非常孤单,尤其是2016年,很多券商都说你们居然敢自己做交易系统,不怕出事吗?现在外部接入没放开,你们合规吗?最近一年多,来交流的券商非常多,很多也开始纷纷自己研发交易系统,为量化社区做出了更多的贡献。我觉得量化投资目前在国内的规模很小,根据基金业协会数据统计,真正做量化的,包括FOF全部加起来,在基金业备案的产品只有107家,私募排排网的数据是60家左右,超过1亿以上的量化私募只有300多家。我认为这个行业是一个远没有发展得很成熟的行业,离国外的标准很远,所以我们非常希望更多的团队、更多的券商能够加入这个领域,大家共同把这个量化行业做大。
谢谢大家。