刘力军 梁国鹏 王海涛
量化投资作为一种交易手段在欧美等国家已经被广泛应用了30多年,其投资业绩稳定,到目前为止,程序化的股票交易在美国和欧洲等国家得到了大面积的普及,随着国际金融市场规模的不断扩大,获得了越来越多投资者的认可。相对于全球发达金融市场而言,中国量化交易不算新兴事物,但相对小众。
本文主要通过利用python语言,针对当前被广泛认可的股票技术指标,如MA均线、MACD、KDJ、BOLL等,提出量化交易系统的模型实现方案,并优化仓位管理的策略。下面将从什么是量化交易,量化交易系统的建立,以及优化仓位管理策略几个维度来介绍如何建立量化交易系统。
量化交易是指以大量的投资相关数据为样本,通过以数量化方式建立合适的数学模型与公式,运用计算机技术编写高效程序,研究分析金融产品未来收益与风险,判断各种行情走势发生概率,程序化发出买卖指令以实现投资的交易。量化交易具有以下优势。
量化交易可以利用计算机对海量数据进行分析,得到常人难以发现的盈利机会,快速找到股票交易的合适时间和合适策略。
根据交易模型的运行结果指导决策,既可以克服人性中的贪婪、恐惧等弱点,也可以克服人们的认知偏差。
量化交易可以通过计算机的精准计算,找到确定性收益的部分,并辅助以大数据及人工智能的算法优化,找出“大概率”的超额收益。
量化交易策略是需要有一个不断更新、不断优化的过程才能适应日益复杂的投资市场变化,利用计算机辅助的分析优化过程显然在效率上胜过人工分析。
量化交易模型是以计算机为辅助工具,以编程开发语言编写程序,以固定的逻辑来分析、判断,并帮助提供决策。一个完整的量化交易模型应该包括数据的输入、交易策略的处理、数据回测分析、收益结果展示,给出交易判断,最终以自动化交易的方式,或者手动交易的方式完成交易。对于数据的选取本身就对量化交易策略产生重大影响,目前中国股票市场一共约5000只股票,选取哪一只股票,以及用股票的哪一个时间段的数据显得尤为重要,因此对数据的回测分析,进而提升交易策略的优化是非常重要的环节。
量化交易系统的研发模型如下图所示。
量化交易系统模型整体流程
BOLL(布林线)指标是股票交易技术分析的常用策略之一,由美国股市分析家约翰.布林根据统计学中的标准差原理设计出来的一种非常简单实用的技术分析指标。一般来说,价格的运动总是围绕着某一价值中线(如价格均线、成本线等)在一定的范围内变动,布林线指标正是在这种条件的基础上,引入了“价格通道”的概念,通过计算一段时间内价格的“标准差”,再由均线加上或减去某一倍数的标准差,求出价格的“运行区间”。利用该指标可以求出三条线,其中上下两条线可以分别看成是价格的压力线和支撑线,而在两条线之间还有一条价格平均线。一般来说,股价会运行在压力线和支撑线所形成的通道中。本文首先给出利用BOLL线交易策略的演示结果。
策略规则:股价下碰支撑线时买入;股价上碰压力线时卖出。
以平安银行(股票代码000001)为例,实验数据以2017年1月至2021年6月进行测试,实验结果为总收益率为94.82%。
基于传统的BOLL线策略在股价波动期间可以得到较好的收益率,但是在股价单边上涨或单边下跌期间却无法很好地扩大收益或降低损失。对于经典的量化交易策略一般有一定的适用性,比如在不同的时期可能有不同的量化交易策略表现良好,对于不同的股票也可能有不同的量化交易策略表现出收益差异。交易策略的优化或者交易策略的组合是建立量化交易系统非常重要的环节,也是每一个量化交易系统的特色及生存之本。
例如,参考海龟策略,采用仓位配比策略对以上BOLL线策略进行改进优化。海龟策略将资金分成两部分,一部分资金按系统一执行,一部分资金按系统二执行。
系统一
(1)若当前价格高于过去20日的最高价,则买入一个单位(例如仓位的1%)。
(2)加仓:若股价在上一次买入的基础上上涨了一定比例(例如1%),则加仓一个单位。
系统二
(1)若当前价格高于过去55日的最高价,则买入一个单位(例如仓位的1%)。
(2)加仓:若股价在上一次买入的基础上上涨了一定比例(例如1%),则加仓一个单位。
对于止损部分,当价格比最后一次买入价格下跌一定比例时(例如2%),则卖出全部头寸止损。
同样以平安银行(股票代码000001)为例,实验数据以2017年1月至2021年6月进行测试,实验结果为有仓位优化策略的总收益率为107.18%。
通过量化交易策略的不断优化、模型的运行、数据化的分析、投资交易的指导,量化投资可以更好地帮助人们进行资金管理,提高收益,控制回撤。当然我们也要认识到,量化交易模型只是对量化投资的一种交易模拟,但是经过不断优化的交易策略和量化系统,必定能够指导人们的交易行为。量化投资在当今国内及全球的投资市场中起着越来越重要的作用,尤其是现在大数据和人工智能时代,量化投资系统以其海量计算及战胜人性等诸多优点,必然在未来投资领域产生巨大的潜力和空间。