基于数据挖掘的股票趋势预测

时间:2022-10-10 11:59:04

基于数据挖掘的股票趋势预测

【摘要】证券市场的不稳定性和随机性的特征让仅仅预测明天的股票价格也是一种挑战。通过出色的、良好构造的特征集能够更好地估计股票市场的趋势。再者,当我们建立了正确的模型来获得不断变化的趋势的不易观察的属性时,我们的预测能力将会获得提高。在这篇论文中,本文提出了一个二元事件模型。在这个模型的基础上建立特征集来更好地预测股票市场的未来趋势。本文运用了贝叶斯和支持向量机来证明本文的方法在预测准确性和速度方面的优势。本文的实验说明在一天的预测中预测准确率在70%~80%。另外,本文的回归测试证明交易的累计回报率在30%~100%。

通过实验结果表明,本文运用的模型在真实的市场中在预测准确性和累计回报方面获得了很好地表现。

【关键词】股票预测 回归测试 特征集

一、简介

市场上有很多的工具和统计值来分析股票的趋势,这些工具和统计指标能够让我们在每天变化的股票价格中找到潜在的价值和模式。举个例子,有很多的技术指标描述市场趋势,像简单移动平均等。与此同时,我们缺少使用各种不同的工具和统计值的知识。尽管我们对使用其中的一些技术指标有一定的了解,但是每个技术指标都会有自己的局限性,不能够将所有影响股票价格的因素都考虑在内。人们目前在找到一个最优的各种指标的结合来做出买入、持有、卖出的策略时有很大的难度。

从有效市场理论的角度看,股票预测几乎是不可能的。股票价格已经反应了到目前为止市场上的大量公共信息。为了让这个问题看上去能够解决,本篇论文会将问题局限在二元分类。尽管要预测出精确的上涨、下跌的比例和交易量是困难的,只是预测股票价格是上升还是下降看上去是合理的。

由此本文提出二元股票事件模型。具体做法如下:首先、本文的工作将从市场上收集数据开始,在收集了部分股票一定时间段内的股票数据之后。根据常用的技术指标,从原始数据中算出他们的值。其次,基于这些技术指标的结合设计出二元事件模型。这是一个二元值向量代表在一个特定的时刻一个预先设计的股票事件是否发生。举个例子,假设一个二元股票事件,定义为事件s,发生在2013年的12月14号,这个BSEM模型(事件s,20131214)的值是1。同样的方式、向量的每一个值应该是1或0,根据在特定时刻它是否发生。最后,获得一系列的二元股票事件包括n天m个特征来描述m个二元股票事件的发生。其次、设计出每个二元股票事件的类标签。最后、根据数据挖掘中常用的数据分类算法对模型进行分类。

二、产生数据集和特征集

(一)产生数据集

总共20家A股上市公司从2013年1月1号到2015年8月31号,共12723条交易记录。数据来源是国泰安CSMAR数据库。

(二)产生类标签

在原始特征集产生之前,先讨论训练集的类标签的产生。从基本上来说,预测股票趋势就是预测从现在开始k天内的股票趋势。因此,我们需要计算一个目标类标签y,用来表示今天的价格和在k天之后的价格的差别。本文中,定义的目标类标签,它是当天的收盘价和k天之后的开盘价和最高价之间的平均值。本文中选择在未来某一天的开盘价和最高价之间的平均值作为类标签的理由是基于通常的市场交易策略。举个例子,如果我们产生了一个向上的趋势的预测信号,它意味着明天的价格会涨。从交易的视角来看,我们会基于预测信号在当天的收盘价上购买一只股票。然后我们会在尽可能高的价位上卖掉股票。所以,本文认为可能的卖出价格区间会由当天的开盘价和当天的最高价决定。如果价格低于当天的开盘价,交易员会马上卖掉股票。

简单起见,本论文只考虑二元分类问题就像上升和下降。为了做到这一点,将上升和下降的比率转化为1或者0,并且将每天的用这种标签注释。

(三)产生原始数据特征集

为了追踪股票价格的变动趋势,很多股票分析家会运用移动平均线法。移动平均线简称均线,它是将某一段时间的收盘价之和除以该周期。最流行的移动平均是简单移动平均(SMA)和指数移动平均(EMA)。SMA和EMA是从上文的原始数据中根据给定的时间段k,计算出给定时间段内的平均值。举个例子,SMA(5)是通过计算最后五天的价格的平均值得到的,同时EMA(5)是在考虑到随着时间的推移价格权重呈指数级降低计算出的。

根据上文中的基于原始数据的技术指标集,从大智慧软件中得到这些股票对应指标集的数据值。

三、建立二元股票事件模型

(一)定义股票事件模型

在真实的股票投资中,股票分析员不会使用技术指标的数值来做出投资决策。他们会更关注于一些特定的预先设定的事件的发生。举个例子,当5天移动平均线突破了10天移动平均线,这叫做黄金交叉或者令人兴奋的突破,它是一个很强的购买一只股票的信号。再举一个例子,如果一只股票价格的上升伴随着显著增大的交易量,它也是一个强烈的购买信号。这样的角度看的话,一个特定股票事件的出现比一些枯燥的数值的变化在预测未来股票的趋势中更有意义。

(二)产生基于二元股票事件模型的特征集

二元股票事件模型代表了一个输入事件的发生。举个例子,如果一个输入事件是一个5天的简单移动平均线上升超过一个10天的简单移动平均线,那么这个事件就被记录为1,否则它就是0。

基于上述的股票事件集和上文中得到基于原始数据的指标集,得到二元股票事件模型。

四、基于贝叶斯学习模型的预测

(一)预测准确性

本论文基于特征集的二元股票事件模型的评测标准是预测的准确度。本文用到的数据集从源头上来说是一个临时的数据集,它是不断随着接下来股票市场每天的报价而变动的。然而,一个二元股票事件模型的特征集只是集中于昨天和今天的差别;使用五重交叉验证是没有问题的。换句话来说,在数据集中的每一行是由离散值组成的,所以划分它是容易的。

在实验中,预测结果是一个二元分类。因此,预测准确度是这样计算的:正确的上升趋势预测和正确的下降趋势预测与所有的预测结果的数量的商。

本文所有的测试运行环境如下:

处理器:Intel(R)Core(TM)2 Duo CPU T5870 @ 2.00GHz

安装内存(RAM):3.00GB。

本文选用这20只股票的2013-2014年的二元股票事件模型作为训练集,2015年01-08月份的二元股票事件模型作为测试集。使用贝叶斯分类器运算结果是75.4%。

(二)回归测试结果

本文的原始数据集是由股票市场20只股票2013、2014、2015-01到2015-08的每天的交易报价组成的,因此我们将它划分成五块来做回归测试。我们用五层交叉验证来学习我们的模型。为了精确定位回归测试,本文评估使用的数据不是来自于训练数据使用的部分,都来自于测试数据使用的部分。

图1 回归测试的交易策略

由程序计算浦发银行(600000)在2015年一月份到八月份之间的回报率为50.8%。

五、总结和展望

本文的研究从找到各种不同技术指标之间的最佳的结合开始的。为了解决这个问题,本文提出了建立二元股票事件模型的方法。基于原始股票数据,计算不同股票的各个技术指标数值。再通过各个技术指标数值构建二元股票事件集,从而构建二元股票事件模型。由此,基于这个模型,本文产生了一个二元股票事件模型的特征集作为训练数据。接下来,本文通过贝叶斯分类器成功地获得了很高的预测精度。

参考文献

[1]邓乃扬,田英杰.数据挖掘中的新方法――支持向量机[M].北京:科学出版社,2004.

[2]王莎.BP神经网络在股票预测中的应用研究[D].中南大学 2008.

[3]史书真.股价时间序列的分析与预测研究[D].应用数学学报, 2006,29(4):619-632.

上一篇:金融改革背景下银证合作探讨 下一篇:高压直流输电线路故障定位技术