王璨 杨威 李浩
(浙江万里学院商学院 浙江·宁波 315100)
现如今因为科技的迅速发展,信息也越来越透明化,越来越公开化,量化的技术越来越成熟,很多交易数据将在各类网站上可以查询。因此,在现如今的国内股票市场里,多因子选股模型发挥越来越重要的作用。
传统的多因子模型拥有很多缺点,因此通过算法优化和因子选取方法的改变,会使模型变得更加的完整,并且准确度提高。在发展过程中,多元回归分析、行业轮动、支持向量回归机、随机森林和量子遗传算法机器学习等理论体系,与多因子选股模型多次发生碰撞,又不断革新,产生了一系列的多因子选股模型。
本文将通过数据分析,金融,数学知识等知识构建一套量化交易策略,运用到的大体模型有随机森林、支持向量机两大模型以及用于择时的 MACD技术指标的运用。在股票止盈止损的方面,选择通过T分布以及置信区间对大量涨跌幅数据进行数理统计,计算止盈止损值。回测表明该策略在各方面表现优秀。
本文选取沪深300的股票,所有的财务数据都来自同花顺ifind(金融数据报告)。通过使用缺失值处理,最终选出224只股票。其中缺失值处理分为三步:
(1)采用箱型图方法来判别异常值,把数据中大于95%、小于5%分位点数据用95%、5%分位点替换。
(2)第二步,本文采取删除数据缺失过多的特征的股票,对于缺失值较少,采用数值插值的形式进行填补。
(3)通过标准化处理以达到数据规范化。
支持向量机(SVM)的主要思想可以归纳为两点:利用高维的空间中构造出的线性判别函数来代表原空间中的非线性判别函数,保证了机器具有较好的泛化能力;采用最优分离超平面结构风险最小化原则,使风险的概率与整个样本空间的期望满足一定的上界,从而全局达到最优分类。随机森林是一种对所选的对象进行分析预测的算法,它主要通过分出多棵决策树,每个决策树可以输出类别不同的树进行来进行预测。PCA主成分分析是把高维的数据利用线性变换投影到低维空间上去,尽量少的指标反映尽量多的有效信息。根据具体的需求和实际的需要,通过从中选取几个较为综合指标,来尽可能地反映原来指标的信息。
本文用到的K线技术指标有BOLL指标,又叫布林带指标。它主要由三条线组成,上轨,中规以及下轨。这三条线主要由标准差计算而来。另外一个KDJ指标,又叫随机指标,它是属于超买超卖的指标,KDJ指标主要有K值,D值,J值,这三个值主要是根据股票价格的最高价,最低价以及收盘价进行计算得到的。
本文以股票选取作为研究对象,基于价值投资的视角。如图2所示,该量化策略总体分为两个部分,左框的选股策略通过MATLAB与python语言实现,右框的交易策略则在Mind-Go①平台上完成。
首先,利用同花顺iFind平台进行数据的获取,选取营运能力、成长能力、估值、偿还能力和盈利能力这五大方面共63个因子,作为我们的初级因子池,进行数据预处理,然后利用相关系数检验因子的相关性,剔除高度相关的因子,然后利用随机森林算法进行因子的二次筛选,运行了2016—2018年的因子的数据,得出了这些因子的特征值,及因子对于年化收益率的贡献程度,选取三年出现特征值大于0.3,且三年都出现的因子,得到我们的二级因子池,见表1。
表1:最终选取的因子
针对上述16个因子,使用PAC分析计算各因子权重,得到5个公因子以及因子方程:
图2:策略流程
利用MindGo平台进行了alphalens检验,结果表明模拟收益高于基准收益,并且信息系数为正,因子有效。再按照因子方程计算股票因子得分,从高到低排序,选取分数最高的50支股票作为股票池。
得到股票池后,我们利用BOLL+KDJ两个指标的结合制定交易策略:
(1)通过计算股票价格突破BOLL中轨,上轨开口方向向上,下轨方向向下,且K值大于D值,K线向上突破D线,买入;
(2)当股票价格偏离上轨,跌破中轨,且K值小于D值,K线向下突破D线,或者K值D值,大于65,卖出。
同时,在以上策略的基础上,通过MindGo平台运用到选股策略中,将有效因子进行因子打分,选择出股票同时判断该股票是否停牌或者是ST股,最后选择出得分最高的股票形成股票池,股票池中的股票每月进行更换。
本策略运用支持向量机(SVM)技术对每只股票未来一周的模式进行判别,每月月末通过MACD指标对持仓股票进行调仓。为了控制风险,通过反复回测实验,对大盘及个股分别设置了止盈止损点:当大盘过去5天下跌总数的8%,将所有股票全部卖出。同时个股止损,个股近三天下跌合计超过5%,个股平仓,以求降低风险,稳固收益。
我们对量化策略在同花顺Mindgo平台上进行回测检验,得出回测结果:策略年化收益率为11.41%,远高于基准年化收益率为0.26%,且Alpha为0.11;Beta为0.54;Sharpe为0.57;最大回撤为12.69%。证明该策略有实施的价值。此外,我们主要选取的时间段为2018年3月至2019年4月,在这一段时间内,大盘指数在前半段一直呈现下降的趋势,而且一直处于一个震荡期,通过我们的策略可以发现,我们的收益虽然在前段时间并未有太大的收益,而且与大盘总体走势相似,但是仍然拥有稳定的收益。
本文构建基于SVM算法的多因子选股模型,以沪深300成份股为股票池,通过分析2013年到2017年的年报中选取45个候选因子,数据进行预处理之后,再通过独立性、相关性的检验,确保了留下来的因子是真实有效的,之后,再对留下来的因子通过随机森林特征值的选取,每年都剔除小于0.03的因子,然后在对留下来的找到5年都出现的因子,再对这些因子进行单因子有效性的检验,通过支持向量分类的方法从中选取具有投资价值的股票构建投资组合,期望该组合在未来的一段时间能够获取稳健的超额收益,这既丰富了多因子模型构建方式,也为其他投资者提供一些借鉴。
注释
① 同花顺 MinDGo量化平台http://quant.10jqka.com.cn/platform/html/home.html