基于事件驱动的量化交易策略仿真回测框架及系统的制作方法
- 国知局
- 2024-11-25 15:18:47
本发明涉及软件开发,尤其涉及一种基于事件驱动的量化交易策略仿真回测框架及系统。
背景技术:
1、量化交易策略仿真回测,也称之为策略回溯测试,是指利用交易市场的历史数据和模拟交易对量化策略执行的有效性和可行性、以及一些关键指标进行验证和评估的过程,其目的主要包括:一是验证投资策略:基于历史行情对策略进行实际验证,判断其是否能在过去的市场环境中产生稳定的收益。二是优化策略参数:通过不断地调整参数、量化模型等操作,帮助优化和调整策略参数,以获得更好的交易结果。三是横向对比策略:在不确定哪种类型策略执行效果和收益更好的情况下,可以基于策略回测横向对比不同策略的执行效果,从而选择较优的策略参与实盘交易。
2、目前市场上存在诸多的证券投资策略仿真回测系统,这些回测系统可以用于精确模拟各种业务场景,从而用来分析证券投资策略在市场、系统、风控等一系列影响因素下的盈利能力,进而最终决定是否进入实盘交易。为提升回测系统的仿真精度与回测效率,现有技术通常是从系统功能以及实现流程的维度进行改进优化,比如专利cn118469706a提出的一种用于量化交易策略验证的交易所仿真系统与方法,其主要是对交易策略订单的撮合程序进行了系统功能以及实现流程上的优化,虽然该专利在一定程度上提升了回测系统的仿真精度与回测效率,但在整个系统运行性能方面仍然存在较大优化空间。专利cn117745432a提出的一种基于微服务架构的量化回测系统及方法,其主要是采用微服务的集群设计架构,系统的各个功能模块都是由多个服务节点构成集群,各个系统模块之间互相物理隔离互不影响,从而实现系统层面的解耦,提高了系统的整体性能,虽然该专利从系统设计架构上进行了改进与优化,提升了系统整体性能,但其在系统运行流畅度、框架的扩展性和灵活性方面仍然存在较大优化空间。
技术实现思路
1、本发明的主要目的在于提供一种基于事件驱动的量化交易策略仿真回测框架及系统,旨在解决如何在保证回测系统的仿真精度与回测效率的前提下,进一步提升系统运行流畅度、框架扩展性和灵活性的技术问题。
2、本发明第一方面提供了一种基于事件驱动的量化交易策略仿真回测框架,所述量化交易策略仿真回测框架包括:数据层、交易层和分析层;
3、所述数据层用于提供量化交易策略仿真回测所需数据并触发生成量化交易策略仿真回测所需事件对象;所述交易层用于基于所述数据层输出的事件对象,执行对应量化交易策略仿真回测的实现逻辑,包括策略构建、信号生成、交易执行与风险管理;所述分析层用于接收所述交易层的输出指令,动态调整对应量化交易策略采用的投资组合中各资产的持仓比例,并实时计算多种关键指标,以及归集与量化交易相关的各类相关数据,对量化交易策略进行绩效归因分析,并输出量化交易策略仿真回测报告;
4、其中,所述数据层包括:数据接入模块、数据调用模块和事件引擎模块;所述数据接入模块用于与若干数据源进行交互,包括数据接入、数据存储与数据查询;所述数据调用模块,包括多个数据调用接口,每一数据调用接口分别对应一种数据调用逻辑,用于按照给定数据调用逻辑调用特定数据,所述特定数据包括合约基础信息、交易日历、历史行情、分红拆股、停牌涨跌停日期、日历数据以及最新行情数据;所述事件引擎模块以消息队列为中心,划分为事件源组件与事件总线组件两部分,所述事件源组件用于接收来自不同数据源的数据并转化为事件对象,所述事件总线组件用于将事件对象分发至其他模块进行消费;
5、所述交易层包括:策略模块、订单管理模块和交易所模块;所述策略模块用于通过自定义策略类动态构建量化交易策略,并根据构建的量化交易策略,在对应交易时间点生成相应交易信号,同时监控和限制量化交易过程中的潜在风险,所述自定义策略类用于封装特定交易逻辑;所述订单管理模块用于根据量化交易策略生成交易订单,并管理和跟踪所有交易订单的执行过程;所述交易所模块用于根据量化交易策略生成的交易订单和市场行情数据,模拟真实交易环境,实现交易订单的成交过程;
6、所述分析层包括:组合持仓模块和绩效归因模块,所述组合持仓模块用于模拟和记录投资组合中各类资产持仓情况,并实时计算多种关键指标,所述关键指标包括持仓成本、账户资金变动、账户盈亏变动;所述绩效归因模块用于归集与量化交易相关的各类相关数据,计算回测期间内组合持仓的绩效评估指标,并根据各所述绩效评估指标,对量化交易策略进行绩效归因分析,输出量化交易策略仿真回测报告,所述相关数据包括所述关键指标,所述绩效归因分析包括基于净值的绩效归因分析、基于持仓的绩效归因分析以及基于自定义分析器的绩效归因分析。
7、可选的,在本发明第一方面的第一种实现方式中,所述事件对象采用统一的事件模型,用于描述不同的事件类型及事件属性并支持扩展自定义属性,所述事件模型包括事件的类型、时间戳和数据内容;所述事件类型包括:时间阶段类型、交易对象类型、市场行情类型以及操作命令类型。
8、可选的,在本发明第一方面的第二种实现方式中,所述事件源组件从各数据源抽取数据并转化为事件对象;当量化交易策略采用回测模式时,所述事件源组件从数据源抽取时间日历数据,生成时间阶段类型的事件并提交事件总线组件进行分发;当量化交易策略采用实盘模式时,所述事件源组件单独产生一个事件生产线程,并通过所述事件生产线程从数据源抽取最新的数据,同时检查是否触达给定时间点,若触达给定时间点则生成实时的事件对象并送往内部队列,所述内部队列用于隔离所述事件源组件产生的事件生产线程与其他模块产生的事件消费线程。
9、可选的,在本发明第一方面的第三种实现方式中,所述事件总线组件允许其他模块注册事件监听器,当所述事件监听器监听到对应事件到来时触发对应模块执行回调,以供对应模块根据事件的类型和内容执行相应处理逻辑。
10、可选的,在本发明第一方面的第四种实现方式中,所述订单管理模块包括:
11、命令接口子模块,为下达订单指令的入口,用于接收订单指令并生成对应的订单对象,一个订单对象唯一对应一个订单;
12、风控过滤子模块,用于查看订单的标的金额是否符合风控标准、是否超过预置金额以及是否占比违规;
13、订单校验子模块,用于验证订单的数值格式是否满足自定义规则,所述自定义规则包括是否有足额资金、是否为交易时间、是否达到最低交易金额、是否为最小交易单位的倍数;
14、订单路由子模块,用于将订单发送给对应交易所进行撮合,并将最新的订单成交信息更新回持仓组合中;
15、成本预估子模块,用于在订单下达之前,估算订单对应的成交成本,所述成交成本包括佣金、税费和管理费;
16、订单算法子模块,用于提供多种订单智能下单算法,所述下单算法对应的算法对象包括指定时间开仓、每日购入比例、指定价格开仓、指定时间平仓、指定价格平仓、止盈单、止损单、回撤、反弹后平仓。
17、可选的,在本发明第一方面的第五种实现方式中,所述交易所模块包括:
18、订单预处理子模块,用于接收基于量化交易策略生成的订单信息并对验证订单的有效性,所述订单信息包括订单类型、买卖方向、数量和价格;
19、订单撮合子模块,用于实时或按设定频率从数据源获取最新的市场行情数据,并基于最新的市场行情数据以及设定的价格撮合机制,模拟订单撮合,所述市场行情数据包括价格、成交量、买卖盘口数据;
20、成交结果处理子模块,用于记录成交的订单信息,并将订单状态与订单的成交结果推送至消息总线,所述成交的订单信息包括成交价格、成交量、成交时间。
21、可选的,在本发明第一方面的第六种实现方式中,所述组合持仓模块包括:
22、资金初始化子模块,用于在回测开始前,为交易账户设定初始资金或初始持仓量;
23、费用设置子模块,用于设置与量化交易相关的成本费率,所述成本费率包括组合管理费率、融资费率;
24、资金变动记录子模块,用于在每次量化交易完成后,记录交易账户的资金变动情况,所述资金变动情况包括买入或卖出资产的金额、交易费用;
25、持仓管理子模块,用于记录当前量化交易策略对应的持仓结构中持有的资产种类、数量、成本价;
26、盈亏计算子模块,用于根据交易记录和持仓情况,实时计算账户的盈亏情况,并在当天结算时留痕截面快照;
27、持久化子模块,用于记录组合持仓内的持仓数据,为模拟量化交易时的增量回测提供基础,以及记录每日的快照数据为绩效评估指标提供依据。
28、可选的,在本发明第一方面的第七种实现方式中,所述绩效归因模块包括:
29、数据归集子模块,用于归集与量化交易相关的各类相关数据,所述相关数据包括订单与逐笔成交明细、每日持仓的截面快照数据、每日账户与组合持仓的统计数据、基准指数净值以及用户自定义指标;
30、指标计算子模块,用于基于归集的与量化交易相关的各类相关数据,计算回测期间内组合持仓的绩效评估指标,所述绩效评估指标包括用于净值归因分析的年化收益率、夏普比率、索提诺比率、卡玛比率、最大回撤,以及还包括用于持仓归因分析的行业配置收益、交互效应收益、个股选择收益、因子风格收益;
31、报告绘制子模块,用于基于归因分析的结果,绘制可视化的量化交易策略仿真回测报告,所述量化交易策略仿真回测报告支持时间维度缩放以及选择性多标的对比;
32、结果持久化子模块,用于将所述绩效归因模块中各子模块生成的指标数据以及报告文件持久化到本地并通过预置接口上传远端服务器。
33、可选的,在本发明第一方面的第八种实现方式中,所述量化交易策略仿真回测框架还包括:
34、入口模块,用于接入所述量化交易策略仿真回测框架以执行基于事件驱动的量化交易策略仿真回测;
35、其中,所述入口模块包括:
36、入口点子模块,为整个量化交易策略仿真回测框架的入口点,并作为量化交易策略仿真回测的执行者,用于读取配置文件、组件实例化和执行量化交易策略仿真的回测过程;
37、模块管理器,用于管理所述量化交易策略仿真回测框架中所有模块的构造、配置、析构,以及允许用户自定义插件;
38、上下文子模块,用于承载各关键模块的引用及回测过程中的重要信息并在所述量化交易策略仿真回测框架中进行传递;
39、参数配置子模块,用于调整所述量化交易策略仿真回测框架中各模块中的各项参数。
40、本发明第二方面还提供一种量化交易策略仿真回测系统,所述量化交易策略仿真回测系统包括上述任一项所述的基于事件驱动的量化交易策略仿真回测框架。
41、本发明实施例提供的技术方案中,量化回测框架的架构设计遵循清晰、高效的原则,明确了各模块(组件)的功能和接口,确保数据流和策略执行的顺畅无阻。本发明实施例中框架包含数据源、数据处理、策略开发、事件引擎和归因分析等多个模块。各模块各司其职,共同支撑起整个回测流程的顺畅进行。为应对不同投资策略和市场的多样化需求,本发明实施例量化回测框架支持多种数据源、策略编写语言和回测参数配置,同时保持良好的兼容性和可维护性。框架采用模块化的设计,将交易策略与数据源、交易所和归因分析等部分分离,使得用户后期可以轻松组合和定制各个部分,以满足特定需求。本发明基于事件驱动的架构设计框架在提升回测系统灵活性、可扩展性、可靠性、实时处理能力以及促进系统间的开放与集成等方面具有显著优势,具体体现在以下方面:
42、(1)松耦合与高度可扩展性
43、松耦合:事件驱动架构通过事件作为组件之间的通信机制,降低了组件之间的耦合度。组件只需关注事件的产生和处理,而无需了解其他组件的具体实现细节。这种松耦合特性使得系统更加灵活,易于修改和扩展。
44、高度可扩展性:由于组件之间的解耦,系统可以方便地添加、移除或替换组件,以适应不断变化的需求和规模。新的组件可以根据事件来注册并响应,从而实现系统的动态扩展。
45、(2)异步处理与高效性
46、异步处理:事件驱动架构强调异步处理,即组件在接收到事件后,可以异步地进行处理,而无需立即阻塞等待结果。这种异步方式提高了系统的响应性,使系统能够同时处理多个事件,并支持高并发和大规模的处理。
47、高效性:异步处理机制使得系统能够更高效地利用资源,避免了因同步等待而导致的资源浪费和性能瓶颈。
48、(3)高可靠性与容错性
49、高可靠性:事件驱动架构通过将错误隔离到单个组件,提高了系统的整体可靠性。即使某个组件出现故障或不可用时,其他组件仍然可以继续发布事件并正常工作,从而减少了单点故障的影响。
50、容错性:系统的容错性也得到了增强,因为组件之间的松耦合使得系统能够更容易地应对各种异常情况。
51、(4)实时处理与数据流处理
52、实时处理:事件驱动架构适合于实时处理和流式数据的场景。通过事件的实时产生和处理,系统能够及时响应变化,并进行实时的数据处理和分析。这对于需要快速响应和实时决策的应用场景非常有用。
53、数据流处理:事件驱动架构能够高效地处理数据流,支持对大量数据进行实时分析和处理,为业务决策提供有力支持。
54、(5)开放与集成
55、开放性:事件驱动架构提供了丰富的跨产品、跨平台连接能力,促进了云产品、应用程序、saas服务等不同系统之间的集成。
56、集成性:通过定义明确的事件接口,事件驱动架构可以实现与外部系统的松散耦合集成,简化了集成的复杂性并提高了系统的互操作性。
57、(6)易于维护和扩展
58、易于维护:由于组件之间的松耦合和异步处理机制,事件驱动架构使得系统的维护和升级变得更加简单和高效。
59、易于扩展:系统的扩展也变得更加容易,因为新的组件可以轻松地注册到事件总线中并响应相关事件。
本文地址:https://www.jishuxx.com/zhuanli/20241125/337295.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表