一种基于最相似走势的股票短期预测方法与流程

文档序号:12272520阅读:1530来源:国知局
一种基于最相似走势的股票短期预测方法与流程

本发明涉及股票数据挖掘技术领域,尤其是涉及一种基于最相似走势的股票短期预测方法。



背景技术:

股票投资已经成为人们生活中的重要组成部分, 有效地进行股票价格预测,最大程度规避股票风险,增加投资收益,是股票投资者最关注的热点问题。因此股市预测方法的研究具有极其重要的应用价值和理论意义。

常用的股票挖掘方法有:时间序列分析法、神经网络预测方法、回归分析法、时间序列平滑法、趋势曲线模型法、随机时间序列预测方法、马尔柯夫预测法和判别分析预测法等。由于股票市场中随机因素很多,对股指、价格的影响显著,价格波动剧烈,燥声高,表现出很强的非线性、不确定性。所以这些方法虽然在实际工作中有着重要的指导作用,但仍存在着某些不尽如人意的地方,如回归模型外推性差,类比系数法准确性较差,神经网络计算量大、易产生过拟合等问题。



技术实现要素:

本发明公开提出了一种基于最相似走势的股票短期预测方法。这里的短期预测一般是指对股票接下来2周以上交易日的预测,如20日预测,30日预测,60日预测等。本发明方法的预测结果不仅是对未来一段时间收盘价、涨跌幅的预测,还包括每日开盘价、最高价、最低价、成交量等方面的预测。

本发明方法的主要思想是:首先对每只股票进行相对量的计算,包括横向相对量和纵向相对量;然后以待预测股票的近期一段时间段内的涨跌幅走势对所有股票的历史数据进行逐段的匹配,搜索获得相似度最高的前几只股票;最后以最相似股票匹配日期之后的走势数据,结合横纵向相对量,计算还原待预测股票的后期走势作为其短期预测结果。本发明方法是一种基于所有股票数据的大数据挖掘方法,方法可为股票短线操作提供决策支持。

本发明方法的步骤如下:

(1) 对每只股票的每个交易日进行横向相对量的计算;

(2) 对每只股票的每个交易日相对前一交易日进行纵向相对量的计算;

(3) 将待预测股票的近期走势片段逐一与每只股票的历史数据进行移动加权匹配,获取最为相似的前T只股票对应的匹配段和匹配日期;

(4) 以最相似股票匹配段匹配日期之后的走势数据为基础,结合横、纵向相对量,计算还原待预测股票的后期走势。

其中,步骤(1)中横向相对量的计算是针对每只股票每个交易日进行的,计算的是相对于当日收盘价的增减幅度,一般需要计算的相对量包括:开盘价增减幅度、最高价增减幅度、最低价增减幅度。

其中,步骤(2)中纵向相对量的计算也是对每只股票的每个交易日进行的,不同的是相对量是相对于前一交易日来进行计算。需要计算的字段包括成交量、换手率、成交笔数等。

其中,步骤(3)中待预测股票的近期走势片段是指近期一段时间的涨跌幅数据,将该段数据与所有股票历史数据等长的走势片段逐一进行移动匹配;首先在每只股票中获取一个最小的匹配值,而后再在所有的股票中获取全局最小的T个最小匹配值,同时获取这些最小匹配值对应的匹配日期。

在匹配过程中,两个股票走势片段的匹配过程综合考虑了各种因素。首先对位置加权,位置越靠右侧的权重越大;接下来对同向性加权,同涨或同跌的位置赋予较大的权重;最后将权重乘以相应位置涨跌幅的相减绝对值,作为最终的比较距离。

其中,步骤(4)中相似股票匹配日期之后的走势数据是指涨跌幅、相对成交量、相对换手率等。把这些走势数据套用到原待预测股票,如通过后期每日的涨跌幅,以原待预测股票最后一个交易日的收盘价为基础,可以计算其后续每日的收盘价,结合横向相对量则可以反向计算每日的开盘价、最高价和最低价;通过相似股票的纵向相对成交量,以原待预测股票最后一个交易日的成交量为基础,可以计算其后续每日成交量;其他的纵向相对量类似地进行应用。

附图说明

图1 是本发明股票短期预测方法的流程图。

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

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

这里最相似股票数T取值为2,因此图2和图3中给出2个短期走势的预测结果。虚线之后为预测结果,图中待匹配股票的匹配段长度L和预测交易日数N都取为30。

具体实施方式

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

短期预测一般指对股票接下来2周以上交易日的预测,如20日预测,30日预测,60日预测等。

本发明方法的预测结果不仅包括每日收盘价、涨跌幅的预测,还包括每日开盘价、最高价、最低价、成交量等方面的预测。

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

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

一、股票数据预处理。

预处理过程主要是针对一些相对量的计算,包括横向相对量和纵向相对量。

假设对于股票列表S中的每只股票有如下数据字段:开盘价Open,收盘价Close, 最高价High,最低价Low,涨跌幅Change,成交量Volume,换手率Turnover等,其中收盘价Close为前复权价格。数据预处理过程如下。

1.1横向相对量。计算相对于当天收盘价Close的增减幅度,并添加新字段。需要计算的字段包括开盘价Open、最高价High和最低价Low,具体如下:

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

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

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

1.2纵向相对量。计算相对前一交易日的增减幅度,并添加新字段。需要计算的字段包括成交量Volume和换手率Turnover, 具体如下:

成交量增减幅度StdVolume= 100*(Volume- lastVolume)/ lastVolume, 其中, lastVolume代表前一交易日的成交量;

换手率增减幅度StdTurnover= 100*(Turnover- lastTurnover)/ lastTurnover, 其中, lastTurnover代表前一交易日的换手率。

如果有其他字段需要预测,如成交笔数、成交金额等,可类似计算出对应的相对值,添加相应的字段。计算所得相对值将在本发明方法的最后一步中使用。

二、股票数据的加载。

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

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位置对应交易日期。

三、股票间逐段移动匹配。

该步骤主要完成待预测股票与某只待匹配股票之间的匹配过程,并获取得到与待匹配股票匹配的最小值和对应匹配日期。

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

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

3.2 A与B进行比较,得到匹配值。匹配过程首先对位置加权,位置越靠右侧的权重越大;接下来对同向性加权,同涨或同跌的位置赋予较大的权重;最后将权重乘以相应位置涨跌幅的相减绝对值,作为最终的比较距离;

3.3 记录所有比较的匹配值的最小值和次小值,和其对应的匹配日期,作为A与Bi匹配的最终结果,即每只股票记录两个匹配结果,分别记为Pi, Pi+n,i=[1,n],

Pi=[Vi,Di], Pi+n=[Vi+n,Di+n]

其中,Vi 、Vi+n分别代表A与Bi的最小和次小匹配值;Di、Di+n分别代表最小匹配值和次小匹配值对应的匹配日期。

股票两两之间的匹配之所以记录两个结果,是因为有可能最相似的匹配都刚好出现在同一只股票中。

四、获得匹配值排序靠前的前几只相似股票。

该步骤基于上一步骤移动加权匹配结果数组P,获取T只最相似股票。具体过程为:对数组P的Pi数值从小到大进行排序,排序后获取数值最小的前T个Pi及其对应的Di,形成新数组Mt ,t=[1,T], Mt=[Pt,Dt]。这里T的取值不宜取太大,一般取2即可, 因为T的取值代表着有T种的短期预测结果。该步骤获取最相似股票的过程还可以结合换手率、成交量等因素进行。

五、获取相似股票匹配日期之后的后期走势数据。

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

六、获取待预测股票当前交易日的数据。

该步骤获取待预测股票当前交易日数据,获取的数据包括收盘价Close(已前复权),以及步骤1中有计算相对前一交易日增加幅度的原始字段,这里即为Volume,Turnover。

七、股票短期预测结果生成。

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

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

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

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

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

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

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

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

下一交易日成交量Volume = lastVolume + lastVolume *StdVolume/100;

下一交易日换手率Turnover = lastTurnover + lastTurnover *StdTurnover/100;

7.3 将当前交易日的收盘价Close,成交量Volume,换手率Turnover置为前一交易日lastClose, lastVolume, lastTurnover结果;

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

以上步骤将得到基于某一只相似股票走势的预测结果。前面计算得到的T只最相似股票将可得到待预测股票的T个短期走势预测结果。

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

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

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