掌桥专利:专业的专利平台
掌桥专利
首页

一种行情数据对比方法及系统

文献发布时间:2024-04-18 19:59:31


一种行情数据对比方法及系统

技术领域

本发明涉及数据处理技术领域,尤其涉及一种行情数据对比方法及系统。

背景技术

行情数据受网络、硬件影响,两个不同市场的同一只股票的行情数据,用户收到的时间会有略微差别,传统的行情对比,只能对比行情数据的数值,很难对比行情数据的时效性。在金融市场中,准确、稳定的行情对于投资者和交易员至关重要。

现有的行情对比方法往往依赖于传统的统计指标和算法,如相关系数、均值等。然而,这些方法往往无法捕捉到数据之间的细微差异,从而导致对比不准确。

因此现有技术还有待于进一步发展。

发明内容

针对上述技术问题,本发明实施例提供了一种行情数据对比方法及系统,能够解决现有技术中行情对比方法往往依赖于传统的统计指标和算法,如相关系数、均值等。然而,这些方法往往无法捕捉到数据之间的细微差异,从而导致对比不准确的技术问题。

本发明实施例的第一方面提供一种行情数据对比方法,方法包括:

采集需要对比的行情数据;

将所述行情数据转换为向量形式,得到行情数据向量;

计算行情数据向量间的欧几里得距离;

基于所述欧几里得距离的值确定行情数据的相似度,并根据所述相似度输出对应的行情对比结果。

可选地,所述采集需要对比的行情数据,包括:

基于预设的行情录制脚本对金融市场开市的行情数据进行录制,得到录制结果,存储到数据库中;

检测到用户的行情对比指令,从所述数据库中提取需要对比的行情数据。

可选地,所述将所述行情数据转换为向量形式,得到行情数据向量,包括:

从所述数据库分别取对比源和待测源同一只股票、同一只类型的行情数据;

将两个市场的行情数据,以时间为横坐标、值为纵坐标,绘制两条曲线;

取距离对比源最近的待测源的点,分别放进两组向量中,得到行情数据向量。

可选地,所述基于所述欧几里得距离的值确定行情数据的相似度,并根据所述相似度输出对应的行情对比结果,包括:

根据欧几里得距离的值得到行情数据的相似度;

若相似度大于等于阈值,则向用户推送第一消息,所述第一消息内容为对比通过结果以及第一对比图表;

若相似度小于阈值,则向用户推送第二消息,所述第二消息内容为对比不通结果过以及第二对比图表。

可选地,所述若相似度小于阈值,则向用户推送第二消息,所述第二消息内容为对比不通结果过以及第二对比图表后,还包括:

检测到用户的鼠标悬停在所述第二对比图表时,则显示收到行情数据的时间及对应的行情数值

本发明实施例第二方面提供了一种行情数据对比系统,所述系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现以下步骤:

采集需要对比的行情数据;

将所述行情数据转换为向量形式,得到行情数据向量;

计算行情数据向量间的欧几里得距离;

基于所述欧几里得距离的值确定行情数据的相似度,并根据所述相似度输出对应的行情对比结果。

可选地,所述计算机程序被所述处理器执行时实现以下步骤:

基于预设的行情录制脚本对金融市场开市的行情数据进行录制,得到录制结果,存储到数据库中;

检测到用户的行情对比指令,从所述数据库中提取需要对比的行情数据。

可选地,所述计算机程序被所述处理器执行时还实现以下步骤:

基于预设的行情录制脚本对金融市场开市的行情数据进行录制,得到录制结果,存储到数据库中;

检测到用户的行情对比指令,从所述数据库中提取需要对比的行情数据。

可选地,所述计算机程序被所述处理器执行时还实现以下步骤:

根据欧几里得距离的值得到行情数据的相似度;

若相似度大于等于阈值,则向用户推送第一消息,所述第一消息内容为对比通过结果以及第一对比图表;

若相似度小于阈值,则向用户推送第二消息,所述第二消息内容为对比不通结果过以及第二对比图表。

本发明实施例第三方面提供了一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的行情数据对比方法。

本发明实施例提供的技术方案中,采集需要对比的行情数据;将所述行情数据转换为向量形式,得到行情数据向量;计算行情数据向量间的欧几里得距离;基于所述欧几里得距离的值确定行情数据的相似度,并根据所述相似度输出对应的行情对比结果。本发明实施例能够更准确地捕捉行情数据之间的细微差异;提供了一种直观的度量方式,易于理解和使用;可以在各种金融市场和行情数据类型上广泛应用。

附图说明

图1为本发明实施例中一种行情数据对比方法的较佳实施例的流程示意图;

图2为本发明实施例中一种行情数据对比方法的具体应用实施例的自动录制的流程示意图;

图3为本发明实施例中一种行情数据对比方法的具体应用实施例的自动对比的流程示意图;

图4为本发明实施例中一种行情数据对比方法的具体应用实施例的对比结果示意图;

图5为本发明实施例中一种行情数据对比方法的具体应用实施例的自动对比结果的价格曲线示意图;

图6为本发明实施例中一种行情数据对比系统的另一实施例的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

以下结合附图对本发明实施例进行详细的描述。

请参阅图1,图1为本发明实施例中一种行情数据对比方法的一个实施例的流程示意图。如图1所示,包括:

步骤S100、采集需要对比的行情数据;

步骤S200、将所述行情数据转换为向量形式,得到行情数据向量;

步骤S300、计算行情数据向量间的欧几里得距离;

步骤S400、基于所述欧几里得距离的值确定行情数据的相似度,并根据所述相似度输出对应的行情对比结果。

具体实施时,本发明实施例提供了一种基于欧几里得距离的行情对比的自动化测试方法,旨在提高行情分析的准确性和可靠性质量。该方法基于欧几里得距离的概念,通过计算不同行情之间的欧几里得距离来度量它们之间的相似性。本发明的行情对比方法包括以下步骤:

收集需要对比的行情数据;将行情数据表示为向量形式;

计算行情数据向量之间的欧几里得距离;计算行情数据向量之间的欧几里得距离:对于每对行情数据向量,使用欧几里得距离公式计算它们之间的距离;

根据欧几里得距离的值确定行情数据的相似性;根据欧几里得距离的值确定行情数据的相似度:(1-平均欧几里得距离/两组行情数据的最大差值)*100%;

输出对应的行情对比结果,提供相应的行情对比结果:根据相似度判断,输出行情数据之间的对比结果。

进一步地,采集需要对比的行情数据,包括:

基于预设的行情录制脚本对金融市场开市的行情数据进行录制,得到录制结果,存储到数据库中;

检测到用户的行情对比指令,从所述数据库中提取需要对比的行情数据。

具体实施时,收集需要对比的行情数据:从金融市场获取需要对比的行情数据,如股票价格、买卖档等。

自动录制、自动对比并告警,无人干预的高效行情对比;自动录制流程图如图2所示,自动录制实施过程如下:

通过Linux(服务器)的crontab(定时任务控制器),配置定时任务,每天开市后自动运行行情录制脚本;

获取环境数据、账号信息;

通过api接口获取当前是否开市,如未开市则跳过行情录制;

通过api接口登录,获取登录后的凭证;

检查当前凭证是否有LV2行情权限,如果无权限则切换到LV2行情权限;

订阅行情,并另起一个守护进程判断行情是否断开,如断开则重新订阅;

通过socket实时获取行情推送数据;

将行情数据按照数据源、股票代码、行情类型分类写进Elasticsearch数据库;

判断是否闭市,如果闭市则取消订阅,然后结束行情录制。

进一步地,将所述行情数据转换为向量形式,得到行情数据向量,包括:

从所述数据库分别取对比源和待测源同一只股票、同一只类型的行情数据;

将两个市场的行情数据,以时间为横坐标、值为纵坐标,绘制两条曲线;

取距离对比源最近的待测源的点,分别放进两组向量中,得到行情数据向量。

具体实施时,将行情数据表示为向量形式:将每个行情数据转换为相应的数值向量;

从Elasticsearch数据库分别获取对比源和待测源的同一只股票、同一种类型的行情数据;

将两个源的行情数据,以接收到的时间为横坐标,值为纵坐标,绘制两条曲线;

以对比源为基准,取离对比源最近的待测源的点(即接收时间的差值最小的点),分别放进两组向量中。

自动对比实施过程如图3所示,通过Jenkins(持续集成工具)的定时构建插件,配置定时任务,每天开市后自动运行行情对比脚本;通过api接口获取当前是否开市,如未开市则跳过行情对比;

按照股票代码和行情类型分发对比任务;

从Elasticsearch数据库分别获取对比源和待测源的同一只股票、同一种类型的行情数据;

将两个源的行情数据,以接收到的时间为横坐标,值为纵坐标,绘制两条曲线。

进一步地,基于所述欧几里得距离的值确定行情数据的相似度,并根据所述相似度输出对应的行情对比结果,包括:

根据欧几里得距离的值得到行情数据的相似度;

若相似度大于等于阈值,则向用户推送第一消息,所述第一消息内容为对比通过结果以及第一对比图表;

若相似度小于阈值,则向用户推送第二消息,所述第二消息内容为对比不通结果过以及第二对比图表。

具体实施时,通过欧几里得距离计算两条曲线的相似度,判断相似度是否>=95%;

如相似度>=95%,则输出对比通过和简单图表,使用钉钉机器人的Webhook推送普通消息到钉钉群;

如相似度<95%,则输出对比不通过和动态图表,使用钉钉机器人的Webhook推送告警通知到钉钉群,并@对应负责人。

相似度低于95%时,会生成有详细数据的动态图表,鼠标悬停会显示对收到行情的时间和对应的数值,配合服务器日志,方便排查数据不一致的原因。

生成有详细数据的动态图表的步骤如下:

安装Plotly库(Plotly是Python库,用于交互式数据可视化,支持各种类型的图表);

导入需要的包,包括plotly.graph_objects和plotly.offline,graph_objects用于创建图表对象,offline用于生成html文件;

使用graph_objects中的Figure()函数来创建图表对象fig;

使用fig.add_trace将两组行情数据添加到图标对象中;

使用fig.update_layout设置图表的标题(包含股票代码、行情类型)、横坐标名称(接收时间)、纵坐标名称;

使用offline.plot生成对比图表的html文件。

进一步地,若相似度小于阈值,则向用户推送第二消息,所述第二消息内容为对比不通结果过以及第二对比图表后,还包括:

检测到用户的鼠标悬停在所述第二对比图表时,则显示收到行情数据的时间及对应的行情数值。

具体实施时,结合动态图表排查服务器日志实现方式如下:

到行情曲线不一致的点,鼠标悬停在被测行情上,会显示收到行情的时间;

通过告警通知,确定被测行情的IP,进入被测行情的服务器并进入日志目录;

使用grep的正则表达式,传入行情时间、股票代码、行情类型即可筛选出对应日志,如下:

grep-E"07-05 22:30.*BZmain.*OrderBookFullNotify.*'buzz_service.2023-07-05.13.log。

本发明实施例提出了一种行情数据对比方法,模拟App客户端订阅行情,通过Protobuf将请求体转化成二进制数据,并携带登录返回的sid向行情服务端发起订阅请求。把行情数据按照市场、股票、消息类型分类,存储到Elasticsearch数据库。行情订阅代码(部分)如下:

将两个市场的行情数据,以接收到的时间为横坐标,值为纵坐标,绘制两条曲线,通过欧几里得距离公式计算这两条曲线的相似度,如果一次比较中,相似度<95%则告警,同时报告中可视化展示这两条曲线。行情对比代码如下:

如图4所示,对比通过示例:两个行情相似度很高,行情曲线基本重合,故只能看到一条曲线。

对比不通过示例:鼠标移动到行情不一致的点,即可看到行情推送的时间,根据时间去服务器查询日志,即可排查。

如图5所示,还给出了另一个时间段下不同行情接收时间对应的价格曲线图,方便用户在查看对比结果时,还可以查看行情对应的股票价格信息。

需要说明的是,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。

上面对本发明实施例中的行情数据对比方法进行了描述,下面对本发明实施例中的行情数据对比系统进行描述,请参阅图6,图6是本发明实施例中一种行情数据对比系统的另一实施例的硬件结构示意图,如图6所示,系统10包括:存储器101、处理器102及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器101执行时实现以下步骤:

采集需要对比的行情数据;

将所述行情数据转换为向量形式,得到行情数据向量;

计算行情数据向量间的欧几里得距离;

基于所述欧几里得距离的值确定行情数据的相似度,并根据所述相似度输出对应的行情对比结果。

具体的实施步骤与方法实施例相同,此处不再赘述

可选地,计算机程序被处理器101执行时还实现以下步骤:

基于预设的行情录制脚本对金融市场开市的行情数据进行录制,得到录制结果,存储到数据库中;

检测到用户的行情对比指令,从所述数据库中提取需要对比的行情数据。

具体的实施步骤与方法实施例相同,此处不再赘述

可选地,计算机程序被处理器101执行时还实现以下步骤:

从所述数据库分别取对比源和待测源同一只股票、同一只类型的行情数据;

将两个市场的行情数据,以时间为横坐标、值为纵坐标,绘制两条曲线;

取距离对比源最近的待测源的点,分别放进两组向量中,得到行情数据向量。

具体的实施步骤与方法实施例相同,此处不再赘述。

可选地,计算机程序被处理器101执行时还实现以下步骤:

根据欧几里得距离的值得到行情数据的相似度;

若相似度大于等于阈值,则向用户推送第一消息,所述第一消息内容为对比通过结果以及第一对比图表;

若相似度小于阈值,则向用户推送第二消息,所述第二消息内容为对比不通结果过以及第二对比图表。

具体的实施步骤与方法实施例相同,此处不再赘述。

可选地,计算机程序被处理器101执行时还实现以下步骤:

检测到用户的鼠标悬停在所述第二对比图表时,则显示收到行情数据的时间及对应的行情数值。

具体的实施步骤与方法实施例相同,此处不再赘述。

本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤S100至步骤S400。

作为示例,非易失性存储介质能够包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(RAM)。通过说明并非限制,RAM可以以诸如同步RAM(SRAM)、动态RAM、(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)以及直接Rambus(兰巴斯)RAM(DRRAM)之类的许多形式得到。本发明实施例中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术分类

06120116524466