本发明涉及股票数据挖掘技术领域,尤其是涉及一种基于股票强相关分析的选股推荐和风险规避方法。
背景技术:
随着我国市场经济的高速发展,越来越多的投资者把眼光投向了股票,股票投资成为个人理财中的一种重要方式。股票可以在市场流通转让,股票具有高见险、高回报特征,因此自产生的那天起就牵挂着数以千万投资者的心,投资者时刻关注着股票价格的波动和发展趋势,一直是经济领域研究中的一个热点问题。
收益大、风险小是证券投资者们追求的目标。为了达到这一目标普遍采用两类投资分析方法,基本分析法与技术分析法。基本分析法通过对影响股票市场供求关系的基本因素进行分析,确定股票的真正价值,判断股市走势,提供投资者选择股票的依据。技术分析是一种完全根据股市行情变化而加以分析的方法,它通过对历史资料进行分析,判断整个股市或个别股票价格未来的变化趋势,探讨股市里投资行为的可能转折,给投资者提供买卖股票的信号。
技术分析法,如移动平均线法、点数图法、K线图法等,具有简单明了、易于掌握的特点, 但由于股市运作是一个巨大的非线性系统,股价走势受到政治、经济、心理等多种因素的影响,不同的人运用技术分析方法其分析结果具有差异显著,因此普通投资者在选股和风险规避中的技术分析应用结果并不理想。
技术实现要素:
本发明公开了一种基于股票强相关分析的选股推荐和风险规避方法。方法首先对股票的涨跌幅数据进行预处理,并格式化到[0,1]区间;而后运用动态时间规整方法计算两个不等长的长时间序列之间的距离;最后对股票进行归类,每只股票各自的强相关类。在选股时,当用户选中了某一只股票时,则在该股票的强相关类中结合其他条件推荐更优质的股票;当用户选中了多只股票,则判断这些股票是否在同一个强相关类中,提示避免鸡蛋全放一个篮子里面的风险。
本发明方法是一种选股方法,可为用户的选股提供决策支持。
假设股票列表为S,S=[S1, S2,…,Si,…,Sn],n为股票池中股票的数量,如中国上市股票的数量或美国上市股票的数量。
本发明方法的步骤如下:
(1)获取每只股票某个时间点以来到现今的所有涨跌幅数据,并预处理为以该时间点为基准的基准收盘价;
(2)将每只股票的基准收盘价数组格式化到[0,1]区间;
(3)对于股票池中的任意两只股票使用动态时间规整方法计算距离;
(4)对于每只股票获取与其相关的强相关类;
(5)根据用户的行为,对用户进行选股推荐和选股风险的动态提示。
其中,步骤(1)中对于每只股票,以某个时间点作为起点,如2005-01-01,截取自该时间点以来到现今的涨跌幅数据;然后令起始时间点的收盘价以1为基准,后续时间点的收盘价根据涨跌幅进行变换得到,如第二天的涨跌幅为Change2,则第二天的基准收盘价为:1*(1+Change2/100); 第三天的的涨跌幅为Change3,则第三天的基准收盘价为:1*(1+Change2/100) (1+Change3/100);以此类推,形成该只股票的基准收盘价数组。假设股票池中的任意两只股票Si,Sj,其中i,j=1,…,n 且i≠j,经过该步骤计算后,形成Si,Sj对应的基准收盘价数组MyClose1和MyClose2。
其中,步骤(2) 将股票的基准收盘价数组格式化到[0,1]区间,具体的格式化过程为:假设一个基准收盘价数组A,A=[at],t=1,…,L,L为数组长度,对其[0,1]区间格式化的过程为:对A数组中的每个at进行变换,at = (at-Min(A))/(Max(A)-Min(A)),t=1…L。假设对上一步骤中的MyClose1和MyClose2进行格式化处理后,仍记为MyClose1和MyClose2。
其中,步骤(3)中对于股票池中的任意两只股票使用动态时间规整方法计算距离。以MyClose1和MyClose2为例,两段股票时间序列和的长度L1,L2可能并不相等,使用传统的欧几里得距离无法有效求出这两个时间序列之间的距离(或者相似性);因此使用动态时间规整方法,通过把时间序列进行延伸和缩短,来计算两个时间序列性之间的相似性。由于序列较长,这里规整匹配的时间窗口一般设置为3,然后以动态规划的方法求两个股票时间序列MyClose1和MyClose2的最短距离。对股票池中的所有其它两两组合股票进行类似的处理,得到任意两只股票之间的相似度值。
其中,步骤(4)获取每只股票的强相关类,具体为根据上一步骤获得的股票间的两两距离矩阵,每只股票获取与其计算过距离的股票里距离最小的前k只股票列表。
其中,步骤(5)基于用户行为对用户进行选股推荐和选股风险提示,具体为,当用户选中了某一只股票时,则在该股票的强相关类中结合其他条件推荐更优质的股票,如计算股票的活跃度,挑选活跃度高的股票作为推荐;当用户选中了多只股票时,则判断这些股票是否在同一个强相关类中,如果是提示用户风险,以避免将鸡蛋全放一个篮子里面。
附图说明
图1 是本发明股票强相关分析方法及其在选股推荐和风险规避中的应用的流程图。
图2 是两段股票时间序列以动态时间规整方法进行匹配的示意图。
图3 是某只股票的强相关类示意图。如用户挑选了股票天瑞仪器(300165),根据计算,其强相关类及相应的活跃度如图3所示。其中,括号内百分数代表股票的活跃度。这时如果用户偏好波动较大的股票,则建议挑选股票楚天科技(300358)。
具体实施方式
下面结合附图和实例,对本发明进行详细的描述。
本发明方法先计算所有股票两两之间的相关性,对于每只股票获取其最近邻的k只股票,这k只股票形成一个强相关类。在选股时,当用户选中了某一只股票时,则在该股票的强相关类中结合其他条件推荐更优质的股票;当用户选中了多只股票,则判断这些股票是否在同一个强相关类中,提示避免鸡蛋全放一个篮子里面的风险。
假设股票列表为S,S=[S1, S2,…,Si,…,Sn],n为股票池中股票的数量,如中国上市股票的数量或美国上市股票的数量。
对于股票池中的任意两只股票Si,Sj,其中i,j=1,…,n 且i≠j,对这两只股票进行相似度的计算,并记录其相似值,具体步骤如下。
一、股票数据预处理。
1.1 对于股票时间序列Si,Sj,以某个时间点作为起点,如2005-01-01,截取自该时间点以来到现今的数据。如果Si或Sj的数据点太少,或者Si与Sj数据点的长度相差太大,则跳过这两只股票的相似度计算。
1.2 对Si,Sj分别进行处理:令起始时间点的收盘价以1为基准,其后续时间点的收盘价根据涨跌幅进行变换得到,如第二天的涨跌幅为Change2,则第二天的基准收盘价为:1*(1+Change2/100); 第三天的的涨跌幅为Change3,则第三天的基准收盘价为:1*(1+Change2/100) (1+Change3/100);以此类推。最后形成Si,Sj对应的基准收盘价数组MyClose1和MyClose2。
二、股票数据格式化。
本步骤对上一步骤中获得的基准收盘价数组MyClose1和MyClose2进行格式化处理。这里使用[0,1]区间的格式化。假设一个基准收盘价数组A,A=[at],t=1,…,L,L为数组长度,对其[0,1]区间格式化的过程为:对A数组中的每个at进行变换,
at= (at-Min(A))/(Max(A)-Min(A)),t=1…L
对MyClose1和MyClose2进行格式化处理后,仍记为MyClose1和MyClose2。
三、使用动态时间规整方法进行距离计算。
需要比较相似性的两段股票时间序列MyClose1和MyClose2的长度L1,L2可能并不相等,使用传统的欧几里得距离无法有效求出这两个时间序列之间的距离(或者相似性)。这里使用动态时间规整方法(Dynamic Time Warping,DTW), 通过把时间序列进行延伸和缩短,来计算两个时间序列性之间的相似性。
考虑股票自身特点,规整匹配的时间窗口一般设置为3,然后以动态规划的方法求两个股票时间序列MyClose1和MyClose2的最短距离。假设i是MyClose1的坐标,j是MyClose2的坐标,这里需要寻找一个规整路径W,W必须从W1=(1,1)开始,到WL=(L1,L2)结尾,并保证MyClose1和MyClose2中的每个坐标都在W中出现,同时i和j必须是单调增加的。
规整路径是距离最短的一个规整路径:
D(i,j) = Distance(i,j)+min[D(i-1,j), D(i,j-1), D(i-1,j-1)]
Distance(i,j)为欧几里得距离。最后MyClose1和MyClose2的最短规整距离或相似度为:
Similar(MyClose1,MyClose2)=D(L1,L2)/(L1+L2)
这里对规整距离通过除以L1+L2进行归一,是为了后续不同长度的股票时间序列相似度值之间的可比较性。
对股票池中的所有其它两两组合股票进行类似的处理,得到任意两只股票之间的相似度值。
四、获取股票的强相关类。
本步骤基于上一步骤中获得的两两股票之间的相似度,对股票进行归类,从而形成强相关类。每只股票都有自己的强相关类。
对于每只股票,假设当前股票为Sm,m=1,…,n 具体获取其强相关类的步骤如下:
a、获取与股票Sm计算过相似度的其他股票列表List及相似度值数组Sim;
b、对相似度值数组Sim从小到大进行排序,获取相似度最小的前k个相似度值;
c、获取前k个相似度值对应的k只股票列表,形成强相关股票列表SList。
这里k值的取得有以下几种方法:
a、人为设定k值大小,如k=10;
b、根据股票列表List的长度设置一个百分比值,从而得到k值大小;
c、根据相似度值数组Sim中相似度值的分布,设置一个分布的概率,从而得到k值。
五、应用强相关类进行选股推荐和选股风险规避。
本步骤基于上一步骤中获得的每只股票的强相关类,根据用户的行为,对用户进行选股推荐和选股风险提示。
5.1选股推荐。
在选股时,当用户选中了某一只股票时,则在该股票的强相关类中结合其他条件推荐更优质的股票。结合的条件可根据用户的偏好进行,如用户偏好波动较大的股票,则可结合换手率高、成交量大这些因素,或者计算股票的活跃度,挑选活跃度高的股票。
本文方法将股票活跃度定义为:将股票的涨跌幅进行取整量化后,统计其绝对值大于等于2的次数占该股票全部交易日数的比例。比例越大,则该股票越活跃。因此用户可在强相关类中挑选活跃度高的股票。具体示例如图3所示。
5.2选股风险规避。
在选股时当用户选中了多只股票时,则判断这些股票是否在同一个强相关类中。具体过程为:对于每只股票,获取其强相关类,然后判断选择的其他股票是否落在该强相关类中。如果用户选择的股票落在同一个强相关类中,则说明这些股票基本走势实际上是差不多的,没必要选择同一种类型的股票,这时提示用户风险,以避免将鸡蛋全放一个篮子里面。
比如用户选择了多只股票,如天瑞仪器-300165、楚天科技-300358、恒星科技-002132等,这些股票各自的强相关类刚好覆盖了其他的股票,因此是不适合同时选择这些股票的,这时提示用户风险。
综上所述,本发明提出了一种基于股票强相关分析的选股推荐和风险规避方法。方法首先获取每只股票的强相关类,而后基于此在用户选择股票时对用户进行选股推荐和风险规避提示。方法可以为用户的选股提供决策支持。
本发明方法同样可应用于证券类具有时间序列特征的数据,如基金、期货等。因此,尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是不可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容。当前公开的实施例在所有方面应被理解为说明性的而非对其请求保护的范围的限制。