一种基于正负相关走势匹配的股票预测方法与流程

文档序号:12748794阅读:547来源:国知局
一种基于正负相关走势匹配的股票预测方法与流程

本发明涉及股票数据挖掘技术领域,尤其是涉及一种基于正负相关走势匹配的股票预测方法。



背景技术:

股票市场与人们生活和经济发展密切相关,如何有效、准确地预测股票价格走势一直是人们关注热点问题。

常用的技术分析法有K线理论、波浪理论、移动平均线理论和技术指标分析等。这些方法简单且直观,具有很强的针对性和可操作性,不足之处在于图表的分析与指标的选择大多需要依靠主观经验的判断,分析结果难免带有主观性。较多的学者针对股票价格预测提出了大量的新分析方法,包括时间序列分析法ARMIA、证券投资分析方法、判别分析法、专家评估法、马尔可夫法、神经网络等分析方法。每一种预测方法都有自身的优势和局限性,但整体来说,目前仍存在着很多不尽如人意的地方。

随着时间的推移及存储技术的发展,越来越多的股票交易数据被存储下来。在海量的股票交易数据中往往隐藏了许多有用的信息,本发明方法利用数据挖掘技术,在海量的历史交易数据库搜索相关的(正相关或负相关)走势模式,从而有效预测股票的后期走势。



技术实现要素:

本发明公开了一种基于正负相关走势匹配的股票预测方法。方法主要思想是以待预测股票近期一段时间的走势在所有股票的历史数据中搜索与其正相关或负相关的强相关走势,并以相关走势的匹配日期之后的走势为基础,正向或负向还原待预测股票的后期走势作为其预测结果。

本发明方法针对每只股票未来近期一两周的可能走势进行预测,预测结果不仅包括每日的收盘价、涨跌幅,还包括每日的开盘价、最高价、最低价等方面。

本发明方法最终结果同时提供正负最相关股票与原始待预测股票的对比图,基本完全相似或相反的股票走势为股票短线的操作提供了很好的决策支持。

本发明方法的步骤如下:

(1)对所有股票的每日交易数据进行相对量计算;

(2)加载待预测股票的近期走势数据和所有股票的历史交易数据;

(3)将待预测股票的近期走势与每只股票的历史数据进行移位相关性计算,得到与该股票的匹配结果,包括绝对值最大的相关系数和对应匹配位置的交易日期;

(4)在待预测股票与所有股票的匹配结果中,再次获取相关系数绝对值最大的前几只股票;

(5)基于最相关的几只股票生成预测结果。

其中,步骤(1)的相对量的计算,是指对于每个交易日,计算开盘价Open、最高价High和最低价Low等相对于当天收盘价Close的增减幅度。

其中,步骤(2) 的待预测股票的近期走势数据是指其近L个交易日的涨跌幅数据。L的取值不宜太短,也不宜取太长,这里取L=20。所有股票的历史交易数据是指对于每只股票,获取某个时间点以来(如2005年1月1日),到当前交易日的前L个交易日的数据,包括日涨跌幅和对应的交易日期。

其中,步骤(3)待预测股票与其每只股票的比较过程,是用相关性的计算方式。对于某一只股票,移位取出与待预测股票近期走势等长的走势段,并计算两个走势段的相关系数。相关系数的取值在区间[-1,1]。相关系数值越靠近1,说明当前片段与待预测股票的走势段越正相关;反之越靠近-1,说明与待预测股票的走势段越负相关。逐位计算完后,比较这些相关系数,获取绝对值最大的相关系数和对应匹配位置的交易日期,作为与该股票的最终匹配结果。

其中,步骤(4)中,待预测股票与每只股票都有一个最终匹配结果,包括相关系数和对应的匹配交易日期。在与所有股票的相关系数中,再次获取相关系数绝对值靠前的T只股票。这里T的取值不宜取太大,一般取2即可。另一种获取2个最相关股票段的取法是:在正相关系数里面取值最大的一个,在负相关系数里面取绝对值最大的另一个。

其中,步骤(5)中,基于最相关的几只股票生成预测结果,需要先获取相关股票在匹配交易日期之后的后期走势,即后期涨跌幅数据;而后对于每日的涨跌幅,在假设相关系数保持不变的情况下,代入原先计算相关系数的方程,求解出待预测股票在相应交易日的涨跌幅。遍历相关股票后期走势的涨跌幅数据,逐个求解方程,即可恢复出待预测股票的后期涨跌幅数据。基于涨跌幅数据,计算待预测股票后期每日的收盘价,结合步骤1对相关股票已经事先计算的相对量,直接将这些相对量套用到待预测股票中,即可求出待预测股票每日的开盘价,最高价,最低价等。

附图说明

图1 是本发明基于正负相关走势匹配的股票预测方法的流程图。

图2 是基于本发明方法输出的某一股票走势的正相关预测结果。

图3 是基于本发明方法输出的某一股票走势的负相关预测结果。

图2和图3中的图中上半部分为待预测股票,下半部分为其最相关的股票。中间是正负相关性和相关系数值。上半部分虚线右边为计算得到的预测走势。下半部分虚线右边为匹配日期之后的实际走势。两条虚线中间为计算相关性的匹配段。这里匹配段的长度取L=20,预测的长度取N=30。

具体实施方式

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

本发明方法主要是针对每只股票未来近期一两周的可能走势进行预测,预测结果不仅包括收盘价、每日涨跌幅的预测,还包括每日开盘、最高、最低的预测。

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

对于每只股票,假设待预测的股票为Sm,m=1,…,n 具体预测步骤如下。

一、股票数据预处理。

假设对于股票列表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.1 获取待预测股票Sm的近L个交易日的涨跌幅数据,形成一个数组,记为A,

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

其中,ai代表近L-i的交易日的涨跌幅。aL代表当前交易日的涨跌幅。L的取值不宜太短,也不宜取太长,这里取L=20。

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

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

其中,bij代表第i只股票的j位置对应交易日的涨跌幅。每个Bi的长度k是不一定相等的,因为股票中间有停牌等因素的影响;

同时记录bij的交易日期,记为另一数组Di, i=[1,n],

Di=[di1,di2,…,dij,…dik]

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

三、股票间相关性计算。

该步骤主要是通过计算相关性的方式,完成待预测股票与某只待匹配股票之间的匹配过程,并获得与待匹配股票相关性结果的最大值和对应匹配日期。

匹配过程在A和Bi展开,A的长度为L, Bi的长度为K, K>=L,具体匹配过程如下。

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

B=[b1,b2,…,bi,…bL]。

3.2 A与B进行比较,通过计算相关系数值来代表A、B之间的相关性,相关系数C的具体计算公式如下:

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

其中,Vi代表A与Bi的最大的相关系数值,Di代表最大相关系数值对应的匹配日期。

该步骤计算股票之间的相关性过程可以通过一些程序设计的技巧减少计算量。

四、获得相关系数绝对值靠前的前几只股票。

该步骤基于上一步骤股票间相关性计算的结果数组P,获取T只最相似股票。具体过程为:根据数组P的Pi数值,获取其绝对值最大的前T个Pi及其对应的Di,形成新数组Mt ,t=[1,T], Mt=[Pt,Dt]。这里T的取值不宜取太大,一般取值小于5, 因为T的取值代表着有T种的趋势预测结果。对于每只股票,都有其对应的T只最相关的股票。

五、预测结果生成的相关数据准备。

5.1 获取相关股票匹配日期之后的后期走势数据。该步骤获取相关股票匹配日期后的N个交易日(N一般取为20-30)数据,获取的数据为涨跌幅Change,以及步骤1中新增的各增减幅度字段,这里即为StdOpen、StdHigh、StdLow。

5.2 获取待预测股票当前交易日的数据。该步骤获取待预测股票当前交易日的数据,获取的数据包括收盘价Close(已前复权)。

六、股票预测结果生成。

该步骤基于前几个步骤已经准备好的数据生成预测结果。基本思想是,以待预测股票的当前交易日的数据作为“前一交易日”基准数据,结合相关股票匹配日期后的走势数据,计算还原成待预测股票短期预测的走势数据。

前面步骤获得的每一只相关股票的走势都将还原成一种短期预测结果,具体过程如下。

6.1 获取某一只相关股票匹配日期后的涨跌幅数据,并结合相关性计算公式还原为待预测股票的涨跌幅数据。具体过程如下:

(1)假设相关股票匹配日期后的短期某一天涨跌幅数据为已知的Y, 设待预测股票的相关位置的未知待计算的涨跌幅数据为X;

(2)假设在匹配日期之后,两个相关股票数组在增加了新元素后,相关系数保持不变,也就是增加新元素X,Y后,

根据前面的计算,除X未知外,其他变量都为已知。求解上述一元二次方程,则可以得到待预测股票相关位置的相应涨跌幅。由于一元二次方程可能会有两个解,这里需要排除一个。排除方法是,根据相关系数的正负情况,要求X*Y的值也必须要有相对应的正负情况,即如果C>0,则要求X*Y>0;反之C<0,则要求X*Y<0;

(3)取相关股票匹配日期之后的一段涨跌幅数据,对每个数据进行上述求解后,即可得待预测股票未来一段的涨跌幅数据。

6.2 将待预测股票当前交易日的数据Close,设置为前一交易日lastClose结果。

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

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

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

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

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

其中Change为71.步骤还原的下一交易日的涨跌幅。

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

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

以上步骤将得到基于某一只相关股票走势的预测结果。前面计算得到的T只最相关股票将可得到待预测股票的T个短期走势预测结果。假设T取值为2,那么将得到2个短期走势预测结果。将预测结果的开盘价、收盘价、最高价、最低价等画到图上,同时结合受匹配的最相关股票匹配日期位置前后的数据作为对比,将得到类似附图2和附图3的结果。

综上所述,本发明提出了一种基于正负相关走势匹配的股票预测方法,充分利用了所有股票的历史数据,可以对股票的短期走势做出较好预测,预测不仅包括每日收盘价、涨跌幅的预测,还包括每日开盘价、最高价、最低价、成交量等方面的预测。

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

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