量化投资平台的设计与实现

2018-11-15 01:33蔡振之孙建言赵锦
电脑知识与技术 2018年20期
关键词:程序化大数据

蔡振之 孙建言 赵锦

摘要:随着计算机技术的进一步应用, 尤其是大数据技术的崛起,许许多多传统的行业在新技术的应用下将会发生巨大的改变。量化投资是指通过数量化方式及计算机程序发出买卖指令,以获取稳定收益为目的的交易方式。本研究中,我们将从信息获取接口开始逐步完成可靠的程序交易方案的架构。

关键词:量化投资;程序化;大数据

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)20-0047-02

Quantitative Investment and Investment Platform Design and Implementation

CAI Zhen-zhi, SUN Jian-yan, ZHAO Jin

(Department of Information Science, Dalian Institute of Science and Technology, Dalian 116029, China)

Abstract: With the further application of computer technology, especially the rise of big data technology, many traditional industries will undergo tremendous changes under the application of new technologies. Quantitative investment refers to a trading method that aims to obtain stable returns by issuing trading instructions through quantitative methods and computer programs. In this study, we will gradually complete the architecture of a reliable program trading program from the information acquisition interface.

Key words: quantitative investment; programmatic investment; big data

1 引言

在量化投資兴起之前,各种以人的判断为基准的投资方式是市场的主流。这种投资策略对投资机构的各能力要求较高。不但要求投资机构能够预判市场动向,而且需要操盘者细心谨慎,时刻观察市场变化。这样的投资方法有一定的主观性,而且运营成本高,风险大,收益率受主观影响大。

随着信息技术和计算机技术的飞速发展,一种定量的投资方法悄然兴起。通过建立合适的数学模型并对大量数据的分析,来达到把握市场趋势,判断交易对象和数量的目的。同时,通过券商提供的接口直接由计算机发出交易指令,高效而精准地进行投资,排除了人的认知偏差和主观认识,并调动了计算机无与伦比的计算能力,将投资风险降低,保证投资收益率相对稳定,传统投资相比收益更高。

2 可行性研究

2.1技术可行性

本次研究实现的量化投资架构将使用python作为基本编程语言。通过numpy、pandas等python下的工具包提供的数据结构来处理数据。如果需要高级的算法python下包含的各种算法模块更是其他所有语言无法企及的。

在金融产品的程序化交易方面,我将使用盈透公司提供的交易网关进行账户背书。使用python对现有的API功能进行进一步开发可以实现程序化交易功能。

综上所述,在技术上量化投资架构具有良好的技术可行性。

2.2经济可行性

本次研究实现的量化投资架构主要的成本在于购买实时行情的成本。各个证券交易所的各种行情一般情况都需要购买。但这一成本很低,完全没有经济上的问题。

此外,附加成本便是开户费用,以及美国股市对T+0操作的最低账户金额的一些限制。这些成本可以在投资业务逻辑中体现并加以解决。

2.3社会可行性

如今,有很多券商提供支持量化交易的网关,使用其现有的网关便能通过编程实现账户背书、资讯获取等功能。本次研究所使用的编程语言Python遵循开源语言协议,可以按需要任意使用。此外,本架构所涉及的软件模块都遵守MIT许可,属于开源架构,在社会可行性上有充足的保证。

3 系统详细设计

3.1系统功能结构

通过分析,本次研究中的量化投资架构可以分为三大模块:信息获取模块、策略实施模块以及实时监测模块。其中,信息获取模块将为投资提供所有的证券相关信息。而策略实施模块将可以将投资策略发出的做多或是做空信号实时地形成订单传送至交易所。最后,实时监测模块会时刻反映投资策略执行的现状。

除此之外,三大模块下的各个功能也是各不相同。在此,将系统功能结构分为以下三层:

3.2数据库设计

本次研究是针对国际上各种金融产品的量化投资,其中包含了各种各样金融产品如:股票、期货、指数、债券等等。金融产品虽然种类丰富,形式众多,但是其本质上都是信用契约的一种,可以用同一种实体进行表示:合约。根据合约这个实体,我们便能确定在金融市场中唯一对应的金融产品。虽然金融产品是多种多样的,但是金融产品的基本行情都是由基本的蜡烛图和常用的金融指标构成的。我们主要针对以蜡烛图为主其他信息为辅的量化投资策略进行实现。

市场深度指的是当前市场中在证券交易过程中,现有订单的出价列表。市场深度有着独特的地位。无论是大订单的成交还是普通订单价格的确立都涉及市场深度带来的影响。订单是实施量化投资的关键实体,确定了订单的各个属性才能严谨地有效地实施投资策略。金融市场中的订单多种多样有限价单、止损单、市价单等等。虽然订单的种类繁多,但是往往都可以在最基本的限价单上进行功能添加。在此,使用限价单作为订单的实体进行分析。在量化投资过程中,总有一个和券商绑定的个人账户。这个账户内所反映出的最终信息将是量化投资的最终结果,关于该账户的信息是非常重要的。

3.3 类的设计

对于系统中每个模块所包含的类,每个类中所包含的函数,在详细设计阶段应该将各个类及其函数进行详细的设计。

1)信息获取类(InforCollector类)

信息获取类集合了量化投资架构中所有的金融产品信息获取函数。其中的函数有合约搜索函数、蜡烛图获取函数、金融指标计算函数以及市场深度获取函数。

2)订单管理类(Order类)

在实施量化投资的过程中,订单的管理是其主要事务。订单管理类将所有和订单相关的函数集成在其中,主要是开启订单和删除订单函数两种。同时,开启订单函数还具有自定确定适当价格的功能。

3)Web服务类(Watbcher类)

本次实验的监测模块由Web服务作为监控模块最终展示的窗口,所以需要一个完整的Web服务作为监测模块的基础。我们选择Tornado架构作为Web服务的基础,其特性使得Web服务简单而高效。Web服务类中主要集成Tornado架构所需要的各种基础函数。

4)Tornado响应类的子类

在本次研究中,监控模块使用Tornado架构来构建Web服务。根据Tornado架构的特性,不同的响应都需要对应不同的响应处理类,同时这些响應都应当是Tornado架构下的RequestHandler类的子类。在此需要的响应处理类有订单信息响应类、蜡烛图信息响应类和资产信息响应类。

5)IB网关类的子类(IBApp类)

IB网关类是由IB网关提供的让程序与IB网关交流使用的类。因为IB网关是与交易所交换信息的必经之路,所以IB网关类和很多类有着间接的依赖关系。由于所需功能不同,IB网关类将由合同接收类、蜡烛图接收类以及订单接收类继承。

根据以上分析,系统中的类图之间有着比较复杂的继承和依赖关系,其系统总类图如下所示:

4 结束语

在本次研究的系统实现中,我们将围绕上文的分析,实现一套以技术分析投资策略为主的量化投资架构。

参考文献:

[1] 赵海军. 量化投资交易系统的设计与开发[D].长春:吉林大学,2017.

[2] 薛辉.基于量化投资管理的系统设计[J].金融电子化,2016(10):64-66.

[3] 吴轲. 股票量化投资策略在DTS平台的实现[D].长沙:湖南大学,2016.

[4] 蒋树国. 量化投资趋势策略分析和研究[D].北京:对外经济贸易大学,2016.

[5] 李子睿. 量化投资交易策略研究[D]. 天津:天津大学,2013.

猜你喜欢
程序化大数据
程序化操作在调度运行中的应用
中国程序化广告技术生态
大数据环境下基于移动客户端的传统媒体转型思路
程序化护理干预对脑卒中重症患者的影响
程序化护理操作管理在预防护理不良事件中的应用效果观察