高频交易中嵌套决策执行框架的设计
简介
日间交易(例如投资组合管理)和日内交易(例如订单执行)是量化投资中的两个热点话题,通常被分开研究。
为了获得日间与日内交易的联合交易表现,二者必须相互协作并联合进行回测。为了支持多层级的联合回测策略,需要一个相应的框架。目前公开可用的高频交易框架均未考虑多层级联合交易,导致上述回测结果不够准确。
除了回测之外,不同层级策略的优化并非相互独立,而是会相互影响。例如,随着订单执行表现的提升(例如,当订单执行策略改善后,换手率更高的投资组合可能成为更优选择),最优的投资组合管理策略也可能发生变化。为了实现整体优良的表现,有必要考虑不同层级策略之间的交互作用。
因此,构建一个支持多层级交易的新框架变得十分必要,以解决上述各种问题。为此,我们设计了一个考虑策略交互的嵌套决策执行框架。
该框架的设计如上图中间黄色部分所示。每一层级由交易代理 (Trading Agent)
和执行环境 (Execution Env)
组成。交易代理 (Trading Agent)
包含自身的数据处理模块(信息提取器 (Information Extractor)
)、预测模块(预测模型 (Forecast Model)
)和决策生成器(决策生成器 (Decision Generator)
)。交易算法基于预测模块 (Forecast Module)
输出的预测信号,通过决策生成器 (Decision Generator)
生成决策,这些决策随后传递给执行环境 (Execution Env)
,后者返回执行结果。
用户可自定义交易算法的频率、决策内容以及执行环境(例如日内交易、日频交易、周频交易),并且执行环境内部可以嵌套更细粒度的交易算法和执行环境(即图中的子工作流,例如日频订单可通过日内拆单转化为更细粒度的决策)。这种嵌套决策执行框架的灵活性使用户能够轻松探索不同层级交易策略组合的效果,并打破不同层级交易算法之间的优化壁垒。
在QlibRL的支持下,可以实现对嵌套决策执行框架的优化。如需了解更多关于如何使用 QlibRL 的信息,请参阅 API 参考:RL API。
示例
高频率交易的嵌套决策执行框架示例可在此处找到。
此外,除了上述示例外,这里还有一些关于 Qlib 中高频交易的相关研究工作。