面向股票趋势预测的相似k线检索方法及检索系统
技术领域
本发明涉及数据挖掘分析技术领域,具体涉及一种面向股票趋势预测的相似k线检索方法及检索系统。
背景技术
股市及期货市场中的k线图能够反映大势的状况和价格信息,对投资者而言具有重要的投资借鉴意义。现有的相似k线检索方法的检索过程大致如下:
给定一只目标股票在某一时间段内的k线,然后遍历所有股票,从中找出与给定的目标股票的k线具有相似度的候选股票。
现有的相似k线检索方法主要存在以下两个问题:
1、现有的相似k线检索方法检索出的候选股票的k线数据的维度与目标股票的k线数据维度一致,但是存在候选股票与目标股票在k线数据维度不一致时,两者k线具有较高相似度的可能,所以现有的相似k线检索方法无法解决不同维度下检索出相似k线的问题。
2、现有的相似k线检索方法需要将检索出的候选股票的所有k线数据与目标股票的k线数据进行相似度计算,但是由于候选股票的数量可能比较庞大,并且每一只候选股票在不同时间域的k线数据通常并不一致,所以若对每只候选股票在每一个时间域的k线数据与目标股票的k线数据进行反复的相似度计算,计算量很大,耗时较长,导致的结果是无法实现对所有股票的遍历,所作出的检索结果的参考意义并不大。
发明内容
本发明的目的在于提供一种面向股票趋势预测的相似k线检索方法及检索系统,以解决上述技术问题。
为达此目的,本发明采用以下技术方案:
提供一种面向股票趋势预测的相似k线检索方法,包括如下步骤:
步骤S1,确定候选股票的搜索序列的第一维度;
步骤S2,根据所确定的所述搜索序列的所述第一维度,调整目标股票对应的目标序列的第二维度;
步骤S3,在一指定的时间域内,遍历所有股票在所述搜索序列检索的所述第一维度内的k线数据,得到多个所述候选股票对应的候选序列并保存;
步骤S4,计算各所述候选序列与所述目标序列的相似度,并按照相似度高低对各所述候选序列进行排序以及对排序结果进行更新,最终输出相似度计算结果。
作为本发明的一种优选方案,所述步骤S2中,通过数据插值方法调整所述目标序列的所述第二维度,以确保所述目标序列的所述第二维度与所述搜索序列的所述第一维度的维度相同。
作为本发明的一种优选方案,所述搜索序列的所述第一维度和所述目标序列的所述第二维度为股票时域数据的时间窗,指定的所述时间域内包含至少一个所述时间窗。
作为本发明的一种优选方案,所述步骤S4中,计算所述候选序列与所述目标序列相似度的方法包括如下步骤:
步骤S41,计算当前的所述时间窗内的所述候选序列与所述目标序列的相似度,得到第一相似度计算结果;
步骤S42,根据所设定的所述时间窗的滑动步长,并同时根据所述时间窗的长度,提取所述第一相似度计算结果的中间结果并保存;
步骤S43,基于所保存的所述中间结果,计算滑动后的所述时间窗内的同一个所述候选序列与所述目标序列的相似度,得到第二相似度计算结果;
步骤S44,重复所述步骤S41~S43,以完成对所有股票在指定的所述时间域内的k线相似度计算。
作为本发明的一种优选方案,所述步骤S4中,通过计算所述候选序列对应的k线与所述目标序列对应的k线的皮尔逊相关系数,得到所述候选序列与所述目标序列的相似度计算结果。
作为本发明的一种优选方案,所述步骤S4中,以最小堆数据结构对匹配到的各所述候选序列进行排序。
本发明还提供给了一种面向股票趋势预测的相似k线检索系统,可实现上述的相似k线检索方法,该系统包括:
候选股票搜索序列维度确定模块,用于提供给用户确定用于检索候选股票的搜索序列的第一维度;
目标股票序列维度调整模块,连接所述候选股票搜索序列维度确定模块,用于根据所确定的所述搜索序列的所述第一维度,调整目标股票对应的目标序列的第二维度;
检索时间域确定模块,用于提供给所述用户确定检索所述候选股票的时间域;
股票遍历模块,分别连接候选股票搜索序列维度确定模块和所述检索时间域确定模块,用于在指定的所述时间域内,遍历所有股票在所述搜索序列的所述第一维度内的k线数据,得到多个所述候选股票对应的候选序列并保存;
序列相似度计算模块,分别连接所述目标股票序列维度调整模块和所述股票遍历模块,用于计算各所述候选序列与所述目标序列的相似度;
候选序列排序模块,连接所述序列相似度计算模块,用于按照相似度高低对各所述候选序列进行排序以及对排序结果进行更新,最终输出相似度计算结果;
候选股票检索结果展示模块,连接所述候选序列排序模块,用于将最终输出的所述相似度计算结果展示给所述用户。
作为本发明的一种优选方案,通过数据插值方法调整所述目标序列的所述第二维度,以确保所述目标序列的所述第二维度与所述搜索序列的所述第一维度的维度相同。
作为本发明的一种优选方案,所述搜索序列的所述第一维度和所述目标序列的所述第二维度为股票时域数据的时间窗,指定的所述时间域内包含至少一个所述时间窗。
作为本发明的一种优选方案,所述序列相似度计算模块中具体包括:
序列相似度计算单元,用于计算当前的所述时间窗内的所述候选序列与所述目标序列的相似度,得到第一相似度计算结果;
时间窗滑动步长设定单元,用于提供给所述用户设定所述时间窗的滑动步长;
时间窗滑动单元,连接所述时间窗滑动步长设定单元,用于提供给所述用户根据设定的所述滑动步长对所述时间窗进行滑动;
相似度计算结果提取单元,分别连接所述序列相似度计算单元和所述时间窗滑动步长设定单元,用于根据所设定的所述时间窗的所述滑动步长,以及根据所述时间窗的长度,提取所述第一相似度计算结果中的中间结果并保存;
所述序列相似度计算单元,分别连接所述时间窗滑动单元和所述相似度计算结果提取单元,用于基于所保存的所述中间结果,对滑动后的所述时间窗内同一个所述候选序列与所述目标序列进行相似度计算,得到第二相似度计算结果,直至完成对在指定的所述时间域内的各所述候选序列与所述目标序列的k线相似度计算。
本发明的有益效果:
1、通过数据插值方法对关联目标股票的目标序列进行维度调整,实现了不同维度下的目标序列和关联候选股票的候选序列的相似度计算,从而可为目标股票匹配出不同维度下具有相似度的候选股票,提高了相似k线检索结果的准确度。
2、本发明基于时间窗滑动前的k线相似度计算中间结果,计算时间窗滑动后的候选股票与目标股票的相似度,以动态更新候选股票与目标股票的k线相似度计算结果,降低了k线相似度计算的复杂度,有利于提高k线相似度的计算速度和准确率。
3、由于本发明提供的k线相似度计算方法相比现有的相似k线检索方法复杂度大幅降低,计算速度大幅提高,本发明可实现对所有股票在不同时间窗内的k线数据的完整遍历,扩展了候选股票的检索范围,相似k线检索结果更具参考意义。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例所述的面向股票趋势预测的相似k线检索方法的步骤图;
图2是本发明计算候选序列与目标序列相似度的方法步骤图;
图3是本发明一实施例所述的面向股票趋势预测的相似k线检索系统的结构示意图;
图4是本发明提供的相似k线检索系统中的序列相似度计算模块的内部结构示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
在本发明的描述中,除非另有明确的规定和限定,若出现术语“连接”等指示部件之间的连接关系,该术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个部件内部的连通或两个部件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本发明提供的面向股票趋势预测的相似k线检索方法,请参照图1,包括如下步骤:
步骤S1,确定候选股票的搜索序列的第一维度;搜索序列是基于目标股票的k线数据形成的,由于搜索序列的形成过程并非本发明要求保护的范围,所以搜索序列的形成过程在此不做阐述。搜索序列的作用是根据给定的目标股票的k线数据,从所有股票中检索出与目标股票k线相似的候选股票。
步骤S2,根据所确定的搜索序列的第一维度,调整目标股票对应的目标序列的第二维度。这里需要说明的是,维度指的是股票时域数据的时间窗,比如目标股票30天的日k线数据的序列维度(第二维度)为30天,候选股票50天的日k线数据的序列维度为50天,搜索序列的序列维度(第一维度)可以根据实际检索需求进行自主设置,比如欲检索候选股票50天的日k线数据,那么将搜索序列的维度设置为50。
步骤S3,在一指定的时间域内,遍历所有股票在搜索序列检索的第一维度内的k线数据,得到多个候选股票对应的候选序列并保存;
步骤S4,计算各候选序列与目标股票的目标序列的相似度,并按照相似度高低对候选序列进行排序以及对排序结果进行更新,最终输出相似度计算结果。
不同维度下的目标股票和候选股票的k线数据同样可能具有相似度,比如目标股票30天的k线可能与候选股票30天的k线相似度较低,但与该候选股票50天的k线具有较高的相似度,现有的k线检索方法由于只能检索与目标股票的目标序列相同维度下的候选股票的k线数据,所以无法对不同维度下的候选股票的k线相似性进行评价,为了解决这个问题,步骤S2中,首先将搜索序列的序列维度设置成与所要检索的候选股票的候选序列的维度一致,然后将目标序列的维度通过数据插值方法进行调整,以确保目标序列的第二维度与搜索序列的第一维度的维度相同,这样在降低相似k线检索复杂度的同时,实现了对目标股票在不同维度下的候选股票的相似k线检索。
关于目标序列数据插值方法为现有的方法,比如目标序列的序列长度(第二维度)为80,搜索序列的序列长度(第一维度)为100,那么对目标序列插入20个值,使得两者维度一致。数据插值方法为现有的方法,所以具体的插值过程在此不做阐述。
步骤S3中,指定的时间域内包含至少一个时间窗。为了提高相似k线的检索速度,优选地,本发明通过矩阵重塑及序列向量化运算实现对k线的相似度运算。比如当指定的时间域内包含连续的N个时间窗,时间窗长度为5时,同一个候选股票在不同的时间窗下分别对应一个候选序列,为了加快相似k线的检索速度,本发明将同一个候选股票在不同时间窗下的候选序列进行矩阵重塑,形成一个5*N的矩阵,然后将该矩阵与目标股票的目标序列进行向量化乘积,一次性得到与矩阵中的N个候选序列与目标序列的k线相似度计算结果。
这里需要说明的是,矩阵重塑过程为现有的方法,所以矩阵重塑过程在此不作阐述。
请参照图2,步骤S4中,计算候选序列与目标序列相似度的方法具体包括如下步骤:
步骤S41,计算当前的时间窗内的候选序列与目标序列的相似度,得到第一相似度计算结果;
步骤S42,根据所设定的时间窗的滑动步长,并同时根据时间窗的长度,提取第一相似度计算结果的中间结果并保存;
步骤S43,基于所保存的中间结果,计算滑动后的时间窗内的同一个候选序列与目标序列的相似度,得到第二相似度计算结果;
这里着重对中间结果进行说明,比如时间窗的长度为5,时间窗中的每一个单位时间具有相对应的k线数据,设定该单位时间为一个时间窗长度,那么长度为5的时间窗中具有1~5五个单位时间分别对应的k线数据,那么该时间窗的第2~4个单位时间分别对应的k线数据为中间结果。
另外,假设长度为5的该时间窗的滑动步长为1,该时间窗滑动一个步长后,该时间窗内的五个单位时间改变为2~6,也就是滑动一步后的该时间窗内的五个单位时间改变为2~6。由此可知,该时间窗滑动一步后的第2~5个单位时间分别对应的k线数据未变,只是滑动后的末尾的第5个单位时间对应的k线数据变更为第6个单位时间对应的k线数据。由于时间窗是按照先后顺序依序滑动的,所以在计算同一个候选股票与目标股票在指定时间域中的不同时间窗内的k线相似度时,只需要事先保存这些在前后两个时间窗内k线数据不变的中间结果,利用中间结果去计算下一个时间窗内的k线相似度,能够答复提升相似k线检索的速度。
步骤S44,重复步骤S41~S43,以完成对所有股票在指定的时间域内的k线相似度计算。
上述技术方案中,优选地,步骤S4中,通过计算候选序列对应的k线与目标序列对应的k线的皮尔逊相关系数,得到候选序列与目标序列的相似度计算结果。需要说明的是,候选序列与目标序列的相似度计算并不仅限于通过皮尔逊相关系数运算得到两者的k线相似度。对于序列相似度计算的现有方法有很多,比如上述所说的通过对两个序列进行向量化乘积等。
由于N只候选股票的k线数据在不同时间窗下处于动态更新状态,所以为了能够匹配到与目标股票k线最具相似性的候选股票,需要对各个时间窗匹配到的候选股票进行更新排序。为了提高匹配速度,本发明实施例中,优选采用最小堆数据结构对匹配到的各候选序列进行排序。最小堆排序方法是目前应用较为广泛的排序方法,所以关于最小堆排序方法的具体过程在此不作阐述。
本发明还提供了一种面向股票趋势预测的相似k线检索系统,请参照图3,包括:
候选股票搜索序列维度确定模块1,用于提供给用户确定用于检索候选股票的搜索序列的第一维度;
目标股票序列维度调整模块2,连接候选股票搜索序列维度确定模块1,用于根据所确定的搜索序列的第一维度,调整目标股票对应的目标序列的第二维度;
检索时间域确定模块3,用于提供给用户确定检索候选股票的时间域;
股票遍历模块4,分别连接候选股票搜索序列维度确定模块1和检索时间域确定模块3,用于在指定的时间域内,遍历所有股票在搜索序列的第一维度内的k线数据,得到多个候选股票对应的候选序列并保存;
序列相似度计算模块5,分别连接目标股票序列维度调整模块2和股票遍历模块4,用于计算各候选序列与目标序列的相似度;
候选序列排序模块6,连接序列相似度计算模块5,用于按照相似度高低对各候选序列进行排序以及对排序结果进行更新,最终输出相似度计算结果;
候选股票检索结果展示模块7,连接候选序列排序模块6,用于将最终输出的相似度计算结果展示给用户。
优选地,通过数据插值方法调整目标序列的第二维度,以确保目标序列的第二维度与搜索序列的第一维度的维度相同,这样可在不增加k线相似度运算复杂性的前提下,确保可匹配到不同维度下与目标股票具有相似度的k线。
关于数据插值的过程如上所述,在此不再赘述。
搜索序列的第二维度和目标序列的第二维度为股票时域数据的时间窗,指定的时间域内包含至少一个时间窗。关于时间窗的说明如上所述,在此也不再赘述。
请参照图4,序列相似度计算模块5中具体包括:
序列相似度计算单元51,用于计算当前的时间窗内的候选序列与目标序列的相似度,得到第一相似度计算结果;
时间窗滑动步长设定单元52,用于提供给用户设定时间窗的滑动步长;
时间窗滑动单元53,连接时间窗滑动步长设定单元52,用于提供给用户根据设定的滑动步长对时间窗进行滑动;
相似度计算结果提取单元54,分别连接序列相似度计算单元51和时间窗滑动步长设定单元52,用于根据所述设定的时间窗的滑动步长,以及根据时间窗的长度(搜索序列的第一维度),提取第一相似度计算结果中的中间结果并保存;关于中间结果以及中间结果的提取过程如上所述,在此不再赘述。
序列相似度计算单元51,分别连接时间窗滑动单元53和相似度计算结果提取单元54,用于基于所保存的中间结果,对滑动后的时间窗内的同一个候选序列与目标序列进行相似度计算,得到第二相似度计算结果,直至完成对在指定的时间域内的各候选序列与目标序列的k线相似度计算。关于k线相似度计算过程如上所述,在此不再赘述。
需要声明的是,上述具体实施方式仅仅为本发明的较佳实施例及所运用技术原理。本领域技术人员应该明白,还可以对本发明做各种修改、等同替换、变化等等。但是,这些变换只要未背离本发明的精神,都应在本发明的保护范围之内。另外,本申请说明书和权利要求书所使用的一些术语并不是限制,仅仅是为了便于描述。