K线形态识别方法及装置转让专利

申请号 : CN201511031705.0

文献号 : CN105701450B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴善珩蔡伟杰

申请人 : 上海银赛计算机科技有限公司

摘要 :

本发明公开了一种K线形态识别方法及装置,属于计算机技术领域。所述方法包括:获取待识别的K线数据;读取形态配置文件中的配置参数以及各个关键点的逻辑坐标,该形态配置文件指示预定形态;根据配置参数以及关键点的逻辑坐标对K线数据进行遍历识别,确定该K线数据是否与预定形态匹配。本发明解决了现有技术中人为标示K线形态的方法带有较多的主观性,且对于数据过多、图形密集的K线,分析师难以通过肉眼识别,对K线形态识别的误差率比较高的问题;可以让终端自动、快速的进行K线形态识别,摒弃人工识别的主观性。

权利要求 :

1.一种K线形态识别方法,其特征在于,所述方法包括:

获取待识别的K线数据;

读取形态配置文件中的配置参数以及各个关键点的逻辑坐标,所述形态配置文件指示预定形态;

确定第一视窗内的K线是否组成与所述预定形态匹配的形态;

在所述第一视窗内的K线组成与所述预定形态匹配的形态,则将所述第一视窗的左边界值和右边界值均加1,得到第二视窗,进一步确定第二视窗内的K线是否组成与所述预定形态匹配的形态;

在所述第一视窗内的K线未组成与所述预定形态匹配的形态,则将所述第一视窗的右边界值减1,得到第三视窗,在所述第三视窗的大小大于视窗最小值时,确定所述第三视窗内的K线是否组成与所述预定形态匹配的形态,在所述第三视窗的大小小于所述视窗最小值时,将每条K线数据中的四个数据进行标准化,标准化后的数值均位于0-1之间,所述K线数据中的四个数据为所述K线对应的最高价、最低价、开盘价和收盘价;计算所述第一视窗内各条K线的逻辑位置;根据所述逻辑位置计算每条K线所对应的上边界线值和下边界线值;根据所述K线中四个数据标准化后的数值以及对应的所述上边界线值和下边界线值,计算所述第一视窗内的判定参数,所述判定参数包括点突破率、关键点错误率、通道突破率、通道缺损率以及适配率中的至少一种;根据所述判定参数,确定所述第一视窗内的K线数据是否与所述预定形态匹配。

2.根据权利要求1所述的方法,其特征在于,所述计算所述第一视窗内各条K线的逻辑位置,包括:获取所述第一视窗所对应通道的起始位置以及所述第一视窗的大小;

对于每个K线,将所述K线的索引位置减去所述起始位置,将得到的差值除以所述第一视窗的大小,得到所述K线在所述第一视窗内的逻辑位置。

3.根据权利要求1所述的方法,其特征在于,所述根据所述逻辑位置计算每条K线所对应的上边界线值和下边界线值,包括:对于每条K线,确定出位于所述K线左侧最近的第一上边界关键点和右侧最近的第二上边界关键点,获取所述第一上边界关键点和所述第二上边界关键点之间的第一连线,计算所述K线的延长线与所述第一连线的第一交叉点,将所述第一交叉点的纵坐标确定为所述K线的上边界线值;

确定出位于所述K线左侧最近的第一下边界关键点和右侧最近的第二下边界关键点,获取所述第一下边界关键点和所述第二下边界关键点之间的第二连线,计算所述K线的延长线与所述第二连线的第二交叉点,将所述第二交叉点的纵坐标确定为所述K线的下边界线值。

4.根据权利要求1所述的方法,其特征在于,所述根据所述K线中四个数据标准化后的数值以及对应的所述上边界线值和下边界线值,计算所述第一视窗内的判定参数,包括:对于所述第一视窗内的每条K线,当所述K线的最高点超过所述第一视窗的通道的上边界线时,计算所述K线的向上突破率,当所述K线的最低点超过所述通道的下边界线时,计算所述K线的向下突破率;

或者,

对于所述第一视窗内的每个关键点,分别计算所述关键点、所述关键点前的第一点和所述关键点后的第二点的上差值总和以及下差值总和,将得到的各个上差值总和加上得到的各个下差值总和,将得到的和值除以关键点数量的2倍,得到关键点错误率;

或者,

统计所述第一视窗向上突破的K线数量和向下突破的K线数量,将所述向上突破的K线数量加上所述向下突破的K线数量,将得到的和值除以所述第一视窗大小的2倍,得到通道突破率;

或者,

统计所述第一视窗内所有K线的上缺损值和下缺损值的总和,将所述总和除以所述第一视窗的大小,得到通道缺损率;

或者,

计算所述关键点错误率、所述通道突破率和所述通道缺损率的和值,将1减去所述和值,得到适配率。

5.根据权利要求4所述的方法,其特征在于,所述根据所述判定参数,确定所述第一视窗内的K线数据是否与所述预定形态匹配,包括:在任何一条K线的向上突破率超过第一点突破率阈值或向下突破率超过第二点突破率阈值,或者,所述关键点错误率超过关键点错误率阈值,或者,所述通道突破率超过通道突破率阈值,或者,所述通道缺损率超过通道缺损率阈值,或者,所述适配率小于最低适配率阈值时,判定所述第一视窗内的K线数据与所述预定形态不匹配;

在任何一条K线的向上突破率未超过第一点突破率阈值或向下突破率超过第二点突破率阈值,且,所述关键点错误率未超过关键点错误率阈值,且,所述通道突破率超过通道突破率阈值,且,所述通道缺损率未超过通道缺损率阈值,且,所述适配率大于最低适配率阈值时,判定所述第一视窗内的K线数据与所述预定形态匹配。

6.一种K线形态识别装置,其特征在于,所述装置包括:

获取模块,用于获取待识别的K线数据;

读取模块,用于读取形态配置文件中的配置参数以及各个关键点的逻辑坐标,所述形态配置文件指示预定形态;

确定模块,用于根据所述配置参数以及所述关键点的逻辑坐标对所述K线数据进行遍历识别,确定所述K线数据是否与所述预定形态匹配;

所述确定模块,包括:

第一确定单元,用于确定第一视窗内的K线是否组成与所述预定形态匹配的形态;

第二确定单元,用于在所述第一视窗内的K线组成与所述预定形态匹配的形态,则将所述第一视窗的左边界值和右边界值均加1,得到第二视窗,进一步确定第二视窗内的K线是否组成与所述预定形态匹配的形态;

第三确定单元,用于在所述第一视窗内的K线未组成与所述预定形态匹配的形态,则将所述第一视窗的右边界值减1,得到第三视窗,在所述第三视窗的大小大于视窗最小值时,确定所述第三视窗内的K线是否组成与所述预定形态匹配的形态,在所述第三视窗的大小小于所述视窗最小值时,确定所述第一视窗内的K线是否与所述预定形态匹配;

所述第三确定单元,包括:

第一计算单元,用于将每条K线数据中的四个数据进行标准化,标准化后的数值均位于

0-1之间,所述K线数据中的四个数据为所述K线对应的最高价、最低价、开盘价和收盘价;

第二计算单元,用于计算所述第一视窗内各条K线的逻辑位置;

第三计算单元,用于根据所述逻辑位置计算每条K线所对应的上边界线值和下边界线值;

第四计算单元,用于根据所述K线中四个数据标准化后的数值以及对应的所述上边界线值和下边界线值,计算所述第一视窗内的判定参数,所述判定参数包括点突破率、关键点错误率、通道突破率、通道缺损率以及适配率中的至少一种;

第三确定单元,用于根据所述判定参数,确定所述第一视窗内的K线数据是否与所述预定形态匹配。

7.根据权利要求6所述的装置,其特征在于,所述第二计算单元,包括:获取单元,用于获取所述第一视窗所对应通道的起始位置以及所述第一视窗的大小;

第五计算单元,用于对于每个K线,将所述K线的索引位置减去所述起始位置,将得到的差值除以所述第一视窗的大小,得到所述K线在所述第一视窗内的逻辑位置。

8.根据权利要求6所述的装置,其特征在于,所述第三计算单元,包括:第四确定单元,用于对于每条K线,确定出位于所述K线左侧最近的第一上边界关键点和右侧最近的第二上边界关键点,获取所述第一上边界关键点和所述第二上边界关键点之间的第一连线,计算所述K线的延长线与所述第一连线的第一交叉点,将所述第一交叉点的纵坐标确定为所述K线的上边界线值;

第五确定单元,用于确定出位于所述K线左侧最近的第一下边界关键点和右侧最近的第二下边界关键点,获取所述第一下边界关键点和所述第二下边界关键点之间的第二连线,计算所述K线的延长线与所述第二连线的第二交叉点,将所述第二交叉点的纵坐标确定为所述K线的下边界线值。

9.根据权利要求6所述的装置,其特征在于,所述第四计算单元,包括:第六计算单元,用于对于所述第一视窗内的每条K线,当所述K线的最高点超过所述第一视窗的通道的上边界线时,计算所述K线的向上突破率,当所述K线的最低点超过所述通道的下边界线时,计算所述K线的向下突破率;

或者,

第七计算单元,用于对于所述第一视窗内的每个关键点,分别计算所述关键点、所述关键点前的第一点和所述关键点后的第二点的上差值总和以及下差值总和,将得到的各个上差值总和加上得到的各个下差值总和,将得到的和值除以关键点数量的2倍,得到关键点错误率;

或者,

第八计算单元,用于统计所述第一视窗向上突破的K线数量和向下突破的K线数量,将所述向上突破的K线数量加上所述向下突破的K线数量,将得到的和值除以所述第一视窗大小的2倍,得到通道突破率;

或者,

第九计算单元,用于统计所述第一视窗内所有K线的上缺损值和下缺损值的总和,将所述总和除以所述第一视窗的大小,得到通道缺损率;

或者,

第十计算单元,用于计算所述关键点错误率、所述通道突破率和所述通道缺损率的和值,将1减去所述和值,得到适配率。

10.根据权利要求9所述的装置,其特征在于,所述第三确定单元,包括:第一判定单元,用于在任何一条K线的向上突破率超过第一点突破率阈值或向下突破率超过第二点突破率阈值,或者,所述关键点错误率超过关键点错误率阈值,或者,所述通道突破率超过通道突破率阈值,或者,所述通道缺损率超过通道缺损率阈值,或者,所述适配率小于最低适配率阈值时,判定所述第一视窗内的K线数据与所述预定形态不匹配;

第二判定单元,用于在任何一条K线的向上突破率未超过第一点突破率阈值或向下突破率超过第二点突破率阈值,且,所述关键点错误率未超过关键点错误率阈值,且,所述通道突破率超过通道突破率阈值,且,所述通道缺损率未超过通道缺损率阈值,且,所述适配率大于最低适配率阈值时,判定所述第一视窗内的K线数据与所述预定形态匹配。

11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,所述程序被处理器执行时实现如权利要求1至5任一项所述的K线形态识别方法。

说明书 :

K线形态识别方法及装置

技术领域

[0001] 本发明涉及计算机技术领域,特别涉及一种K线形态识别方法及装置。

背景技术

[0002] K线形态是股票在下跌、盘整、上升过程中的价格轨迹的特征,通过观察多根K线组成的复合图形,可以判断股价的后期走向。
[0003] 常见的K线形态有W底、M顶、上升通道、下降通道等。现有的K线形态主要依靠人为识别,分析师可以通过局部放大K线图,凭借经验,将K线形态的各个特征标示出来。
[0004] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有的人为标示K线形态的方法带有较多的主观性,且对于数据过多、图形密集的K线,分析师难以通过肉眼识别,对K线形态识别的误差率比较高。

发明内容

[0005] 为了解决现有技术中人为标示K线形态的方法带有较多的主观性,且对于数据过多、图形密集的K线,分析师难以通过肉眼识别,对K线形态识别的误差率比较高的问题,本发明实施例提供了一种K线形态识别方法及装置。所述技术方案如下:
[0006] 第一方面,提供了一种K线形态识别方法,所述方法包括:
[0007] 获取待识别的K线数据;
[0008] 读取形态配置文件中的配置参数以及各个关键点的逻辑坐标,所述形态配置文件指示预定形态;
[0009] 根据所述配置参数以及所述关键点的逻辑坐标对所述K线数据进行遍历识别,确定所述K线数据是否与所述预定形态匹配。
[0010] 可选的,所述根据所述配置参数以及所述关键点的逻辑坐标对所述K线数据进行遍历识别,确定所述K线数据是否与所述预定形态匹配,包括:
[0011] 确定第一视窗内的K线是否组成与所述预定形态匹配的形态;
[0012] 在所述第一视窗内的K线组成与所述预定形态匹配的形态,则将所述第一视窗的左边界值和右边界值均加1,得到第二视窗,进一步确定第二视窗内的K线是否组成与所述预定形态匹配的形态;
[0013] 在所述第一视窗内的K线未组成与所述预定形态匹配的形态,则将所述第一视窗的右边界值减1,得到第三视窗,在所述第三视窗的大小大于视窗最小值时,确定所述第三视窗内的K线是否组成与所述预定形态匹配的形态,在所述第三视窗的大小小于所述视窗最小值时,确定所述第一视窗内的K线是否与所述预定形态匹配。
[0014] 可选的,所述确定第一视窗内的K线是否与所述预定形态匹配,包括:
[0015] 将每条K线数据中的四个数据进行标准化,标准化后的数值均位于0-1之间,所述K线数据中的四个数据为所述K线对应的最高价、最低价、开盘价和收盘价;
[0016] 计算所述第一视窗内各条K线的逻辑位置;
[0017] 根据所述逻辑位置计算每条K线所对应的上边界线值和下边界线值;
[0018] 根据所述K线中四个数据标准化后的数值以及对应的所述上边界线值和下边界线值,计算所述第一视窗内的判定参数,所述预定判定参数包括点突破率、关键点错误率、通道突破率、通道缺损率以及适配率中的至少一种;
[0019] 根据所述判定参数,确定所述第一视窗内的K线数据与所述预定形态匹配。
[0020] 可选的,所述计算所述第一视窗内各条K线的逻辑位置,包括:
[0021] 获取所述第一视窗所对应通道的起始位置以及所述第一视窗的大小;
[0022] 对于每个K线,将所述K线的索引位置减去所述起始位置,将得到的差值除以所述第一视窗的大小,得到所述K线在所述第一视窗内的逻辑位置。
[0023] 可选的,所述根据所述逻辑位置计算每条K线所对应的上边界线值和下边界线值,包括:
[0024] 对于每条K线,确定出位于所述K线左侧最近的第一上边界关键点和右侧最近的第二上边界关键点,获取所述第一上边界关键点和所述第二上边界关键点之间的第一连线,计算所述K线的延长线与所述第一连线的第一交叉点,将所述第一交叉点的纵坐标确定为所述K线的上边界线值;
[0025] 确定出位于所述K线左侧最近的第一下边界关键点和右侧最近的第二下边界关键点,获取所述第一下边界关键点和所述第二下边界关键点之间的第二连线,计算所述K线的延长线与所述第二连线的第二交叉点,将所述第二交叉点的纵坐标确定为所述K线的下边界线值。
[0026] 可选的,所述根据所述K线中四个数据标准化后的数值以及对应的所述上边界线值和下边界线值,计算所述第一视窗内的判定参数,包括:
[0027] 对于所述第一视窗内的每条K线,当所述K线的最高点超过所述第一视窗的通道的上边界线时,计算所述K线的向上突破率,当所述K线的最低点超过所述通道的下边界线时,计算所述K线的向下突破率;
[0028] 或者,
[0029] 对于所述第一视窗内的每个关键点,分别计算所述关键点、所述关键点前的第一点和所述关键点后的第二点的上差值总和以及下差值总和,将得到的各个上差值总和加上得到的各个下差值总和,将得到的和值除以关键点数量的2倍,得到关键点错误率;
[0030] 或者,
[0031] 统计所述第一视窗向上突破的K线数量和向下突破的K线数量,将所述向上突破的K线数量加上所述向下突破的K线数量,将得到的和值除以所述第一视窗大小的2倍,得到通道突破率;
[0032] 或者,
[0033] 统计所述第一视窗内所有K线的上缺损值和下缺损值的总和,将所述总和除以所述第一视窗的大小,得到通道缺损率;
[0034] 或者,
[0035] 计算所述关键点错误率、所述通道突破率和所述通道缺损率的和值,将1减去所述和值,得到适配率。
[0036] 可选的,所述根据所述判定参数,确定所述第一视窗内的K线数据是否组成与所述预定形态匹配的形态,包括:
[0037] 在任何一条K线的向上突破率超过第一点突破率阈值或向下突破率超过第二点突破率阈值,或者,所述关键点错误率超过关键点错误率阈值,或者,所述通道突破率超过通道突破率阈值,或者,所述通道缺损率超过通道缺损率阈值,或者,所述适配率小于最低适配率阈值时,判定所述第一视窗内的K线数据与所述预定形态不匹配;
[0038] 在任何一条K线的向上突破率未超过第一点突破率阈值或向下突破率超过第二点突破率阈值,且,所述关键点错误率未超过关键点错误率阈值,且,所述通道突破率超过通道突破率阈值,且,所述通道缺损率未超过通道缺损率阈值,且,所述适配率大于最低适配率阈值时,判定所述第一视窗内的K线数据与所述预定形态匹配。
[0039] 第二方面,提供了一种K线形态识别装置,所述装置包括:
[0040] 获取模块,用于获取待识别的K线数据;
[0041] 读取模块,用于读取形态配置文件中的配置参数以及各个关键点的逻辑坐标,所述形态配置文件指示预定形态;
[0042] 确定模块,用于根据所述配置参数以及所述关键点的逻辑坐标对所述K线数据进行遍历识别,确定所述K线数据是否与所述预定形态匹配。
[0043] 可选的,所述确定模块,包括:
[0044] 第一确定单元,用于确定第一视窗内的K线是否组成与所述预定形态匹配的形态;
[0045] 第二确定单元,用于在所述第一视窗内的K线组成与所述预定形态匹配的形态,则将所述第一视窗的左边界值和右边界值均加1,得到第二视窗,进一步确定第二视窗内的K线是否组成与所述预定形态匹配的形态;
[0046] 第三确定单元,用于在所述第一视窗内的K线未组成与所述预定形态匹配的形态,则将所述第一视窗的右边界值减1,得到第三视窗,在所述第三视窗的大小大于视窗最小值时,确定所述第三视窗内的K线是否组成与所述预定形态匹配的形态,在所述第三视窗的大小小于所述视窗最小值时,确定所述第一视窗内的K线是否与所述预定形态匹配。
[0047] 可选的,所述第三确定单元,包括:
[0048] 第一计算单元,用于将每条K线数据中的四个数据进行标准化,标准化后的数值均位于0-1之间,所述K线数据中的四个数据为所述K线对应的最高价、最低价、开盘价和收盘价;
[0049] 第二计算单元,用于计算所述第一视窗内各条K线的逻辑位置;
[0050] 第三计算单元,用于根据所述逻辑位置计算每条K线所对应的上边界线值和下边界线值;
[0051] 第四计算单元,用于根据所述K线中四个数据标准化后的数值以及对应的所述上边界线值和下边界线值,计算所述第一视窗内的判定参数,所述预定判定参数包括点突破率、关键点错误率、通道突破率、通道缺损率以及适配率中的至少一种;
[0052] 第三确定单元,用于根据所述判定参数,确定所述第一视窗内的K线数据与所述预定形态匹配。
[0053] 可选的,所述第二计算单元,包括:
[0054] 获取单元,用于获取所述第一视窗所对应通道的起始位置以及所述第一视窗的大小;
[0055] 第五计算单元,用于对于每个K线,将所述K线的索引位置减去所述起始位置,将得到的差值除以所述第一视窗的大小,得到所述K线在所述第一视窗内的逻辑位置。
[0056] 可选的,所述第三计算单元,包括:
[0057] 第四确定单元,用于对于每条K线,确定出位于所述K线左侧最近的第一上边界关键点和右侧最近的第二上边界关键点,获取所述第一上边界关键点和所述第二上边界关键点之间的第一连线,计算所述K线的延长线与所述第一连线的第一交叉点,将所述第一交叉点的纵坐标确定为所述K线的上边界线值;
[0058] 第五确定单元,用于确定出位于所述K线左侧最近的第一下边界关键点和右侧最近的第二下边界关键点,获取所述第一下边界关键点和所述第二下边界关键点之间的第二连线,计算所述K线的延长线与所述第二连线的第二交叉点,将所述第二交叉点的纵坐标确定为所述K线的下边界线值。
[0059] 可选的,所述第四计算单元,包括:
[0060] 第六计算单元,用于对于所述第一视窗内的每条K线,当所述K线的最高点超过所述第一视窗的通道的上边界线时,计算所述K线的向上突破率,当所述K线的最低点超过所述通道的下边界线时,计算所述K线的向下突破率;
[0061] 或者,
[0062] 第七计算单元,用于对于所述第一视窗内的每个关键点,分别计算所述关键点、所述关键点前的第一点和所述关键点后的第二点的上差值总和以及下差值总和,将得到的各个上差值总和加上得到的各个下差值总和,将得到的和值除以关键点数量的2倍,得到关键点错误率;
[0063] 或者,
[0064] 第八计算单元,用于统计所述第一视窗向上突破的K线数量和向下突破的K线数量,将所述向上突破的K线数量加上所述向下突破的K线数量,将得到的和值除以所述第一视窗大小的2倍,得到通道突破率;
[0065] 或者,
[0066] 第九计算单元,用于统计所述第一视窗内所有K线的上缺损值和下缺损值的总和,将所述总和除以所述第一视窗的大小,得到通道缺损率;
[0067] 或者,
[0068] 第十计算单元,用于计算所述关键点错误率、所述通道突破率和所述通道缺损率的和值,将1减去所述和值,得到适配率。
[0069] 可选的,所述第三确定单元,包括:
[0070] 第一判定单元,用于在任何一条K线的向上突破率超过第一点突破率阈值或向下突破率超过第二点突破率阈值,或者,所述关键点错误率超过关键点错误率阈值,或者,所述通道突破率超过通道突破率阈值,或者,所述通道缺损率超过通道缺损率阈值,或者,所述适配率小于最低适配率阈值时,判定所述第一视窗内的K线数据与所述预定形态不匹配;
[0071] 第二判定单元,用于在任何一条K线的向上突破率未超过第一点突破率阈值或向下突破率超过第二点突破率阈值,且,所述关键点错误率未超过关键点错误率阈值,且,所述通道突破率超过通道突破率阈值,且,所述通道缺损率未超过通道缺损率阈值,且,所述适配率大于最低适配率阈值时,判定所述第一视窗内的K线数据与所述预定形态匹配。
[0072] 本发明实施例提供的技术方案带来的有益效果是:
[0073] 通过获取待识别的K线数据,根据形态配置文件中的配置参数以及各个关键点的逻辑坐标,对该K线数据进行遍历识别;由于形态配置文件指示预定形态,对K线数据进行遍历识别,即可确定该K线数据是否与预定形态匹配,因此解决了现有技术中人为标示K线形态的方法带有较多的主观性,且对于数据过多、图形密集的K线,分析师难以通过肉眼识别,对K线形态识别的误差率比较高的问题;可以让终端自动、快速的进行K线形态识别,摒弃人工识别的主观性。

附图说明

[0074] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0075] 图1是本发明一个实施例中提供的K线形态识别方法所涉及形态识别系统的实施环境示意图;
[0076] 图2A是本发明一个实施例中提供的K线形态识别方法的方法流程图;
[0077] 图2B是本发明一个实施例中提供的反映数据随时间的变化规律的图表的示意图;
[0078] 图2C是本发明一个实施例中提供的可视化的设计界面的示意图;
[0079] 图3A是本发明另一个实施例中提供的K线形态识别方法的方法流程图;
[0080] 图3B是本发明一个实施例中提供的确定该第一视窗内的K线是否与该预定形态匹配方法的方法流程图;
[0081] 图4A是本发明一个实施例中提供的K线形态识别装置的结构方框图;
[0082] 图4B是本发明另一个实施例中提供的K线形态识别装置的结构方框图。

具体实施方式

[0083] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0084] 图1是本发明一个实施例中提供的K线形态识别方法所涉及形态识别系统的实施环境示意图。该实施环境至少可以包括形态设计器110、第三方应用120和形态识别模块130。
[0085] 第一种可能实现的方式:
[0086] 形态参数配置数据是指用户可用可视化的形态设计器设计形态,并保存形态参数XML的配置文档。
[0087] K线数据是由形态识别模块130以插件的方式提供给第三方应用120调用。形态识别模块130仅作为一个分析工具,需要由第三方应用120传入待识别的K线数据,当形态识别模块130将K线数据分析完成后,再将分析结果输出给第三方应用120。
[0088] 形态识别模块是一个DLL,可被第三方应用程序加载,形态识别模块可读入待识别的所有K线数据,并载入形态参数XML的配置文档,然后自动对K线进行模态的评测识别。
[0089] 形态识别模块130与形态设计器110通过形态参数XML的配置文档相互关联,当形态设计器110生成形态参数XML的配置文档后,形态识别模块130加载该配置文档。
[0090] 第三方应用120通过模块接口将待识别的K线数据传入形态识别模块130后,形态识别模块130将K线分为多个视窗通道,并逐个遍历分析,将该通道的K线的物理坐标数据转为逻辑坐标数据,根据配置文档设定的参数,按照形态各项指标进行评测,并将输出结果反馈给第三方应用120。
[0091] 形态设计器110是一个可视化的设计工具,用户设计的模态是可见即可得的。
[0092] 用户可以将设计的形态保存到形态参数XML的配置文档,也可以加载配置文档显示到形态设计器110,即形态设计器110有保存和加载功能。
[0093] 形态识别模块130只提供计算与分析功能,并不提供显示功能。第三方应用120通常具有K线显示功能,当第三方应用120接收到形态识别模块130输出的结果集后,将根据结果集在K线显示画面的指定位置,画出相应的形态线。
[0094] 第二种可能实现的方式:
[0095] 形态设计器110可以引入K线数据,并根据K线数据显示K线。用户选定K线区域后进行形态绘制时,可以参考形态设计器110所显示的K线,来实时调节形态绘制时的各项指标参数设定值;
[0096] 用户可在形态设计器110中选择形态识别评测指标(比如在点突破率,关键点错误率,通道错误率,通道突破率,最低适配率中选择其中几种),其他的指标参数可以忽略。
[0097] 第三种可能的实现方式:
[0098] 形态设计器110可以增加一条收盘线,形成上中下三条轨迹线,以中线(即收盘线)为基准,而非通道的最高点最低点可视为K线区域的逻辑坐标。
[0099] 如果有多个通道适配形态,形态设计器110可弹窗提醒用户。
[0100] 图2A是本发明一个实施例中提供的K线形态识别方法的方法流程图,该K线形态识别方法应用于图1所示实施环境中。在图2A中,该K线形态识别方法包括:
[0101] 步骤201,获取待识别的K线数据。
[0102] 请参见图2B,其示出了是本发明一个实施例中提供的反映数据随时间的变化规律的图表的示意图。该图表中显示有一组数据曲线,该组中各条数据曲线11均处于由时间轴12和数据轴13构成的二维直角坐标系中,每条数据曲线11均由若干个采样点依次连接而成。对于每条数据曲线的每一个采样点,横坐标(也即在时间轴12上的坐标)为采样时刻,且纵坐标(也即在数据轴13上的坐标)为该采样时刻对应的统计数据,每条数据曲线中,采样时刻所对应的统计数据的统计时段不同。比如对于第K条数据曲线,该条数据曲线中的采样时刻所对应的统计数据为对从该采样时刻起向前预定时长内的数据进行统计得到。其中,K不同时,预定时长也不同。其中,数据可以是包括股市中的收盘价、湿度、价格、产量等多种类型的数据。
[0103] 步骤202,读取形态配置文件中的配置参数以及各个关键点的逻辑坐标,该形态配置文件指示预定形态。
[0104] 形态设计器可提供一个可视化的设计界面,由用户自行设计各种形态,用户只需要拖动点线,将形态设计出来,设置各个参数,保存不同的形态参数XML的配置文档。
[0105] 请参见图2C,其示出了是本发明一个实施例中提供的可视化的设计界面的示意图。每个K线形态有上下两条边界线组成,L1表示上边界线,L2表示下边界线,每条边界线有2个或多个关键点(key point)(比如,L1中的关键点为点A至点C,L2中的关键点为点D至点F)组成,每条线的关键点个数可以不一致,但第一个点与最后一个点必须对齐,即在X轴位置一样,关键点之间用线段连接组成了边界线,上下边界线形成了通道,上下边界线不能有交叉点。
[0106] 在形态设计器中,所有的关键点的X坐标和Y坐标都是逻辑坐标,而非物理坐标,形态识别模块为了尽可能适配最大的周期,设计有一个可变的滑动的视窗。
[0107] 其中,X对应的是视窗内K线的相对位置,它是整个视窗长度的百分比。也就是说,上下边界点第一个点的X都是0,最后一个点的X都是100。
[0108] 其中,关键点的Y坐标是视窗高度的百分比。视窗Y坐标是指视窗内周期的最高点和最低点的组成,最高点为100,最低点为0。
[0109] 相应的,在形态识别模块,通道内所有的K线相关数据都应转换为Y轴对应的逻辑坐标。
[0110] 步骤203,根据配置参数以及关键点的逻辑坐标对K线数据进行遍历识别,确定该K线数据是否与预定形态匹配。
[0111] 综上所述,本发明实施例提供的K线形态识别方法,通过获取待识别的K线数据,根据形态配置文件中的配置参数以及各个关键点的逻辑坐标,对该K线数据进行遍历识别;由于形态配置文件指示预定形态,对K线数据进行遍历识别,即可确定该K线数据是否与预定形态匹配,因此解决了现有技术中人为标示K线形态的方法带有较多的主观性,且对于数据过多、图形密集的K线,分析师难以通过肉眼识别,对K线形态识别的误差率比较高的问题;可以让终端自动、快速的进行K线形态识别,摒弃人工识别的主观性。
[0112] 请参见图3A所示,其是本发明另一个实施例中提供的K线形态识别方法的方法流程图,该K线形态识别方法应用于图1所示实施环境中。在图3A中,该K线形态识别方法包括:
[0113] 步骤301,获取待识别的K线数据。
[0114] 步骤302,读取形态配置文件中的配置参数以及各个关键点的逻辑坐标,该形态配置文件指示预定形态。
[0115] 步骤301与步骤201类似,步骤302与步骤202类似,具体可以参见步骤301至步骤302中的描述,这里就不再赘述。
[0116] 步骤303,确定第一视窗内的K线是否组成与预定形态匹配的形态。
[0117] 步骤304,在第一视窗内的K线组成与预定形态匹配的形态,则将该第一视窗的左边界值和右边界值均加1,得到第二视窗,进一步确定第二视窗内的K线是否组成与该预定形态匹配的形态。
[0118] 比如,参数设定最大周期为50,最小周期为20,若当前K线位置索引为100,则首先扫描视窗[100-150]中的K线是否组成与预定形态匹配的形态,如果视窗中的K线形态与预定形态匹配,则将K线数据保存到结果集中,继续扫描下一个视窗[101-151]中的K线形态。
[0119] 步骤305,在第一视窗内的K线未组成与该预定形态匹配的形态,则将该第一视窗的右边界值减1,得到第三视窗,在该第三视窗的大小大于视窗最小值时,确定该第三视窗内的K线是否组成与该预定形态匹配的形态,在该第三视窗的大小小于该视窗最小值时,确定该第一视窗内的K线是否与该预定形态匹配。
[0120] 比如,设视窗最小值为120,首先扫描视窗[100-150]中的K线是否组成与预定形态匹配的形态,若视窗中的K线形态与预定形态不匹配,则缩小视窗,扫描视窗[100-149]中的K线是否组成与预定形态匹配的形态,若仍不匹配则继续缩小视窗,直至视窗缩小到最小视窗[100-120],若最小视窗[100-120]中的K线形态与预定形态仍不匹配,则表明该K线不存在相对的形态。
[0121] 请参见图3B所示,其是本发明一个实施例中提供的确定该第一视窗内的K线是否与该预定形态匹配方法的方法流程图。在图3B中,该确定该第一视窗内的K线是否与该预定形态匹配方法包括:
[0122] 步骤305a,将每条K线数据中的四个数据进行标准化,标准化后的数值均位于0-1之间。
[0123] 这里所讲的K线数据中的四个数据为该K线对应的最高价、最低价、开盘价和收盘价。
[0124] 首先计算通道中K线价格最高点和最低点,所有K线数据的标准化公式为:
[0125] 标准化后的数据=(标准化前的数据–最低点)/(最高点–最低点)[0126] 其中,标准化后是数据均位于0-1之间。
[0127] 将K线对应的最高价、开盘价、最低价、和收盘价被标准化后的数据均临时保存在数组中,其中,标准化后的最高价的数组用High[]表示,标准化后的开盘价的数组用Open[]表示,标准化后的最低价的数组用Low[]表示,标准化后的收盘价的数组用Close[]表示。
[0128] 需要说明的是,除了步骤305a的计算公式中使用标准化前的数据,其余步骤中所涉及的计算公式均使用的标准化后的数据。
[0129] 步骤305b,计算第一视窗内各条K线的逻辑位置。
[0130] 可选的,获取第一视窗所对应通道的起始位置以及该第一视窗的大小,对于每个K线,将该K线的索引位置减去起始位置,将得到的差值除以该第一视窗的大小,得到该K线在该第一视窗内的逻辑位置。
[0131] 形态参数XML的配置文档中存储有关键点的逻辑坐标,边界线是各个关键点的连接线段组成,所以需要计算各个K线对应的边界线。
[0132] Window表示视窗大小,N表示K线相对通道位置,将视窗K线位置转换为逻辑位置的计算公式为:X=N/Window。
[0133] 比如通道起始位置为100,视窗大小为40,当前K线索引位置为120,即偏离通道位置为20,则此时X=20/40=0.5。
[0134] 步骤305c,根据逻辑位置计算每条K线所对应的上边界线值和下边界线值。
[0135] 可选的,对于每条K线,确定出位于该K线左侧最近的第一上边界关键点和右侧最近的第二上边界关键点,获取该第一上边界关键点和该第二上边界关键点之间的第一连线,计算该K线的延长线与第一连线的第一交叉点,将该第一交叉点的纵坐标确定为该K线的上边界线值。
[0136] 可选的,确定出位于K线左侧最近的第一下边界关键点和右侧最近的第二下边界关键点,获取该第一下边界关键点和该第二下边界关键点之间的第二连线,计算该K线的延长线与该第二连线的第二交叉点,将该第二交叉点的纵坐标确定为该K线的下边界线值。
[0137] K线中相邻关键点的斜率的计算公式为:B=(Y1-Y2)/(X1-X2)。
[0138] 常量的计算公式为:C=Y1-B*X1
[0139] 根据K线中相邻关键点的斜率和常量,通道K线对应的边界线Y值的计算公式为:Y=B*X+C。
[0140] 将通道K线对应上下边界的数据都保存到临时数组。其中,上边界线的数组用upBound[]表示,下边界线的数组用lowBound[]表示。
[0141] 步骤305d,根据K线中四个数据标准化后的数值以及对应的上边界线值和下边界线值,计算该第一视窗内的判定参数。
[0142] 这里所讲的预定判定参数包括点突破率、关键点错误率、通道突破率、通道缺损率以及适配率中的至少一种。
[0143] 可选的,对于第一视窗内的每条K线,当该K线的最高点超过该第一视窗的通道的上边界线时,计算该K线的向上突破率,当该K线的最低点超过该通道的下边界线时,计算该K线的向下突破率。
[0144] 其中,突破率中包含向上突破率和向下突破率。
[0145] 向上突破率是指K线最高点超过上边界线的概率,计算公式为:
[0146] 向上突破率=(最高点–上边界线)/上边界线
[0147] 向下突破率是指K线最低点突破下边界线的概率,计算公式为:
[0148] 向下突破率=(下边界线–最低点)/下边界线
[0149] 可选的,对于第一视窗内的每个关键点,分别计算该关键点、该关键点前的第一点和该关键点后的第二点的上差值总和以及下差值总和,将得到的各个上差值总和加上得到的各个下差值总和,将得到的和值除以关键点数量的2倍,得到关键点错误率。
[0150] 关键点通常是拐点,关键点错误率(KeyPointErrorRate)的计算公式为:
[0151] KeyPointErrorRate=(UpErrorArea+LowErrorArea)/2/KeyPointNum[0152] 其中,UpErrorArea是指所有关键点以及前后2个点上差值总和,LowErrorArea是指所有关键点以及前后2个点下差值总和,KeyPointNum是指关键点个数。
[0153] 可选的,统计第一视窗向上突破的K线数量和向下突破的K线数量,将该向上突破的K线数量加上该向下突破的K线数量,将得到的和值除以该第一视窗大小的2倍,得到通道突破率。
[0154] 由此可知,通道突破率(ChannelBreakoutRate)的计算公式为:
[0155] ChannelBreakoutRate=(UpBreakoutNum+LowBreakoutNum)/(2*Window)[0156] 其中,UpBreakoutNum是指统计通道内向上突破的K线个数,LowBreakoutNum是指统计通道内向下突破的K线个数。
[0157] 可选的,统计第一视窗内所有K线的上缺损值和下缺损值的总和,将该总和除以该第一视窗的大小,得到通道缺损率。
[0158] 由此可知,通道缺损率(ChannelErrorRate)的计算公式为:
[0159] ChannelErrorRate=ErrorAreaTotal/Window;
[0160] 其中,ErrorAreaTotal是指缺损总面积。
[0161] 可选的,计算关键点错误率、通道突破率和通道缺损率的和值,将1减去该和值,得到适配率。
[0162] 由此可知,适配率(FitnessRate)的计算公式为:
[0163] FitnessRate=1–PointErrorRate–ChannelBreakoutRate-ChannelErrorRate[0164] 步骤305e,根据判定参数,确定第一视窗内的K线数据与该预定形态匹配。
[0165] 可选的,在任何一条K线的向上突破率超过第一点突破率阈值或向下突破率超过第二点突破率阈值,或者,关键点错误率超过关键点错误率阈值,或者,通道突破率超过通道突破率阈值,或者,通道缺损率超过通道缺损率阈值,或者,适配率小于最低适配率阈值时,判定第一视窗内的K线数据与预定形态不匹配。
[0166] 可选的,在任何一条K线的向上突破率未超过第一点突破率阈值或向下突破率超过第二点突破率阈值,且,关键点错误率未超过关键点错误率阈值,且,通道突破率超过通道突破率阈值,且,通道缺损率未超过通道缺损率阈值,且,适配率大于最低适配率阈值时,判定第一视窗内的K线数据与预定形态匹配。
[0167] 综上所述,本发明实施例提供的K线形态识别方法,通过获取待识别的K线数据,根据形态配置文件中的配置参数以及各个关键点的逻辑坐标,对该K线数据进行遍历识别;由于形态配置文件指示预定形态,对K线数据进行遍历识别,即可确定该K线数据是否与预定形态匹配,因此解决了现有技术中人为标示K线形态的方法带有较多的主观性,且对于数据过多、图形密集的K线,分析师难以通过肉眼识别,对K线形态识别的误差率比较高的问题;可以让终端自动、快速的进行K线形态识别,摒弃人工识别的主观性。
[0168] 请参见图4A所示,其是本发明一个实施例中提供的K线形态识别装置的结构方框图,该K线形态识别装置应用于图1所示实施环境中。在图4A中,该K线形态识别装置包括:获取模块401、读取模块402和确定模块403。
[0169] 获取模块401,用于获取待识别的K线数据;
[0170] 读取模块402,用于读取形态配置文件中的配置参数以及各个关键点的逻辑坐标,该形态配置文件指示预定形态;
[0171] 确定模块403,用于根据配置参数以及关键点的逻辑坐标对K线数据进行遍历识别,确定该K线数据是否与预定形态匹配。
[0172] 在一种可能的实现方式中,请参见图4B所示,其是本发明另一个实施例中提供的K线形态识别装置的结构方框图,该确定模块403可以包括:第一确定单元403a、第二确定单元403b和第三确定单元403c。
[0173] 第一确定单元403a,用于确确定第一视窗内的K线是否组成与预定形态匹配的形态;
[0174] 第二确定单元403b,用于在第一视窗内的K线组成与预定形态匹配的形态,则将该第一视窗的左边界值和右边界值均加1,得到第二视窗,进一步确定第二视窗内的K线是否组成与该预定形态匹配的形态;
[0175] 第三确定单元403c,用于在第一视窗内的K线未组成与该预定形态匹配的形态,则将该第一视窗的右边界值减1,得到第三视窗,在该第三视窗的大小大于视窗最小值时,确定该第三视窗内的K线是否组成与该预定形态匹配的形态,在该第三视窗的大小小于该视窗最小值时,确定该第一视窗内的K线是否与该预定形态匹配。
[0176] 在一种可能的实现方式中,仍参见图4B,该第三确定单元403c可以包括:第一计算单元403c1、第二计算单元403c2、第三计算单元403c3、第四计算单元403c4和第三确定单元403c5。
[0177] 第一计算单元403c1,用于将每条K线数据中的四个数据进行标准化,标准化后的数值均位于0-1之间,该K线数据中的四个数据为该K线对应的最高价、最低价、开盘价和收盘价;
[0178] 第二计算单元403c2,用于计算第一视窗内各条K线的逻辑位置;
[0179] 第三计算单元403c3,用于根据逻辑位置计算每条K线所对应的上边界线值和下边界线值;
[0180] 第四计算单元403c4,用于根据K线中四个数据标准化后的数值以及对应的上边界线值和下边界线值,计算该第一视窗内的判定参数,该预定判定参数包括点突破率、关键点错误率、通道突破率、通道缺损率以及适配率中的至少一种;
[0181] 第三确定单元403c5,用于根据判定参数,确定第一视窗内的K线数据与该预定形态匹配。
[0182] 在一种可能的实现方式中,仍参见图4B,该第二计算单元403c2可以包括:获取单元403c2a和第五计算单元403c2b。
[0183] 获取单元403c2a,用于获取第一视窗所对应通道的起始位置以及该第一视窗的大小;
[0184] 第五计算单元403c2b,用于对于每个K线,将该K线的索引位置减去起始位置,将得到的差值除以该第一视窗的大小,得到该K线在该第一视窗内的逻辑位置。
[0185] 在一种可能的实现方式中,仍参见图4B,该第三计算单元403c3可以包括:第四确定单元403c3a和第五确定单元403c3b。
[0186] 第四确定单元403c3a,用于对于每条K线,确定出位于该K线左侧最近的第一上边界关键点和右侧最近的第二上边界关键点,获取该第一上边界关键点和该第二上边界关键点之间的第一连线,计算该K线的延长线与第一连线的第一交叉点,将该第一交叉点的纵坐标确定为该K线的上边界线值;
[0187] 第五确定单元403c3b,用于确定出位于K线左侧最近的第一下边界关键点和右侧最近的第二下边界关键点,获取该第一下边界关键点和该第二下边界关键点之间的第二连线,计算该K线的延长线与该第二连线的第二交叉点,将该第二交叉点的纵坐标确定为该K线的下边界线值。
[0188] 在一种可能的实现方式中,仍参见图4B,该第四计算单元403c4,包括:第六计算单元403c4a、第七计算单元403c4b、第八计算单元403c4c、第九计算单元403c4d和第十计算单元403c4e。
[0189] 第六计算单元403c4a,用于对于第一视窗内的每条K线,当该K线的最高点超过该第一视窗的通道的上边界线时,计算该K线的向上突破率,当该K线的最低点超过该通道的下边界线时,计算该K线的向下突破率;
[0190] 或者,
[0191] 第七计算单元403c4b,用于对于第一视窗内的每个关键点,分别计算该关键点、该关键点前的第一点和该关键点后的第二点的上差值总和以及下差值总和,将得到的各个上差值总和加上得到的各个下差值总和,将得到的和值除以关键点数量的2倍,得到关键点错误率;
[0192] 或者,
[0193] 第八计算单元403c4c,用于统计第一视窗向上突破的K线数量和向下突破的K线数量,将该向上突破的K线数量加上该向下突破的K线数量,将得到的和值除以该第一视窗大小的2倍,得到通道突破率;
[0194] 或者,
[0195] 第九计算单元403c4d,用于统计第一视窗内所有K线的上缺损值和下缺损值的总和,将该总和除以该第一视窗的大小,得到通道缺损率;
[0196] 或者,
[0197] 第十计算单元403c4e,用于计算关键点错误率、通道突破率和通道缺损率的和值,将1减去该和值,得到适配率。
[0198] 在一种可能的实现方式中,仍参见图4B,该第三确定单元403c5,包括:第一判定单元403c5a和第二判定单元403c5b。
[0199] 第一判定单元403c5a,用于在任何一条K线的向上突破率超过第一点突破率阈值或向下突破率超过第二点突破率阈值,或者,关键点错误率超过关键点错误率阈值,或者,通道突破率超过通道突破率阈值,或者,通道缺损率超过通道缺损率阈值,或者,适配率小于最低适配率阈值时,判定第一视窗内的K线数据与预定形态不匹配;
[0200] 第二判定单元403c5b,用于在任何一条K线的向上突破率未超过第一点突破率阈值或向下突破率超过第二点突破率阈值,且,关键点错误率未超过关键点错误率阈值,且,通道突破率超过通道突破率阈值,且,通道缺损率未超过通道缺损率阈值,且,适配率大于最低适配率阈值时,判定第一视窗内的K线数据与预定形态匹配。
[0201] 综上所述,本发明实施例提供的K线形态识别装置,通过获取待识别的K线数据,根据形态配置文件中的配置参数以及各个关键点的逻辑坐标,对该K线数据进行遍历识别;由于形态配置文件指示预定形态,对K线数据进行遍历识别,即可确定该K线数据是否与预定形态匹配,因此解决了现有技术中人为标示K线形态的方法带有较多的主观性,且对于数据过多、图形密集的K线,分析师难以通过肉眼识别,对K线形态识别的误差率比较高的问题;可以让终端自动、快速的进行K线形态识别,摒弃人工识别的主观性。
[0202] 需要说明的是:上述实施例中提供的K线形态识别装置在识别K线形态时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的K线形态识别装置与K线形态识别方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0203] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0204] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0205] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。