一种基于股票预测走势进行分类和推荐的方法与流程

文档序号:12124593阅读:495来源:国知局
一种基于股票预测走势进行分类和推荐的方法与流程

本发明涉及股票数据挖掘技术领域,尤其是涉及一种基于股票预测走势进行分类和推荐的方法。



背景技术:

股票价格受多种因素的综合影响,具有变化万千、错综复杂的特点,同时与金融环境密切相关,数据变化极其繁杂,变化有极强的无序性,难以建立精确的数学模型,因此对股票进行预测一直是金融领域研究的热点问题。

在股票走势预测方面,技术分析方法主要有统计学方法和人工智能方法。时间序列分析法是统计学方法中主要的一种方式,其中常用的模型的有随机游走模型、自回归移动平均模型、齐次非平稳模型和马尔可夫链模型等。近年来,人工智能技术得到了很大的发展,很多学者开展了神经网络在股票价格预测上的应用。

在股票分类方面,可用于分类的算法有决策树、贝叶斯分类、神经网络、支持向量机等。目前已形成的各种算法理论虽然能解释股市上的某些现象,但实际应用效果并不理想。



技术实现要素:

本发明公开了一种基于股票预测走势进行分类和推荐的方法。方法首先以待预测股票的近期走势,搜索匹配所有股票的历史数据,获得最相似的三个走势段,并基于相似走势段的后期走势生成三种走势预测结果;其次对每种走势进行分类,包括一路上涨、先涨后跌、先跌后涨、一路下跌、不好确定五类,每只股票的三种预测走势对应三种分类;然后对分类的一致性进行判断,当三种趋势的分类全部不同时股票走势为不好确定,其余根据多数原则进行分类判断;最后在分类标签完全一致的股票中挑选预测走势涨幅最大的前几只股票作为大涨推荐的列表,预测走势跌幅最大的作为大跌预警的列表。

本发明方法是一种推荐方法,推荐的依据是基于其未来一段时间的预测走势,推荐的股票除了要求接下来要有较大的涨幅外,同时要求具有较高的准确性。

本发明方法的步骤如下:

(1)在所有股票的历史数据中搜索与待预测股票近期走势相似的走势段,并基于相似走势段的后期走势生成股票的3种预测走势;

(2)对每只股票的每种预测走势进行分类;

(3)对每只股票的3种预测走势分类进行一致性统计,确定股票最终分类;

(4)在具有分类标签完全一致的股票中进行股票推荐。

其中,步骤(1)主要是要获取待预测股票的3种预测走势。具体包括如下5个子步骤:

(1)对所有股票进行数据预处理操作。计算开盘价,收盘价, 最高价相对于收盘价的增减幅度;

(2)加载待预测的股票数据和待匹配的历史数据。待预测股票数据为近期L个交易日的涨跌幅数据;待匹配的历史数据为每只股票的某个时间点以来到当前交易日的前L个交易日的数据,以及对应的交易日期;

(3)将待预测股票的近期走势段与每只股票的历史数据逐位进行移动加权匹配,每只股票仅记录一个最佳匹配段;

(4)在所有股票的最佳匹配段中,全局进行比较,再次获取最匹配3个走势段;

(5)基于相似走势段后期的走势生成待预测股票的3种预测走势。

其中,步骤(2)中对每只股票的每种预测走势进行分类,具体分成5个类别,其名称和对应代码为:“一路上涨”:“1”、 “先涨后跌”:“2”、“先跌后涨”:“3”、“一路下跌”:“4”、“不好确定”:“5”。每种走势分类的确定过程为:

(1)获取走势的最高、最低价格所对应的位置,记最大值所在的位置为HighPos,最小值所在的位置为LowPos;

(2)根据HighPos和LowPos位置的不同组合确定预测走势的分类;

对于每只股票的3种走势预测结果,将得到相对这只股票的3个分类。

其中,步骤(3)的对每只股票的三种预测走势分类进行一致性统计,具体为:对于每只股票的3种预测走势对应着3个分类,而分类的类别仅有4种,因此其分类类别的组合有3种情况:3个分类完全一致、2个分类一致另一个不同、3个分类全部不同。对于这3种情况,把3个分类全部不同的股票最终分类判断为“不好确定”,其余两个分类根据最多投票原则将具有相同的分类确定为该股票的最终分类。

其中,步骤(4) 在具有分类标签完全一致的股票中进行股票推荐,具体为:对推荐分为两种,一种是“大涨推荐”,另一种是“大跌预警”。结合原先对股票的3种预测走势,将3种预测走势中的最大涨幅取平均值作为该股票的涨幅预测;3种预测走势对应的最大跌幅取平均值作为该股票的跌幅预测;获取3种走势分类标签完全一致且涨幅预测最大的前几只股票作为大涨推荐的列表,跌幅预测最大前几只股票的作为大跌预警的列表。

附图说明

图1是本发明基于股票预测走势进行分类和推荐方法的流程图。

图2是股票推荐中大涨推荐结果列表的示例。

图3是股票推荐中大跌预警结果列表的示例。

具体实施方式

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

本发明方法首先对股票进行短期的走势预测,而后根据预测的走势将股票分成5个类别,即“一路上涨”、“先涨后跌”、“先跌后涨”、“一路下跌”、“不好确定”5类,最后根据分类的一致性情况进行股票的推荐。

假设股票列表为S,S=[S1, S2,…,Si,…,Sn],n为股票池中股票的数量,如中国上市股票的数量或美国上市股票的数量。

一、股票的短期预测。

该步骤对股票进行短期的预测,从而获取股票的短期走势。短期走势包括一段时间的开盘价、收盘价、最高价、最低价、涨跌幅等。对于每只股票,假设待预测的股票为Sm,m=1,…,n 具体预测步骤如下。

(1)股票数据预处理。

假设对于股票列表S中的每只股票有如下数据字段:开盘价Open,收盘价Close, 最高价High,最低价Low,涨跌幅Change等,其中收盘价Close为前复权价格。数据预处理过程主要是计算相对于当天收盘价Close的增减幅度,并添加新字段。需要计算的字段包括开盘价Open、最高价High和最低价Low,具体如下:

开盘价增减幅度StdOpen= 100*(Open-Close)/Close;

最高价增减幅度StdHigh= 100*(High-Close)/Close;

最低价增减幅度StdLow= 100*(Low-Close)/Close。

(2)股票数据的加载。

该步骤主要完成数据的准备过程,从原始股票数据库中获取待预测股票的近期交易日数据和待匹配的股票的历史交易日数据。

2.1 获取待预测股票Sm的近L个交易日的涨跌幅数据,形成一个数组,记为A,

A=[a1,a2,…,ai,…aL]

其中,ai代表近L-i的交易日的涨跌幅。a0代表当前交易日的涨跌幅。L的取值至少得符合短期预测交易日的要求,如>=20。

2.2 对S中的每只股票,获取某个时间点以来(如2005年1月1日),到当前交易日的前L个交易日的数据,形成另一个数组,记为Bi,i=[1,n],

Bi=[bi1,bi2,…,bij,…bik]

其中,bij代表第i只股票的j位置对应交易日的涨跌幅。每个Bi的长度k是不一定相等的,因为股票中间有停牌等因素的影响;同时记录bij的交易日期,记为另一数组Ci,i=[1,n],

Ci=[ci1,ci2,…,cij,…cik]

其中,cij代表第i只股票的j位置对应交易日期。

(3)股票间移动加权匹配。

该步骤主要完成待预测股票与某只待匹配股票之间的匹配过程,并获取得到与待匹配股票匹配的最小值和对应匹配日期。匹配过程在A和Bi展开,A的长度为L, Bi的长度为K, K>=L,具体匹配过程如下。

3.1 以步长为1,循环从Bi中获取长度L的涨跌幅数据,记为B。

3.2 A与B进行比较,得到匹配值。A、B的比较过程可以灵活进行,结合以下几种方式进行比较,

(a)A、B相应位置的涨跌幅直接相减取绝对值;

(b) 对位置加权,越靠近当前交易日权值越高;

(c) 考虑A、B涨跌幅的同向性加权;

(d) 将A、B涨跌幅归一化到[0,1]区间后进行比较。

3.3 记录所有比较的匹配值的最小值和其对应的匹配日期,作为A与Bi匹配的最终结果,记为Pi, i=[1,n],

Pi=[Vi,Di]

其中,Vi代表A与Bi的最小匹配值,Di代表最小匹配值对应的匹配日期。

(4)获取全局最相似走势段。

4.1对数组P的Pi数值从小到大进行排序,排序后获取数值最小的前3个Pi及其对应的Di,形成新数组Mt ,t=[1,T], Mt=[Pt,Dt]。这里T=3。

4.2 分别获取Mt中对应股票的匹配日期后的N个交易日(N一般取为20-30)数据,获取的数据包括涨跌幅Change,以及步骤1中新增的各增减幅度字段,这里即为StdOpen、StdHigh、StdLow等。

4.3获取待预测股票当前交易日的收盘价Close(已前复权)。

(5)股票短期预测走势结果生成。

以待预测股票的当前交易日收盘价Close作为“前一交易日”基准数据,结合相似股票匹配日期后的走势数据,计算还原成待预测股票短期预测的走势数据。数组Mt中对应的每一只相似股票的走势都将还原成一种短期预测结果,具体过程如下。

5.1 将待预测股票当前交易日的数据Close置为前一交易日lastClose结果;获取某一只相似股票匹配日期后的走势数据。

5.2还原下一交易日的预测数据,还原过程为:

下一交易日收盘价Close = lastClose + lastClose*Change/100;

下一交易日开盘价Open = Close + Close*StdOpen/100;

下一交易日最高价High = Close + Close*StdHigh/100;

下一交易日最低价Low = Close + Close*StdLow/100。

5.3 将当前交易日的收盘价Close置为前一交易日lastClose结果。

5.4 重复执行5.2,5.3步骤,直至还原出期望的全部交易日预测数据。

以上步骤将得到基于某一只相似股票走势的预测结果。前面计算得到的3只最相似股票将可得到待预测股票的3个短期走势预测结果R。每种走势的预测结果Rt(t=1,23)由四个数组组成,即Opens、Closes、Highs、Lows,分别代表预测趋势每天的开盘、收盘、最高、最低价格。数组的长度都为L,这里取L=30,以方便后续对股票进行走势分类。

二、对股票的预测走势进行分类。

走势的分类结果是预先定义的,分成5个类别,其名称和对应代码为:“一路上涨”:“1”、 “先涨后跌”:“2”、“先跌后涨”:“3”、“一路下跌”:“4”、“不好确定”:“5”。对于每只股票的3种走势预测结果,将得到相对这只股票的3个分类。对于一种预测走势Rt(t=1,23),其分类的确定过程如下。

(1)获取走势的最高、最低价格所对应的位置。

1.1在Rt的Highs最高价数组中通过比较其数值,获取最大值所在的位置,记为HighPos;同时计算最大值相对于待预测股票当前交易日收盘价Close的涨幅Upt

1.2 在Rt的Lows最低价数组中通过比较其数值,获取最小值所在的位置,记为LowPos;同时计算最小值相对于待预测股票当前交易日Close的跌幅Downt

(2)根据位置组合进行分类。

2.1 如果HighPos<LowPos,为下降趋势,进一步判断过程为:

如果LowPos>15, HighPos<5,则类别为4,一路下跌;

如果LowPos>15, HighPos>=5,则类别为2,先涨后跌;

如果LowPos<=15, HighPos<5,则类别为3,先跌后涨;

如果LowPos<=15, HighPos>=5,则类别为2,先涨后跌。

2.2 如果HighPos>=LowPos,为上升趋势,进一步判断过程为:

如果HighPos >15, LowPos<5,则类别为1,一路上涨;

如果HighPos >15, LowPos>=5,则类别为3,先跌后涨;

如果HighPos <=15, LowPos<5,则类别为2,先涨后跌;

如果HighPos <=15, LowPos>=5,则类别为3,先跌后涨。

对于每种预测走势Rt都进行如上的分类,需要注意的是,目前每种走势都有明确的分类,暂时还没有“不好确定”的第5类。

三、股票一致性统计和分类。

对于每只股票的3种预测走势对应着3个分类,目前分类的类别仅有4种。分类类别的组合有3种情况:3个分类完全一致、2个分类一致另一个不同、3个分类全部不同。对于这3种情况,把3个分类全部不同的股票最终分类判断为“不好确定”,其余两个分类根据最多投票原则将具有相同的分类确定为该股票的最终分类。至此,通过该步骤每只股票都有了一个唯一确定的对应分类。

四、结合预测趋势的涨跌幅进行股票推荐。

推荐分为两种,一种是“大涨推荐”,另一种是“大跌预警”。将股票的3种预测走势对应的3种预测最大涨幅Upt取平均值作为该股票的涨幅预测。将股票的3种预测走势对应的3种预测最大跌幅Downt取平均值作为该股票的跌幅预测。

对所有股票的涨幅预测结果进行从大到小排序后取出前h个,同时要求这些股票对应的3种趋势3个分类结果的标签完全一致。这些股票作为“大涨推荐”的结果。

对所有股票的跌幅预测结果绝对值进行从大到小排序后取出前h个,同时要求这些股票对应的3种趋势3个分类结果的标签完全一致。这些股票作为“大跌预警”的结果。

综上所述,本发明公开了一种基于股票预测走势进行分类和推荐的方法。方法推荐的依据是基于股票未来一段时间的预测走势,推荐的股票是取自于三种走势分类标签完全一致的股票,可靠性较高。

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

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