sjk000
作者sjk0002017-08-11 16:17
其它, 456

【交易技术前沿】自动化技术在证券业应用讨论

字数 4018阅读 96评论 0赞 0

本文选自《交易技术前沿》第二十六期 (2017年03月)。
沙 明
技术开发总部


2016年3月,AlphaGo与围棋世界冠军、职业九段选手李世石进行比赛,并最终以4比1的总比分获胜。
2016年7月18日,世界职业围棋排名网站GoRatings公布最新世界排名,AlphaGo以3612分超越3608分的柯洁成为新的世界第一。
2016年12月29日至2017年1月4日,AlphaGo以Master为注册名,依次对战数十位围棋界的顶尖高手,最终以60胜0负的辉煌战绩横扫围棋界。
一时间AlphaGo的名字响彻全球,他不是隐居于桃源的世外高人,也不是精于围棋技巧的精英团队。他是一款围棋人工智能程序,由Google旗下DeepMind公司的团队开发。其主要工作原理是“深度学习”。“深度学习”是指多层的人工神经网络和训练它的方法。一层神经网络会把大量矩阵数字作为输入,通过非线性激活方法取权重,再产生另一个数据集合作为输出。这就像生物神经大脑的工作机理一样,通过合适的矩阵数量,多层组织链接一起,形成神经网络“大脑”进行精准复杂的处理,就像人们识别物体标注图片一样。另外AlphaGo还用到了很多其他新技术,如神经网络、蒙特卡洛树搜索法等,使其实力有了实质性飞跃。
正因此,人工智能已经成为一个非常热门的话题,设想应用的领域也越来越广泛,当然炙手可热的金融领域也一定列入其中。两大核心结合,便形成新的热门话题——金融科技(Fintech)。
现阶段的Fintech主要分为互联网金融和智能金融两块。其中互联网金融以IT和FA形式为主,它解决的是“如何让交易方在平台上发生交易机会”的问题。目前国内已经存在大量互联网公司。而另一块,智能金融,也就是用人工智能(AI)来做金融,在国内则有待发展。
目前许多金融领域从风险投资到孵化器,从券商到私募,从银行到交易所等,面临的问题主要集中在“价值判断”和“风险评估”两个大问题上。以前,传统做金融的方法是凭借经验和人脉来进行价值判断。那么机器能不能替代人来做出价值判断和风险评估呢?比如说告诉机器一些因素,然后它自动告诉你写事情成不成。其实市场上也有很多这样的探索者,但是最后我们发现,短期内很难实现。
在证券期货业,Fintech中流行两个概念,互联网券商和机器人投资顾问。互联网券商就是把原来人做的工作,分担给机器做一部分。然而现在所谓的互联网券商,只是把一些业务放到了互联网平台上,其实这不是真正的互联网券商。而对于机器人投资顾问,则大部分人还是持怀疑态度——从在物理世界获取信息到作出价值判断,这里面有许多链条,可否用机器生成,其中的一些工作可否用机器承载。还需要进一步探讨和研究,未来的路可能还很长。
本次主要想就关于自动化生成金融业报告的技术问题进行一次探讨。
首先想先整理一下金融业的报告类型,大致可以分为以下四种:第一种是信息披露类的报告。如股转书、做债报告、贷款报告等。沪深A股、新三板、美股都有招股说明书、股转书,这是信息披露类型的报告。还有年报、季报等等,全球每年有几百万份。第二种是研究类的报告。基于这些公开的材料再做一些加工,如卖方的券商报告、买方的基金报告,还有中介机构、咨询公司的报告等。第三种是摘要类的报告。一般在各个大券商公众号里面每天都会发,如说分行业、计算机行业、汽车行业,发生了很多事情,做一个每天的摘要这样一个报告。有些网站每天也都会发一些重要公告列表,这是一种公告摘要。还有一种是日常的跟踪报告,有按天的、有按小时的,有按月的、按周的,报盘的新闻,在很多的财经媒体上,这种股票走势、大盘走势,这种行为都是机器人写的。再有一种就是企业的信息图、基本要素的分析,很多刚入行的分析师、实习生,每天都在写这种东西,把这个企业拿过来看一下,基本亮点是什么,股转书里面弄一个PPT出来,写这种东西。最后一种是陈述性类的报告。所有前面不能够囊括的东西都归在这个里面,如各种各样的新闻,背景介绍、公司介绍、行业介绍,或者介绍一个新公司等等信息。然后深度进行观点分析,认为这件事情是什么样的,展开讲述。还有一些像八卦类的东西,机器人肯定替代不了。
对于上述列举的那么多报告,如果都能自动化生成,那带来的成本上的降低和效率上的提升会大大推进Fintech的前进。其实自动生成报告并不是什么新技术了。自动生成的报告大致可以分为两类:一种是图表,一种是文本。关于图标,用过 Excel 表格的基本都会,不是新鲜事物。但是生成文字就不是了,不像绘制图表一样简单了。但是,生成文字也有简单的方法。按照难易度可以分为篇章级别、段落级别、句子级别。在篇章级别上用一种模板,替换里面的数字或关键字是最简单的。也用不到深度学习这种技术。不过,如果使用也是可以的。段落级别的自动生成报告就有点难了,尽管还是在段落级别的模板上替换数字或关键字,但是要考虑段落的组合。句子级别那就相当难了,句子组合成一个段落真是相当不容易的。但是,深度学习不只是替换关键字,最基本的句子也是可以自动生成的。我们用过各类翻译软件或者网站,很明显能感觉到以前很多句子是不通顺的。但是最近几年这类机器翻译有一个质的飞跃。虽然还是那么烂,但是感觉能看得懂了。机器翻译因为有很多的平行语料,所以可以用深度学习训练。在金融领域里,我们自动生成报告遇到的难点是可以用于训练的数据不多。但是模板级别是不需要的。以应用场景为驱动,在不断迭代过程中让成本更低这个目标下,还是有信息的。
以上用很多文字描述了一些报告的现状和自动化生成的需求,下面就重点来探讨一下怎么去实现这样一个系统。
一般来说,这样一套自动化生成报告的系统会包含以下这些流程:从互联网络云计算平台自动采集;采集到的信息再自由加工;结合公司内部资料再进行汇总、整合;本系统也有现有模板 也可自创模板,采集信息+内部信息进行整理;再进行编辑;再通过一级一级的管理员进行审批(可单个或多个审批);报告存储;报告用印;报告发布(邮件发送、上传、下载、查询等)。
此类自动化生成报告系统应该是一个整体长远的规划,需要券商及其他金融机构对证券期货业的增值服务有比较深入的了解。系统的整体架构可以考虑采用MVC多层架构,并且满足系统对于复用性、扩展性的要求。具体架构如下图所示:
微信图片_20170811161617.jpg
系统可以分为4层,每一层都对应负责特定的工作。由下往上分别为:数据层、应用层、业务层和表示层。
其中数据层主要抓取各类金融相关机构提供的行情数据,客户数据等一系列初始数据。这些初始的数据可以从一个家或多家机构中获得,并且通过应用层的提炼后给业务层使用。
应用层是通过提炼数据层初始数据,并经过对数据库关联分析、预测等方法中获得行业数据,提供给业务层来使用。
业务层是从表示层中接收用户的输入,并将其转化为自然语言传入应用层,根据传入的内容向数据层发送请求,并将数据层返回的信息转化成自然语言展示在表现层。
表示层是和用户交互的WEB页面,通过组织业务层的信息,以自然语言的方式反馈给前台用户。短信接口和邮件接口主要是通知用户的另一种方式。
整个系统实现最复杂的应该是它的业务流程,自动化生成报告的业务流程可以简单的分为以下四个步骤:
1. 数据收集:报告需要使用的原始数据整合
2. 产品设计:报告包含的内容,样式等
3. 生成:根据一定的算法规则生成报告
4. 发送:报告自动生产完毕后根据一定的算法规则发送
根据这些步骤,可以设想系统主要会包含:分类、模板、报告、发送和订阅等管理功能。分类功能可以是一个公共的树状结构管理页面,用户可以使用该功能对数据进行分类。模板功能可以是包含了模板的增、删、改、查等操作,根据不同的报告内容或形式制定相应的模板,并且可以对一些参数进行定制。报告功能可以对不同类型的报告进行自动化或者人工审核管理。发送功能可以是对某类特定人群分组后,定时定量对其发送一些特定的报告。订阅功能用户可以通过注册来获取订阅某类产品的报告,甚至可以考虑收费和免费的内容。
系统大致功能内容设计完成后,另一块最重要的内容探讨就是报告模型的生成。一般是基于XML技术和一列规则,并结合证券期货行业报告的特点,来生成报告的目的。可以把报告作为一个容器,专门用来存放数据,并且将该数据分成一个个独立的对象,每个对象实现特定的功能,并生成XML结构,然后根据XSLT技术转换成HTML格式,并最终转换成相应格式的文档,如:PDF。具体可参照下图生成的基本过程原理。
微信图片_20170811161657.jpg
出于篇幅考虑,本文不再对其他相关功能点过度展开讨论。
现今Fintech火热核心主要还是为我们提高效率,包括上文所述的自动化生成报告。提高效率细分为几块,一个是提高我们获取数据的能力,比如爬虫。在使用一些金融终端进行分析的时候,很多事情其实是机器可以做的,它可以自动每天、每周,把关心的数据爬下来,可以节约很多很多的时间。我们可以用数据库,可以写规则。比如在网上有很多现成的规则的工具,其中一个叫IFTTT,如果在某网站上发现了一个人在讲某一只股票,让它自动推送过来,可以节约大量时间。我们去进行信息搜集的工作。凡是一件会重复劳动或者感到繁杂的事情,都意味着可以自动化它。学习机器学习的基本工具,比如说 weka,是有可视化界面的,基本上只要学会怎么导数据,怎样一步一步选一个算法,就可以得到结果,机器学习并没有大家想象的这么难以去掌握。只要掌握了工具去进行信息的收集和信息的整理,我们可以比我们身边的人,或者另外的那个楼的人工作效率更高。
最后一点,我觉得也挺重要。现在有太多的人会声称人工智能无所不能,但是真正的从业者知道,它非常局限。切不可迷信人工智能并且神话它,在大多数事情上,我们只能推进一点点,而这一点点还是要大量的人工去堆的。我们在工作当中,通常大多数时候并不需要非常高深的人工智能的知识,就可以极大地提高我们的效率。
转自微信公众号:上交所技术服务

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
© 2017 talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30