雷锋网AI金融评论消息,由开源社、TopGeek、汇智Tek联合主办的中国区块链和金融创新科技峰会(FTCon2017)日前在上海举行,现任上海均直资产管理有限公司投资经理的陈晓优进行了“拥抱开源,量化投资行业新趋势”主题演讲,指出在当前的金融市场中,商业软件和机构自研已经较难满足量化投资机构需求,而作为新趋势的开源量化软件能够解决机构痛点,但也表示开源技术并不是尽善尽美,还有发展空间。
据雷锋网AI金融评论了解,陈晓优是伦敦卡斯商学院金融工程学硕士,开发并维护了针对国内市场的量化交易系统框架vn.py,目前是国内用户最多的金融投资开源项目之一(Github Star 2486),据不完全统计,已有数十家金融机构在实盘投资中使用。
以下是经过陈晓优确认的演讲实录,雷锋网AI金融评论做了不改变原意的编辑。
今天我的主题是量化投资与新趋势开源。量化投资在我国、世界的历史都不是很长,美国八十年代出现使用计算机来炒股和炒期货。接近2010年,国内才出现了比较正规的量化交易机构,而国内民间用计算机程序来量化分析行情走势可能更早一些。当时的形式主要是面向个人和小型机构的商业软件,早年投资者凭借这些软件可以就可以在市场上取得相当丰厚的收益,但到今天已经变得难以为继,当前国内的量化投资领域正是开源项目大放光彩的时候。
先说说量化投资的几个特点:
与传统拍脑袋投资不同,量化投资使用数量分析方法寻找能够实现稳定盈利的规律,通过采集历史数据的时间序列并建模,寻找预测未来价格变动的方法。
量化投资一般由计算机驱动。尤其在今天市场上,股票数量众多,行情以“秒”级变化,这种情况下不可能依靠人力绘制K线,分析开盘价、收盘价等信息,必须依靠计算机。理想状态是在建好策略、模型后,计算机可以在输入数据的基础上自动处理后作出该买还是卖的决策,这有利于避免人带来的不确定性。
量化交易通过高性能算法实现超高速的交易决策。美国最高可以达到纳秒级别的响应速度。
关于量化投资行业现状,我们从公募基金来看(因为私募基金不太愿意公布数字,也无法统计),截止2016年11月,股票量化产品规模超过858亿。截止2017年1月,公募主动量化产品三年平均回报超过了105%。
而经过2015年的股灾之后,到今天能回本的投资者都算是高手。大部分人的基金回报只有50%,而用计算机管理的收益率至少是它的一倍。值得注意的是,这种产品还只是公募,比较高端的私募量化产品的收益可能会更高。
此外,量化FOF产品、智能投顾正在逐渐成为资产配置的新宠儿。目前大型金融机构如银行、信托等机构等使用较多。更多理性的投资机构开始拥抱计算机,计算机能够摒弃人的感情,以完全理性的决策态度帮助投资者获益。
国内量化投资是从商业软件起步,初期可以满足大家的需求,而在今天的市场中,完全使用商业软件会有各种各样的痛点。
首先是安全性方面的顾虑,一方面是模型的不安全,量化交易的核心模型或者说是交易策略必然存储在某个平台上,不论是某个商业平台还是某个开源平台、或者matlab里的一些文件。这些文件可能只有几K,但是带来的价值可能是上千万甚至上亿。另一方面是数据的不安全性,有一些重要的商业机密例如持仓、渠道、客户、资金来源如果放在商业平台上,完全达不到足够的安全性。
第二,不兼容。这是国内一些金融软件服务商的缺点,想做大而全,吃下全部的业务,囊括数据、策略、交易等,但是每个公司精力有限,总有些并不擅长的业务。对于终端用户来说,想要各个业务都获得最好的解决方案,但是很多软件要用就得用一套,用户没得选。
第三,迭代慢。这是一些大公司的弊病,对于新业务的支持反应速度比较慢,等大家都做了它才做。
商业软件有诸多不适用的地方,那么有一些量化机构就选择完全自主研发,但这种模式也有不少痛点。
一,周期长,需要经过数据、回测、实盘阶段。首先需要搞定数据,对于金融机构而言数据收集、维护成本很高;再者研发过程中需要不断的测试,例如购买一些外面的解决方案。还有一个大问题是试错,尤其在国内,软件业务更新速度很快,谁能在开发过程中领先就能在竞争中占据优势地位。
二,成本高,包括人力、物力、试错费用。首先你需要很厉害的CTO,但是能不能找到也是一个问题。再者是金钱,不论是人力成本,还是研发过程中的测试、或者半成品解决方案,都需要不少费用。此外还有最大的成本机会成本。国内量化行业发展非常快,如果你开发一个产品成功了那么可以躺着赚钱。但是如果东西做不出来,不仅沉没成本没了,还只能推倒重来,再投入一遍成本。不过中国的市场竞争很激烈,赚钱机会越来越少,市场越来越有效,试错成本也不断攀上新高峰。
三,不稳定,一方面因为用户少,另一方面,检验量化模型有没有问题主要看实盘赚不赚钱,不上实盘无法检验某些BUG。而实盘检验出错可能又踩入试错的坑,需要推到再来。
所以这两三年,量化投资领域涌现出很多开源软件,开源有五点好处:
第一是开放的源代码。大家可以看到程序对于数据的处理流程,不用担心别人偷偷把我的投资策略上传到他的服务器上,从而削减我的获益能力。开源后你做出来的东西就属于你,除非内部人员管理出现问题,员工偷走了你的模型,否则能够杜绝核心机密泄漏的风险。
第二,开源有着良好的架构,绝大部分开源项目在发起时都不是为了赚钱,主要追求之一是为了获得更多的用户,通常来说扩展性设计就会比较好,开源在扩展性与应用性的平衡会做得比很多商业软件更好。很多商业软件要么就追求速度,要么就追求应用,这两个都会导致拓展性变差。而开放的架构有利于新业务的快速开发。
第三,开源意味着开放的设计。作为一个开源项目,我们总是假设用户已经买过各种解决方案了,而开源项目也不会做全所有业务,那么会预留需要跟其它系统对接的接口,开源项目可以有机整合此前的系统,提供易用、扩展性的产品,能促成效益最大化。
第四,许多开源量化软件使用通用性较强的语言,比如Python、R等,这种开源项目有一个大的好处,就是一个平滑的学习曲线,而很多商业软件要么使用C++、Java等语言要么自己设计一套语言,总之一旦用了该平台,转换成本就会很高。从它们角度来说,这是商业利益最大化,但是从用户角度来说,长期成本太高了。目前商业软件方案越来越被量化巨头机构所抛弃。
第五,开源容易形成成熟的社区。开源提供交流、测试的场景,越多人参与其中测试、改进,系统也会越稳定。群策群力也能最快找到正确的发展方向。
上图是开源软件构建的一条量化交易工具链,分为几个步骤:
首先是数据收集,国内比较有名的是tushare、windpy,后者是大型商业软件公司万得做出来的一个开源接口。
接着到了数据分析阶段,NumPy用来存储和处理大型矩阵;pandas解决时间序列;用Matplotlib来实现数据可视化。
第三阶段是策略研究,IPython是一个交互式计算系统;Jupyter是最方便的策略研究工具之一;Zipline是一个策略回测框架,可以基于历史数据对策略进行回测检验;RQalpha是国内公司开发的策略回测框架 。
实盘交易是整个生态链最后一环,vn.py 是基于python的开源交易平台开发框架,easytrader适合个人投资者,是一个开源的股票量化交易组件,只要你有一个炒股软件,就能用它直接做量化交易,at.py则是一位在开源领域耕耘多年的大神的作品。
这是一个Github前十名的量化开源统计,统计时间是2017.3.22。从这个榜单中可以发现,python语言占了8位,此外,我们看到有很多策略回测框架,数据下载工具,还有比特币策略模型。如果大家了解量化交易后想试试,可以看这些项目的源代码,质量更高,用户也更多。
开源项目也存在短板,他们是被攻击最多的地方,可以用一句话来概括——免费的才是最贵的,这意味着缺乏专业服务。不过解决方案也很简单:
积极参与开源社区,培养技术团队。从vn.py社区的一些经验来说,绝大部分用户是私募、券商等专业金融机构,这些机构希望自己的投资团队并不只是拥有写策略、做交易的能力,也希望在一定程度上拥有扩展平台、开发新功能能力,那么他们通常会加入到开源社区,先把自己的业务需求在框架上跑起来,后续再改进并使原来没有跑起来的业务也能顺利运行。此外,还会多多与社区众人交流,看看这是否是最优解决方案。长期来看,对整个团队战斗力会有非常大的提升。
获取开源技术咨询和培训服务,可参考知名的开源解决方案供应商Redhat和Wordpress,这可能会成为国内一个趋势。