CN110689436A - 一种策略回测方法及策略回测系统 - Google Patents
一种策略回测方法及策略回测系统 Download PDFInfo
- Publication number
- CN110689436A CN110689436A CN201910943367.XA CN201910943367A CN110689436A CN 110689436 A CN110689436 A CN 110689436A CN 201910943367 A CN201910943367 A CN 201910943367A CN 110689436 A CN110689436 A CN 110689436A
- Authority
- CN
- China
- Prior art keywords
- data
- strategy
- retest
- policy
- file
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/338—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/34—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06393—Score-carding, benchmarking or key performance indicator [KPI] analysis
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Strategic Management (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Accounting & Taxation (AREA)
- Entrepreneurship & Innovation (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Game Theory and Decision Science (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明提供一种策略回测方法及策略回测系统,该方法包括:显示策略回测界面;接收在所述策略回测界面上的回测参数信息设置操作;根据设置的所述回测参数信息进行策略回测,并输出策略回测执行结果。上述方法,采用可视化向导式方式进行策略回测,操作简单,提升了策略回测的便利性;同时回测结果的可视化以及多样性展示,便于用户对回测结果进行查看。
Description
技术领域
本发明涉及大数据处理技术领域,尤其涉及一种策略回测方法及策略回测系统。
背景技术
目前,现有的量化交易系统在运行“策略回测”过程中,使用的驱动模式为时间驱动和事件驱动两种方式,这两种方式都是以大量的金融数据为基础。
由于金融数据服务商使用数据库存储数据,所以量化交易系统是通过访问数据库的方式来获取行情数据、财务数据、公司基本信息等数据。这样,量化交易系统需要频繁访问数据库。由于在计算机程序中通过访问数据库的方式获取数据的速度有限,导致策略回测执行的速度慢,并且,现有的策略回测的可视化及便利性存在不足。
发明内容
有鉴于此,本发明提供一种策略回测方法及策略回测系统,以解决现有的策略回测的可视化及便利性不足的问题。
为解决上述技术问题,本发明第一方面提供一种策略回测方法,包括:
显示策略回测界面;
接收在所述策略回测界面上的回测参数信息设置操作;
根据设置的所述回测参数信息进行策略回测,并输出策略回测执行结果。
进一步的,在所述显示策略回测界面之前,还包括:
根据设置的策略商品品种创建目标策略;
所述显示策略回测界面,包括:
显示针对所述目标策略的所述策略回测界面。
进一步的,所述目标策略的创建过程包括:
显示至少一个策略创建模板;
接收对所述至少一个策略创建模板中目标策略创建模板的选择操作;
根据对所述目标策略创建模板的编辑操作,获得所述目标策略。
进一步的,若所述目标策略包含因子,则获取基于所述因子生成的系数,其中,基于代码式用户界面或向导式用户界面构建算法创建所述因子,所述系数用于创建策略。
进一步的,根据设置的所述回测参数信息进行策略回测,并输出策略回测执行结果,包括:
根据所述回测参数信息,从预获取的数据文件中获取目标数据;
根据所述目标数据进行策略回测,并输出策略回测执行结果。
进一步的,所述数据文件中的数据通过如下方式获得:
从数据库中获取多个第一数据集;
将多个第一数据集,以二进制数据的形式依次存储在所述数据文件中,所述第一数据集包括多个交易时间在对应的指定时间区间的第一数据。
进一步的,所述根据所述回测参数信息,从预获取的数据文件中获取目标数据,包括:
根据所述回测参数信息和预获取的数据索引文件,确定所述目标数据在所述数据文件中的偏移量和所述目标数据的长度;
根据所述偏移量和所述目标数据的长度,从所述数据文件中获取目标数据。
进一步的,所述数据索引文件中的数据通过如下方式获得:
将多个第二数据集,以二进制数据的形式依次存储在所述数据索引文件中,所述第二数据集包括索引,所述第一数据的数量,以及对应的所述第一数据集在所述数据文件中的偏移量。
进一步的,在所述根据所述回测参数信息,从预获取的数据文件中获取目标数据之前,还包括:
将所述数据文件加载至内存中;
所述根据所述回测参数信息,从预获取的数据文件中获取目标数据,包括:
根据所述回测参数信息,从所述内存中的所述数据文件中获取目标数据。
进一步的,策略回测执行结果为绩效评估报告,绩效评估报告包括:绩效概览,绩效概览包括下述图表至少之一:绩效评估基本信息、绩效概述、累积收益图、收益率表、月度收益热力图;绩效评估报告还包括下述图表至少之一:超额分析、跟踪偏离、换手率、回报分析、持仓分析。
本发明第二方面提供一种策略回测系统,包括:
显示模块,用于显示策略回测界面;
接收模块,用于接收在所述策略回测界面上的回测参数信息设置操作;
输出模块,用于根据设置的所述回测参数信息进行策略回测,并输出策略回测执行结果。
进一步的,还包括:
创建模块,用于根据设置的策略商品品种创建目标策略;
所述显示模块,用于:
显示针对所述目标策略的所述策略回测界面。
进一步的,所述目标策略的创建过程包括:
显示至少一个策略创建模板;
接收对所述至少一个策略创建模板中目标策略创建模板的选择操作;
根据对所述目标策略创建模板的编辑操作,获得所述目标策略。
进一步的,若所述目标策略包含因子,则获取基于所述因子生成的系数,其中,基于代码式用户界面或向导式用户界面构建算法创建所述因子,所述系数用于创建策略。
进一步的,所述输出模块,包括:
获取子模块,用于根据所述回测参数信息,从预获取的数据文件中获取目标数据;
输出子模块,用于根据所述目标数据进行策略回测,并输出策略回测执行结果。
进一步的,所述数据文件中的数据通过如下方式获得:
从数据库中获取多个第一数据集;
将多个第一数据集,以二进制数据的形式依次存储在所述数据文件中,所述第一数据集包括多个交易时间在对应的指定时间区间的第一数据。
进一步的,所述获取子模块,用于:
根据所述回测参数信息和预获取的数据索引文件,确定所述目标数据在所述数据文件中的偏移量和所述目标数据的长度;
根据所述偏移量和所述目标数据的长度,从所述数据文件中获取目标数据。
进一步的,所述数据索引文件中的数据通过如下方式获得:
将多个第二数据集,以二进制数据的形式依次存储在所述数据索引文件中,所述第二数据集包括索引,所述第一数据的数量,以及对应的所述第一数据集在所述数据文件中的偏移量。
进一步的,还包括:
加载模块,用于将所述数据文件加载至内存中;
所述获取子模块,用于:
根据所述回测参数信息,从所述内存中的所述数据文件中获取目标数据。
进一步的,策略回测执行结果为绩效评估报告,绩效评估报告包括:绩效概览,绩效概览包括下述图表至少之一:绩效评估基本信息、绩效概述、累积收益图、收益率表、月度收益热力图;绩效评估报告还包括下述图表至少之一:超额分析、跟踪偏离、换手率、回报分析、持仓分析。
本发明还提供一种策略回测系统,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述策略回测方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述策略回测方法的步骤。
本发明的上述技术方案的有益效果如下:本发明实施例中,采用可视化向导式方式进行策略回测,操作简单,提升了策略回测的便利性;同时回测结果的可视化以及多样性展示,便于用户对回测结果进行查看。
附图说明
图1为本发明实施例提供的策略回测方法的流程示意图;
图2为本发明实施例提供的策略回测界面;
图3为本发明实施例提供的累积收益图;
图4为本发明实施例提供的数据文件和数据索引文件结构示意图;
图5为本发明实施例提供的数据流向示意图;
图6为本发明实施例提供的策略回测系统的结构示意图;
图7为本发明实施例提供的策略回测系统的另一结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例一的策略回测方法的流程示意图,所述策略回测方法包括:
步骤101、显示策略回测界面。
策略回测界面是为用户提供的设置回测参数信息的界面,如图2所示,策略回测界面可包括开始日期、结束日期、初始资金、频率、撮合方式、回测名称、业绩基准、滑点、交易佣金、限制成交量等等参数的设置。
本发明策略回测方法及策略回测系统可应用于量化交易系统,量化交易系统的策略是指“投资策略”,为使投资者降低风险,并获取较多投资收益而采用的方法和措施的一段计算机算法程序。策略可以按金融市场的商品品种来划分,如:股票、期货、期权等。本发明的系统支持同时买卖股票、期货和/或期权。
回测是指在指定历史时间范围内,对策略执行结果的评估。例如,通过基准收益率、策略收益率和超额收益率等回测结果,对策略的优劣进行评估。
步骤102、接收在所述策略回测界面上的回测参数信息设置操作。
回测参数信息设置操作即为用户可对策略回测界面上显示的各项参数进行设置的操作。例如,图2中,用户在对开始日期进行设置时,可对开始日期旁侧的日历表格进行选择,以选中用户需要设置的日期。对于初始资金,用户可通过在输入框中直接输入数值。在用户输入完成后,点击完成按钮或者确定按钮,应用策略回测方法的策略回测系统获取用户设置的回测参数信息,回测参数信息可包括策略名称、开始日期、结束日期、初始资金、频率、撮合方式、回测名称、业绩基准、滑点、交易佣金、限制成交量等等参数。
步骤103、根据设置的所述回测参数信息进行策略回测,并输出策略回测执行结果。
在获取到回测参数信息之后,根据回测参数信息进行策略回测,并输出执行结果。策略回测执行结果为绩效评估报告,绩效评估报告包括:绩效概览,进一步的,绩效评估报告还包括下述图表至少之一:超额分析、跟踪偏离、换手率、回报分析、持仓分析。其中,绩效概览包括下述图表至少之一:绩效评估基本信息、绩效概述、累积收益图、收益率表、月度收益热力图等。图3为本发明实施例提供的累积收益图的示例图。
策略回测即用历史数据进行策略的验证(即测试),经过回测输出绩效评估报告。根据绩效评估报告,对策略的优劣进行评估。
进一步的,在所述显示策略回测界面之前,还包括:
根据设置的策略商品品种创建目标策略;
所述显示策略回测界面,包括:
显示针对所述目标策略的所述策略回测界面。
具体的,策略可以按金融市场的商品品种来划分,如:股票、期货、期权等。在创建目标策略时,可由用户指定策略商品品种。例如,用户可指定策略商品品种为股票、期货、期权中的一项,策略回测系统根据用户指定的策略商品品种来创建目标策略。
目标策略创建完成之后,若用户需要进行策略回测,那么可以触发显示针对目标策略的策略回测界面,以便用户可在策略回测界面上设置回测参数信息。当然,目标策略创建完成之后,也可以不需要用户触发,而是直接显示针对目标策略的策略回测界面,供用户在策略回测界面上设置回测参数信息。策略回测界面的显示时机可根据实际情况确定,在此不做限定。
在设置回测参数信息时,可指定回测的历史时间范围、交易佣金、税率、滑点、业绩基准、初始资金、频率、撮合方式、限制成交量等参数;其中,频率为撮合频率,是指按日频率或分钟频率等;撮合方式是指按收盘价或均价等。
在创建目标策略时,可基于代码式策略生成用户界面或向导式策略生成用户界面进行策略的创建,其中,通过代码式策略生成用户界面编写代码方式进行策略的创建,包括:
显示至少一个策略创建模板;
接收对所述至少一个策略创建模板中目标策略创建模板的选择操作;
根据对所述目标策略创建模板的编辑操作,获得所述目标策略。
具体的,对于编写代码创建策略的方式,系统中预设有针对不同的策略类型、行业等的策略创建模板,用户可以选择其中一个策略创建模板后,对选择的策略创建模板进行自定义调整,即根据对所述目标策略创建模板的编辑操作,获得所述目标策略。另外,也可以不选择策略创建模板,而是直接通过编写代码来创建目标策略。
其中,基于向导式策略生成用户界面进行策略的创建,包括:通过在可视化向导式策略生成用户界面设置策略参数信息的方式进行策略的创建。
撮合是策略的目的。撮合指按照一定的频率、价格进行了交易,例如按照日频收盘价,策略为当天收盘价10块钱买入,如果当天收盘价10元,那么当天买入,就是撮合上了。其中频率可以是按照分钟、小时或天等。价格包括收盘价、均价等至少之一。交易包括买入、卖出等至少之一。
若所述目标策略包含因子,则通过应用程序接口(Application ProgrammingInterface,简称API)获取所述因子生成的系数,其中,基于代码式用户界面或向导式用户界面构建算法创建所述因子,所述系数用于创建策略。
可通过在代码式用户界面编写代码的方式构建算法创建因子,或通过在可视化向导式用户界面设置因子参数信息的方式构建算法创建因子。因子是做为策略的算法中的系数或参数存在的,因子也是通过一些数据和算法经过计算而产生的结果,例如按公司的财务数据、或按股票在某段时间的最大回撤率等进行计算,因子可以理解为一个函数。因子开发后经过检验进行发布,用于后续使用。本申请也可以用导入的方式构建量化因子,导入的因子也需要经过检验进行发布。具体的,在本地(例如用户的计算机设备)编写代码创建因子后,将该因子文件上传至系统,系统检验通过之后,将因子文件存储在系统服务器上,然后可供该用户及其他用户使用;所述检验包括:文件格式、名称的校验,以及需要运行该因子查看是否能成功运行代码。本发明系统支持因子的管理、调度以及接口等一系列功能。因子不是必须,策略可以不包含因子。如果策略包含因子,通过API等获取因子生成的系数。
进一步的,根据设置的所述回测参数信息进行策略回测,并输出策略回测执行结果,包括:
根据所述回测参数信息,从预获取的数据文件中获取目标数据;
根据所述目标数据进行策略回测,并输出策略回测执行结果。
为了提高数据获取速度,提高策略回测效率,在本实施例中,将数据预存储在数据文件中。这样,在后续步骤中获取目标数据时,是从数据文件中获取,相比从数据库中获取,可提高数据获取的速度。
数据文件为存储第一数据的文件,第一数据在数据文件中以二进制数据的形式存储。数据文件为预先获取,数据文件中的数据通过如下方式获得:
从数据库中获取多个第一数据集;
将多个第一数据集,以二进制数据的形式依次存储在所述数据文件中,所述第一数据集包括多个交易时间在对应的指定时间区间的第一数据。
数据文件中包括多个第一数据集,每个第一数据集包括多个交易时间在对应的指定时间区间的第一数据。指定时间区间可为一天或几天,一小时或几小时,在此不做限定,即指定时间区间为一个时间区间范围,第一数据集包括交易时间在此时间区间范围内的所有第一数据。
第一数据可为行情数据、财务数据或者公司数据等等,所述公司数据例如为公司基本信息。行情数据的数据文件的数据结构代码示例如下:
多个第一数据集在数据文件中的存储顺序可按照交易时间的先后顺序存储,例如,第一数据集A包括交易时间在2月1日的所有第一数据,第一数据集B包括交易时间在2月2日的所有第一数据,第一数据集C包括交易时间在2月3日的所有第一数据,那么,在数据文件中,第一数据集A存储在第一位置,第二数据集B存储在第二位置,第三数据集C存储在第三位置,第一位置、第二位置和第三位置相邻,相邻在此处可以理解为:第一位置的结束位置的下一个位置为第二位置的开始位置,第二位置的结束位置的下一个位置为第三位置的开始位置,以此类推。
进一步的,根据所述回测参数信息,从预获取的数据文件中获取目标数据,包括:
根据所述回测参数信息和预获取的数据索引文件,确定所述目标数据在所述数据文件中的偏移量和所述目标数据的长度;
根据所述偏移量和所述目标数据的长度,从所述数据文件中获取目标数据。
具体的,由于数据文件中包括多个第一数据集,因此,要从这多个第一数据集中获取到目标数据,还需要获知目标数据的起始位置,即目标数据在数据文件中的偏移量。
根据所述回测参数信息和预获取的数据索引文件,确定所述目标数据在所述数据文件中的偏移量和所述目标数据的长度。数据索引文件中的数据通过如下方式获得:
将多个第二数据集,以二进制数据的形式依次存储在所述数据索引文件中,所述第二数据集包括索引,所述第一数据的数量,以及所述第一数据集在所述数据文件中的偏移量。
数据索引文件用于存储第一数据集的索引信息。在数据索引文件中,存储有第二数据集,所述第二数据集包括索引(例如为交易时间),所述第一数据的数量,以及该第二数据集对应的所述第一数据集在所述数据文件中的偏移量。
数据索引文件的数据结构代码示例如下:
其中,iDate为交易日期,iCount为当日股票交易行情的数量,lOffset为在“数据结构文件(可以理解为数据文件)”中的偏移量。为确定所述目标数据在所述数据文件中的偏移量和所述目标数据的长度,可从回测参数信息中获取用户输入的交易时间,根据交易时间对数据索引文件进行遍历,按照交易日期为索引,查找到目标第二数据集,根据第二数据集中存储的lOffset获得目标数据在数据文件中的偏移量,根据iCount和第一数据的长度来确定目标数据的长度。
目标数据包括一个或多个第一数据集中的数据,具体由回测参数信息中用户输入的交易时间确定。若数据文件中,第一数据集以交易日为单位,即第一数据集中包括的第一数据为同一交易日生成的数据,用户输入的交易时间为一天,此种情况下,目标数据包括一个第一数据集;若用户输入的交易时间为连续2天,此种情况下,目标数据包括两个第一数据集,并且这两个第一数据集在数据文件中相邻。
本实施例中,根据所述回测参数信息,从预获取的数据文件中获取目标数据,由于目标数据存储在数据文件中,量化交易系统在进行策略回测时就直接从本地文件中获取数据而不是通过数据库访问数据,可以提高策略回测的效率。本发明提供的的策略回测方法速度快、稳定性好,能支持大数据量。
本发明的系统是从金融数据服务商获取源数据,需要先把数据按照一定的存储方式存储到文件中,因此需要一个专门用于跑批量数据的程序来处理这个问题。当数据落到文件中后,量化交易系统在进行策略回测时就直接从本地文件中获取数据而不是通过数据库访问数据,可以提高策略回测的效率。
“数据跑批”是指一个计算机常驻服务的程序。它的作用是在每天金融数据服务商更新数据后,该程序把数据同步到本地的文件中。所述数据主要包括行情数据和财务数据,进一步的还可以包括公司数据。一般都是发生在每天的凌晨2点以后的,以保证第二天用户的正常使用。在执行“数据跑批”之前要设定数据保存的目录,这个目录非常重要,因为在后面的“数据预加载程序”中也要从这个目录中读取文件并加载到内存。
在这个过程中要解决的问题就是将数据以什么样的形式存储到本地二进制数据文件中。数据的存储结构是由量化交易系统的业务规则和逻辑所决定的。为了提高数据的访问性能,有一条规则是需要遵守的,这条规则就是如何能更快的在二进制数据文件中获取到想要的数据。基于不同的数据,具体存储形式会有不同,例如,基于行情数据,数据索引文件的数据结构可以包括:以交易时间频率为索引(例如以交易日期为索引),交易时间周期内股票交易行情的数量(例如当日股票交易行情的数量),在“数据结构文件”中的偏移量;基于财务数据,数据索引文件的数据结构可以包括:以公司ID(例如标准化的公司名称或企业认证码)+日期作为索引,在“数据结构文件”中的偏移量;基于公司数据,数据索引文件的数据结构可以包括:以公司ID作为索引,在“数据结构文件”中的偏移量。
如下具体实施例中,在“策略回测”中行情数据是策略回测的驱动程序运行的基础,以股票日频行情数据为例来进行说明。
基于日频行情数据的“策略回测”的特点是:在指定一个时间范围内,按日期的从小到大的顺序逐个获取行情数据并处理,所有要处理的日期都是自然交易日。所以要以交易日期作为索引,确定索引之后,还要确定在策略中使用的行情数据并封装成结构体。数据以结构体为单位存储到数据文件中,一个结构体是数据文件的一个单位,例如参见图4,每一条数据对应一个结构体。以上述行情数据的数据文件的数据结构代码示例来说明数据的存储结构,参见上文行情数据的数据文件的数据结构代码示例和数据索引文件的数据结构代码示例。
上面“行情数据的数据文件的数据结构”如是单支股票按日频存储的数据,如果按交易日期作为索引,那么该日内有多少交易的股票就会对应有多少“行情数据的数据文件的数据结构”。在“跑批程序”中将按“行情数据的数据文件的数据结构”在原数据中抽取数据并存到结构体中,再把每条数据以二进制形式逐条存储到文件中。在遍历所有行情数据时,“跑批程序”要记录每一个交易日中有多少支股票进行了交易,并记录到“索引表数据结构”的iCount(当日股票交易行情的数量)中,并且计算出下一个交易日存储在“行情数据的数据文件”中的偏移量:当日股票数量*单支股票行情的大小+当日的偏移量。所述偏移量是指存储地址(指针)的偏移。
即:(iCount*sizeof(stStockQuant)+lOffset),其中lOffset是当日的偏移量,注第一个交易日的lOffset为0。
“跑批程序”经过对行情数据的一次遍历后,就会得到“行情数据的数据文件”和“行情数据的数据索引文件”,经过此步骤后实现了数据从数据库到文件的转换。
如图4所示,图4描述“索引文件(即数据索引文件)”与“二进制数据文件(即数据文件)”的对应关系,“索引文件”中的第一条索引为“20190102”的记录,起始偏移量为0,共有3100支股票记录。按公式:
iCount*sizeof(stStockQuant)+lOffset可以得出索引“20190103”的偏移量198400,之后以此类推。
以linux64位系统为例,double占用8个字节、int占用4个字节、char占用1个字节,由于在c++有字节对齐机制,可以计算出stStockQuant共占64个字节。
其中“数据索引文件”只记录文件位置与真实数据在“数据文件”中的映射关系,这个文件通常比较小,而“数据文件”通常比较大。“数据索引文件”和“数据文件”可以按照量化交易系统的业务进行区分,这里业务指的是股票、期货等不同策略商品品种。本发明通过先获取真实数据在索引文件中记录的物理位置,再使用物理位置直接在数据文件中获取到真实的数据,从而使用一次访问就可以获取到想要的数据块,访问数据速度快。
在计算机领域中对于数据的访问常用方式有:数据库访问、文件访问和内存访问。按访问速度的排序:内存访问大于文件访问,文件访问大于或等于数据库访问。(文件访问速度大于或等于数据库访问,在一些特定使用场景文件访问速度要高于数据库访问,数据库访问的优势体现在多表关联的高性能和易用性)。
在本申请中,对数据的处理方式为:从金融数据服务商获取源数据;再把数据以索引文件(即数据索引文件)和二进制数据文件(即数据文件)的方式存储到本地文件;再把本地文件和索引文件映射到内存中;最后在执行策略回测时直接访问内存来获取行情数据、财务数据和公司数据(例如公司基本信息)。
如图5所示,图5描述了数据流向。其中,数据流向为:从“金融数据服务商”到“量化交易系统后台服务器”的数据库系统;“数据预导入进程”从数据库系统中获取数据再写入本地文件中,处理完成后通知“数据预加载进程”;“数据预加载进程”从文件中获取数据再映射到系统内存中,此时数据已经准备完成;用户在写策略时,“策略进程”直接从内存获取数据、运算处理、最终返回处理结果。图5中,获取数据箭头的指向是从哪里获取数据。
上述将数据从数据库取出,存储至数据文件后,需进一步将索引文件和二进制数据文件映射到内存中。基于预定的频率运行“数据跑批”程序,具体例子中是每天,每天金融数据服务商更新数据后,“数据跑批”程序把数据同步到本地的文件中,在“跑批程序”设定的目录中加载新的数据文件和数据索引文件,接着执行“数据预加载”程序把量化交易系统需要使用的数据预先加载到内存中,“数据跑批”程序把数据同步到文件与“数据预加载”程序把数据加载到内存是串行的关系。
“数据预加载”是指一个计算机中的常驻服务程序,它是用于当“跑批程序”执行完成后,即在“跑批程序”设定的目录中加载新的数据文件和数据索引文件后,执行“数据预加载”把量化交易系统需要使用的数据预先加载到内存中。之后在回测时在数据读取时可以使用memory map(一种内存映射文件的方法)的方式获取到指定文件在内存中的虚拟地址。
“数据预加载”程序可利用Linux操作系统的一个特性实现了后期对数据访问性能的提升。Linux系统读取文件后会将文件数据加载到内存,当再次打开同一个文件,如果之前的文件数据没有被系统从内存中换出(释放对应的部分内存),那么就可以使用memorymap获取到文件在系统内存中的虚拟地址指针,量化交易系统就可以通过这个指针来访问文件数据,这样就节省了每次文件打开时换入(加载)到内存的时间。这就是“数据预加载”存在的意义,每次执行时都把量化交易系统需要使用的数据预先加载到内存,虽然第一次打开文件时是需要花费从文件到内存的载入时间,但在后续的使用中就不会再花费从文件载入到内存的时间。所述换入是指文件加载到内存,所述换出是指释放部分内存,即打开文件时系统将文件数据换入到内存,内存不够用时系统换出一些文件释放对应的部分内存。
在“策略回测”时,需要载入指定时间范围内的行情数据到量化交易系统的内存中,这个过程分为两步:
(1)在“索引文件”中找出指定开始时间和结束时间的索引数据结构体,在结构体中可以得到指定开始时间和结束时间的数据在“行情数据文件”中的偏移量;
(2)得到开始时间和结束时间行情数据文件的偏移量后,再使用memory map获取到“行情数据文件”的首地址,再根据:首地址+开始时间的偏移量,得到想要的行情数据的开始位置,再根据:首地址+结束时间的偏移量+结束时(例如当日)行情数据的数量*(例如当日)行情数据结构体的大小,得到想要的行情数据的结束位置。对应上文的“当日股票数量*单支股票行情的大小+当日的偏移量”,这里“结束时间”是指当日。
这样就可以通过“索引文件”和计算的方式得到指定范围行情数据在“行情数据文件”中的位置,获取到开始时间到结束时间的这块内存,并解析成“行情数据结构”,就可以让量化交易系统进行使用了。
通过“索引文件”和“行情数据文件”进行检索,要比直接在数据库中进行数据检索快30倍以上,并且不会过多的受到数据量大小的影响,而使用数据库当数据量大时,检索性能会受到很明显的影响。
请参考图6,本发明实施例还提供一种策略回测系统,策略回测系统600包括:
显示模块601,用于显示策略回测界面;
接收模块602,用于接收在所述策略回测界面上的回测参数信息设置操作;
输出模块603,用于根据设置的所述回测参数信息进行策略回测,并输出策略回测执行结果。
进一步的,策略回测系统还包括:
创建模块,用于根据设置的策略商品品种创建目标策略;
所述显示模块601,用于:
显示针对所述目标策略的所述策略回测界面。
进一步的,所述目标策略的创建过程包括:
显示至少一个策略创建模板;
接收对所述至少一个策略创建模板中目标策略创建模板的选择操作;
根据对所述目标策略创建模板的编辑操作,获得所述目标策略。
进一步的,若所述目标策略包含因子,则获取基于所述因子生成的系数,其中,基于代码式用户界面或向导式用户界面构建算法创建所述因子,所述系数用于创建策略。
进一步的,所述输出模块603,包括:
获取子模块,用于根据所述回测参数信息,从预获取的数据文件中获取目标数据;
输出子模块,用于根据所述目标数据进行策略回测,并输出策略回测执行结果。
进一步的,所述数据文件中的数据通过如下方式获得:
从数据库中获取多个第一数据集;
将多个第一数据集,以二进制数据的形式依次存储在所述数据文件中,所述第一数据集包括多个交易时间在对应的指定时间区间的第一数据。
进一步的,所述获取子模块,用于:
根据所述回测参数信息和预获取的数据索引文件,确定所述目标数据在所述数据文件中的偏移量和所述目标数据的长度;
根据所述偏移量和所述目标数据的长度,从所述数据文件中获取目标数据。
进一步的,所述数据索引文件中的数据通过如下方式获得:
将多个第二数据集,以二进制数据的形式依次存储在所述数据索引文件中,所述第二数据集包括索引,所述第一数据的数量,以及对应的所述第一数据集在所述数据文件中的偏移量。
进一步的,策略回测系统还包括:
加载模块,用于将所述数据文件加载至内存中;
所述获取子模块,用于:
根据所述回测参数信息,从所述内存中的所述数据文件中获取目标数据。
进一步的,策略回测执行结果为绩效评估报告,绩效评估报告包括:绩效概览,绩效概览包括下述图表至少之一:绩效评估基本信息、绩效概述、累积收益图、收益率表、月度收益热力图;绩效评估报告还包括下述图表至少之一:超额分析、跟踪偏离、换手率、回报分析、持仓分析。
请参考图7,图7为本发明又一实施例的策略回测系统的结构示意图,该策略回测系统700包括:处理器701和存储器702。在本发明实施例中,数据分析处理系统700还包括:存储在存储器702上并可在处理器701上运行的计算机程序,计算机程序被处理器701执行时实现如下步骤:
显示策略回测界面;
接收在所述策略回测界面上的回测参数信息设置操作;
根据设置的所述回测参数信息进行策略回测,并输出策略回测执行结果。
进一步的,在所述显示策略回测界面之前,处理器701还执行:
根据设置的策略商品品种创建目标策略;
所述显示策略回测界面,包括:
显示针对所述目标策略的所述策略回测界面。
进一步的,所述目标策略的创建过程包括:
显示至少一个策略创建模板;
接收对所述至少一个策略创建模板中目标策略创建模板的选择操作;
根据对所述目标策略创建模板的编辑操作,获得所述目标策略。
进一步的,若所述目标策略包含因子,则获取基于所述因子生成的系数,其中,基于代码式用户界面或向导式用户界面构建算法创建所述因子,所述系数用于创建策略。
进一步的,处理器701还执行:
根据所述回测参数信息,从预获取的数据文件中获取目标数据;
根据所述目标数据进行策略回测,并输出策略回测执行结果。
进一步的,所述数据文件中的数据通过如下方式获得:
从数据库中获取多个第一数据集;
将多个第一数据集,以二进制数据的形式依次存储在所述数据文件中,所述第一数据集包括多个交易时间在对应的指定时间区间的第一数据。
进一步的,处理器701还执行:
根据所述回测参数信息和预获取的数据索引文件,确定所述目标数据在所述数据文件中的偏移量和所述目标数据的长度;
根据所述偏移量和所述目标数据的长度,从所述数据文件中获取目标数据。
进一步的,所述数据索引文件中的数据通过如下方式获得:
将多个第二数据集,以二进制数据的形式依次存储在所述数据索引文件中,所述第二数据集包括索引,所述第一数据的数量,以及对应的所述第一数据集在所述数据文件中的偏移量。
进一步的,在所述根据所述回测参数信息,从预获取的数据文件中获取目标数据之前,处理器701还执行:
将所述数据文件加载至内存中;
所述根据所述回测参数信息,从预获取的数据文件中获取目标数据,包括:
根据所述回测参数信息,从所述内存中的所述数据文件中获取目标数据。
进一步的,策略回测执行结果为绩效评估报告,绩效评估报告包括:绩效概览,绩效概览包括下述图表至少之一:绩效评估基本信息、绩效概述、累积收益图、收益率表、月度收益热力图;绩效评估报告还包括下述图表至少之一:超额分析、跟踪偏离、换手率、回报分析、持仓分析。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述策略回测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种策略回测方法,其特征在于,包括:
显示策略回测界面;
接收在所述策略回测界面上的回测参数信息设置操作;
根据设置的所述回测参数信息进行策略回测,并输出策略回测执行结果。
2.根据权利要求1所述的策略回测方法,其特征在于,在所述显示策略回测界面之前,还包括:
根据设置的策略商品品种创建目标策略;
所述显示策略回测界面,包括:
显示针对所述目标策略的所述策略回测界面。
3.根据权利要求1所述的策略回测方法,其特征在于,根据设置的所述回测参数信息进行策略回测,并输出策略回测执行结果,包括:
根据所述回测参数信息,从预获取的数据文件中获取目标数据;
根据所述目标数据进行策略回测,并输出策略回测执行结果。
4.根据权利要求3所述的策略回测方法,其特征在于,所述数据文件中的数据通过如下方式获得:
从数据库中获取多个第一数据集;
将多个第一数据集,以二进制数据的形式依次存储在所述数据文件中,所述第一数据集包括多个交易时间在对应的指定时间区间的第一数据。
5.根据权利要求4所述的策略回测方法,其特征在于,在所述根据所述回测参数信息,从预获取的数据文件中获取目标数据之前,还包括:
将所述数据文件加载至内存中;
所述根据所述回测参数信息,从预获取的数据文件中获取目标数据,包括:
根据所述回测参数信息,从所述内存中的所述数据文件中获取目标数据。
6.一种策略回测系统,其特征在于,包括:
显示模块,用于显示策略回测界面;
接收模块,用于接收在所述策略回测界面上的回测参数信息设置操作;
输出模块,用于根据设置的所述回测参数信息进行策略回测,并输出策略回测执行结果。
7.根据权利要求6所述的策略回测系统,其特征在于,还包括:
创建模块,用于根据设置的策略商品品种创建目标策略;
所述显示模块,用于:
显示针对所述目标策略的所述策略回测界面。
8.根据权利要求6所述的策略回测系统,其特征在于,所述输出模块,包括:
获取子模块,用于根据所述回测参数信息,从预获取的数据文件中获取目标数据;
输出子模块,用于根据所述目标数据进行策略回测,并输出策略回测执行结果。
9.根据权利要求8所述的策略回测系统,其特征在于,所述数据文件中的数据通过如下方式获得:
从数据库中获取多个第一数据集;
将多个第一数据集,以二进制数据的形式依次存储在所述数据文件中,所述第一数据集包括多个交易时间在对应的指定时间区间的第一数据。
10.根据权利要求9所述的策略回测系统,其特征在于,还包括:
加载模块,用于将所述数据文件加载至内存中;
所述获取子模块,用于:
根据所述回测参数信息,从所述内存中的所述数据文件中获取目标数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910943367.XA CN110689436A (zh) | 2019-09-30 | 2019-09-30 | 一种策略回测方法及策略回测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910943367.XA CN110689436A (zh) | 2019-09-30 | 2019-09-30 | 一种策略回测方法及策略回测系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110689436A true CN110689436A (zh) | 2020-01-14 |
Family
ID=69111360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910943367.XA Pending CN110689436A (zh) | 2019-09-30 | 2019-09-30 | 一种策略回测方法及策略回测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110689436A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114625805A (zh) * | 2022-05-16 | 2022-06-14 | 杭州时代银通软件股份有限公司 | 一种回测配置方法、装置、设备及介质 |
WO2023123228A1 (zh) * | 2021-12-30 | 2023-07-06 | 富途网络科技(深圳)有限公司 | 交易策略回测方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346751A (zh) * | 2014-11-11 | 2015-02-11 | 苏州晨川通信科技有限公司 | 一种半自动算法交易方法 |
CN107797797A (zh) * | 2017-11-03 | 2018-03-13 | 上海宽全智能科技有限公司 | 量化回测与量化交易方法和装置、存储介质、设备和系统 |
CN107798609A (zh) * | 2017-11-08 | 2018-03-13 | 上海宽全智能科技有限公司 | 量化交易策略生成方法与装置、设备及存储介质 |
CN108765149A (zh) * | 2018-05-11 | 2018-11-06 | 南京工程学院 | 一种基于集群的量化策略回测系统及其回测方法 |
CN109240676A (zh) * | 2017-07-04 | 2019-01-18 | 台湾大数据分析股份有限公司 | 以可视化组件建立交易策略的方法及其系统 |
-
2019
- 2019-09-30 CN CN201910943367.XA patent/CN110689436A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346751A (zh) * | 2014-11-11 | 2015-02-11 | 苏州晨川通信科技有限公司 | 一种半自动算法交易方法 |
CN109240676A (zh) * | 2017-07-04 | 2019-01-18 | 台湾大数据分析股份有限公司 | 以可视化组件建立交易策略的方法及其系统 |
CN107797797A (zh) * | 2017-11-03 | 2018-03-13 | 上海宽全智能科技有限公司 | 量化回测与量化交易方法和装置、存储介质、设备和系统 |
CN107798609A (zh) * | 2017-11-08 | 2018-03-13 | 上海宽全智能科技有限公司 | 量化交易策略生成方法与装置、设备及存储介质 |
CN108765149A (zh) * | 2018-05-11 | 2018-11-06 | 南京工程学院 | 一种基于集群的量化策略回测系统及其回测方法 |
Non-Patent Citations (1)
Title |
---|
MINDGO量化平台: ""带你入门MindGo-我的第一个策略"", 《MINDGO量化平台,HTTP://T.10JQKA.COM.CN/PID_86549011.SHTML》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023123228A1 (zh) * | 2021-12-30 | 2023-07-06 | 富途网络科技(深圳)有限公司 | 交易策略回测方法、装置及存储介质 |
CN114625805A (zh) * | 2022-05-16 | 2022-06-14 | 杭州时代银通软件股份有限公司 | 一种回测配置方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fung et al. | Hedge fund benchmarks: A risk-based approach | |
US7783551B1 (en) | Method and system for simulating risk factors in parametric models using risk neutral historical bootstrapping | |
US7016873B1 (en) | System and method for tax sensitive portfolio optimization | |
US7212997B1 (en) | System and method for analyzing financial market data | |
US20020184133A1 (en) | Method and system for verifying the integrity of data in a data warehouse and applying warehoused data to a plurality of predefined analysis models | |
US20100070427A1 (en) | Dynamic indexing | |
JP2003521021A (ja) | リスク・マネジメント・システム、分散型フレームワークおよび方法 | |
CN109166033A (zh) | 贷款额度计算方法、装置、计算机设备和存储介质 | |
US8554656B2 (en) | Computerized investor advisement and investment management system | |
WO2009042548A1 (en) | Feature-based similarity measure for market instruments | |
CN110689436A (zh) | 一种策略回测方法及策略回测系统 | |
JP2006500692A (ja) | 公開情報動的財務分析の方法および装置 | |
US20110270782A1 (en) | Systems and methods for determining investment strategies | |
US20100114745A1 (en) | System and method for calculating and applying market data change rate sets | |
US20030105695A1 (en) | Processing system for market efficiency value added | |
JP2003233703A (ja) | 経営指標処理システム | |
Pažický | Predicting recessions in Germany using the German and the US yield curve | |
CN114297052A (zh) | 测试数据生成方法及装置 | |
Jobst et al. | Examining liquidity of exchanges and assets and the impact of external events in centralized crypto markets: a 2022 study | |
US20110106726A1 (en) | Financial instrument position and subposition management | |
US20190108592A1 (en) | Analyzing a performance of at least one asset in a portfolio | |
US8266022B2 (en) | Risk-cost analysis of currency exposure reduction for currency exposure management | |
US11954733B1 (en) | Customizable investment platform | |
US20150073969A1 (en) | Transcationally based benchmark for market transactions in short term securities | |
Shaikh et al. | Credit Obtaining Challenges Faced by Micro and Small and Medium Enterprises SMEs |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200114 |