CN116823471A - 交易策略回测方法、装置、电子设备及存储介质 - Google Patents

交易策略回测方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116823471A
CN116823471A CN202310760875.0A CN202310760875A CN116823471A CN 116823471 A CN116823471 A CN 116823471A CN 202310760875 A CN202310760875 A CN 202310760875A CN 116823471 A CN116823471 A CN 116823471A
Authority
CN
China
Prior art keywords
historical
transaction
target
action
return
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
Application number
CN202310760875.0A
Other languages
English (en)
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.)
Futuo Network Technology Shenzhen Co ltd
Original Assignee
Futuo Network Technology Shenzhen 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 Futuo Network Technology Shenzhen Co ltd filed Critical Futuo Network Technology Shenzhen Co ltd
Priority to CN202310760875.0A priority Critical patent/CN116823471A/zh
Publication of CN116823471A publication Critical patent/CN116823471A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请公开了一种交易策略回测方法、装置、电子设备及存储介质,方法包括:接收针对量化交易策略的回测指令,其中,回测指令包括量化交易策略的交易对象以及回测时间点;根据回测指令获取交易对象的历史行动数据以及回测时间点对应历史交易日的原始股票数据;获取历史行动数据中交易对象在回测时间点之前的历史行动以及历史行动的前复权因子;基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子;根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据;基于目标股票数据对量化交易策略进行回测,不仅可提高量化交易策略回测的精度,可提高了回测效率。

Description

交易策略回测方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种交易策略回测方法、装置、电子设备及存储介质。
背景技术
公司行动是股票交易中常见的一系列事件,在真实的股票交易中,如果碰到了公司行动,股票的K线价格可能会出现大幅跳空,挂的历史订单会被撤单,持仓的摊薄成本价和数量也会发生变化。
复权就是对股价和成交量的数值进行权息修复,按照股票的实际涨跌回执股价走势图,复权可分为前复权和后复权。
无论采用前复权数据还是后复权数据来回测交易策略,所使用的数据中会出现未来数据,导致所回测的交易策略准确度低的问题。
发明内容
本申请实施例提供一种交易策略回测方法、装置、电子设备及存储介质,可提高复现公司行动的准确度。
第一方面,本申请实施例提供一种交易策略回测方法,适用于电子设备,方法包括:
接收针对量化交易策略的回测指令,其中,回测指令包括量化交易策略的交易对象以及回测时间点;
根据回测指令获取交易对象的历史行动数据以及回测时间点对应历史交易日的原始股票数据;
获取历史行动数据中交易对象在回测时间点之前的历史行动以及历史行动的前复权因子;
基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子;
根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据;
基于目标股票数据对量化交易策略进行回测。
在一实现方式中,历史行动的类型至少包括以下至少之一:
拆股、合股、送股、转赠股、配股、增发股、现金分红、特别股息。
在一实现方式中,获取历史行动数据中交易对象在回测时间点之前的历史行动以及历史行动的前复权因子,包括:
从历史行动数据中获取交易对象在回测时间点之前的历史行动的行动参数;
获取与历史行动对应的前复权因子计算公式;
根据历史行动的行动参数,通过前复权因子计算公式获取历史行动的第一前复权因子以及第二前复权因子;第一前复权因子表示除权日前历史行动的前复权因子,第二前复权因子表示除权日后历史行动的前复权因子。
在一实现方式中,基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子,包括:
针对历史交易日中的任意一个目标历史交易日,基于历史行动的行动时间点,确定对目标历史交易日产生影响的目标历史行动;
将目标历史行动的第一前复权因子以及第二前复权因子,确定为目标历史交易日的目标前复权因子。
在一实现方式中,原始股票数据包括原始股票价格以及量化交易策略对应交易账户的原始持仓数量;
根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据,包括:
根据各历史交易日的目标前复权因子分别对各历史交易日的原始持仓数量进行复权处理,得到目标持仓数量;
根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票价格进行复权处理,得到目标股票价格;
若目标持仓数量非整百数,根据目标股票价格获取目标持仓数量中非整百数部分的现金值,并将目标持仓数量调整为整百数;
将现金值、调整后的目标持仓数量以及目标股票价格确定为历史交易日的目标股票数据。
在一实现方式中,历史行动的第一前复权因子包括分数型第一前复权因子,分数型第一前复权因子包括前复权因子分子值以及前复权因子分母值;原始股票数据包括量化交易策略对应交易账户的原始持仓数量;
根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据,包括:
根据前复权因子分子值以及前复权因子分母值分别对各历史交易日的原始持仓数量进行复权处理,得到目标持仓数量。
第二方面,本申请实施例提供一种交易策略回测装置,装置包括:
接收模块,用于接收针对量化交易策略的回测指令,其中,回测指令包括量化交易策略的交易对象以及回测时间点;
第一获取模块,用于根据回测指令获取交易对象的历史行动数据以及回测时间点对应历史交易日的原始股票数据;
第二获取模块,用于获取历史行动数据中交易对象在回测时间点之前的历史行动以及历史行动的前复权因子;
确定模块,用于基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子;
处理模块,用于根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据;
回测模块,用于基于目标股票数据对量化交易策略进行回测。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口,以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面的交易策略回测方法中的步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,上述计算机可读存储介质用于存储计算机程序,上述计算机程序被处理器执行,以实现如本申请实施例第一方面的交易策略回测方法中所描述的部分或全部步骤。
采用本申请实施例,具有如下有益效果:
本申请实施例提供的一种交易策略回测方法、装置、电子设备及存储介质,方法包括:接收针对量化交易策略的回测指令,其中,回测指令包括量化交易策略的交易对象以及回测时间点;根据回测指令获取交易对象的历史行动数据以及回测时间点对应历史交易日的原始股票数据;获取历史行动数据中交易对象在回测时间点之前的历史行动以及历史行动的前复权因子;基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子;根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据;基于目标股票数据对量化交易策略进行回测,不仅可提高量化交易策略回测的精度,可提高了回测效率。
附图说明
为了更清楚的说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的传统前复权回测模式的示意图;
图2是本申请实施例提供的一种电子设备的结构示意图;
图3是本申请实施例提供的一种交易策略回测方法的流程示意图;
图4是本申请实施例提供的一种电子设备的结构示意图;
图5是本申请实施例提供的一种交易策略回测装置的功能单元组成框图。
具体实施方式
电子设备可以包括各种具有无线通信功能的手持设备(手机、平板电脑等)、车载设备、可穿戴设备(如:智能手表、智能眼镜等)、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,MS),虚拟现实/增强现实设备,终端设备(terminal device)等等,电子设备还可以为服务器。
为便于理解本申请,对本申请相关技术做简要说明,具体如下:
量化交易策略是指利用计算机程序和数学模型,通过对历史数据分析、统计学习和机器学习等方法,以及对市场流动性、风险因素、经济指标等因素的研究,制定并实施投资决策的一种交易策略,用以实现股票的投资分析。量化交易策略的回测是指在基于某一段时间段内已经发生过的真实的股票数据,如行情数据,按照量化讲义策略对交易账户中的交易对象,如股票组合,进行模拟交易,根据模拟交易过程中所获得的该时间段内的盈利、回撤率等数据,对量化交易策略进行综合地评估。
公司行动是上市公司进行的一系列重要决策和活动,会对股票数据(如股票价格、流通量、市值)等产生重大影响,进而影响投资者的投资策略。在真实的股票交易中,如果碰到了公司行动,股票价格,如K线价格,可能会出现大幅跳空,量化交易策略中的挂单会被撤单,交易账户中的股票持仓的摊薄成本价和持仓数量也会发生变化。因此,在回测量化交易策略时,一般会采用前复权数据进行量化交策略的分析和计算,其中,前复权数据是指使用前复权因子,包括前复权因子A和前复权因子B,来计算复权后的K线价格、摊薄成本价和持仓数量,具体计算公式如下:
K线价格:前复权价格=不复权价格×前复权因子A+前复权因子B;
摊薄成本价:前复权价格=不复权价格×前复权因子A+前复权因子B;
持有数量:前复权持有数量=floor(不复权持有数量/前复权因子A),其中,floor()是指向下取整。
但是,采用经过前复权后的股票数据进行量化交易策略的回测会存在以下缺陷:
首先,经过前复权后的股票数据存在未来数据,在经过前复权的股票价格中,所有历史时刻的股票价格都是经过所有的公司行动调整过,那么在回测的历史时刻,如图1所示,在进行历史时刻1或历史时刻2上的量化交易策略回测时,所使用到的股票数据是存在“今天”这一时刻的未来数据的影响,精准度较低。其次,高股息的股票进过前复权后,可能出现股票价格为负价格的情况,若股票价格为负数价格,在量化交易策略的回测过程中交易账户的资产情况、风控情况、交易情况往往发生变化,导致量化交易策略的回测准确性低。最后,经过前复权后的股票数据与历史真实的不复权价格往往会出现不一致的情况,导致量化交易策略的回测表现与在真实的股票交易中的表现不一致,仿真度不足。
此外,由于前复权因子通常是使用浮点数存储,可能存在的精度不足的问题。例如,在很多情况下前复权因子往往是无限循环小数,而使用浮点型对前复权因子进行存储导致前复权因子的精度下降,难以满足回测精度要求,导致回测中对股票数据的调整与真实的公司行动对股票数据的影响有差异,导致对量化交易策略的回测准确度低的问题。
为解决上述问题,本申请提出一种交易策略回测方法。
下面对本申请实施例进行详细介绍。
如图2所示,图2是本申请实施例提供的一种电子设备的结构示意图。该电子设备包括处理器、存储器、随机存取存储器(Random Access Memory,RAM)和显示屏。其中,存储器、RAM和显示屏均与处理器连接。
进一步的,电子设备还可以包括扬声器、麦克风、摄像头、通信接口、信号处理器和传感器,扬声器、麦克风、摄像头、信号处理器和传感器均与处理器连接,通信接口与信号处理器连接。
其中,处理器是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器内的软体程序和/或模块,以及调用存储在存储器内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
其中,存储器用于存储软体程序和/或模块,处理器通过运行存储在存储器的软件程序和/或模块,从而执行电子设备的各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的软体程序等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
基于图2所描述的电子设备,能够用于执行如下步骤:
接收针对量化交易策略的回测指令,其中,回测指令包括量化交易策略的交易对象以及回测时间点;
根据回测指令获取交易对象的历史行动数据以及回测时间点对应历史交易日的原始股票数据;
获取历史行动数据中交易对象在回测时间点之前的历史行动以及历史行动的前复权因子;
基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子;
根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据;
基于目标股票数据对量化交易策略进行回测。
可以看出,本申请实施例所描述的电子设备,包括:接收针对量化交易策略的回测指令,其中,回测指令包括量化交易策略的交易对象以及回测时间点;根据回测指令获取交易对象的历史行动数据以及回测时间点对应历史交易日的原始股票数据;获取历史行动数据中交易对象在回测时间点之前的历史行动以及历史行动的前复权因子;基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子;根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据;基于目标股票数据对量化交易策略进行回测,不仅可提高量化交易策略回测的精度,可提高了回测效率。
请参见图3,图3是本申请实施例提供一种交易策略回测方法,应用于如图2所示的电子设备,具体包括以下步骤:
步骤S301:接收针对量化交易策略的回测指令。
其中,回测指令包括量化交易策略的交易对象以及回测时间点。回测指令的形式不作限定,可为文字形式、数字形式等。交易对象包括但不限于公司债券、股票、抵押票据等。
步骤S302:根据回测指令获取交易对象的历史行动数据以及回测时间点对应历史交易日的原始股票数据。
其中,历史行动是指在接收到回测指令这一时间点之前所发生的公司行动,历史行动数据是指不同历史行动所对应的信息数据,至少包括历史行动的类型、历史行动的行动参数、历史行动的行动时间等,其中,行动参数是指公司行动具体的参数信息,如公司行动为每10股派1元的现金分红,行动参数包括分红股息基数(即“10”)以及分红股息金额(即“1”)。
在一个实施例中,历史行动的类型包括以下至少之一:拆股、合股、送股、转赠股、配股、增发股、现金分红、特别股息。
以公司行动为每10股派1元的现金分红为例,历史行动数据包括但不限于表示历史行动类型为现金分红的字段、表示分红股息基数以及分红股息金额的字段以及表示行动时间的时间戳。
进一步地,历史行动数据可以以结构体方式记录历史行动所对应的信息数据。历史行动数据结构体如下所示:{行动类型,行动参数,行动时间点}。
其中,回测时间点是指回测量化交易策略的时间,可以是接收到回测指令这一时间点,也可以是接收到回测指令这一时间点之前的任意时间点;历史交易日是指回测时间点之前的股票交易日,原始股票数据包括但不限于量化交易策略所应用的交易账户中所持有的交易对象的原始股票价格、原始持仓数量以及交易账户中的原始现金值。可以理解的是,当发生公司行动时,交易账户中的原始股票数据往往是发生变动的,例如,当交易对象发生拆股这一公司行动时,交易账户中所持有的交易对象的原始股票价格和原始持仓数量均发生变化,如将原始的1股股票拆分为2股股票,则原始股票价格下降、而原始持仓数量增加;又例如,当交易对象发生现金分红这一公司行动时,交易账户中所持有的交易对象的原始现金值发生变化。
具体地,回测指令可携带有当前的回测时间点以及量化交易策略的交易对象,接收到回测指令后,可基于此回测指令中的回测时间点,可从数据库中获取交易对象的历史行动数据以及在回测时间点之前的历史交易日的原始股票数据;以回测时间点为2023年3月4日为例,通过回测指令可获取到2023年3月4日之前发生的所有历史行动的历史行动数据,以及2023年3月4日之前所有交易日的原始股票数据。
步骤S303:获取历史行动数据中交易对象在回测时间点之前的历史行动以及历史行动的前复权因子。
由于历史行动的类型以及历史行动的行动参数也不同,其对应的前复权因子往往也不同。具体地,在获取到历史行动数据后,可以基于历史行动数据中各个历史行动的行动时间点,确定回测时间点之前的历史行动,并从历史行动数据中确定该历史行动对应的行动参数,以计算该历史行动对应的前复权因子。针对不同的历史行动类型,其对应的前复权因子计算公式也不同,具体如下:
历史行动为现金分红,现金分红为利润分配的一种方式,用于回馈普通股投资者(即交易账户),现金分红往往是以现金的形式发放给交易账户,交易账户拿到现金分红,要缴纳相应的所得税。现金分红对应的第一前复权因子计算公式为:fFwdFactorA=1;
现金分红对应的第二前复权因子计算公式为:fFwdFactorB=-(dividend+spDividend)。
其中,dividend表示现金分红值,spDividend表示特别股息值。
历史行动为拆股,拆股主要是将原来的一股拆成若干股,最主要的目的是降低股价。拆股对应的第一前复权因子计算公式为:fFwdFactorA=
splitBase/splitErt;
拆股对应的第二前复权因子计算公式为:fFwdFactorB=0。
其中,splitBase表示拆股股票基数,splitErt表示拆股股票增额。例如,历史行动为每1股拆5股,则splitBase等于1,splitErt等于5。
历史行动为合股,合股主要是将原来的若干股合成一股,最主要的目的是提高股价。合股对应的第一前复权因子计算公式为:fFwdFactorA=
joinBase/joinErt;
合股对应的第二前复权因子计算公式为:fFwdFactorB=0。
其中,joinBase表示合股股票基数,joinErt表示合股股票增额。例如,历史行动为每50股合1股,则joinBase等于50,joinErt等于1。
历史行动为转(增)股,转(增)股指上市公司将资本公积金转化为股本的形式,赠送给投资者(即交易账户);转(增)股对应的第一前复权因子计算公式为:fFwdFactorA=transferBase/(transferBase+transferErt);
转(增)股对应的第二前复权因子计算公式为:fFwdFactorB=0。
其中,transferBase表示转(增)股股票基数,transferEr表示转(增)股股票增额。例如,历史行动为每10股转增3股,则transferBase等于10,transferEr等于3。
历史行动为送(红)股,送(红)股主要是公司派发实物股利时,将未分配利润转化为股本的形式赠送给投资者(即交易账户)。交易账户收到红股,要交纳相应的所得税;送(红)股对应的第一前复权因子计算公式为:fFwdFactorA=bonusBase/(bonusBase+bonusErt);
送(红)股对应的第二前复权因子计算公式为:fFwdFactorB=0。
其中,bonusBase表示送(红)股股票基数,bonusErt表示送(红)股股票增额。例如,历史行动为每10股送3股,则bonusBase等于10,bonusErt等于3。
历史行动为配股,配股为股票发行的一种形式,它赋予企业现有股东对新发股票的优先取舍权。这种方式可以保护现有股东合法的优先购买权;其第一前复权因子计算公式为:fFwdFactorA=allotBase/(allotBase+allotErt);
其第二前复权因子计算公式为:FwdFactorB=allotPrice*allotErt/
(allotBase+allotErt)。
其中,allotBase表示配股股息基数,allotErt表示配股股息增额。例如,每10股配送5股,配股股价为6.3,allotBase等于10,allotErt等于2,allotPrice等于6.3。
历史行动为分立,分立为本公司派发实物股利时,派其他公司的股票叫公司分立。发生历史行动为公司分立时,若按照现有技术中的原前复权因子调整股票数据中的交易账户对股票的持仓数量,会增加该持仓数量,而不是增加交易账户中的现金值;而本申请实施例中,通过前复权因子实现对现金值的调整而不会调整交易账户对股票的持仓数量,类似于回测账户收到了派发的其他公司股票后,直接卖出折现,以提高对量化交易策略的回测准确性。具体地,其第二前复权因子计算公式为:fFwdFactorB=-(fFwdFactorA’-1);
其第一前复权因子计算公式为:fFwdFactorA=1。
其中,fFwdFactorA’表示未调整前的原前复权因子;fFwdFactorA表示第一前复权因子。
历史行动为分红和拆合转送的组合,其第一前复权因子计算公式与历史行动为拆合转送的第一前复权因子计算公式相同,第二前复权因子计算公式为:fFwdFactorB=-(dividend+spDividend)*fFwdFactorA。
其中,dividend表示现金分红值,spDividend表示特别股息值。
具体地,可预先存储不同类型的历史行动的前复权因子计算公式,在确定到历史行动后,可获取历史行动的行动参数以及行动类型,进而根据该历史行动的行动类型匹配其对应的前复权因子计算公式,并基于历史行动的行动参数通过前复权因子计算公式计算相应的第一前复权因子和/或第二前复权因子。
以历史行动为拆股类型的公司行动为例,假设历史行动为原始1股拆为2股为例,该历史行动所对应的行动参数为:SplitBase=1,SplitErt=2,其第一前复权因子为:fFwdFactorA=1/2,第二前复权因子为:fFwdFactorB=0。
通过保留第一前复权因子以及第二前复权因子,可保证后续利用前复权因子对股票数据进行前复权后所得到的股票数据的准确度,提高对量化交易的回测准确性。
可选的,在一个实施例中,所述获取与所述历史行动对应的前复权因子计算公式,包括:获取预先配置的公式列表,公式列表包括不同行动类型的前复权因子计算公式以及相应的公式标识字符串;通过字符匹配的方式从所述公式列表中选取与所述历史行动的行动类型对应的前复权因子计算公式。
具体地,公式列表包括不同行动类型的前复权因子计算公式以及相应的公式标识字符串,在获取到历史行动的行动类型后,可通过字符匹配的方式,从预先配置的公式列表中选取匹配度最高的前复权因子计算公式作为该历史行动的前复权因子计算公式。
示例性地,公式列表包括不同行动类型的前复权因子计算公式以及相应的公式标识字符串,其中,公式标识字符串为A1、A2、……、An,历史行动的行动类型对应的字段为B1、B2、……、Bn,n为大于1的自然数。以行动类型对应的字段的第一个字符开始,基于该字段中的各个字符以及公式列表中各个前复权因子计算公式的公式标识字符串中的字符,计算两者间的字符距离,具体可通过以下公式进行计算:
然后,选取字符距离为0时的公式标识字符串对应的作为前复权因子计算公式,提高了前复权因子计算公式确定时的效率和精确性。
步骤S304:基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子。
其中,对历史交易日产生影响的目标历史行动,是指行动时间点在历史交易日以后、且在回测时间点以前的历史行动。具体地,针对任意一个目标历史交易日,可对比历史交易日以及历史行动的行动时间点,当历史行动的行动时间点在历史交易日之后,可将该历史行动确定为目标历史行动。
具体地,在一个实施例中,针对基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子,包括:针对历史交易日中的任意一个目标历史交易日,基于历史行动的行动时间点,确定对目标历史交易日产生影响的目标历史行动,然后将目标历史行动的第一前复权因子以及第二前复权因子,确定为目标历史交易日的目标前复权因子。基于第一前复权因子以及第二前复权因子对历史交易日的股票数据进行复权,可保证后续前复权处理后股票数据的精准度,提高对量化交易的回测准确性。
例如,假设利用2023年4月1日至4月30日这一时间段的股票数据进行量化交易策略的回测,历史行动包括第一历史行动、第二历史行动以及第三历史行动,其中,第一历史行动的行动时间点为2023年4月7日,第二历史行动的行动时间点为2023年4月20日,第三历史行动的行动时间点为2023年4月30日;以当前的回测时间点为4月6日、目标历史交易日为2023年4月3日为例,则并无对该目标历史交易日的原始股票数据产生影响的历史行动,该目标历史交易日的目标前复权因子为空值,可使用2023年4月3日的原始股票数据进行量化交易策略的回测;又例如,量化交易策略的回测继续进行,当当前的回测时间点为4月16日,继续以目标历史交易日为2023年4月3日为例,该目标历史交易日的原始股票数据产生影响的历史行动包括第一历史行动,即可将第一历史行动作为目标历史行为,第一历史行动的前复权因子可确定为该目标历史交易日的目标前复权因子;又例如,当当前的回测时间点为4月21日,继续以目标历史交易日为2023年4月3日为例,该目标历史交易日的原始股票数据产生影响的历史行动包括第一历史行动以及第二历史行动,即可将第一历史行动以及第二历史行动作为目标历史行为,第一历史行动以及第二历史行动的前复权因子可确定为该目标历史交易日的目标前复权因子。在量化交易策略回测进行至不同的回测时间点上进行时,通过历史行动的行动时间点确认对当前的回测时间点对应历史交易日产生影响的目标历史行动,进而以目标历史行动的前复权因子作为该历史交易日的前复权因子,避免未发生的历史行动或历史发生的历史行动对当前处理的历史交易日的股票数据产生影响,提高回测的仿真度以及精准度。
步骤S305:根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据。
在获取到各个历史交易日对应的目标前复权因子后,针对任意历史交易日,可利用其对应的目标前复权因子对其原始股票数据进行前复权,以保证股票数据的连续性,避免股票数据如股票价格产生大幅度跳空等异常情况的产生,提高对量化交易策略的回测结果的准确性。
其中,原始股票数据可以包括但不限于交易对象的原始股票价格、量化交易策略对应交易账户中交易对象的原始持仓数量以及现金值等;在获取到各历史交易日的目标前复权因子后,可以基于各个历史交易日的目标前复权因子对原始股票价格进行调整,以保证股票价格的连续性;还可以基于各个历史交易日的目标前复权因子对量化交易策略对应交易账户中的原始持仓数量进行调整,以保证投资组合中的对交易对象对应持仓数量的实时更新,以保证量化交易策略对收益回测的准确性。
考虑到在对股票的原始持仓数量在经过调整后往往存在非整数的情况,在一个实施例中,原始股票数据包括原始股票价格以及量化交易策略对应交易账户的原始持仓数量,根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据,包括:根据各历史交易日的目标前复权因子分别对各历史交易日的原始持仓数量进行复权处理,得到目标持仓数量,然后根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票价格进行复权处理,得到目标股票价格,若目标持仓数量非整百数,根据目标股票价格获取目标持仓数量中非整百数部分的现金值,并将目标持仓数量调整为整百数,再将现金值、调整后的目标持仓数量以及目标股票价格确定为历史交易日的目标股票数据。
具体地,当发生公司行动,基于目标前复权因子对原始持仓数量进行调整后,目标持仓数量包含非整数部分,如不足1手(100股)的部分,可以根据调整后的目标股票价格计算目标持仓数量中非整数部分的现金值,并以现金的形式结算至量化交易策略对应交易账户中。在回测过程中,动态地按照各个历史交易日的目标前复权因子对交易账户中股票的持仓数量以及现金值进行调整,有效提高对量化交易策略回测的准确性。
例如,某公司的股票每手为100股,现在交易账户中持有该公司的股票700股,然后该公司现在某历史交易日进行送股,每5股送2股(即5股老股换成7股新股),通过该历史交易日的目标前复权因子后的目标持仓数量应该为980股,其中,目标持仓数量中的80股作为非整数部分,可根据调整后的目标股票价格计算非整数部分(80股)对应的现金火折值,并基于该现金值更新该交易账户中的现金值总量,即:700股老股变成900股新股,以及80股新股等值的现金。
进一步地,前复权因子(包括第一前复权因子以及第二前复权因子)往往是浮点型小数,在对原始股票数据进行调整时精确度较低,例如,某公司的股票每手为100股,现在交易账户中持有该公司的股票500股,然后该公司现在某历史交易日进行送股,每5股送2股(即5股老股换成7股新股),该历史行动的行动参数为:bonusBase=5,bonusErt=2,该历史行动的第一前复权因子可表示为:fFwdFactorA=bonusBase(bonusBase+bonusErt)=5/(5+2)=0.71429;在基于该第一前复权因子计算目标持仓数量时,计算结果为500/0.71429,即计算得到的目标持仓数量为699.9958股,最终更新至交易账户的目标股票数据为:500股老股变成600股新股,以及99.9958股新股等值的现金;但实际情况下交易账户的股票数据的应为:500股老股变成700股新股。经过前复权后的持仓数量与历史真实的持仓数量往往会出现不一致的情况,导致量化交易策略的回测表现与在真实的股票交易中的表现不一致,仿真度不足。
因此,在一个实施例中,前复权因子可以为分数型前复权因子,分数型前复权因子具体可以包括整数形式的分子值以及整数形式的分母值。在调整原始数据时,基于整数形式的分子值以及分母值对原始股票数据进行整数的乘或除,避免进行小数的乘或除而导致的精度误差,提高数据精度。
进一步地,在一个实施例中,历史行动的前复权因子包括分数型前复权因子,分数型前复权因子包括前复权因子分子值以及前复权因子分母值;原始股票数据包括量化交易策略对应交易账户的原始持仓数量;根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据,包括:根据前复权因子分子值以及前复权因子分母值分别对各历史交易日的原始持仓数量进行复权处理,得到目标持仓数量。
其中,分数型前复权因子是以分数形式保存的前复权因子,包括整数形式的前复权因子分子值以及整数形式的前复权因子分母值。
在调整持仓数量的情况下,若通过前复权因子计算公式得到的前复权因子为浮点型的小数值,可以将前复权因子转换为分数型前复权因子,生成并保存整数形式的前复权因子分子值以及前复权因子分母值,在对原始股票数据进行复权处理时,基于前复权因子分子值以及前复权因子分母值,通过乘除整数的方式,对原始股票数据中的原始持仓数量进行调整,避免精度问题。
继续以上述例子为例进行说明,假设历史行动为每5股送2股时,该历史行动的行动参数为:bonusBase=5以及bonusErt=2,此时,该历史行动对应的分数型第一前复权因子为:fFwdFactorA=bonusBase/(bonusBase+bonusErt)=5/7,通过使用分数型第一前复权因子对原始股票数据中的原始持仓数量进行前复权后,所得到的目标持仓数量为:500*7/5=700,与实际情况下交易账户的股票数据相等。通过目标持仓数量的准确性大大提高。
步骤S306:基于目标股票数据对量化交易策略进行回测。
当通过上述方式获取到各历史交易日的目标股票数据后,可直接通过各历史交易日的目标股票数据回测量化交易策略。
可以看出,本申请实施例所描述的交易策略回测方法,包括:接收针对量化交易策略的回测指令,其中,回测指令包括量化交易策略的交易对象以及回测时间点;根据回测指令获取交易对象的历史行动数据以及回测时间点对应历史交易日的原始股票数据;获取历史行动数据中交易对象在回测时间点之前的历史行动以及历史行动的前复权因子;基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子;根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据;基于目标股票数据对量化交易策略进行回测,不仅可提高量化交易策略回测的精度,可提高了回测效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以下为本发明的装置实施例,对于其中未详尽描述的细节,可以参考上述对应的方法实施例。
请参阅图4,图4是本申请实施例提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行与图3所示的交易策略回测方法对应的指令,此处不做赘述。
请参阅图5,图5是本申请实施例提供的一种交易策略回测装置,应用于电子设备,装置包括:接收模块501、第一获取模块502、第二获取模块503、确定模块504、处理模块505和回测模块506,其中,
接收模块501,用于接收针对量化交易策略的回测指令,其中,回测指令包括量化交易策略的交易对象以及回测时间点;
第一获取模块502,用于根据回测指令获取交易对象的历史行动数据以及回测时间点对应历史交易日的原始股票数据;
第二获取模块503,用于获取历史行动数据中交易对象在回测时间点之前的历史行动以及历史行动的前复权因子;
确定模块504,用于基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子;
处理模块505,用于根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据;
回测模块506,用于基于目标股票数据对量化交易策略进行回测。
在一实现方式中,历史行动的类型至少包括以下至少之一:
拆股、合股、送股、转赠股、配股、增发股、现金分红、特别股息。
在一实现方式中,第二获取模块503还用于从历史行动数据中获取交易对象在回测时间点之前的历史行动的行动参数;
获取与历史行动对应的前复权因子计算公式;
根据历史行动的行动参数,通过前复权因子计算公式获取历史行动的第一前复权因子以及第二前复权因子;第一前复权因子表示除权日前历史行动的前复权因子,第二前复权因子表示除权日后历史行动的前复权因子。
在一实现方式中,确定模块504还用于针对历史交易日中的任意一个目标历史交易日,基于历史行动的行动时间点,确定对目标历史交易日产生影响的目标历史行动;
将目标历史行动的第一前复权因子以及第二前复权因子,确定为目标历史交易日的目标前复权因子。
在一实现方式中,原始股票数据包括原始股票价格以及量化交易策略对应交易账户的原始持仓数量;
处理模块505还用于根据各历史交易日的目标前复权因子分别对各历史交易日的原始持仓数量进行复权处理,得到目标持仓数量;
根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票价格进行复权处理,得到目标股票价格;
若目标持仓数量非整百数,根据目标股票价格获取目标持仓数量中非整百数部分的现金值,并将目标持仓数量调整为整百数;
将现金值、调整后的目标持仓数量以及目标股票价格确定为历史交易日的目标股票数据。
在一实现方式中,历史行动的第一前复权因子包括分数型第一前复权因子,分数型第一前复权因子包括前复权因子分子值以及前复权因子分母值;原始股票数据包括量化交易策略对应交易账户的原始持仓数量;
处理模块505还用于根据前复权因子分子值以及前复权因子分母值分别对各历史交易日的原始持仓数量进行复权处理,得到目标持仓数量。
可以看出,本申请实施例所描述的交易策略回测装置,应用于电子设备,接收针对量化交易策略的回测指令,其中,回测指令包括量化交易策略的交易对象以及回测时间点;根据回测指令获取交易对象的历史行动数据以及回测时间点对应历史交易日的原始股票数据;获取历史行动数据中交易对象在回测时间点之前的历史行动以及历史行动的前复权因子;基于历史行动的行动时间点确定各历史交易日对应的目标前复权因子;根据各历史交易日的目标前复权因子分别对各历史交易日的原始股票数据进行复权处理,得到各历史交易日的目标股票数据;基于目标股票数据对量化交易策略进行回测,不仅可提高量化交易策略回测的精度,可提高了回测效率。
可以理解的是,本实施例的交易策略回测装置的各程序模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述交易策略回测方法实施例的相关描述,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质,其中,计算机可读存储介质存储用于电子数据交换的计算机程序,其中,计算机程序使得计算机执行如上述交易策略回测方法实施例中电子设备所描述的部分或全部步骤。
本申请实施例还提供了一种计算机程序产品,其中,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机程序可操作来使计算机执行如上述交易策略回测方法中电子设备所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
本申请实施例所描述的方法或者算法的步骤可以以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read OnlyMemory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于接入网设备、目标网络设备或核心网设备中。当然,处理器和存储介质也可以作为分立组件存在于接入网设备、目标网络设备或核心网设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以全部或部分的通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分的以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分的产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
以上的具体实施方式,对本申请实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本申请实施例的具体实施方式而已,并不用于限定本申请实施例的保护范围,凡在本申请实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请实施例的保护范围之内。

Claims (10)

1.一种交易策略回测方法,其特征在于,适用于电子设备,所述方法包括:
接收针对量化交易策略的回测指令,其中,所述回测指令包括所述量化交易策略的交易对象以及回测时间点;
根据所述回测指令获取所述交易对象的历史行动数据以及所述回测时间点对应历史交易日的原始股票数据;
获取所述历史行动数据中所述交易对象在所述回测时间点之前的历史行动以及所述历史行动的前复权因子;
基于所述历史行动的行动时间点确定各所述历史交易日对应的目标前复权因子;
根据各所述历史交易日的目标前复权因子分别对各所述历史交易日的原始股票数据进行复权处理,得到各所述历史交易日的目标股票数据;
基于所述目标股票数据对所述量化交易策略进行回测。
2.根据权利要求1所述的交易策略回测方法,其特征在于,所述历史行动的类型至少包括以下至少之一:
拆股、合股、送股、转赠股、配股、增发股、现金分红、特别股息。
3.根据权利要求1所述的交易策略回测方法,其特征在于,所述获取所述历史行动数据中所述交易对象在所述回测时间点之前的历史行动以及所述历史行动的前复权因子,包括:
从所述历史行动数据中获取所述交易对象在所述回测时间点之前的历史行动的行动参数;
获取与所述历史行动对应的前复权因子计算公式;
根据所述历史行动的行动参数,通过所述前复权因子计算公式获取所述历史行动的第一前复权因子以及第二前复权因子;所述第一前复权因子表示除权日前所述历史行动的前复权因子,所述第二前复权因子表示除权日后所述历史行动的前复权因子。
4.根据权利要求3所述的交易策略回测方法,其特征在于,所述基于所述历史行动的行动时间点确定各所述历史交易日对应的目标前复权因子,包括:
针对所述历史交易日中的任意一个目标历史交易日,基于所述历史行动的行动时间点,确定对所述目标历史交易日产生影响的目标历史行动;
将所述目标历史行动的第一前复权因子以及第二前复权因子,确定为所述目标历史交易日的目标前复权因子。
5.根据权利要求3所述的交易策略回测方法,其特征在于,所述获取与所述历史行动对应的前复权因子计算公式,包括:
获取预先配置的公式列表,公式列表包括不同行动类型的前复权因子计算公式以及相应的公式标识字符串;
通过字符匹配的方式从所述公式列表中选取与所述历史行动的行动类型对应的前复权因子计算公式。
6.根据权利要求1所述的交易策略回测方法,其特征在于,所述原始股票数据包括原始股票价格以及所述量化交易策略对应交易账户的原始持仓数量;
所述根据各所述历史交易日的目标前复权因子分别对各所述历史交易日的原始股票数据进行复权处理,得到各所述历史交易日的目标股票数据,包括:
根据各所述历史交易日的目标前复权因子分别对各所述历史交易日的原始持仓数量进行复权处理,得到目标持仓数量;
根据各所述历史交易日的目标前复权因子分别对各所述历史交易日的原始股票价格进行复权处理,得到目标股票价格;
若所述目标持仓数量非整百数,根据所述目标股票价格获取目标持仓数量中非整百数部分的现金值,并将所述目标持仓数量调整为整百数;
将所述现金值、调整后的目标持仓数量以及目标股票价格确定为所述历史交易日的目标股票数据。
7.根据权利要求5所述的交易策略回测方法,其特征在于,所述历史行动的前复权因子包括分数型前复权因子,所述分数型前复权因子包括前复权因子分子值以及前复权因子分母值;
所述根据各所述历史交易日的目标前复权因子分别对各所述历史交易日的原始持仓数量进行复权处理,得到目标持仓数量,包括:
根据所述前复权因子分子值以及所述前复权因子分母值分别对各所述历史交易日的原始持仓数量进行复权处理,得到目标持仓数量。
8.一种交易策略回测装置,其特征在于,所述装置包括:
接收模块,用于接收针对量化交易策略的回测指令,其中,所述回测指令包括所述量化交易策略的交易对象以及回测时间点;
第一获取模块,用于根据所述回测指令获取所述交易对象的历史行动数据以及所述回测时间点对应历史交易日的原始股票数据;
第二获取模块,用于获取所述历史行动数据中所述交易对象在所述回测时间点之前的历史行动以及所述历史行动的前复权因子;
确定模块,用于基于所述历史行动的行动时间点确定各所述历史交易日对应的目标前复权因子;
处理模块,用于根据各所述历史交易日的目标前复权因子分别对各所述历史交易日的原始股票数据进行复权处理,得到各所述历史交易日的目标股票数据;
回测模块,用于基于所述目标股票数据对所述量化交易策略进行回测。
9.一种电子设备,其特征在于,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-7任一项所述的交易策略回测方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行,以实现如权利要求1-7任一项所述交易策略回测方法。
CN202310760875.0A 2023-06-26 2023-06-26 交易策略回测方法、装置、电子设备及存储介质 Pending CN116823471A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310760875.0A CN116823471A (zh) 2023-06-26 2023-06-26 交易策略回测方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310760875.0A CN116823471A (zh) 2023-06-26 2023-06-26 交易策略回测方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116823471A true CN116823471A (zh) 2023-09-29

Family

ID=88114060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310760875.0A Pending CN116823471A (zh) 2023-06-26 2023-06-26 交易策略回测方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116823471A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117453534A (zh) * 2023-10-10 2024-01-26 上海卡方信息科技有限公司 一种数据处理方法、装置、设备及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117453534A (zh) * 2023-10-10 2024-01-26 上海卡方信息科技有限公司 一种数据处理方法、装置、设备及可读存储介质
CN117453534B (zh) * 2023-10-10 2024-05-07 上海卡方信息科技有限公司 一种数据处理方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN106910129B (zh) 资产数据的处理方法、客户端及服务器
CN116823471A (zh) 交易策略回测方法、装置、电子设备及存储介质
US20240311914A1 (en) System and method for operating a family of mutual funds or etfs
JP2018514889A (ja) 当初証拠金標準モデルに基づいて当初証拠金を計算及び提供する方法及びシステム
CN113034183A (zh) 定价处理方法、装置、电子设备和存储介质
CN112907362A (zh) 贷款业务的处理方法、装置、电子设备和存储介质
CN112330448A (zh) 资金管理方法、终端设备及存储介质
JP6771513B2 (ja) 債務不履行確率を算出する装置、方法及びそのためのプログラム
CN111429251A (zh) 多模式下数据处理的方法和装置
CN111476657A (zh) 信息推送方法、装置及系统
KR20180050182A (ko) 배정 주식 납입대금 대출을 위한 금융 기술 서비스 방법 및 그 장치
CN115953235A (zh) 风险指标统计方法及装置、存储介质及电子设备
CN117252677A (zh) 信贷额度确定方法和装置、电子设备及存储介质
CN112308639B (zh) 目标事件的时效预计方法及装置
CN113379545A (zh) 产品推荐方法、装置、电子设备及存储介质
CN113409119A (zh) 融资租赁企业资金风险的评估方法、装置、存储介质和电子设备
CN111768298A (zh) 事务数据额度确定方法、装置、设备和介质
CN111738818A (zh) 贷后授信重检方法、设备及存储介质
JP6704973B2 (ja) 情報処理装置及びプログラム
CN115082238A (zh) 虚拟资源增长量的确定方法和装置、存储介质、电子装置
CN114971894A (zh) 期权到期清算方法、装置、设备和介质
CN113487408A (zh) 信息处理方法和装置
CN117391853A (zh) 数值资源的处理方法和装置
CN115797074A (zh) 账户管理方法、装置、电子设备及存储介质
CN115587886A (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