数据处理方法、装置、设备、存储介质及程序产品与流程

未命名 08-15 阅读:91 评论:0


1.本技术实施例涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、设备、存储介质及程序产品。


背景技术:

2.k线可以表示按照一定时间周期统计的股票价格走势等信息,例如,k线可以表示以天为单位或者以小时为单位的开盘价、最高价、最低价、收盘价等数据,历史k线数据是量化回测中最基础的底层数据。量化回测是量化组件的核心功能之一,在用户基于客户端提供的图形化控件组合成量化交易策略之后,用户可以通过客户端提供的量化回测功能,基于历史k线数据验证量化交易策略的运行效果,回测功能可以验证量化交易策略的有效性,避免创建量化交易策略过程中的逻辑漏洞等错误的出现。
3.目前,在对量化交易策略进行量化回测之前,常对历史k线数据进行存储,以便于回测过程中使用。然而,现有技术中对历史k线数据的存储方式仅能满足回测业务的使用需求,难以满足较高的回测业务执行效率和较低的存储容量需求。例如,假设电子设备在对量化交易策略1进行回测时,使用的历史k线数据为k线数据1,则电子设备可以获取并存储k线数据1,以便于回测量化交易策略1时使用,之后,电子设备需要对量化交易策略2进行回测,需要使用的历史k线数据为k线数据2,则电子设备需要获取并存储k线数据2,以便于回测量化交易策略2时使用。当k线数据1和k线数据2存在相同数据时,显然电子设备会对该相同数据进行重复获取和存储,从而增加存储容量,影响回测业务的执行效率。


技术实现要素:

4.本技术提供一种数据处理方法、装置、设备、存储介质及程序产品,可以提供更高效的k线数据存储方式,减少存储k线数据时的存储冗余,提高存储k线数据的效率和执行回测业务的执行效率。
5.第一方面,本技术提供一种数据处理方法,该方法包括:确定量化回测需要使用的第一历史k线数据,并获取至少一个存储变更记录,至少一个存储变更记录用于表征目标数据库已存储的第二历史k线数据;根据至少一个存储变更记录和第一历史k线数据,确定第三历史k线数据,第三历史k线数据为第一历史k线数据中不包含于第二历史k线数据的部分数据;确定第三历史k线数据的关联信息;根据第三历史k线数据的关联信息,将第三历史k线数据存储至目标数据库中,并根据第三历史k线数据的关联信息更新至少一个存储变更记录;基于第一历史k线数据的关联信息,从目标数据库中获取第一历史k线数据,以根据第一历史k线数据执行量化回测。
6.第二方面,本技术提供一种数据处理装置,数据处理装置包括:收发模块、处理模块、存储模块,其中,收发模块,用于:获取至少一个存储变更记录,处理模块,用于:确定量化回测需要使用的第一历史k线数据,至少一个存储变更记录用于表征目标数据库已存储的第二历史k线数据;根据至少一个存储变更记录和第一历史k线数据,确定第三历史k线数
据,第三历史k线数据为第一历史k线数据中不包含于第二历史k线数据的部分数据;确定第三历史k线数据的关联信息;存储模块,用于:根据第三历史k线数据的关联信息,将第三历史k线数据存储至目标数据库中,处理模块,还用于:根据第三历史k线数据的关联信息更新至少一个存储变更记录;收发模块,还用于:基于第一历史k线数据的关联信息,从目标数据库中获取第一历史k线数据,以根据第一历史k线数据执行量化回测。
7.第三方面,提供一种电子设备,包括:处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行如第一方面或其各实现方式中的方法。
8.第四方面,提供一种计算机可读存储介质,用于存储计算机程序,计算机程序使得计算机执行如第一方面或其各实现方式中的方法。
9.第五方面,提供一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行如第一方面或其各实现方式中的方法。
10.第六方面,提供一种计算机程序,计算机程序使得计算机执行如第一方面或其各实现方式中的方法。
11.通过本技术技术方案,电子设备可以先确定量化回测需要使用的第一历史k线数据,并获取至少一个存储变更记录,至少一个存储变更记录用于表征目标数据库已存储的第二历史k线数据,接着,电子设备可以根据至少一个存储变更记录和第一历史k线数据,确定第三历史k线数据,其中,第三历史k线数据为第一历史k线数据中不包含于第二历史k线数据的部分数据,然后,电子设备可以确定第三历史k线数据的关联信息,根据第三历史k线数据的关联信息,将第三历史k线数据存储至目标数据库中,并根据第三历史k线数据的关联信息更新至少一个存储变更记录,最后,电子设备可以基于第一历史k线数据的关联信息,从目标数据库中获取第一历史k线数据,以根据第一历史k线数据执行量化回测。在上述过程中,当电子设备需要根据第一历史k线数据进行量化回测时,电子设备可以先确定目标数据库中是否存储有第一历史k线数据,只将第一历史k线数据中未存储的部分进行存储,从而可以减少存储k线数据时的存储冗余,提高存储k线数据的效率。另外,电子设备可以根据历史k线数据的关联信息对历史k线数据进行存储和访问,从而可以提高存储k线数据的效率和执行回测业务的执行效率。
附图说明
12.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1为本技术实施例提供的一种数据处理方法的流程图;
14.图2为本技术实施例提供的一种数据处理的示意图;
15.图3为本技术实施例提供的另一种数据处理的示意图;
16.图4为本技术实施例提供的再一种数据处理的示意图;
17.图5为本技术实施例提供的又一种数据处理的示意图;
18.图6为本技术实施例提供的又一种数据处理的示意图;
19.图7为本技术实施例提供的又一种数据处理的示意图;
20.图8为本技术实施例提供的一种数据处理装置800的示意图;
21.图9是本技术实施例提供的一种电子设备900的示意性框图。
具体实施方式
22.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
24.如上所述,现有技术中对历史k线数据的存储方式仅能满足历史回测业务的使用需求,难以满足回测业务执行效率和存储容量需求,存储相同数据重复获取和重复存储的问题,不仅增加了存储容量,还影响回测业务的执行效率,且无法支撑回测功能的跨市场跨品类跨周期需求,无法针对性设计数据存储结构以减少存储中的冗余数据。
25.为了解决上述技术问题,电子设备在需要根据第一历史k线数据进行量化回测时,电子设备可以先确定目标数据库中是否存储有第一历史k线数据,只将第一历史k线数据中未存储的部分进行存储,从而可以减少存储k线数据时的存储冗余,提高存储k线数据的效率。另外,电子设备可以根据历史k线数据的关联信息对历史k线数据进行存储和访问,从而可以提高存储k线数据的效率和执行回测业务的执行效率。
26.应理解的是,本技术技术方案可以应用于如下场景,但不限于:
27.在一些可实现方式中,本技术技术方案可以应用于历史k线数据的存储和访问场景中。例如,在对量化交易策略进行的量化回测过程中,会涉及到多个标的、多个计算周期下的回测时间段范围内的历史行情数据如历史k线数据,电子设备可以实时拉取上述涉及到的数据中未缓存的历史k线数据,并将该未缓存数据落盘为本地缓存数据,即将该未缓存数据存储至目标数据库中。在进行量化回测时,电子设备可以从目标数据库中访问需要使用的历史k线数据,进行量化回测。
28.在一些可实现方式中,本技术中的电子设备可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器,本技术对此不做限制。目标数据库可以是电子设备内部的数据库,也可以是电子设备外部的数据库,本技术对此不做限制。
29.在介绍了本技术实施例的应用场景之后,下面将对本技术技术方案进行详细阐述:
30.图1为本技术实施例提供的一种数据处理方法的流程图,该方法可以由上述应用
场景中的电子设备执行,本技术对此不做限制,如图1所示,该方法可以包括如下步骤:
31.s110:确定量化回测需要使用的第一历史k线数据,并获取至少一个存储变更记录,至少一个存储变更记录用于表征目标数据库已存储的第二历史k线数据;
32.s120:根据至少一个存储变更记录和第一历史k线数据,确定第三历史k线数据,第三历史k线数据为第一历史k线数据中不包含于第二历史k线数据的数据;
33.s130:确定第三历史k线数据的关联信息;
34.s140:根据第三历史k线数据的关联信息,将第三历史k线数据存储至目标数据库中,并根据第三历史k线数据的关联信息更新至少一个存储变更记录;
35.s150:基于第一历史k线数据的关联信息,从目标数据库中获取第一历史k线数据,以根据第一历史k线数据执行量化回测。
36.需要说明的是,关联信息可以包括以下至少一项,但不限于此:k线数据对应的标的和计算周期、k线数据的元数据、k线数据对应的时间段。k线数据对应的时间段即为k线数据的生成时间段。
37.可理解的是,k线可以表示按照一定时间周期(即计算周期)统计的股票价格走势等信息,例如,k线可以表示以天为单位或者以小时为单位的开盘价、最高价、最低价、收盘价等数据,根据k线的计算周期可将k线分为日k线、周k线、月k线、年k线等。例如,周k线是指以周一的开盘价、周五的收盘价、全周最高价和全周最低价来画的k线图,月k线则以一个月的第一个交易日的开盘价、最后一个交易日的收盘价和全月最高价与全月最低价来画的k线图。
38.示例性的,当k线是以周为单位对股票1在2022年4月23日至2022年4月24日的价格进行统计时,该k线数据对应的标的和计算周期为:股票1和1周,该k线数据对应的时间段可以是:2022年4月23日至2022年4月24日。另外,本技术将在下面的实施例中对k线数据的元数据进行介绍,在此先不赘述。
39.在一些可实现方式中,至少一个存储变更记录可以包括:第二历史k线数据的关联信息,上述s120可以包括:确定第一历史k线数据的关联信息,确定第一历史k线数据的关联信息中不包含于第二历史k线数据的关联信息的部分关联信息,根据部分关联信息,确定第三历史k线数据。
40.可以理解的是,如果多次量化回测过程中需要使用的历史k线数据有相同的部分,那么对历史k线数据的落盘存储可能会出现重叠、交叉或隔断等,因此,电子设备可以通过增量化更新来实现对历史k线数据的存储,也就是说,电子设备可以在需要使用第一历史k线数据之前,可以先确定第一历史k线数据中未存储的数据,只将这部分未存储的数据进行存储,从而可以解决落盘存储时出现的数据冗余等问题。另外,电子设备可以通过设置存储变更记录的方式,对目标数据库中历史k线数据的存储情况进行记录,不仅可以提高确定已存储数据的效率,还可以较方便的追溯存储数据的过程。
41.示例性的,在对量化回测中需要使用到的历史k线数据进行存储之前,电子设备可以根据历史k线数据对应的标的和周期、以及时间段(即关联信息)对已获取的历史k线数据进行存储,即对第二历史k线数据进行存储,本技术将在后续实施例中对此处进行介绍,在此先不做赘述。之后,电子设备可以确定本次量化回测需要使用的历史k线数据的预期关联信息(即第一历史k线数据的关联信息)、已存储的历史k线数据的最新关联信息,通过比较
预期关联信息和最新关联信息,电子设备可以判断实际需要获取的数据,即第三历史k线数据,并在确定第三历史k线数据后,将第三历史k线数据的关联信息增加至存储变更记录中。
42.示例性的,假设关联信息为k线数据对应的时间段,电子设备可以使用左闭右开的时间区间来表示关联信息。例如,假设在一个量化回测中,需要使用的第一历史k线数据为:2020年01月01日至2020年12月30日之间的标的1的一分钟k线数据,目标数据库中存储的第二历史k线数据为:2019年12月01日至2020年02月01日、2020年04月01日至2020年08月01日、2020年10月01日至2021年05月01日的标的1的一分钟k线数据,那么,第二历史k线数据的关联信息可以是:[2019/12/01,2020/02/01)、[2020/04/01,2020/08/01)、[2020/10/01,2021/05/01),至少一个存储变更记录可以包括:[2019/12/01,2020/02/01)、[2020/04/01,2020/08/01)、[2020/10/01,2021/05/01),第一历史k线数据的关联信息可以是[2020/01/01,2020/12/30),则通过比较存储变更记录和第一历史k线数据的变更记录,确定第一历史k线数据的关联信息中不包含于第二历史k线数据的关联信息的部分关联信息为:[2020/02/01,2020/04/01)、[2020/08/01,2020/10/01),则电子设备可以确定需要获取的第三历史k线数据为:2019年12月01日至2020年02月01日、2020年04月01日至2020年08月01日、2020年10月01日至2021年05月01日的标的1的一分钟k线数据。在将上述第三历史k线数据存储至目标数据库中之后,电子设备可以将第三历史k线数据的关联信息增加至上述存储变更记录中,得到更新后的至少一个存储变更记录为:[2019/12/01,2021/05/01)。
[0043]
需要说明的是,本技术对关联信息、存储变更记录的具体内容不做限制。
[0044]
在一些可实现方式中,第三历史k线数据的关联信息可以包括:至少一个目标组合、每个目标组合各自对应的历史k线数据的至少一个时间段,目标组合包括:目标标的和目标计算周期,上述根据第三历史k线数据的关联信息,将第三历史k线数据存储至目标数据库中,可以包括:针对至少一个目标组合中的任一目标组合,确定目标数据库中,目标组合对应的父存储单元;将第三历史k线数据中,目标组合对应的至少一个时间段各自对应的历史k线数据,分别存储至父存储单元中的不同子存储单元中。如此一来,电子设备可以将不同目标组合的历史k线数据存储至不同的父存储单元中,将不同时间段的历史k线数据存储至不同的子存储单元中,相比于将历史k线数据全部存储于同一存储单元的方式,本技术可以减少数据损坏率,提高存储和访问效率,而且,还可以支撑回测功能的跨市场跨品类跨周期需求,支持在回测过程中存储多组标的的历史k线数据,最高可以支持240个标的的k线数据的同时存取访问,支持多次回测中以任意顺序的时间范围进行数据存取访问。
[0045]
示例性的,假设电子设备确定第三历史k线数据为:2019年12月01日至2020年02月01日、2020年04月01日至2020年08月01日、2020年10月01日至2021年05月01日的标的1的一分钟k线数据,则第三历史k线数据的目标标的、目标计算周期分别为:标的1和1分钟,第三历史k线数据的目标组合为(标的1,1分钟),该目标组合对应的至少一个时间段为:[2019/12/01,2020/02/01)、[2020/04/01,2020/08/01)、[2020/10/01,2021/05/01),第三历史k线数据的关联信息可以是:(标的1,1分钟)、[2019/12/01,2020/02/01)、[2020/04/01,2020/08/01)、[2020/10/01,2021/05/01)。假设目标数据库包括3个父存储单元:数据落盘文件a、数据落盘文件b和数据落盘文件c,则电子设备可以将数据落盘文件a确定为目标组合(标的1,1分钟)的父存储单元,即电子设备可以将标的1的一分钟k线数据存储至目标数据库的数据落盘文件a中。另外,数据落盘文件a可以包括多个子存储单元:子存储单元1、子存储单元
2和子存储单元3,电子设备可以将2019年12月01日至2020年02月01日的标的1的一分钟k线数据、2020年04月01日至2020年08月01日的标的1的一分钟k线数据、2020年10月01日至2021年05月01日的标的1的一分钟k线数据分别存储至子存储单元1、子存储单元2和子存储单元3中。
[0046]
在一些可实现方式中,上述将第三历史k线数据中,目标组合对应的至少一个时间段各自对应的历史k线数据,分别存储至父存储单元中的不同子存储单元中,可以包括:将第三历史k线数据中,目标组合对应的至少一个时间段各自对应的历史k线数据,按照获取时间由早至晚的顺序,分别存储至父存储单元中的不同子存储单元中。另外,电子设备还可以将历史k线数据的时间段也存储至对应的父存储单元中,以便于电子设备可以以历史k线数据的时间段为索引,对历史k线数据进行访问。具体的,针对至少一个父存储单元中的任一父存储单元,将父存储单元中每个子存储单元各自对应的时间段,按照时间由早至晚的顺序,存储至父存储单元中。
[0047]
在上述实施例中,电子设备在将历史k线数据存储至底层文件中即目标数据库中时,可以将历史k线数据的关联信息如时间段也存储至对应的历史k线数据父存储单元中,以便于电子设备可以通过关联信息如时间段构建索引,加速数据检索效率,以更快速响应数据读写操作,以及更好的保证数据文件的稳定性。本技术在此以关联信息是时间段为例,对本技术技术方案进行介绍,当关联信息是其他内容时,其对应的实施例和此处类似,本技术在此不做赘述。
[0048]
此外,电子设备可以采用分离索引和具体数据的方式,即采用将时间段和历史k线数据分开存储至父存储单元的方式,存储时间段的时间点索引记录表可以在存储时间段之后将按时序进行全表更新,以保证可以按照时间点索引记录表有序地查找到底层文件中所有有效的数据记录,具体数据内容即历史k线数据的具体内容无需进行更新,新增的数据内容可以动态地追加到已有的具体数据内容的尾部。具体的,最终落盘到底层数据文件中的数据内容,即存储至每个父存储单元的内容,可以由两部分构成:固定顺序的时间点索引记录表和动态顺序的具体数据内容,时间点索引记录表用于存储历史k线数据对应的时间段,具体数据内容为历史k线数据,固定顺序是指在存储时间段时,电子设备需要按照时间段各自的时间由早到晚的顺序对时间段进行存储,动态顺序是指在存储历史k线数据时,电子设备需要按照历史k线数据的获取时间由早到晚的顺序进行存储,也就是说,电子设备每获取一个历史k线数据,在将其存储至父存储单元时,可以先确定该历史k线数据的时间段的时间早晚,按照时间点索引记录表中时间段的时间由早至晚的顺序,将该时间段存储至时间点索引记录表中对应的位置,以保证时间点索引记录表中存储的时间段都是按照时间由早到晚的顺序存储的,对于该历史k线数据,电子设备可以直接将其存储至已存储的历史k线数据的后续位置中,以保证父存储单元中存储的历史k线数据是按照获取时间由早至晚的顺序存储的,由此一来,可以有效实现了向底层数据文件中增量更新数据内容的功能,避免了需要重复迁移大量数据内容的操作。
[0049]
在一些可实现方式中,电子设备可以对目标数据库中存储的历史k线数据进行信息提取,确定目标数据库中存储的历史k线数据的元数据信息,将元数据信息和目标数据库中至少一个子存储单元进行关联,以对目标数据库中存储的历史k线数据进行检索或者分析。其中,可以对历史k线行情数据的结构进行抽离,对历史k线行情数据的每个字段进行抽
离,确定出字段的顺序、类型等信息,可以将字段的顺序、类型等信息确定为元数据信息,因此,元数据信息可以用于关联历史k线数据在存储文件中的布局信息,在存储和访问过程中,可以用于确定数据的结构和字段对应关系。
[0050]
可以理解的是,存储历史k线数据需要将能够完整描述数据的信息通过合适的模型持久化下来,以实现对历史k线数据的结构化存储,并且为了后续的扩展性,需要保持模型的动态更新,因此,电子设备可以抽象出历史k线数据的结构化信息,该结构化信息可以完整地描述历史k线数据,以根据该结构化信息对历史k线数据进行结构化存储。具体的,历史k线数据的结构化信息可以由两部分组成:历史k线数据的标的和计算周期、提供k线行情的数据信息,其中,“提供k线行情的数据信息”可以是历史k线数据的具体内容,“标的和计算周期”可以构成唯一确定数据对象的数据访问实体,并与底层数据文件即父存储单元相关联,以便于访问历史k线数据,在存储和访问过程中,可以确定数据的去处和来源。另外,电子设备可以从“提供k线行情的数据信息”中抽离结构元数据信息,即确定历史k线数据的元数据信息,用以关联底层数据文件中实际存储的数据内容结构。
[0051]
示例性的,如图2所示,目标数据库包括3个父存储单元:数据落盘文件a、数据落盘文件b和数据落盘文件c,数据落盘文件a包括3个子存储单元:记录1、记录2和记录3,数据落盘文件可以存储不同目标组合对应的的历史k线行情数据,例如,数据落盘文件a存储的是标的1的1分钟k线行情数据,数据落盘文件b存储的是标的1的10分钟k线行情数据。记录1、记录2和记录3可以分别存储的标的1的1分钟k线在不同时间段上的行情数据,例如,假设第三历史k线数据为:2019年12月01日至2020年02月01日、2020年04月01日至2020年08月01日、2020年10月01日至2021年05月01日的标的1的一分钟k线数据,则记录1、记录2和记录3可以分别存储2019年12月01日至2020年02月01日的标的1的一分钟k线数据、2020年04月01日至2020年08月01日的标的1的一分钟k线数据、2020年10月01日至2021年05月01日的标的1的一分钟k线数据。电子设备可以将目标组合和对应的数据落盘文件进行关联,例如,可以将“标的1的1分钟k线”与数据落盘文件a进行关联,假设上述第三历史k线数据的元数据信息为元数据信息1,则电子设备可以将元数据信息1和数据落盘文件a进行关联。
[0052]
示例性的,以数据落盘文件a为例,时间点记录表(即上述时间点索引记录表)和存储历史k线数据的具体内容可以如图3所示,假设第三历史k线数据为:2019年12月01日至2020年02月01日、2020年04月01日至2020年08月01日、2020年10月01日至2021年05月01日的标的1的一分钟k线数据,假设电子设备先获取的是数据1:2019年12月01日至2020年02月01日的标的1的一分钟k线数据,其次获取的是数据5:2020年10月01日至2021年05月01日的标的1的一分钟k线数据,最后获取的是数据6:2020年04月01日至2020年08月01日的标的1的一分钟k线数据,则电子设备在对上述三个数据进行存储时,可以先对数据1进行存储,将数据1对应的时间段2019年12月01日至2020年02月01日确定为索引1,并对其进行存储,接着,电子设备可以将数据5存储至存储数据1的后面位置处,将数据5对应的时间段2020年10月01日至2021年05月01日确定为索引2,并对其进行存储,接着,电子设备可以将数据6存储至存储数据5的后面位置处,将上述索引2更新为索引3,将数据6对应的时间段2020年04月01日至2020年08月01日确定为索引2,并对其进行存储。
[0053]
在一些可实现方式中,电子设备可以根据生成历史k线数据的时间段,对存储变更记录和子存储单元进行绑定,确定至少一个子存储单元和至少一个存储变更记录的绑定关
系,之后,基于绑定关系,电子设备可以根据至少一个子存储单元对至少一个存储变更记录进行查找;或者,基于绑定关系,电子设备可以根据至少一个存储变更记录对至少一个子存储单元进行查找。
[0054]
可以理解的是,通过数据记录和数据变更记录之间的绑定关系,即通过对存储单元和存储变更记录之间的绑定关系,可以提供数据记录和操作记录的双向查找等功能,便于对存储过程进行追溯。数据记录在底层文件中可以数据时间点为索引对数据内容进行存储,即存储单元可以以时间段为索引对历史k线数据进行存储,数据变更记录可以包括获取历史k线数据的时间、存储历史k线数据的时间、历史k线数据的时间段等,数据记录和数据变更记录的绑定关系可以基于历史k线数据的时间段进行关联。
[0055]
示例性的,如图4所示,假设数据落盘文件a的记录1、记录2和记录3分别存储的是2010年01月01日至2012年01月01日、2014年01月01日至2015年01月01日、2018年01月01日至2022年01月01日的标的1的一分钟k线数据,可以通过时间段2010年01月01日至2012年01月01日、2014年01月01日至2015年01月01日、2018年01月01日至2022年01月01日对数据记录(即子存储单元:记录1、记录2和记录3)和变更记录1(即存储变更记录1)进行绑定。
[0056]
在一些可实现方式中,在回测过程中,若电子设备检测到需要的历史k线数据未缓存,则可以通过网络请求进行拉取该数据,之后,电子设备可以将网络请求响应的历史k线数据根据标的和计算周期对应的数据实体(即目标组合)进行归类存储,并在将拉取到的数据存储之后,记录数据实体相应的变更记录,即根据该数据对应更新存储变更记录。
[0057]
示例性的,如图5所示,电子设备可以包括:回测调度模块、数据网络拉取模块和回测数据存储模块,其中,在量化回测启动后,回测调度模块可以计算所有需要的历史行情数据如历史k线数据,具体的,回测调度模块可以通过访问回测数据存储模块存储的存储变更记录,检测存储中缺失的历史行情数据,将所有缺失的数据通过数据网络拉取模块进行拉取后,进行增量落盘存储,然后再统一从回测数据存储模块存储的数据中进行访问。
[0058]
在一些可实现方式中,在回测过程中,若检测到所需数据已缓存,则电子设备可以直接在存储的数据中访问,具体的,电子设备可以先确定需要使用的历史k线数据的标的和计算周期对应的数据实体(即目标组合),之后,基于数据实体的时序索引(即时间段)从数据文件中即从目标数据库中读取所需的数据。
[0059]
示例性的,如图6所示,在回测启动后,在回测调度模块确认所有需要的历史行情数据已经全部落盘存储后,回测调度模块可以统一从存储的数据中进行访问读取操作,针对不同标的和计算周期对应的数据实体,可以分别从相互独立的底层数据文件中进行访问,如不同的父存储单元中进行访问。
[0060]
在一些可实现方式中,如图7所示,电子设备可以设置行情数据管理接口、数据落盘存储管理接口、网络拉取类、底层存储管理类。其中,回测过程对行情数据如历史k线数据的访问都统一通过“行情数据管理接口”完成,可以通过历史k线数据的标的和计算周期确定数据访问实体即目标组合,基于目标组合,通过“行情数据管理接口”完成对历史k线数据的访问。“行情数据管理接口”可以将请求的时间段(即第一历史k线数据的时间段)和从“数据落盘存储管理接口”中拿到的数据实体变动记录(即存储变更记录)进行对比,筛选出未存储的历史k线数据的时间段和已存储的历史k线数据的时间段,对于未存储的历史k线数据的时间段,“行情数据管理接口”可以通过“网络拉取类”请求外部数据即未存储的历史k
线数据(即第三历史k线数据),并将获取到的数据落盘到“数据落盘存储管理接口”中。当对所有未存储的历史k线数据存储后,“行情数据管理接口”可从“数据落盘存储管理接口”中获取所有需要的行情数据。“数据落盘存储管理接口”提供查询落盘数据(查询第二历史k线数据)和插入落盘数据(插入第三历史k线数据),通过“行情数据管理接口”中数据运输局信息建立实体数据文件关联,用以关联数据访问实体和底层存储文件。“底层存储管理类”是“数据落盘存储管理接口”的实现,管理所有存储在底层文件系统即目标数据库上的数据文件。
[0061]
在一些可实现方式中,电子设备还可以在回测时,动态播放回测过程中的历史k线数据,以便用户可以查看到回测时使用的历史k线数据,明确回测明细。
[0062]
在一些可实现方式中,电子设备可以对目标数据库中存储的底层文件格式进行扩展,即电子设备可以通过较高效的时序数据文件对历史k线数据进行存储。底层文件格式是指数据即历史k线数据与最终落盘为文件系统中的底层文件之间的对应关系。时序数据文件指在存储实现中的一些具有较高公认度的、在底层文件中以时序方式组织数据的数据文件格式,如某些数据库文件格式。
[0063]
需要说明的是,在本技术的具体实施方式中,涉及到历史k线数据、量化交易策略等相关数据,当本技术的实施例运用到具体产品或技术中时,需要获得用户许可、同意或者授权,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
[0064]
图8为本技术实施例提供的一种数据处理装置800的示意图,如图8所示,数据处理装置800包括:收发模块810、处理模块820、存储模块830,其中,收发模块810,用于:获取至少一个存储变更记录,处理模块820,用于:确定量化回测需要使用的第一历史k线数据,至少一个存储变更记录用于表征目标数据库已存储的第二历史k线数据;根据至少一个存储变更记录和第一历史k线数据,确定第三历史k线数据,第三历史k线数据为第一历史k线数据中不包含于第二历史k线数据的部分数据;确定第三历史k线数据的关联信息;存储模块830,用于:根据第三历史k线数据的关联信息,将第三历史k线数据存储至目标数据库中,处理模块820,还用于:根据第三历史k线数据的关联信息更新至少一个存储变更记录;收发模块810,还用于:基于第一历史k线数据的关联信息,从目标数据库中获取第一历史k线数据,以根据第一历史k线数据执行量化回测。
[0065]
在一些可实现方式中,第三历史k线数据的关联信息包括:至少一个目标组合、每个目标组合各自对应的历史k线数据的至少一个时间段,目标组合包括:目标标的和目标计算周期,存储模块830,具体用于:针对至少一个目标组合中的任一目标组合,确定目标数据库中,目标组合对应的父存储单元;将第三历史k线数据中,目标组合对应的至少一个时间段各自对应的历史k线数据,分别存储至父存储单元中的不同子存储单元中。
[0066]
在一些可实现方式中,存储模块830,还用于:针对至少一个父存储单元中的任一父存储单元,将父存储单元中每个子存储单元各自对应的时间段,按照时间由早至晚的顺序,存储至父存储单元中;存储模块830,具体用于:将第三历史k线数据中,目标组合对应的至少一个时间段各自对应的历史k线数据,按照获取时间由早至晚的顺序,分别存储至父存储单元中的不同子存储单元中。
[0067]
在一些可实现方式中,处理模块820,还用于:根据生成历史k线数据的时间段,对存储变更记录和子存储单元进行绑定,确定至少一个子存储单元和至少一个存储变更记录
的绑定关系;基于绑定关系,根据至少一个子存储单元对至少一个存储变更记录进行查找;或者,基于绑定关系,根据至少一个存储变更记录对至少一个子存储单元进行查找。
[0068]
在一些可实现方式中,至少一个存储变更记录包括:第二历史k线数据的关联信息,处理模块820,具体用于:确定第一历史k线数据的关联信息;确定第一历史k线数据的关联信息中不包含于第二历史k线数据的关联信息的部分关联信息;根据部分关联信息,确定第三历史k线数据。
[0069]
在一些可实现方式中,处理模块820,还用于:对目标数据库中存储的历史k线数据进行信息提取,确定目标数据库中存储的历史k线数据的元数据信息;将元数据信息和目标数据库中至少一个子存储单元进行关联,以对目标数据库中存储的历史k线数据进行检索或者分析。
[0070]
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图8所示的装置800可以执行上述方法实施例,并且装置800中的各个模块的前述和其它操作和/或功能分别为了实现上述各个方法中的相应流程,为了简洁,在此不再赘述。
[0071]
上文中结合附图从功能模块的角度描述了本技术实施例的装置800。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本技术实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本技术实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
[0072]
图9是本技术实施例提供的一种电子设备900的示意性框图。
[0073]
如图9所示,该电子设备可包括:
[0074]
存储器910和处理器920,该存储器910用于存储计算机程序,并将该程序代码传输给该处理器920。换言之,该处理器920可以从存储器910中调用并运行计算机程序,以实现本技术实施例中的方法。
[0075]
例如,该处理器920可用于根据该计算机程序中的指令执行上述方法实施例。
[0076]
在本技术的一些实施例中,该处理器920可以包括但不限于:
[0077]
通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
[0078]
在本技术的一些实施例中,该存储器910包括但不限于:
[0079]
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取
存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
[0080]
在本技术的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器910中,并由该处理器920执行,以完成本技术提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该电子设备中的执行过程。
[0081]
如图9所示,该电子设备还可包括:
[0082]
收发器930,该收发器930可连接至该处理器920或存储器910。
[0083]
其中,处理器920可以控制该收发器930与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器930可以包括发射机和接收机。收发器930还可以进一步包括天线,天线的数量可以为一个或多个。
[0084]
应当理解,该电子设备中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
[0085]
本技术还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本技术实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
[0086]
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,dvd))、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0087]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0088]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划
分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0089]
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
[0090]
以上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以该权利要求的保护范围为准。

技术特征:
1.一种数据处理方法,其特征在于,包括:确定量化回测需要使用的第一历史k线数据,并获取至少一个存储变更记录,所述至少一个存储变更记录用于表征目标数据库已存储的第二历史k线数据;根据所述至少一个存储变更记录和所述第一历史k线数据,确定第三历史k线数据,所述第三历史k线数据为所述第一历史k线数据中不包含于所述第二历史k线数据的数据;确定所述第三历史k线数据的关联信息;根据所述第三历史k线数据的关联信息,将所述第三历史k线数据存储至所述目标数据库中,并根据所述第三历史k线数据的关联信息更新所述至少一个存储变更记录;基于所述第一历史k线数据的关联信息,从所述目标数据库中获取所述第一历史k线数据,以根据所述第一历史k线数据执行所述量化回测。2.根据权利要求1所述的方法,其特征在于,所述第三历史k线数据的关联信息包括:至少一个目标组合、每个所述目标组合各自对应的历史k线数据的至少一个时间段,所述目标组合包括:目标标的和目标计算周期,所述根据所述第三历史k线数据的关联信息,将所述第三历史k线数据存储至所述目标数据库中,包括:针对所述至少一个目标组合中的任一目标组合,确定所述目标数据库中,所述目标组合对应的父存储单元;将所述第三历史k线数据中,所述目标组合对应的至少一个时间段各自对应的历史k线数据,分别存储至所述父存储单元中的不同子存储单元中。3.根据权利要求2所述的方法,其特征在于,还包括:针对至少一个父存储单元中的任一父存储单元,将所述父存储单元中每个子存储单元各自对应的时间段,按照时间由早至晚的顺序,存储至所述父存储单元中;所述将所述第三历史k线数据中,所述目标组合对应的至少一个时间段各自对应的历史k线数据,分别存储至所述父存储单元中的不同子存储单元中,包括:将所述第三历史k线数据中,所述目标组合对应的至少一个时间段各自对应的历史k线数据,按照获取时间由早至晚的顺序,分别存储至所述父存储单元中的不同子存储单元中。4.根据权利要求3所述的方法,其特征在于,还包括:根据生成历史k线数据的时间段,对存储变更记录和子存储单元进行绑定,确定至少一个子存储单元和所述至少一个存储变更记录的绑定关系;基于所述绑定关系,根据所述至少一个子存储单元对所述至少一个存储变更记录进行查找;或者,基于所述绑定关系,根据所述至少一个存储变更记录对所述至少一个子存储单元进行查找。5.根据权利要求1-4任一项所述的方法,其特征在于,所述至少一个存储变更记录包括:所述第二历史k线数据的关联信息,所述根据所述至少一个存储变更记录和所述第一历史k线数据,确定第三历史k线数据,包括:确定所述第一历史k线数据的关联信息;确定所述第一历史k线数据的关联信息中不包含于所述第二历史k线数据的关联信息的部分关联信息;根据所述部分关联信息,确定所述第三历史k线数据。
6.根据权利要求1-4任一项所述的方法,其特征在于,还包括:对所述目标数据库中存储的历史k线数据进行信息提取,确定所述目标数据库中存储的历史k线数据的元数据信息;将所述元数据信息和所述目标数据库中至少一个子存储单元进行关联,以对所述目标数据库中存储的历史k线数据进行检索或者分析。7.一种数据处理装置,其特征在于,所述数据处理装置包括:收发模块、处理模块、存储模块,其中,所述收发模块,用于:获取至少一个存储变更记录,所述处理模块,用于:确定量化回测需要使用的第一历史k线数据,所述至少一个存储变更记录用于表征目标数据库已存储的第二历史k线数据;根据所述至少一个存储变更记录和所述第一历史k线数据,确定第三历史k线数据,所述第三历史k线数据为所述第一历史k线数据中不包含于所述第二历史k线数据的部分数据;确定所述第三历史k线数据的关联信息;所述存储模块,用于:根据所述第三历史k线数据的关联信息,将所述第三历史k线数据存储至所述目标数据库中,所述处理模块,还用于:根据所述第三历史k线数据的关联信息更新所述至少一个存储变更记录;所述收发模块,还用于:基于所述第一历史k线数据的关联信息,从所述目标数据库中获取所述第一历史k线数据,以根据所述第一历史k线数据执行所述量化回测。8.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1-6中任一项所述的方法。9.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1-6中任一项所述的方法。10.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行权利要求1-6中任一项所述的方法。

技术总结
本申请提供了一种数据处理方法、装置、设备、存储介质及程序产品,包括:确定量化回测需要使用的第一历史K线数据,并获取用于表征目标数据库已存储的第二历史K线数据的存储变更记录;根据存储变更记录和第一历史K线数据,确定第三历史K线数据,第三历史K线数据为第一历史K线数据中不包含于第二历史K线数据的部分数据;根据第三历史K线数据的关联信息,将第三历史K线数据存储至目标数据库中并更新存储变更记录;基于第一历史K线数据的关联信息,从目标数据库中获取第一历史K线数据,以根据第一历史K线数据执行量化回测。可以减少存储K线数据时的存储冗余,提高存储K线数据的效率和执行回测业务的执行效率。行回测业务的执行效率。行回测业务的执行效率。


技术研发人员:张刘 欧格良 涂诚孟 李清 卢君默
受保护的技术使用者:富途网络科技(深圳)有限公司
技术研发日:2023.05.10
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐