量化交易中的强化学习

强化学习

与分类任务和回归任务等监督学习任务不同,机器学习中的另一种重要范式是强化学习(RL),它在马尔可夫决策过程(MDP)等若干假设下,通过直接与环境交互来优化累积的数值奖励信号。

如以下图示所示,一个 RL 系统由四个要素组成:1)智能体;2)智能体所交互的环境;3)智能体用于在环境中采取行动的策略;4)环境向智能体提供的奖励信号。通常,智能体能够感知并理解其环境,通过采取行动并依据奖励进行学习,以追求长期最大化的总体奖励,从而实现最优解。

../../_images/RL_framework.png

强化学习通过试错来学习如何产生动作。通过采样动作并观察哪些动作能带来期望的结果,从而获得一个生成最优动作的策略。与监督学习不同,强化学习并非从标签中学习,而是从一种称为奖励的时间延迟标签中学习。这个标量值告诉我们当前结果是好是坏。简而言之,强化学习的目标是采取行动以最大化奖励。

Qlib 强化学习工具包(QlibRL)是一个面向量化投资的强化学习平台,为在 Qlib 中实现强化学习算法提供支持。

量化交易中的潜在应用场景

强化学习方法在游戏、资源分配、推荐系统、营销和广告等多种应用中已展现出显著成果。在涉及连续决策的投资领域,我们以股票市场为例:投资者通过各种买卖行为,有效管理其仓位和持股,以优化投资回报。此外,投资者在做出每一笔买卖决策前,都会仔细评估市场状况和个股信息。从投资者的角度看,这一过程可视为由与市场互动驱动的连续决策过程。强化学习算法为应对此类挑战提供了有前景的解决方案。以下是强化学习在量化投资中具有应用潜力的几个场景。

订单执行

订单执行任务旨在综合考虑多种因素(如最优价格、最小化交易成本、降低市场冲击、提高订单成交率、在指定时间内完成执行)高效地执行订单。可通过将这些目标融入奖励函数和动作选择过程,将强化学习应用于此类任务。具体而言,强化学习智能体与市场环境交互,从市场信息中观测状态,并决定下一步的执行动作。强化学习算法通过试错学习一种最优执行策略,旨在最大化预期累积奖励,该奖励融合了所需的目标。

  • 通用设置
    • 环境:环境代表订单执行发生的金融市场,包括订单簿动态、流动性、价格变动和市场状况等变量。

    • 状态:状态是指在给定时间步中强化学习(RL)智能体所获得的信息。它通常包括当前订单簿状态(买卖价差、订单深度)、历史价格数据、历史交易量、市场波动性以及其他有助于决策的相关信息。

    • 动作:动作是 RL 智能体根据观察到的状态所做出的决策。在订单执行中,动作可包括选择订单数量、价格和执行时机。

    • 奖励:奖励是一个标量信号,用于衡量 RL 智能体在环境中的动作表现。奖励函数的设计旨在鼓励那些能实现高效且低成本订单执行的动作。它通常综合考虑多个目标,例如最大化价格优势、最小化交易成本(包括交易费用和滑点)、降低市场冲击(订单对市场价格的影响)以及提高订单成交率。

  • 场景
    • 单资产订单执行:单资产订单执行专注于为特定资产(如股票或加密货币)执行单一订单的任务。主要目标是在考虑最大化价格优势、最小化交易成本、降低市场冲击和实现高成交率等因素的前提下高效执行订单。RL 智能体与市场环境交互,针对该特定资产决定订单数量、价格和执行时机。其目标是学习一种最优的单资产执行策略,在考虑该资产特定动态和特征的同时,最大化预期累积奖励。

    • 多资产订单执行:多资产订单执行将订单执行任务扩展至涉及多个资产或证券。它通常涉及同时或顺序执行跨多个资产的投资组合订单。与单资产订单执行不同,其关注点不仅在于单个订单的执行,还在于管理投资组合中不同资产之间的相互作用与依赖关系。RL 智能体需要为投资组合中的每个资产决定订单数量、价格和执行时机,同时考虑它们之间的相互依赖性、资金约束、市场状况和交易成本。其目标是学习一种最优执行策略,在兼顾每个资产执行效率的同时,实现整个投资组合的整体表现和目标。

设置和 RL 算法的选择取决于任务的具体需求、可用数据以及期望的性能目标。

投资组合构建

投资组合构建是选择和配置投资组合中资产的过程。强化学习提供了一个框架,通过与市场环境的交互学习,优化投资组合管理决策,在考虑风险管理的同时最大化长期收益。
  • 通用设置
    • 状态:状态表示市场和投资组合的当前信息,通常包括历史价格和交易量、技术指标以及其他相关数据。

    • 动作:动作对应于将资本分配至投资组合中不同资产的决策,它决定了每个资产的投资权重或比例。

    • 奖励:奖励是评估投资组合表现的指标,可有多种定义方式,例如总收益、风险调整后收益,或最大化夏普比率、最小化回撤等其他目标。

  • 场景
    • 股票市场:强化学习可用于构建股票投资组合,智能体学习如何在不同股票之间分配资本。

    • 加密货币市场:强化学习可用于构建加密货币投资组合,智能体学习做出分配决策。

    • 外汇(Forex)市场:强化学习可用于构建货币对投资组合,智能体根据汇率数据、经济指标及其他因素学习在不同货币之间分配资本。

同样,基础设置和算法的选择取决于问题的具体需求和市场的特性。