APP下载

基于技术指标和随机森林的股价走势预测算法

2021-11-15王惠莹郝泳涛

现代计算机 2021年27期
关键词:技术指标决策树股价

王惠莹,郝泳涛

(同济大学电子与信息工程学院计算机科学与技术系,上海 201824)

0 引言

随着我国人均可支配收入的提高,人民群众的理财意识不断增强,投资股票市场的热情不断高涨。股票投资的显著特点是高风险、高收益,如何降低甚至规避投资失败的风险,一直是社会各界人士关心的重点话题。

股票价格表现为一种十分不稳定的时间序列,它的走势受多种因素的影响,例如经济因素、政治因素和公司经营状况等。纵观股票市场的投资历史,大众投资者普遍使用基本面分析、技术分析和演化分析来预测股价走势。近十年来,机器学习算法在金融时间序列预测方面取得长足的发展。Krauss等[1]分析了在统计套利背景下,使用集成深度神经网络(DNN)、梯度增强决策树(GBDT)、随机森林(Random Forest)三种算法开发交易策略:每天买入若干只低估股票、卖出若干只高估股票,交易信号由预测每只股票超过日内收益中位数的概率生成。实验发现每天买入、卖出10只股票时收益最高,日回报率可达0.45%。Fischer T et al[2]在此基础上以长短期记忆神经网络(LSTM)为例,研究深度学习算法在金融市场预测中的性能表现,发现日收益率提高到0.46%。Pushpendu Ghosh et al[3]采用Krauss et al[1]中的统计套利交易策略,引入关于开盘价的回报为特征,使用随机森林和长短期记忆神经网络分析在预测标普500成份股样本外方向移动方面的有效性。实验结果表明,扣除交易成本前,随机森林和长短期记忆神经网络的日回报率分别是0.54%和0.64%。

投资机构已经开始在股票交易中使用量化投资用于决策。与传统投资策略相比,量化投资在系统性、准确性、及时性和分散化上有着明显优势。本文选取MACD、ADX、RSI、BB、FI五个技术指标,与下周股价走势一起用于构建特征工程,建立一个基于随机森林的股价走势预测模型。

1 随机森林算法原理

随机森林以决策树为基学习器,在Bagging集成的基础上,于生成决策树的过程中引入随机属性选择,基决策树之间差异度的增加会导致最终集成的随机森林泛化性能的提升。随机森林的具体构造过程如下:

(1)假设有m个带标签的样本,有放回地随机选择m个样本组成采样集,用采样集训练决策树;

(2)分裂决策树的结点时,从当前结点的属性集合(假定含有d个属性)中随机选择k个属性作为候选属性集(k

(3)整个决策树生成过程中每个结点都按照步骤(2)分裂,直至不能再分裂为止;

(4)按照步骤(1)~(3)建立大量决策树,这些决策树就构成随机森林了。

2 特征选择

技术指标是从股票价格时间序列数据中计算出的重要参数,投资者广泛使用技术指标检测交易信号。本文使用的技术指标如下:

2.1 MACD(Moving Average Convergence Divergence,异同移动平均线)

MACD的计算公式:

其中,MACD=异同移动平均线,C=收盘价,EMAn=n天指数移动平均线。MACD低于SignalLine时生成卖出信号,反之,则生成买入信号。

2.2 ADX(Average Directional Index,平均趋向指标)

ADX的计算方式比较复杂,涉及到价格正向移动距离+DM、价格负向移动距离-DM、真实波动幅度TR、正向方向性指数+DI和负向方向性指数-DI等中间变量。

首先,计算动向变化:

其中,high(t)表示今日最高价,low(t)表示今日最低价。

然后,计算真实波幅:

其中,close(t-1)表示昨日收盘价。

接下来,计算动向指数:

最终可计算出ADX值:

+DM和-DM分别代表价格正向与负向的移动距离;+DI和-DI分别代表波动率修正后上涨和下跌趋势。只要存在明显趋势,无论上涨还是下跌,DX值随着趋势强弱变动在0~100范围内波动,ADX是DX的14天平均线。

2.3 RSI(Relative Strength Index,相对强弱指标)

RSI的计算公式:

RSI以数字的方法衡量买卖双方的力量对比,是一个经典的动量指标。

2.4 BB(Bolliger Bands,布林线指标)

BB的计算公式:

其中,MA(close,m)表示收盘价的m日简单移动平均,UB表示上轨线,LB表示下轨线。

BB利用波带显示股价的安全高低价位,从而确定股价的波动范围及未来走势。

2.5 FI(Force Index,强力指数指标)

FI的计算公式:

其中,close(t)表示今日收盘价,vol(t)表示今日成交量。

FI用于指示上涨或下跌趋势的力量大小。收盘价之差越大,力量越大;成交量越大,波动性越强。

2.6 NWM(Next Week Move,下周股价走势)

除了上述5个技术指标,本文将下周股价走势也作为一个特征用于模型训练。

如果下一周股票收盘价大于当前收盘价,标记为1,反之则标记为0。

3 搭建GS-RF模型

优化参数是提升模型泛化能力的重要手段。为了降低参数值随机选择的不确定性,本文构建了GS-RF模型,利用网格搜索优化决策树的数量(n_estimators)、决策树的最大深度(max_depth)和是否采用袋外误差评估模型(oob_score)三个参数。具体步骤如下:

(1)获取股票历史数据集,并进行数据预处理;

(2)构建特征工程;

(3)把数据分为训练集和测试集,建立随机森林预测模型;

(4)结合网格搜索和随机森林模型,确定最优参数组合,建立GS-RF预测模型;

(5)使用GS-RF模型预测股票未来收益率;

(6)对比使用技术指标的预测收益率,分析模型有效性。

图1 实验流程

4 实验结果及分析

本文实验在英特尔i5 2.4 GHz四核八线程CPU,16GB RAM,Windows 10操作系统的计算机上进行,使用Python语言编程,应用pandas、numpy、tqdm、tushare、talib、sklearn等工具包。

4.1 参数优化

测试参数优化能否提高模型的泛化能力,利用tushare工具包下载中国平安2012年1月1日至2021年7月1日的开盘价、收盘价、最高价、最低价以及成交量等历史数据,共含2304个交易日。

按照3∶1的比例将数据拆分成训练集(1728个交易日)和测试集(576个交易日),用训练集训练随机森林预测模型;然后用网格搜索优化决策树的数量、决策树的最大深度和是否采用袋外误差评估模型三个参数,设定评估指标是3折交叉测试集得分的平均值,最后用选出的参数组合构建GS-RF模型。

决策树的数量的范围:1

表2 参数优化前后实验结果对比(训练阶段)

由表2可以得出,参数优化后的随机森林预测模型的精度为0.59,袋外估计准确率得分为0.57,ROC曲线下方的面积为0.59。GS-RF模型在三个指标上的表现全面优于使用默认参数的随机森林预测模型。

4.2 收益率对比

进一步验证GS-RF模型在股价走势预测中的有效性,用模型预测结果生成信号指导股票交易,与纯技术指标的交易策略比较股票收益率。为了验证模型的预测性能与泛化能力,将模型应用于中国平安、科大讯飞、华润双鹤、保利地产的累计收益率预测中,股票的时间范围和属性与实验1里中国平安的数据集一致。模型训练和测试后,对比分析实验结果。实验对比结果如图2、图3和表3、表4所示。

图2 GS-RF模型与技术指标累计收益率的对比(训练阶段)

图3 GS-RF模型与技术指标累计收益率的对比(测试阶段)

表3 GS-RF与其他策略的收益率对比(训练阶段)

表4 GS-RF与其他策略的收益率对比(测试阶段)

由图2和表3可知,在训练阶段,使用默认参数的随机森林模型的股票收益率不能稳定的胜过全部技术指标交易策略,甚至存在收益不如任何技术指标交易策略的情况。而GS-RF模型则全面优于技术指标交易策略,说明参数优化对提升模型性能是有效的。图3和表4显示在测试阶段,应用GS-RF模型的收益率最高,并且长期来看,收益率总体为正、风险最小,进一步证明了该模型在预测预测股价走势中的可行性和出色表现。投资者可以通过在股票持续上涨期间持仓,股价下跌期间平仓获利。

5 结语

本文提出了一种基于网格搜索算法改进的随机森林股价走势预测模型,即GS-RF模型。利用网格搜索算法对随机森林模型进行参数优化,提高模型的预测精度和泛化能力。实验发现本该模型在预测股价走势上具有可靠性,能为投资者提供参考。未来会在指标选取、特征构造及算法优化上进一步完善,还将考虑公司经营状况、市场指数、网络舆情和国家政策等因素对股价走势的影响。

猜你喜欢

技术指标决策树股价
盘中股价升跌引起持股者情绪变化
简述一种基于C4.5的随机决策树集成分类算法设计
牛股盘中冲高回落尾市拉涨停行为解读
决策树学习的剪枝方法
技术指标选股
技术指标选股
技术指标选股
技术指标选股
股价创股灾以来新低的股票
决策树在施工项目管理中的应用