一种基于股票间同现统计的股票推荐方法与流程

文档序号:12748796阅读:183来源:国知局
一种基于股票间同现统计的股票推荐方法与流程

本发明涉及股票数据挖掘技术领域,尤其是涉及一种基于股票间同现统计的股票推荐方法。



背景技术:

股票市场具有高收益特性的同时也具有高风险性,若投资者能较准确地预测未来股票的价格,则可适当调整策略减小风险从而获得较大的经济利益。

然后股票价格是一个动态的、非线性的复杂系统,具有突发性、随机性和规律性等特点,股票的预测受到很多因素的影响,很难在股票和这些因素之间建立一种确定的数学模型。目前常用的股票预测模型有:回归分析法、时间序列法、马尔柯夫预测、支持向量机、神经网络等,但总体来说预测精度不理想。

既然对股票精确的预测存在各种困难,本发明方法从粒度更粗一点的层次来进行股票的预测和推荐,对股票的涨跌情况仅关注大涨和大跌两种,在日常的股票操作中对于窄幅波动的情况则基本忽略。



技术实现要素:

本发明公开了一种基于股票间同现统计的股票推荐方法。方法的主要思想是首先将股票的涨跌情况分为大涨和大跌两种情况,而后获取所有股票的日线数据进行同现统计,并根据支持度和置信度生成大涨和大跌的规则;之后基于每交易日股票的涨跌幅进行规则适配,并获取使得规则成立的股票和相应的置信度;最后根据置信度大小排序后对股票进行推荐。推荐分为两种,一种是大涨推荐,另一种是大跌预警。方法可为股票的短线操作提供决策支持。

本发明方法通过统计不同股票之间前后天的大涨或大跌同现的概率,来判断股票的下一天涨跌情况,并根据相应概率的大小对股票进行推荐。由于股票的涨跌幅和股票的总数量较多,如果直接进行同现统计,数据量非常大,同现次数太稀疏,因此对股票的涨跌结果先做个简化处理,对涨跌情况定义为2类,分别为大涨(>=2%)、大跌(<=-2%)。具体定义的数值作为参数可调。下文中提到的“大涨”或“大跌”皆表示了其对应的涨跌幅。

假设股票列表为S,S=[S1, S2,…,Si,…,Sn],n为股票池中股票的数量,如中国上市股票的数量或美国上市股票的数量。本发明方法的具体步骤如下:

(1)获取股票基础数据统计信息;

(2)定义统计数组并加载大涨和大跌的股票数据;

(3)基于不同股票的前后天涨跌幅进行大涨和大跌的同现统计;

(4)基于同现统计结果进行筛选并生成规则;

(5)基于每交易日的大涨大跌数据进行规则适配;

(6)对适配结果进行排序和股票推荐。

其中,步骤(1)的获取股票基础数据统计信息,具体为:获取所有股票的列表,并为每只股票从0开始进行顺序编号,形成股票与编号的双向哈希映射表;获取某个时间以来(如2005年1月1日)所有交易日期,并对日期从小到大排序后,从0开始顺序编号,形成交易日期与编号的双向哈希映射表;获取每只股票在历史交易中的大涨次数和大跌次数,形成股票与大涨和大跌次数的哈希映射表;获取每只股票的历史交易的次数,形成股票与交易次数的哈希映射表。

其中,步骤(2)的定义统计数组并加载大涨和大跌的股票数据,具体为:定义两个二维统计数组: StatUp[n,m] 和 StatDown[n,m],其中n代表所有股票的数量,m代表上证指数某段时间以来交易日期的数量,即所有交易日期的数量;而后根据每只股票大涨的交易日期在StatUp数组的相应位置填1,根据每只股票大跌的交易日期在StatDown数组的相应位置填1,其余位置填0。

其中,步骤(3)的基于不同股票的前后天涨跌幅进行大涨和大跌的同现统计,具体为:对StatUp和StatDown两个数组分别进行同现统计,获得大涨同现统计和大跌同现统计结果。基本过程是设置一维跟踪数组Stat[n],n为所有股票的数量;之后对于StatUp或StatDown中的每一行,即每只股票,按顺序逐位扫描,在碰到1的时候,对该列位置的前1列进行竖方向的扫描,并对1出现的个数进行统计累加,最后计算该股票与其他各股票同现统计的支持度和置信度。大涨同现统计的支持度和置信度定义为:支持度up = 100*大涨次数/交易次数;置信度up = 100*跟踪数组的统计次数/大涨次数。大跌同现统计的支持度和置信度定义为:支持度down = 100*大跌次数/交易次数;置信度down = 100*跟踪数组的统计次数/大跌次数。

其中,步骤(4)的基于同现统计结果进行筛选并生成规则,具体为:生成的规则分成两种:大涨的规则和大跌的规则。基于大涨同现统计结果,获取支持度大于minSupport,置信度大于minConfidence,交易次数大于minTradeCount的元组,这些元组构成大涨规则的元组组合;基于大跌同现统计的结果,获取支持度大于minSupport,置信度大于minConfidence,交易次数大于minTradeCount的元组,这些元组构成大跌规则的元组组合。由于大涨和大跌规则变化不会很频繁,一般一周生成一次即可。

其中,步骤(5)的基于每交易日的大涨大跌数据进行规则适配,具体为:加载每个交易日盘后的大涨和大跌数据,分别对大涨规则和大跌规则进行适配。大涨规则适配的适配过程为:对于形如由股票A推出股票B的规则,对于每只股票的代码,先匹配规则的股票B,从而获取股票A所有可能的股票代码,如果这些可能的股票A代码当日是大涨的,则说明规则成立,记录股票B和对应的置信度。大跌规则适配的适配过程为:对于形如由股票A推出股票B的规则,对于每只股票的代码,先匹配规则的股票B,从而获取股票A所有可能的股票代码,如果这些可能的股票A代码当日是大跌的,则说明规则成立,记录股票B和对应的置信度。

其中,步骤(6)的对适配结果进行排序和股票推荐,具体为:基于前一步骤两种规则的适配,推荐分为两种,一种是“大涨推荐”,另一种是“大跌预警”。基于每日大涨规则适配后所记录的股票的置信度大小进行从大到小的排序,排序后取出前h个即为大涨推荐股票;基于每日大跌规则适配后所记录的股票的置信度大小进行从大到小的排序,排序后取出前h个即为大跌预警的股票。由于是每天根据当日的大涨大跌数据更新下一交易日的推荐结果,因此大涨推荐和大跌预警的有效期仅为1天。

附图说明

图1是本发明基于股票间同现统计的股票推荐方法的流程图。

图2是基于本发明方法输出的某一日期的大涨推荐股票及其相应规则。

图3是基于本发明方法输出的某一日期的大跌预警股票及其相应规则。

图2和图3结果的参数具体为最小支持度minSupport=20%、最少交易次数minTradeCount=500,最小置信度minConfidence=25%,h=10。在对2016/09/30的收盘数据进行同现统计挖掘后得到推荐结果。规则右侧为推荐或预警的股票及其相应的概率;左侧为使得该规则成立的触发条件,根据当日的涨跌幅情况,该规则已经被触发。

具体实施方式

下面结合附图和实例,对本发明进行详细的描述。

本发明方法通过统计不同股票之间前后天的大涨或大跌同现的概率,来判断股票的下一天涨跌情况,并根据相应概率的大小对股票进行推荐。

本发明方法针对所有股票的日线数据进行同现统计挖掘。由于股票的涨跌幅和股票的总数量较多,如果直接进行同现统计,数据量非常大,同现次数太稀疏,因此对股票的涨跌结果先做个简化处理,对涨跌情况定义为2类,分别为大涨(>=2%)、大跌(<=-2%)。具体定义的数值作为参数可调。下文中提到的“大涨”或“大跌”皆表示了其对应的涨跌幅。

假设股票列表为S,S=[S1, S2,…,Si,…,Sn],n为股票池中股票的数量,如中国上市股票的数量或美国上市股票的数量。本发明方法的具体过程如下。

一、获取股票基础数据统计信息。

1.1 获取所有股票的列表,并为每只股票从0开始进行顺序编号,形成股票与编号的双向哈希映射表,分别为:Hash(Stock:ID)和Hash(ID:Stock)。

1.2 通过上证指数,获取某个时间以来(如2005年1月1日)所有交易日期,并对日期从小到大排序后,从0开始顺序编号,形成交易日期与编号的双向哈希映射表,分别为:Hash(Date:ID)和Hash(ID:Date)。

1.3 获取每只股票在历史交易中的大涨次数和大跌次数,形成股票与大涨和大跌次数的哈希映射表,分别为:Hash(Stock:UpCount)和Hash(Stock:DownCount)。

1.4 获取每只股票的历史交易的次数,形成股票与交易次数的哈希映射表Hash(Stock:Count)。

二、定义统计数组并加载大涨和大跌的股票数据。

2.1 定义两个二维统计数组: StatUp[n,m] 和 StatDown[n,m],其中n代表所有股票的数量,m代表上证指数某段时间以来交易日期的数量,即所有交易日期的数量。

2.2 获取每只股票大涨的交易日期,以1填充StatUp[n,m]的相应位置。具体为:对于每只股票,在得到其股票代码及大涨的交易日期后,通过Hash(Stock:ID)获取行编号,通过Hash(Date:ID)获取列编号,最后设置StatUp数组的行列编号对应位置为1,其余位值设置为0。

2.3 获取每只股票大跌的交易日期,以1填充StatDown[n,m]的相应位置。具体为:对于每只股票,在得到其股票代码及大跌的交易日期后,通过Hash(Stock:ID)获取行编号,通过Hash(Date:ID)获取列编号,最后设置StatDown数组的行列编号对应位置为1,其余位值设置为0。

三、基于不同股票的前后天涨跌幅进行大涨和大跌的同现统计。

通过以上步骤,所有待统计数据已经准备好了。接下来对StatUp和StatDown两个数组分别进行同现统计。统计时取数组中前后天的数值,即相邻交易日期的数值进行同现统计。

3.1 大涨同现统计。设置一维跟踪数组Stat[n],n为所有股票的数量;对于StatUp中的每一行,逐位进行扫描,如果位值为1,则进入下一步,否则跳过;获取该1位置所对应的列编号,对该列位置的前一列进行竖的扫描,如果位值为1,则将该值累加统计到跟踪数组Stat[n]中,跟踪数组的每行实际上是与每只股票一一对应的。统计完后,对于跟踪数组的每一行,通过Hash(ID:Stock)获取股票代码,通过Hash(Stock:UpCount)获取大涨次数,通过Hash(Stock:Count)获取交易次数;最后大涨同现统计的支持度和置信度定义为:支持度up = 100*大涨次数/交易次数;置信度up = 100*跟踪数组的统计次数/大涨次数。

3.2 大跌同现统计。对前后天(即相邻交易日期的数值)的大跌情况进行同现统计。具体过程与大涨同现统计过程类似。统计对象为StatDown二维数组,大跌次数通过Hash(Stock:DownCount)获得。最后大跌同现统计的支持度和置信度定义为:支持度down = 100*大跌次数/交易次数;置信度down = 100*跟踪数组的统计次数/大跌次数。

四、基于同现统计结果进行筛选并生成规则。

根据上一步骤的统计结果,本步骤生成的规则也分成两种:大涨的规则和大跌的规则。

4.1 生成大涨的规则。设定最小支持度minSupport、最小置信度minConfidence和最少交易次数minTradeCount参数,基于大涨同现统计结果,获取支持度大于minSupport,置信度大于minConfidence,交易次数大于minTradeCount的元组,这些元组构成大涨规则的元组组合:UpRule = {StockA,StockB,Support,Confidence},其中,每条元组代表股票StockA大涨,在支持度Support下,第二天股票StockB大涨的置信度(或概率)为Confidence。

4.2 生成大跌规则。设定最小支持度minSupport、最小置信度minConfidence和最少交易次数minTradeCount参数,基于大跌同现统计的结果,获取支持度大于minSupport,置信度大于minConfidence,交易次数大于minTradeCount的元组,这些元组构成大跌规则的元组组合:DownRule = {StockA,StockB,Support,Confidence},其中,每条元组代表股票StockA大跌,在支持度Support下,第二天股票StockB大跌的置信度(或概率)为Confidence。

五、基于每交易日的大涨大跌数据进行规则适配。

方法基于每交易日的大涨大跌的股票数据,结合已经生成的大涨和大跌规则,规则适配后进行股票推荐。由于大涨和大跌规则变化不会很频繁,一般一周生成一次即可;而后仅需根据每交易日的更新的大涨大跌的股票数据,生成新的股票推荐结果。

5.1 每个交易日盘后加载大涨和大跌数据。每个交易日交易结束后,获取每天大涨股票的当日涨幅,形成股票与涨幅的哈希映射表Hash(Stock:ChangeUp);获取每天大跌股票的当日跌幅,形成股票与跌幅的哈希映射表Hash(Stock:ChangeDown)。

5.2 大涨规则适配:基于UpRule= {StockA,StockB,Support,Confidence},对于每只股票的代码,通过匹配StockB列,获取StockA列所有相关的股票代码,如果元组StockA列的股票代码存在于Hash(Stock:ChangeUp),则说明规则条件成立,记录规则中的股票StockB和对应的置信度Confidence,以用于后续排序比较。

5.3大跌规则适配:基于UpDown= {StockA,StockB, Support,Confidence},对于每只股票的代码,通过匹配StockB列,获取StockA列所有相关的股票代码,如果元组StockA列的股票代码存在于Hash(Stock:ChangeDown),则说明规则条件成立,记录规则中的股票StockB和对应的置信度Confidence,以用于后续排序比较。

六、对适配结果进行排序和股票推荐。

基于前一步骤两种规则的适配,推荐也分为两种,一种是“大涨推荐”,另一种是“大跌预警”。

6.1 股票大涨推荐。基于每日大涨规则适配后所记录的股票的置信度大小进行从大到小的排序,排序后取出前h个即为推荐的股票。推荐的有效期仅为一天,只是为下一交易日推荐大涨概率最高的股票。

6.2 股票大跌预警。基于每日大跌规则适配后所记录的股票的置信度大小进行从大到小的排序,排序后取出前h个即为预警的股票。预警的有效期仅为一天,只是为下一交易日预警大跌概率最高的股票。

综上所述,本发明公开了一种基于股票间同现统计的股票推荐方法。方法通过统计不同股票之间前后天的大涨或大跌同现的概率,来判断股票的下一天涨跌情况,并根据相应概率的大小对股票进行推荐。推荐分为两种,一种是大涨推荐,另一种是大跌预警。方法可为股票的短线操作提供决策支持。

本发明方法同样可应用于证券类具有时间序列特征的数据,如基金、期货等。因此,尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是不可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容。当前公开的实施例在所有方面应被理解为说明性的而非对其请求保护的范围的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1