CN116302513A - 量化因子的处理方法、装置、计算机设备和可读存储介质 - Google Patents

量化因子的处理方法、装置、计算机设备和可读存储介质 Download PDF

Info

Publication number
CN116302513A
CN116302513A CN202310186704.1A CN202310186704A CN116302513A CN 116302513 A CN116302513 A CN 116302513A CN 202310186704 A CN202310186704 A CN 202310186704A CN 116302513 A CN116302513 A CN 116302513A
Authority
CN
China
Prior art keywords
node
nodes
memory
data
tree structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310186704.1A
Other languages
English (en)
Other versions
CN116302513B (zh
Inventor
戚潇明
肖争利
郭福城
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
E Fund Management Co ltd
Original Assignee
E Fund Management Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by E Fund Management Co ltd filed Critical E Fund Management Co ltd
Priority to CN202310186704.1A priority Critical patent/CN116302513B/zh
Publication of CN116302513A publication Critical patent/CN116302513A/zh
Application granted granted Critical
Publication of CN116302513B publication Critical patent/CN116302513B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/06Asset management; Financial planning or analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Operations Research (AREA)
  • Game Theory and Decision Science (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种量化因子的处理方法、装置、计算机设备和可读存储介质。该方法包括:获取量化因子的树结构;从叶子节点开始进行递归分析,确定叶子节点表征的基础数据的数据信息、各节点的层级和节点之间的依赖关系;根据数据信息获取基础数据;按照层级由低到高的顺序,遍历中间节点并进行计算,将计算中间节点得到的结果数据存储至内存,以便依赖的中间节点直接使用结果数据进行计算;根据依赖关系判断依赖第一节点的中间节点是否均完成遍历,如果完成,删除内存中对应的数据,在所有中间节点均被遍历后,获取内存中模型因子的结果数据,得到量化因子。通过本发明,能够提升量化投资中量化因子的计算效率。

Description

量化因子的处理方法、装置、计算机设备和可读存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种量化因子的处理方法、装置、计算机设备和可读存储介质。
背景技术
在量化投资中,量化因子就是对投资产品解释的因素。量化因子的种类很多,不同类别的因子从不同的维度对投资产品收益进行解释。量化因子之于资产可以类比于营养之于食物,人们日常摄入各种食物,归根结底是在摄入食物所包含的营养成分,例如水、蛋白质、脂肪等。这些营养成分就是食物的“因子”。因此,针对量化因子的构建以及量化因子表现的测评,在量化投资研究中是非常重要的。
在量化因子表现的研究中,需要海量的基础数据参与计算,计算过程复杂,导致现有技术中量化因子研究分析的方法计算效率较低,因此,如何提升量化投资中量化因子的计算效率,是本领域亟需解决的技术问题。
发明内容
本发明的目的是提供一种量化因子的处理方法、装置、计算机设备和可读存储介质,用于解决现有技术中的技术问题。
一方面,为实现上述目的,本发明提供了一种量化因子的处理方法。
该量化因子的处理方法包括:获取量化因子的树结构,其中,所述树结构的节点包括叶子节点和中间节点,所述叶子节点表征基础数据,所述中间节点表征函数算子或模型因子,所述模型因子由所述函数算子和/或所述基础数据构建;从所述叶子节点开始进行递归分析,确定所述叶子节点表征的基础数据的数据信息、各所述节点的层级和所述节点之间的依赖关系,其中,所述叶子节点为第一层级,仅依赖所述叶子节点的中间节点为第二层级,高层级的节点依赖低层级的节点;根据所述数据信息获取所述基础数据;按照所述层级由低到高的顺序,遍历所述中间节点并进行计算,将计算所述中间节点得到的结果数据存储至内存,其中,在计算第一中间节点时,根据所述依赖关系判断所述第一中间节点是否依赖其他中间节点,若所述第一中间节点依赖其他中间节点,在计算所述第一中间节点时,从所述内存中获取被依赖的中间节点的结果数据进行计算,所述第一中间节点为任一所述中间节点;根据所述依赖关系判断依赖第一节点的所述中间节点是否均完成遍历,其中,所述第一节点为所述树结构的任一节点;当依赖所述第一节点的所述中间节点均完成遍历时,删除所述内存中所述第一节点对应的数据,其中,当所述第一节点为叶子节点时,所述第一节点对应的数据为所述基础数据,当所述第一节点为中间节点时,所述第一节点对应的数据为所述结果数据;以及在所有所述中间节点均被遍历后,获取所述内存中模型因子的结果数据,得到所述量化因子。
进一步地,获取量化因子的树结构的步骤包括:分别构建所述基础数据、所述函数算子和所述模型因子的图标;响应于对所述图标的第一操作,选定所述图标;响应于对选定的所述图标的第二操作,将所述选定的图标设置于编辑界面,作为所述树结构的节点;响应于对所述编辑界面中两个图标的第三操作,判断所述两个图标是否均为所述基础数据的图标;当所述两个图标不均为所述基础数据的图标时,在所述两个图标之间形成所述树结构的路径;以及响应于树结构输出操作,输出由所述编辑界面中节点和路径组成的所述树结构。
进一步地,响应于树结构输出操作,输出由所述编辑界面中节点和路径组成的所述树结构的步骤包括:响应于树结构输出操作,检查所述编辑界面中的树结构是否合法,其中,当所述树结构的叶子节点为所述函数算子的图标时,所述树结构不合法;当所述树结构不合法时,确定作为所述叶子节点的第一函数算子所关联的第一基础数据,在所述编辑界面中增加所述第一基础数据的图标,并在所述第一函数算子的图标和所述第一基础数据的所述图标之间形成所述树结构的路径;当所述树结构合法时,输出由所述编辑界面中节点和路径组成的所述树结构。
进一步地,所述处理方法还包括:在确定所述节点之间的依赖关系后,根据所述节点之间的依赖关系确定每个所述节点的被依赖次数,在计算所述第一中间节点后,更新所述被依赖的中间节点的当前依赖次数;根据所述依赖关系判断依赖第一节点的所述中间节点是否均完成遍历的步骤包括:判断所述第一节点的当前依赖次数是否达到所述第一节点的被依赖次数,其中,所述第一节点的当前依赖次数达到所述第一节点的被依赖次数时,依赖所述第一节点的所述中间节点均完成遍历。
进一步地,根据所述数据信息获取所述基础数据的步骤包括:判断缓存集群中是否有缓存数据;当所述缓存集群中有缓存数据,从所述缓存集群根据所述数据信息查询所述基础数据,并加载至所述内存;当所述缓存集群中没有缓存数据时,从数据库中根据所述数据信息读取所述基础数据,并加载至所述内存。
进一步地,加载所述基础数据至内存的步骤包括:加载所述基础数据至机器内存;将计算所述中间节点得到的结果数据存储至内存的步骤包括:将计算所述中间节点得到的结果数据存储至所述机器内存;删除所述内存中所述第一节点对应的数据的步骤包括:删除所述机器内存中所述第一节点对应的数据;获取量化因子的树结构的步骤包括:获取量化因子的树结构至应用堆内存。
进一步地,遍历所述中间节点并进行计算的步骤包括:确定计算当前所述中间节点所需的应用堆内存;当当前所述中间节点所需的应用堆内存大于内存阈值时,将当前计算所述中间节点的任务设置为等待队列;当空余的内存资源满足预设条件和/或当前所述中间节点所在层级的中间节点的任务均在所述等待队列中时,执行所述等待队列中的任务。
另一方面,为实现上述目的,本发明提供了一种量化因子的处理装置。
该量化因子的处理装置包括:第一获取模块,用于获取量化因子的树结构,其中,所述树结构的节点包括叶子节点和中间节点,所述叶子节点表征基础数据,所述中间节点表征函数算子或模型因子,所述模型因子由所述函数算子和/或所述基础数据构建;分析模块,用于从所述叶子节点开始进行递归分析,确定所述叶子节点表征的基础数据的数据信息、各所述节点的层级和所述节点之间的依赖关系,其中,所述叶子节点为第一层级,仅依赖所述叶子节点的中间节点为第二层级,高层级的节点依赖低层级的节点;第二获取模块,用于根据所述数据信息获取所述基础数据;计算模块,用于按照所述层级由低到高的顺序,遍历所述中间节点并进行计算,将计算所述中间节点得到的结果数据存储至内存,其中,在计算第一中间节点时,根据所述依赖关系判断所述第一中间节点是否依赖其他中间节点,若所述第一中间节点依赖其他中间节点,在计算所述第一中间节点时,从所述内存中获取被依赖的中间节点的结果数据进行计算,所述第一中间节点为任一所述中间节点;判断模块,用于根据所述依赖关系判断依赖第一节点的所述中间节点是否均完成遍历,其中,所述第一节点为所述树结构的任一节点;删除模块,用于当依赖所述第一节点的所述中间节点均完成遍历时,删除所述内存中所述第一节点对应的数据,其中,当所述第一节点为叶子节点时,所述第一节点对应的数据为所述基础数据,当所述第一节点为中间节点时,所述第一节点对应的数据为所述结果数据;以及处理模块,用于在所有所述中间节点均被遍历后,获取所述内存中模型因子的结果数据,得到所述量化因子。
又一方面,为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
又一方面,为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的量化因子的处理方法、装置、计算机设备和可读存储介质,基于树结构构建量化因子,通过计算节点来得到量化因子,其中,在计算过程中,将被依赖的中间结果数据保存至内存,以在其他相关节点计算时使用,减少计算任务,提升计算效率。同时,随着计算任务的推进,对内存中数据的使用情况进行判断,当内存中的数据不再被依赖时,则可以动态释放对应的内存,来保证整体服务器有更多可用的内存资源,各步骤相互结合,实现了计算效率的整体提升。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例一提供的量化因子的处理方法的流程图;
图2为本发明实施例二提供的量化因子的处理装置的框图;
图3为本发明实施例三提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种量化因子的处理方法,通过该方法,能够提升量化投资中量化因子的计算效率,具体地,图1为本发明实施例一提供的量化因子的处理方法的流程图,如图1所示,该实施例提供的量化因子的处理方法包括如下的步骤S101至步骤S107。
步骤S101:获取量化因子的树结构。
其中,树结构包括若干量化因子,树结构的节点包括叶子节点和中间节点,叶子节点表征基础数据,中间节点表征函数算子或模型因子,模型因子由函数算子和/或基础数据构建。
其中,基础数据可以按照业务板块进行划分,基于具体业务类别的不同,化为不同的数据类。当数据结构或频率等特性不同时,可对数据进行统一数据模型的定义和频率的对齐。具体地,数据模型支持用户文件导入、SQL配置和外部系统调用。同时,证券池的设计支持动态和静态两种模式,也即SQL配置和用户文件导入,解决用户个性化证券池的难题。通过日期+证券代码的数据模型,直接构建出每个证券池每天的成分券数据,进一步对用户证券池数据压缩,按证券进出证券池的流水数据缓存,避免数据爆发式膨胀,使用时,通过并发获取证券池每日的成分数据。
此外,对于主体数据相关的一些背景数据,也可以提前进行缓存。
函数算子可以为基础函数,也可以为自定义函数,函数算子基于基础数据进行运算,得到函数算子的运算结果。模型因子基于基础数据和/或函数算子来构建,一个模型因子也可以作为另一个模型因子的构建因素,也就是说,模型因子可以是基于基础数据、函数算子或其他模型因子中的任意一个、两个或三个进行构建,单个或多个模型因子,作为量化因子,通过源于股票或债券等金融产品的历史数据作为基础数据,通过本发明可以构建并研究量化因子的具体表现。
可选地,在构建量化因子的树结构时,分别构建基础数据、函数算子和模型因子的图标,例如,预先构建并封装基础数据、函数算子或模型因子的模块并在作为编辑界面的前端显示其对应的、可操作的图标;响应于对图标的第一操作,选定图标,例如,当用户对某一图标进行点击操作时,响应于该点击操作,选定被操作的图标;响应于对选定的图标的第二操作,将选定的图标设置于编辑界面,作为树结构的节点,例如,当用户对选定的图标进行拖拽操作时,响应于该拖拽操作,在编辑界面显示被选定的图标,作为树结构的节点;响应于对编辑界面中两个图标的第三操作,判断两个图标是否均为基础数据的图标;当两个图标不均为基础数据的图标时,在两个图标之间形成树结构的路径,例如,当用户在一定时间范围内连续点击编辑界面的两个图标时,响应于该连续点击的操作,先判断两个图标是否为基础数据,然后在不为基础数据的两个图标之间进行连线,形成在两个图标之间的一条路径;以及响应于树结构输出操作,输出由编辑界面中节点和路径组成的树结构,最终,用户通过拖拉点击等操作,完成目标模型因子的构建,也即完成量化因子对应的树结构。
在该实施例中,基于拖拉拽等操作方式能够快速构建复杂模型因子,构建好的模型因子也可以被其他的模型因子使用,同时,也可以通过拖拉拽等操作方式快速构建函数算子,在模型因子中也可以使用新构建的函数算子进行计算。同时可预置相关操作的快捷键,例如:Ctrl-C复制、Ctrl-V粘贴、Ctrl-Z后退,让用户能在编辑界面的不同画布之间任意复制、粘贴树结构中的任何节点和路径,提升用户体验。更进一步地,对于复制,提供“深度复制”模式,以支持将当前模型因子和底层的所有模型因子及其依赖关系都重新复制另存,也提供“浅复制”模式,支持仅复制顶层模型因子,底层因子使用“引用”的方式,不再形式上显示。基于快捷键引入,可视化编辑,用户可以像编辑文档一样编辑模型因子,提高用户的操作效率和使用体验。
可选地,在输出树结构时,也即响应于树结构输出操作,输出由编辑界面中节点和路径组成的树结构,具体可执行如下的步骤包括:响应于树结构输出操作,检查编辑界面中的树结构是否合法,其中,当树结构的叶子节点为函数算子的图标时,树结构不合法;当树结构不合法时,确定作为叶子节点的第一函数算子所关联的第一基础数据,在编辑界面中增加第一基础数据的图标,并在第一函数算子的图标和第一基础数据的图标之间形成树结构的路径;当树结构合法时,输出由编辑界面中节点和路径组成的树结构。
步骤S102:从叶子节点开始进行递归分析,确定叶子节点表征的基础数据的数据信息、各节点的层级和节点之间的依赖关系。
其中,叶子节点为第一层级,仅依赖叶子节点的中间节点为第二层级,高层级的节点依赖低层级的节点。
在解析树结构时,从数据库获取树结构后,从根节点递归获取每一层的结构关系,得到最明细的树结构,也即,对树结构的模型因子、函数算子和基础数据按层级进行标注,叶子节点层级是1,从叶子节点累计到顶层节点,递归过程得到所有模型因子所属的层级、所有的基础数据集合、模型因子集合以及计算依赖的基础数据的数据信息,具体包括开始日期和结束日期等。通过解析每一个层级关系,获取节点之间的依赖关系,包括模型因子对基础数据的依赖关系、模型因子对其他模型因子的依赖关系、模型因子内部中间计算结果之间的依赖关系。
步骤S103:根据数据信息获取基础数据。
数据信息为限定基础数据的条件,基于数据信息可确定要获取的基础数据,进一步地,根据数据信息获取基础数据的步骤包括:判断缓存集群中是否有缓存数据;当缓存集群中有缓存数据,从缓存集群根据数据信息查询基础数据,并加载至内存;当缓存集群中没有缓存数据时,从数据库中根据数据信息读取基础数据,并加载至内存。
具体而言,在计算之前先将用到的基础数据准备好。先判断缓存里面是否有缓存数据,如果有,则从缓存提取需要的日期区间的数据,加载至内存供应用程序使用;如果没有,则从数据库拉取基础数据放入缓存,并加载至内存供应用程序使用。进一步,对缓存的取数方式由逐笔取数优化为批量取数,并增加缓存索引,进一步提高内存检索效率。
步骤S104:按照层级由低到高的顺序,遍历中间节点并进行计算,将计算中间节点得到的结果数据存储至内存,其中,在计算第一中间节点时,根据依赖关系判断第一中间节点是否依赖其他中间节点,若第一中间节点依赖其他中间节点,在计算第一中间节点时,从内存中获取被依赖的中间节点的结果数据进行计算,第一中间节点为任一中间节点,该处的第一不具有次序上的限定,仅用于方便定义和描述。
具体地,根据树结构的层级关系,从底层级节点向高层级节点遍历,也即从底层因子向高层因子依次计算,同一层级的模型因子可利用多线程并发计算,充分利用CPU提高计算性能。
在对某一个中间节点进行计算时,依据该节点所依赖的其他节点进行计算,如果依赖基础数据,则读取内存中的基础数据;如果依赖其他中间节点,则读取内存中被依赖的中间节点的结果数据,利用读取到的数据进行计算后,将结果数据存储至内存,以供其他中间节点计算时使用。
模型因子内是可以通过层层嵌套不同模型因子、函数算子构建成的,计算过程是按照叶子节点回溯到根节点的并行计算过程,为了减少重复计算,每一个节点产生的数据都会保存在应用堆内存中,直至整个计算过程结束,在后续计算过程中若用到已经算过的节点,则直接从内存获取结果数据即可,在减少重复计算的同时,加快了计算速度,有利于提升计算效率。
步骤S105:根据依赖关系判断依赖第一节点的中间节点是否均完成遍历。
其中,第一节点为树结构的任一节点,该处的第一不具有次序上的限定,仅用于方便定义和描述。
步骤S106:当依赖第一节点的中间节点均完成遍历时,删除内存中第一节点对应的数据。
其中,当第一节点为叶子节点时,第一节点对应的数据为基础数据,当第一节点为中间节点时,第一节点对应的数据为结果数据。
在计算的过程中,如果模型因子的构建非常复杂,中间结果的数据量就会越大,随着计算的时间区间越长和参与计算的数据越多(例如股票池越大),计算的整体耗时会非常长,那就会导致大量的中间结果数据长时间的占据内存,那么实际计算过程能够支配的内存资源就越少,计算效率是大打折扣。随着用户变多,用户计算规模的增加(模型因子复杂度高、时间区间长、股票池大),逐渐出现服务频繁崩溃的问题以及计算效率急剧下降的问题。为了解决该问题,以分布式缓存为基础,动态管理内存。具体地,在每次用户计算请求到达时,先解析计算任务,对所有模型因子分析内部依赖关系,随着计算任务的推进,当基础数据和结果数据不再被依赖时,则可以动态释放对应的内存,来保证整体服务器有更多可用的内存资源。
可选地,在一种实施例中,在确定节点之间的依赖关系后,根据节点之间的依赖关系确定每个节点的被依赖次数,在计算第一中间节点后,也即每计算完成一个节点,更新被依赖的中间节点的当前依赖次数,例如,一个中间节点A依赖其他两个中间节点BC的结果数据,在计算该中间节点A之后,更新其他两个中间节点BC的当前依赖次数。从而在根据依赖关系判断依赖第一节点的中间节点是否均完成遍历时,先判断第一节点的当前依赖次数是否达到第一节点的被依赖次数,如果第一节点的当前依赖次数达到第一节点的被依赖次数时,说明依赖第一节点的中间节点均完成遍历,此时可将第一节点的结果数据从内存中删除。
步骤S107:在所有中间节点均被遍历后,获取内存中模型因子的结果数据,得到量化因子。
最终,在所有的中间节点均完成遍历,从内存中获取各模型因子的结果数据,即可得到量化因子,得到基于历史数据的表现结果。
在该实施例提供的量化因子的处理方法,基于树结构构建量化因子,通过计算节点来得到量化因子,其中,在计算过程中,将被依赖的中间结果数据保存至内存,以在其他相关节点计算时使用,减少计算任务,提升计算效率。同时,随着计算任务的推进,对内存中数据的使用情况进行判断,当内存中的数据不再被依赖时,则可以动态释放对应的内存,来保证整体服务器有更多可用的内存资源,各步骤相互结合,实现了计算效率的整体提升。
可选地,在一种实施例中,加载基础数据至内存的步骤包括:加载基础数据至机器内存;将计算中间节点得到的结果数据存储至内存的步骤包括:将计算中间节点得到的结果数据存储至机器内存;删除内存中第一节点对应的数据的步骤包括:删除机器内存中第一节点对应的数据;获取量化因子的树结构的步骤包括:获取量化因子的树结构至应用堆内存。
具体地,在计算过程中,开辟应用堆内存之外的机器内存对计算过程中的数据进行动态管理,以保证计算资源可控,确保服务稳定性。一方面,把长时间驻留内存的基础数据和中间结果数据迁移到机器内存,来保证有足够的堆内存来进行模型因子的计算,通过动态管理机器内存,提升机器内存的合理应用。将树结构以及计算过程分配于应用堆内存,提升计算效率。
在该实施例中,通过涉及堆内存、缓存、机器内存三块内存的协同交互,提升计算效率。
可选地,在一种实施例中,遍历中间节点并进行计算的步骤包括:确定计算当前中间节点所需的应用堆内存;当当前中间节点所需的应用堆内存大于内存阈值时,将当前计算中间节点的任务设置为等待队列;当空余的内存资源满足预设条件和/或当前中间节点所在层级的中间节点的任务均在等待队列中时,执行等待队列中的任务。
在该实施例中,基于限流排队机制,进一步提升计算过程的稳定性。具体地,针对当前中间节点,评估模型因子计算规模,根据评估的所需内存规模和系统的内存阈值动态调整系统的响应能力,对超过内存阈值的计算任务则排队等待,空余的内存资源足够则执行计算。具体地,用户请求使用到的内存规模可采用现有技术中任意的内存需求计算公式进行计算。
实施例二
对应于上述实施例一,本发明实施例二提供了一种量化因子的处理装置,相应地技术特征细节和对应的技术效果可参考上述实施例一,在该实施例中不再赘述。图2为本发明实施例二提供的量化因子的处理装置的框图,如图2所示,该装置包括:
第一获取模块201,用于获取量化因子的树结构,其中,所述树结构的节点包括叶子节点和中间节点,所述叶子节点表征基础数据,所述中间节点表征函数算子或模型因子,所述模型因子由所述函数算子和/或所述基础数据构建;分析模块202,用于从所述叶子节点开始进行递归分析,确定所述叶子节点表征的基础数据的数据信息、各所述节点的层级和所述节点之间的依赖关系,其中,所述叶子节点为第一层级,仅依赖所述叶子节点的中间节点为第二层级,高层级的节点依赖低层级的节点;第二获取模块203,用于根据所述数据信息获取所述基础数据;计算模块204,用于按照所述层级由低到高的顺序,遍历所述中间节点并进行计算,将计算所述中间节点得到的结果数据存储至内存,其中,在计算第一中间节点时,根据所述依赖关系判断所述第一中间节点是否依赖其他中间节点,若所述第一中间节点依赖其他中间节点,在计算所述第一中间节点时,从所述内存中获取被依赖的中间节点的结果数据进行计算,所述第一中间节点为任一所述中间节点;判断模块205,用于根据所述依赖关系判断依赖第一节点的所述中间节点是否均完成遍历,其中,所述第一节点为所述树结构的任一节点;删除模块206,用于当依赖所述第一节点的所述中间节点均完成遍历时,删除所述内存中所述第一节点对应的数据,其中,当所述第一节点为叶子节点时,所述第一节点对应的数据为所述基础数据,当所述第一节点为中间节点时,所述第一节点对应的数据为所述结果数据;以及处理模块207,用于在所有所述中间节点均被遍历后,获取所述内存中模型因子的结果数据,得到所述量化因子。
可选地,在一种实施例中,第一获取模块包括:构建单元,用于分别构建所述基础数据、所述函数算子和所述模型因子的图标;第一响应单元,用于响应于对所述图标的第一操作,选定所述图标;第二响应单元,用于响应于对选定的所述图标的第二操作,将所述选定的图标设置于编辑界面,作为所述树结构的节点;第三响应单元,用于响应于对所述编辑界面中两个图标的第三操作,判断所述两个图标是否均为所述基础数据的图标;第一处理单元,用于当所述两个图标不均为所述基础数据的图标时,在所述两个图标之间形成所述树结构的路径;以及第四响应单元,响应于树结构输出操作,输出由所述编辑界面中节点和路径组成的所述树结构。
可选地,在一种实施例中,第四响应单元在输出由所述编辑界面中节点和路径组成的所述树结构时,具体执行的步骤包括:响应于树结构输出操作,检查所述编辑界面中的树结构是否合法,其中,当所述树结构的叶子节点为所述函数算子的图标时,所述树结构不合法;当所述树结构不合法时,确定作为所述叶子节点的第一函数算子所关联的第一基础数据,在所述编辑界面中增加所述第一基础数据的图标,并在所述第一函数算子的图标和所述第一基础数据的所述图标之间形成所述树结构的路径;当所述树结构合法时,输出由所述编辑界面中节点和路径组成的所述树结构。
可选地,在一种实施例中,所述处理装置还包括:确定模块,用于在确定所述节点之间的依赖关系后,根据所述节点之间的依赖关系确定每个所述节点的被依赖次数,更新模块,用于在计算所述第一中间节点后,更新所述被依赖的中间节点的当前依赖次数;判断模块用于在根据所述依赖关系判断依赖第一节点的所述中间节点是否均完成遍历时,具体执行的步骤包括:判断所述第一节点的当前依赖次数是否达到所述第一节点的被依赖次数,其中,所述第一节点的当前依赖次数达到所述第一节点的被依赖次数时,依赖所述第一节点的所述中间节点均完成遍历。
可选地,在一种实施例中,第二获取模块包括:判断单元,用于判断缓存集群中是否有缓存数据;第一加载单元,用于当所述缓存集群中有缓存数据,从所述缓存集群根据所述数据信息查询所述基础数据,并加载至所述内存;第二加载单元,用于当所述缓存集群中没有缓存数据时,从数据库中根据所述数据信息读取所述基础数据,并加载至所述内存。
可选地,在一种实施例中,第一加载单元和第二加载单元在加载所述基础数据至内存时,具体执行的步骤包括:加载所述基础数据至机器内存;计算模块将计算所述中间节点得到的结果数据存储至内存时,具体执行的步骤包括:将计算所述中间节点得到的结果数据存储至所述机器内存;删除模块在删除所述内存中所述第一节点对应的数据时,具体执行的步骤包括:删除所述机器内存中所述第一节点对应的数据;第一获取模块在获取量化因子的树结构时,具体执行的步骤包括:获取量化因子的树结构至应用堆内存。
可选地,在一种实施例中,计算模块包括:确定单元,用于确定计算当前所述中间节点所需的应用堆内存;第二处理单元,用于当当前所述中间节点所需的应用堆内存大于内存阈值时,将当前计算所述中间节点的任务设置为等待队列;第二处理的单元,用于当空余的内存资源满足预设条件和/或当前所述中间节点所在层级的中间节点的任务均在所述等待队列中时,执行所述等待队列中的任务。
实施例三
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器012、处理器011,如图3所示。需要指出的是,图3仅示出了具有组件存储器012和处理器011的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器012(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器012可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器012也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器012还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器012通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例二的量化因子的处理装置的程序代码等。此外,存储器012还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器011在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器011通常用于控制计算机设备01的总体操作。本实施例中,处理器011用于运行存储器012中存储的程序代码或者处理数据,例如量化因子的处理方法等。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储量化因子的处理装置,被处理器执行时实现实施例一的量化因子的处理方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种量化因子的处理方法,其特征在于,包括:
获取量化因子的树结构,其中,所述树结构的节点包括叶子节点和中间节点,所述叶子节点表征基础数据,所述中间节点表征函数算子或模型因子,所述模型因子由所述函数算子和/或所述基础数据构建;
从所述叶子节点开始进行递归分析,确定所述叶子节点表征的基础数据的数据信息、各所述节点的层级和所述节点之间的依赖关系,其中,所述叶子节点为第一层级,仅依赖所述叶子节点的中间节点为第二层级,高层级的节点依赖低层级的节点;
根据所述数据信息获取所述基础数据;
按照所述层级由低到高的顺序,遍历所述中间节点并进行计算,将计算所述中间节点得到的结果数据存储至内存,其中,在计算第一中间节点时,根据所述依赖关系判断所述第一中间节点是否依赖其他中间节点,若所述第一中间节点依赖其他中间节点,在计算所述第一中间节点时,从所述内存中获取被依赖的中间节点的结果数据进行计算,所述第一中间节点为任一所述中间节点;
根据所述依赖关系判断依赖第一节点的所述中间节点是否均完成遍历,其中,所述第一节点为所述树结构的任一节点;
当依赖所述第一节点的所述中间节点均完成遍历时,删除所述内存中所述第一节点对应的数据,其中,当所述第一节点为叶子节点时,所述第一节点对应的数据为所述基础数据,当所述第一节点为中间节点时,所述第一节点对应的数据为所述结果数据;以及
在所有所述中间节点均被遍历后,获取所述内存中模型因子的结果数据,得到所述量化因子。
2.根据权利要求1所述的量化因子的处理方法,其特征在于,获取量化因子的树结构的步骤包括:
分别构建所述基础数据、所述函数算子和所述模型因子的图标;
响应于对所述图标的第一操作,选定所述图标;
响应于对选定的所述图标的第二操作,将所述选定的图标设置于编辑界面,作为所述树结构的节点;
响应于对所述编辑界面中两个图标的第三操作,判断所述两个图标是否均为所述基础数据的图标;
当所述两个图标不均为所述基础数据的图标时,在所述两个图标之间形成所述树结构的路径;以及
响应于树结构输出操作,输出由所述编辑界面中节点和路径组成的所述树结构。
3.根据权利要求2所述的量化因子的处理方法,其特征在于,响应于树结构输出操作,输出由所述编辑界面中节点和路径组成的所述树结构的步骤包括:
响应于树结构输出操作,检查所述编辑界面中的树结构是否合法,其中,当所述树结构的叶子节点为所述函数算子的图标时,所述树结构不合法;
当所述树结构不合法时,确定作为所述叶子节点的第一函数算子所关联的第一基础数据,在所述编辑界面中增加所述第一基础数据的图标,并在所述第一函数算子的图标和所述第一基础数据的所述图标之间形成所述树结构的路径;
当所述树结构合法时,输出由所述编辑界面中节点和路径组成的所述树结构。
4.根据权利要求1所述的量化因子的处理方法,其特征在于,
所述处理方法还包括:在确定所述节点之间的依赖关系后,根据所述节点之间的依赖关系确定每个所述节点的被依赖次数,在计算所述第一中间节点后,更新所述被依赖的中间节点的当前依赖次数;
根据所述依赖关系判断依赖第一节点的所述中间节点是否均完成遍历的步骤包括:判断所述第一节点的当前依赖次数是否达到所述第一节点的被依赖次数,其中,所述第一节点的当前依赖次数达到所述第一节点的被依赖次数时,依赖所述第一节点的所述中间节点均完成遍历。
5.根据权利要求1所述的量化因子的处理方法,其特征在于,根据所述数据信息获取所述基础数据的步骤包括:
判断缓存集群中是否有缓存数据;
当所述缓存集群中有缓存数据,从所述缓存集群根据所述数据信息查询所述基础数据,并加载至所述内存;
当所述缓存集群中没有缓存数据时,从数据库中根据所述数据信息读取所述基础数据,并加载至所述内存。
6.根据权利要求5所述的量化因子的处理方法,其特征在于,
加载所述基础数据至内存的步骤包括:加载所述基础数据至机器内存;
将计算所述中间节点得到的结果数据存储至内存的步骤包括:将计算所述中间节点得到的结果数据存储至所述机器内存;
删除所述内存中所述第一节点对应的数据的步骤包括:删除所述机器内存中所述第一节点对应的数据;
获取量化因子的树结构的步骤包括:获取量化因子的树结构至应用堆内存。
7.根据权利要求6所述的量化因子的处理方法,其特征在于,遍历所述中间节点并进行计算的步骤包括:
确定计算当前所述中间节点所需的应用堆内存;
当当前所述中间节点所需的应用堆内存大于内存阈值时,将当前计算所述中间节点的任务设置为等待队列;
当空余的内存资源满足预设条件和/或当前所述中间节点所在层级的中间节点的任务均在所述等待队列中时,执行所述等待队列中的任务。
8.一种量化因子的处理装置,其特征在于,包括:
第一获取模块,用于获取量化因子的树结构,其中,所述树结构的节点包括叶子节点和中间节点,所述叶子节点表征基础数据,所述中间节点表征函数算子或模型因子,所述模型因子由所述函数算子和/或所述基础数据构建;
分析模块,用于从所述叶子节点开始进行递归分析,确定所述叶子节点表征的基础数据的数据信息、各所述节点的层级和所述节点之间的依赖关系,其中,所述叶子节点为第一层级,仅依赖所述叶子节点的中间节点为第二层级,高层级的节点依赖低层级的节点;
第二获取模块,用于根据所述数据信息获取所述基础数据;
计算模块,用于按照所述层级由低到高的顺序,遍历所述中间节点并进行计算,将计算所述中间节点得到的结果数据存储至内存,其中,在计算第一中间节点时,根据所述依赖关系判断所述第一中间节点是否依赖其他中间节点,若所述第一中间节点依赖其他中间节点,在计算所述第一中间节点时,从所述内存中获取被依赖的中间节点的结果数据进行计算,所述第一中间节点为任一所述中间节点;
判断模块,用于根据所述依赖关系判断依赖第一节点的所述中间节点是否均完成遍历,其中,所述第一节点为所述树结构的任一节点;
删除模块,用于当依赖所述第一节点的所述中间节点均完成遍历时,删除所述内存中所述第一节点对应的数据,其中,当所述第一节点为叶子节点时,所述第一节点对应的数据为所述基础数据,当所述第一节点为中间节点时,所述第一节点对应的数据为所述结果数据;以及
处理模块,用于在所有所述中间节点均被遍历后,获取所述内存中模型因子的结果数据,得到所述量化因子。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
CN202310186704.1A 2023-02-28 2023-02-28 量化因子的处理方法、装置、计算机设备和可读存储介质 Active CN116302513B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310186704.1A CN116302513B (zh) 2023-02-28 2023-02-28 量化因子的处理方法、装置、计算机设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310186704.1A CN116302513B (zh) 2023-02-28 2023-02-28 量化因子的处理方法、装置、计算机设备和可读存储介质

Publications (2)

Publication Number Publication Date
CN116302513A true CN116302513A (zh) 2023-06-23
CN116302513B CN116302513B (zh) 2024-08-09

Family

ID=86823456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310186704.1A Active CN116302513B (zh) 2023-02-28 2023-02-28 量化因子的处理方法、装置、计算机设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN116302513B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912588A (zh) * 2016-03-31 2016-08-31 中国农业银行股份有限公司 一种基于内存计算的大数据可视化处理方法及系统
CN108154237A (zh) * 2016-12-06 2018-06-12 华为技术有限公司 一种数据处理系统及方法
CN109816221A (zh) * 2019-01-07 2019-05-28 平安科技(深圳)有限公司 项目风险决策方法、装置、计算机设备和存储介质
CN109933617A (zh) * 2019-03-08 2019-06-25 恒生电子股份有限公司 一种数据处理方法、装置以及相关设备和介质
CN110727729A (zh) * 2018-06-29 2020-01-24 贵州白山云科技股份有限公司 一种实现智能运算的方法及装置
CN110738027A (zh) * 2019-10-15 2020-01-31 深圳逻辑汇科技有限公司 生成电子表格公式的计算机实现的方法、设备和存储介质
CN112764911A (zh) * 2021-01-29 2021-05-07 建信金融科技有限责任公司 一种任务调度方法、装置、电子设备及可读存储介质
CN114036182A (zh) * 2021-11-16 2022-02-11 河南星环众志信息科技有限公司 一种数据查询方法、计算机设备和存储介质
CN114118770A (zh) * 2021-11-19 2022-03-01 浙江蓝卓工业互联网信息技术有限公司 一种指标计算方法及装置
CN114265846A (zh) * 2021-12-28 2022-04-01 北京青云科技股份有限公司 一种数据操作方法、装置、电子设备和存储介质
CN115599961A (zh) * 2022-10-25 2023-01-13 阿里巴巴(中国)有限公司(Cn) 业务的树结构处理方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912588A (zh) * 2016-03-31 2016-08-31 中国农业银行股份有限公司 一种基于内存计算的大数据可视化处理方法及系统
CN108154237A (zh) * 2016-12-06 2018-06-12 华为技术有限公司 一种数据处理系统及方法
CN110727729A (zh) * 2018-06-29 2020-01-24 贵州白山云科技股份有限公司 一种实现智能运算的方法及装置
CN109816221A (zh) * 2019-01-07 2019-05-28 平安科技(深圳)有限公司 项目风险决策方法、装置、计算机设备和存储介质
CN109933617A (zh) * 2019-03-08 2019-06-25 恒生电子股份有限公司 一种数据处理方法、装置以及相关设备和介质
CN110738027A (zh) * 2019-10-15 2020-01-31 深圳逻辑汇科技有限公司 生成电子表格公式的计算机实现的方法、设备和存储介质
CN112764911A (zh) * 2021-01-29 2021-05-07 建信金融科技有限责任公司 一种任务调度方法、装置、电子设备及可读存储介质
CN114036182A (zh) * 2021-11-16 2022-02-11 河南星环众志信息科技有限公司 一种数据查询方法、计算机设备和存储介质
CN114118770A (zh) * 2021-11-19 2022-03-01 浙江蓝卓工业互联网信息技术有限公司 一种指标计算方法及装置
CN114265846A (zh) * 2021-12-28 2022-04-01 北京青云科技股份有限公司 一种数据操作方法、装置、电子设备和存储介质
CN115599961A (zh) * 2022-10-25 2023-01-13 阿里巴巴(中国)有限公司(Cn) 业务的树结构处理方法及装置

Also Published As

Publication number Publication date
CN116302513B (zh) 2024-08-09

Similar Documents

Publication Publication Date Title
US9906623B2 (en) System and method for accessing data objects via remote references
CN108363602B (zh) 智能ui界面布局方法、装置、终端设备及存储介质
JP2020512641A (ja) 多次元データベース環境において1回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムおよび方法
US8452733B2 (en) Data decay management
US9477609B2 (en) Enhanced transactional cache with bulk operation
CN108897842A (zh) 计算机可读存储介质及计算机系统
CN109614347B (zh) 多级缓存数据的处理方法、装置、存储介质及服务器
US11663288B2 (en) Just-in-time front end template generation using logical document object models
CN105447035B (zh) 数据扫描方法及装置
US20130173509A1 (en) Method and arrangement for processing data
CN110275889B (zh) 一种适用于机器学习的特征处理方法及装置
CN106021566A (zh) 一种提高单台数据库并发处理能力的方法、装置及系统
CN115391307A (zh) 数据库优化方法、装置、电子设备及计算机可读存储介质
CN112783887A (zh) 一种基于数据仓库的数据处理方法及装置
CN114168595A (zh) 一种数据分析方法及装置
CN116302513B (zh) 量化因子的处理方法、装置、计算机设备和可读存储介质
CN104111962A (zh) 具有批量操作的增强型事务高速缓存
CN110019783B (zh) 属性词聚类方法及装置
CN110781430A (zh) 互联网新型虚拟数据中心系统及其构造方法
CN103809915A (zh) 一种磁盘文件的读写方法和装置
CN113064943A (zh) 一种数据采集方法、装置、电子设备和存储介质
CN115543428A (zh) 一种基于策略模板的模拟数据生成方法和装置
US11500839B1 (en) Multi-table indexing in a spreadsheet based data store
CN113076086A (zh) 元数据管理系统和使用其对模型对象进行建模的方法
CN110688388A (zh) 一种数据立方体的动态更新方法及服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant