数据挖掘基本步骤包括数据采集、数据预处理、数据存储、数据分析、知识发现。数据挖掘常见技术包括监督学习(即分类分析)、无监督学习(即聚类分析)、关联分析、预测分析等。
目前,国内的有关数据来源主要为第一类上交所,深交所等的公告、财报,行业研究报告等;第二类财经新闻网站,比如新浪财经,第一财经,东方财富网,中国证券网,金融界,雪球财经,腾讯财经,第一财经等;第三类社会化媒体,比如股吧,贴吧等。我们目前数据主要爬取新闻财经个股相关新闻,包括200多家媒体在内的所有新闻。
大数据采集则是利用互联网爬虫或网站公开API等方式从上述相关网站上获取我们所需要的数据信息,将非结构化数据从网页中爬取下来,并解析有关信息,将其存储为统一的本地数据文件,并以结构化的方式存储在我们的数据库中,目前主流数据库为mysql,sqlserver,oracle等。
数据预处理指直接从网页爬取的数据并不能直接用于使用,而是需要经过一定的预处理,以保证数据质量和数据安全。因为在大数据应用中,数据来源十分普遍,数据质量良莠不齐,更需要预处理过程。数据预处理主要是去除无法解析的网页,删除重复的数据,去除无效的数据等;将不同的数据源爬取到的数据统一存储,建立数据仓库。通过平滑聚集,规范化等方式将数据转换成适用于数据挖掘的形式。
为了满足大数据访问的效率与要求,大数据处理需要合理地存储与组织各种数据,以减少网络和存储I/O开销,提升系统能;数量百万级的利用分表、分区等技术即可解决。若数以亿计等超大型数据,则以下三种为常见的大数据储存技术解决方案,一是采用MPP架构的新型数据库集群,采用Shared Nothing架构,通过列存储、粗粒度索引等多项大数据处理技术,再结合MPP架构高效的分布式计算模式,二是基于Hadoop的技术扩展和封装,围绕Hadoop衍生出相关的大数据技术。三是大数据一体机,这是一种专为大数据的分析处理而设计的软、硬件结合的产品,由一组集成的服务器、存储设备、操作系统、数据库管理系统和为数据查询、处理、分析用途而特别预先安装及优化的软件组成。
利用数据挖掘技术分析我们应该处理的数据,发现隐藏在海量数据背后的知识和规律。挖掘步骤简单的可以概括为a.前期数据的准备 b.从这一些数据中寻找他们的规律 c.把寻找到的规律表示出来。前期数据的准备是从这些相关的数据源中以一定的规则挑选我们所需的数据,然后整合成我们用于数据挖掘的数据集;寻找这一些数据的规律是利用数据挖掘相关的方法将这一些数据集所含的规律挖掘出来;把寻找到的规律表示出来是利用比如图表等可视化的技术尽可能以用户都能够理解的方式展示出来挖掘出来的规律。
数据挖掘常用的几种方法为:分类分析、聚类分析、关联分析、预测分析、异常分析等等。分类分析是首先从已有的数据中选出已有的分类,且把所有的没有分类的要进行分类的数据按照这些已规定好类别分别进行分类。聚类分类不属于预测性的问题,该算法主要解决的是把一群给定的对象划分成若干个组的问题。划分样本的依据是聚类问题的核心点。聚类分析主要是解决当要分析的数据缺乏描述信息或者是无法组织成任何分类模式时用于样本的聚类分析。关联分析中主要是技术是对象相关度或者他们之间的关系。预测分析主要包括一无线性回归,多元线性回归,Markov预测模型等。
通过数据挖掘技术,我们可以构建出所有我们需要的指标,比如个股每日新闻条数,新闻情感指数,词频统计,个股关联指标,主题挖掘等。
利用我们爬虫系统的数据,统计并提取沪深300成份股的每日所有的新闻数量。新闻热度即沪深300成份股的每一日新闻数量之和为当日的新闻热度。
若当日信号突破上轨,则发出看多信号,次日以开盘价开多仓,同时将上次信号以次日开盘价平仓,开仓之后,若没有新信号,持有nday天以nday+1天开盘价平仓。
若当日信号突破下轨,则发出看空信号,次日以开盘价开空仓,同时将上次信号平仓,开仓之后,若没有新信号,持有nday天以nday+1天开盘价平仓。
开平仓:若当日信号突破上轨,则发出看多信号,次日以开盘价开多仓,同时将上次信号以次日开盘价平仓,
开平仓:若当日信号突破上轨,则发出看多信号,次日以开盘价开多仓,同时将上次信号以次日开盘价平仓,
为了寻找到合适的参数,首先把开仓后持有天数分别设置为[1,5,8,10,22,50,150,250,500,1000],之所以设置这这些值,主要是考虑到尽可能的覆盖所有情况,持有1天和1000天是极端情况,持有1天则表示无论第二天有没有新的信号出现,即平仓,这样会导致持仓周期太短,收益较差,实际统计结果显示,持有1天的情况下,在2014-01-01 至 2016-08-31区间,初始净值为1,期末净值也没有超过2。而持有1000天,则能够理解为一个信号出现后,直到下一个信号出现再平仓,因为样本区间总共653天。故而设置持有以上时间基本能覆盖所有情况。
统计中发现,持有50个交易日为最优情况。故而设置持有天数为50个交易日。
其中,纵轴表示年化收益与最大回撤比,横轴表示移动平均天数。在移动平均天数M从5到50时,对应每个M有6根柱形图,分别表示N从0.3到0.8的对应收益回撤比。从上图可知,当移动平均天数从5到35时收益回撤比有递升趋势,从35到50时收益回撤比有递减趋势。M为35时,N为0.4时,收益回撤比最大,即M=35,N=0.4为最优参数。
综合上面分析可知,当M即移动平均天数20到50之间步长为5时,表现较为稳定,且基本为正。
通过上述研究可知,新闻热度是一个有效的多空择时指标。当发出看多信号时,接下来的交易日内,大盘指数上涨的概率较大,收益也显而易见,看空信号也有一定的效果,但不如看多信号有效。
新闻热度多空策略中,从2014年1月1日到2016年8月31日,多仓单个信号平均收益2.88%,累计收益191.70%;空仓信号单个平均收益0.31%,累积收益12.45%(上述计算多空收益不包括信号还未结束的收益),新闻热度作为多空策略指标,效果是很明显的。
当然,该策略也有不足的地方,首先新闻来源比较单一,目前主要来自于新浪财经网站,来自200多家媒体的新闻。其次,指标比较单一,该策略仅对沪深300成份股的新闻数量进行了统计,虽然具有一定的代表性,但并不全面。最后,统计时间段没考虑熊牛市,不同的市场,指标信号可能不一样,指标的有效性可能也不一样。在后续的研究中,我们将挖掘出更多的指标,深入研究各项综合指标,应用到不同的策略中。我们将从大数据这一金矿中,淘洗出更多的价值!