Universal Trading for Order Execution with Oracle Policy Distillation
原文传送门:https://arxiv.org/abs/2103.10860v1
1 解决了什么问题?
旨在追求长期利润最大化的金融投资,通常表现为不断调整资产组合的连续过程。这个过程的一个不可或缺的环节是 订单执行(Order Execution),包括调整投资组合的动作。以股票投资为例,这个市场的投资者构建了各种金融工具(instruments)的投资组合。
单执行的主要挑战在于在避免短期大额交易造成的有害“ 市场影响 ”和抑制“ 价格风险 ”之间进行权衡,即丢失由于执行缓慢,良好的交易机会。传统的分析解决方案往往采用一些严格的市场流动性假设,即价格变动和交易量方差,然后基于随机控制理论和动态规划原理推导出一些封闭形式的交易策略。但由于市场假设与现实之间的不一致,这些基于模型的方法在实际中不太可能有效。
根据订单执行的顺序决策特征,已经从无模型的角度提出了强化学习解决方案并被越来越多地利用纯粹基于市场数据与市场环境互动来优化执行策略。作为数据驱动的方法,强化学习解决方案不一定受限于那些不切实际的金融假设,因此更有能力捕捉市场的微观结构以更好地执行。然而,RL 解决方案可能会遇到一个重要问题,即 大量嘈杂和不完美的信息。一方面,嘈杂的数据可能导致 RL 方法的样本效率非常低,从而导致学习到的顺序执行策略的效果不佳。更重要的是,在采取行动时唯一可以利用的信息是历史市场信息,没有任何明显的线索或对市场价格或交易活动的未来趋势的准确预测。此类问题确实为获取政策以通过有利可图且合理的交易行为实现最佳交易策略设置了巨大障碍。
作者提出了一种通用的订单执行策略优化框架。该框架引入了一种新颖的 策略蒸馏方法,以弥合嘈杂但不完善的市场信息与最佳订单执行策略之间的差距。这种方法本质上是一种 师生学习范式,在这种范式中,教师在获得完美信息的情况下,接受培训以制定最佳交易策略,而学生则通过模仿教师的最佳行为模式进行学习。在实际使用中,只有信息不完善的普通学生政策才会被利用,而不会出现教师或任何未来信息泄漏的情况。另外,由于基于 RL 的模型可以使用来自各种仪器的所有数据进行学习,因此可以在很大程度上缓解模型过度拟合的问题。
2 解决方法是什么?
2.1 订单执行定义
通常,订单执行是在预定时间范围内(例如,一小时或一天)内进行交易的情况下制定的。我们遵循广泛应用于现实的简化,其中交易基于离散时间空间。假设有 T T T 个时间步长 { 0 , 1 , . . . , T − 1 } \\{0,1,…,T-1\\} {0,1,...,T−1},对应时间步长上有相应的交易价格 { p 0 , p 1 , . . . , p T − 1 } \\{p_0,p_1,…,p_{T-1}\\} {p0,p1,...,pT−1},在每个时间步 t ∈ { 0 , 1 , … , T − 1 } t \\in\\{0,1, \\ldots, T-1\\} t∈{0,1,…,T−1},交易者将交易 q t + 1 ≥ 0 q_{t+1} ≥ 0 qt+1≥0 股,交易订单则会在 p t + 1 p_{t+1} pt+1 的交易价格下执行交易。最优订单执行以 完成清算的收入最大化 为目标,假设在整个时间范围内有全部 Q Q Q 股被清算,可以表述为:
arg max q 1 , q 2 , … , q T ∑ t = 0 T − 1 ( q t + 1 ⋅ p t + 1 ) , s.t. ∑ t = 0 T − 1 q t + 1 = Q \\underset{q_{1}, q_{2}, \\ldots, q_{T}}{\\arg \\max } \\sum_{t=0}^{T-1}\\left(q_{t+1} \\cdot p_{t+1}\\right), \\text { s.t. } \\sum_{t=0}^{T-1} q_{t+1}=Q q1,q2,…,qTargmaxt=0∑T−1(qt+1⋅pt+1), s.t. t=0∑T−1qt+1=Q
Average execution price (AEP) 的计算为:
P ˉ = ∑ t = 0 T − 1 ( q t + 1 ⋅ p t + 1 ) ∑ t = 0 T − 1 q t + 1 = ∑ t = 0 T − 1 q t + 1 Q ⋅ p t + 1 \\bar{P}=\\frac{\\sum_{t=0}^{T-1}\\left(q_{t+1} \\cdot p_{t+1}\\right)}{\\sum_{t=0}^{T-1} q_{t+1}}=\\sum_{t=0}^{T-1} \\frac{q_{t+1}}{Q} \\cdot p_{t+1} Pˉ=∑t=0T−1qt+1∑t=0T−1(qt+1⋅pt+1)=t=0∑T−1Qqt+1⋅pt+1
上面的等式表示,对于 清算,交易者需要 最大化平均执行价格 P ˉ \\bar{P} Pˉ 以便获得尽可能多的收入。
请注意,对于 收购 而言,目标是相反的,交易者将最小化执行价格 P ˉ \\bar{P} Pˉ 以降低收购成本。
2.2 马尔可夫决策过程定义
状态:在时间步长 t t t 观察到的状态 s t s_t st 描述了整个系统的状态信息,包括交易者和市场变量。交易 agent 广泛使用的两种信息是 交易者的私有变量 和 市场的公共变量。私有变量包括经过时间 t t t 和剩余库存 ( Q − ∑ i = 1 t q i ) \\left(Q-\\sum_{i=1}^{t} q_{i}\\right) (Q−∑i=1tqi)。至于公共变量,它有点棘手,因为交易者只观察到不完善的市场信息。具体来说,人们只能考虑在时间 t t t 或之前观察到的过去市场历史,以做出下一时间步的交易决策。市场信息包括每个时间步的开盘价、最高价、最低价、收盘价、均价和成交量。
动作:给出观测到的状态 s t s_t st,agent 根据自己的交易策略 π \\pi π 做出决策 a t = π ( s t ) a_t=\\pi(s_t) at=π(st),其中 a t a_t at 是离散的,是目标订单 Q Q Q 的占比。因此,下次执行的交易量为 q t + 1 = a t ⋅ Q q_{t+1} = a_t ·Q qt+1=at⋅Q,并且每个动作 a t a_t at 都是交易者的标准化交易量。
本文假设整个时间范围内所有 agent 动作的总和满足订单履行的约束 ∑ t = 0 T − 1 a t = 100 % \\sum_{t=0}^{T-1} a_{t}=100 \\% ∑t=0T−1at=100%。因此,agent 将不得不在最后 ( T − 1 ) (T -1) (T−1) 的决策时间提出 a T − 1 = max { 1 − ∑ i = 0 T − 2 a i , π ( s T − 1 ) } a_{T-1}=\\max \\left\\{1-\\sum_{i=0}^{T-2} a_{i}, \\pi\\left(s_{T-1}\\right)\\right\\} aT−1=max{1−∑i=0T−2ai,π(sT−1)} 以实现订单目标。但是,在最后一个交易时间步留下过多的交易量是具有高价格风险的,这就需要交易代理每次都考虑未来的市场动态,以获得更好的执行性能。
收益:订单执行的回报实际上包括两个实际冲突的方面,交易盈利能力 和 市场影响惩罚。作者在每次做出决策后划分并定义立即奖励,为了反映由该操作引起的交易盈利能力,作者将奖励的正部分制定为 成交量加权价格优势:
R ^ t + ( s t , a t ) = q t + 1 Q ⋅ ( p t + 1 − p ~ p ~ ) ⏞ price normalization = a t ( p t + 1 p ~ − 1 ) \\hat{R}_{t}^{+}\\left(s_{t}, a_{t}\\right)=\\frac{q_{t+1}}{Q} \\cdot \\overbrace{\\left(\\frac{p_{t+1}-\\tilde{p}}{\\tilde{p}}\\right)}^{\\text {price normalization }}=a_{t}\\left(\\frac{p_{t+1}}{\\tilde{p}}-1\\right) R^t+(st,at)=Qqt+1⋅(p~pt+1−p~) price normalization =at(p~pt+1−1)
其中, p ~ = 1 T ∑ i = 0 T − 1 p i + 1 \\tilde{p}=\\frac{1}{T} \\sum_{i=0}^{T-1} p_{i+1} p~=T1∑i=0T−1pi+1 是整个时间范围内的平均市场价格。作者这里将归一化应用于等式中的绝对收入增益,以便消除不同工具价格和目标订单量的差异,优化各种工具的通用交易策略。尽管这里利用未来价格来计算 R ^ t + \\hat{R}_{t}^{+} R^t+,但奖励不包含在状态中,因此不会影响 agent 的行为或导致任何信息泄漏。它只会在训练期间的反向传播中生效。
为了考虑交易活动可能对当前市场状态产生一些影响的可能性,作者对 股票的数量(每个决策时间交易的目标订单的比例 a t a_t at) 上加入了 二次惩罚:
R ^ t − = − α ( a t ) 2 \\hat{R}_{t}^{-}=-\\alpha\\left(a_{t}\\right)^{2} R^t−=−α(at)2
其中, α \\alpha α 控制着交易活动对市场的影响程度。因此,结合上述两个式子,得出每一个时间步 t t t 上的 Reward:
R t ( s t , a t ) = R ^ t + ( s t , a t ) + R ^ t − ( s t , a t ) = ( p t + 1 p ~ − 1 ) a t − α ( a t ) 2 \\begin{aligned} R_{t}\\left(\\boldsymbol{s}_{t}, a_{t}\\right) &=\\hat{R}_{t}^{+}\\left(\\boldsymbol{s}_{t}, a_{t}\\right)+\\hat{R}_{t}^{-}\\left(\\boldsymbol{s}_{t}, a_{t}\\right) \\\\ &=\\left(\\frac{p_{t+1}}{\\tilde{p}}-1\\right) a_{t}-\\alpha\\left(a_{t}\\right)^{2} \\end{aligned} Rt(st,at)=R^t+(st,at)+R^t−(st,at)=(p~pt+1−1)at−α(at)2
因此,在策略 π \\pi π 下,整个过程的 期望累计折扣回报 为 E π [ ∑ t = 0 T − 1 γ t R t ] \\mathbb{E}_{\\pi}\\left[\\sum_{t=0}^{T-1} \\gamma^{t} R_{t}\\right] Eπ[∑t=0T−1γtRt]。RL 算法的最终优化的目标为:
arg max π E π [ ∑ t = 0 T − 1 γ t R t ( s t , a t ) ] \\underset{\\pi}{\\arg \\max } \\mathbb{E}_{\\pi}\\left[\\sum_{t=0}^{T-1} \\gamma^{t} R_{t}\\left(s_{t}, a_{t}\\right)\\right] πargmaxEπ[t=0∑T−1γtRt(st,at)]
两个假设:
- 暂时的市场影响已被用作奖励惩罚,本文假设市场具有弹性,并将在下一个时间步反弹至均衡状态;
- 忽略佣金和交易费用,因为对于本文主要针对的机构投资者而言,这些费用相对较小.
2.3 策略蒸馏和策略优化
2.3.1 策略蒸馏
本文目标是弥合不完美信息和最佳交易动作序列之间的差距。端到端训练的 RL 策略可能无法有效地从不完善且嘈杂的市场信息中捕获代表性模式。因此,尤其是对于 RL 算法,它可能会导致样本效率低得多。为了解决这个问题,作者提出了一个 带有师生政策蒸馏的两阶段学习范式。
首先解释不完美和完美信息。除了包含剩余时间和剩余未执行订单量的 私有变量 外,在某一个 episode 的时间 t t t,agent 还将收到 公共变量 的状态,即特定工具价格的市场信息和整个市场的整体交易量。然而,实际交易者只有在决策时间 t t t 之前收集的历史市场信息。作者将历史市场信息定义为不完全信息,并将其状态定义为公共状态 s t s_t st。相反,假设一个预言机有未来市场趋势的线索,她可以用这个完美的信息推导出最优决策序列,这里将完全信息记为 s t ~ \\tilde{s_t} st~。
Teacher 扮演预言家的角色,其目标是通过与环境交互给定完美信息 s t ~ \\tilde{s_t} st~ 来实现最优交易策略 π ~ ϕ ( ⋅ ∣ s ~ t ) \\tilde{\\pi}_{\\phi}\\left(\\cdot \\mid \\tilde{\\boldsymbol{s}}_{t}\\right) π~ϕ(⋅∣s~t),其中 ϕ \\phi ϕ 是教师策略的参数。
Student 在给定不完善信息 s t s_t st 的情况下,通过与环境交互来优化具有参数 θ \\theta θ 的公共策略 π θ ( ⋅ ∣ s t ) \\pi_{\\boldsymbol{\\theta}}\\left(\\cdot \\mid s_{t}\\right) πθ(⋅∣st) 来学习。
为了在 不完美信息 与 最佳交易策略 之间建立联系,作者为学生定义了 策略蒸馏损失 L d L_d Ld。一个适当的形式是负对数似然损失,它衡量学生的决定与教师的行为的匹配程度:
L d = − E t [ log Pr ( a t = a ~ t ∣ π θ , s t ; π ϕ , s ~ t ) ] L_{d}=-\\mathbb{E}_{t}\\left[\\log \\operatorname{Pr}\\left(a_{t}=\\tilde{a}_{t} \\mid \\pi_{\\boldsymbol{\\theta}}, \\boldsymbol{s}_{t} ; \\pi_{\\boldsymbol{\\phi}}, \\tilde{\\boldsymbol{s}}_{t}\\right)\\right] Ld=−Et[logPr(at=a~t∣πθ,st;πϕ,s~t)]
其中, a t a_t at 表示由学生的策略 π θ ( ⋅ ∣ s t ) \\pi_{\\boldsymbol{\\theta}}\\left(\\cdot \\mid s_{t}\\right) πθ(⋅∣st) 给出的动作, a t ~ \\tilde{a_t} at~ 表示由教师的策略 π ~ ϕ ( ⋅ ∣ s ~ t ) \\tilde{\\pi}_{\\phi}\\left(\\cdot \\mid \\tilde{\\boldsymbol{s}}_{t}\\right) π~ϕ(⋅∣s~t) 给出的动作, E t \\mathbb{E}_{t} Et 表示在所有时间步长上求经验期望。
教师用于实现最佳动作序列,然后将用于指导常规策略(学生)的学习。尽管利用完美的信息,可以使用基于搜索的方法找到最佳动作序列,但这可能需要人类知识,并且效率很低,计算复杂度极高,如我们的补充所述。此外,基于学习的教师 的另一个关键优势在于其普遍性,能够将这种方法转移到其他任务中,尤其是在很难培养专家或利用人类知识的情况下。
2.3.2 策略优化
现在我们来讨论教师和学生的学习算法。教师和学生的每个策略分别使用相同的算法进行优化,因此我们用学生符号来描述优化算法,教师的优化算法可以通过交换状态和策略符号来类似地推导出来。
使用上述 MDP 形式化,作者使用 Actor-Critic 形式的 PPO 算法来优化策略,以直接在 episode 中最大化实现的预期奖励。PPO 是一种 on-policy 的 RL 算法,它通过最小化策略的目标函数来寻求信任区域内的最优策略。
L p ( θ ) = − E t [ π θ ( a t ∣ s t ) π θ old ( a t ∣ s t ) A ^ ( s t , a t ) − β KL [ π θ old ( ⋅ ∣ s t ) , π θ ( ⋅ ∣ s t ) ] ] L_{p}(\\boldsymbol{\\theta})=-\\mathbb{E}_{t}\\left[\\frac{\\pi_{\\boldsymbol{\\theta}}\\left(a_{t} \\mid \\boldsymbol{s}_{t}\\right)}{\\pi_{\\boldsymbol{\\theta}_{\\text {old }}}\\left(a_{t} \\mid \\boldsymbol{s}_{t}\\right)} \\hat{A}\\left(\\boldsymbol{s}_{t}, a_{t}\\right)-\\beta \\operatorname{KL}\\left[\\pi_{\\boldsymbol{\\theta}_{\\text {old }}}\\left(\\cdot \\mid \\boldsymbol{s}_{t}\\right), \\pi_{\\boldsymbol{\\theta}}\\left(\\cdot \\mid \\boldsymbol{s}_{t}\\right)\\right]\\right] Lp(θ)=−Et[πθold (at∣st)πθ(at∣st)A^(st,at)−βKL[πθold (⋅∣st),πθ(⋅∣st)]]
这里的 θ \\theta θ 为策略网络的当前参数, θ o l d \\theta_{old} θold 为更新之前的策略网络参数, A ^ ( s t , a t ) \\hat{A}\\left(s_{t}, a_{t}\\right) A^(st,at) 为估计的优势:
A ^ ( s t , a t ) = R t ( s t , a t ) + γ V θ ( s t + 1 ) − V θ ( s t ) \\hat{A}\\left(s_{t}, a_{t}\\right)=R_{t}\\left(s_{t}, a_{t}\\right)+\\gamma V_{\\boldsymbol{\\theta}}\\left(s_{t+1}\\right)-V_{\\boldsymbol{\\theta}}\\left(s_{t}\\right) A^(st,at)=Rt(st,at)+γVθ(st+1)−Vθ(st)
V θ ( ⋅ ) V_{\\boldsymbol{\\theta}}(\\cdot) Vθ(⋅) 是 Critic 网络逼近的值函数,通过一个值函数损失优化。
L v ( θ ) = E t [ ∥ V θ ( s t ) − V t ∥ 2 ] L_{v}(\\boldsymbol{\\theta})=\\mathbb{E}_{t}\\left[\\left\\|V_{\\boldsymbol{\\theta}}\\left(\\boldsymbol{s}_{t}\\right)-V_{t}\\right\\|_{2}\\right] Lv(θ)=Et[∥Vθ(st)−Vt∥2]
V t V_t Vt 是累积未来奖励的经验值,计算如下:
V t = ∑ t ′ = t T − 1 E [ γ T − t ′ − 1 R t ′ ( s t ′ , a t ′ ) ] V_{t}=\\sum_{t^{\\prime}=t}^{T-1} \\mathbb{E}\\left[\\gamma^{T-t^{\\prime}-1} R_{t^{\\prime}}\\left(s_{t^{\\prime}}, a_{t^{\\prime}}\\right)\\right] Vt=t′=t∑T−1E[γT−t′−1Rt′(st′,at′)]
K L KL KL 散度的惩罚项控制更新迭代内的变化,其目标是稳定参数更新。自适应惩罚参数 β β β 根据 K L KL KL 散度项的结果进行调整。
PPO 相关细节可看:https://blog.csdn.net/weixin_41960890/article/details/120693516
因此,学生的整体目标函数包括 策略损失 L p L_p Lp、价值函数损失 $L_v
$ 和 策略蒸馏损失 L d L_d Ld 为:
L ( θ ) = L p + λ L v ⏞ policy optimization + μ L d ⏞ policy distillation L(\\boldsymbol{\\theta})=\\overbrace{L_{p}+\\lambda L_{v}}^{\\text {policy optimization }}+\\overbrace{\\mu L_{d}}^{\\text {policy distillation }} L(θ)=Lp+λLv policy optimization +μLd policy distillation
其中 λ λ λ 和 μ μ μ 是价值函数损失和策略蒸馏损失的权重。策略网络被优化为使用梯度下降法最小化整体损失。需要注意的是,教师 L ( ϕ ) L(\\phi) L(ϕ) 的整体损失函数没有策略蒸馏损失。
2.3.3 策略网络(Policy Network)结构
策略网络中有几个组件,其中参数 θ θ θ 由 Actor 和 Critic 共享。两个循环神经网络 (RNN) 已分别用于从公共变量和私有变量提取高层表示。使用 RNN 的原因是为了捕获一个 episode 中连续演化状态的时间模式。然后将获得的两个表示组合并馈入推理层,以计算 Actor 层和 Critic 层的综合表示。Actor 层将提出当前状态下的最终动作分布。在训练过程中,作者遵循 PPO 的原始工作,采样最后的动作,也就是产生的动作分布 π ( ⋅ ∣ s t ) π(·|s_t) π(⋅∣st)。在评估和测试中,无需探索(exploration),就直接由 a t = arg max a π ( ⋅ ∣ s t ) a_{t}=\\arg \\max _{a} \\pi\\left(\\cdot \\mid s_{t}\\right) at=argmaxaπ(⋅∣st) 采取动作。
与之前的相关研究相比,本文的主要新颖之处在于作者采用了一种新颖的 策略蒸馏范式 来帮助共同策略更有效地逼近最优交易策略。此外,除了使用不同的策略网络架构外,作者还为所有工具的通用交易提出了一个 标准化的奖励函数,这比单独对单个工具进行训练更有效。此外,作者发现从其他工具数据中学到的一般模式可以提高交易性能。
3 关键实验结果有什么?
作者围绕着三个研究问题进行实验:
- 我们的方法是否成功找到了适用于所有工具的正确订单执行策略?
- 策略蒸馏方法是否有助于我们的 agent 提高整体交易性能?
- 每个对比方法说明了哪些典型的执行模式?
3.1 对比方法
- TWAP (Time-weighted Average Price). 是一种基于模型的策略,它将订单平均分成 T T T 块,并在每个时间步平均执行相同数量的份额。在市场价格遵循布朗运动的假设下,它已被证明是最优策略。
- AC (Almgren-Chriss). 是一种基于模型的方法),它通过分析找到最优执行的有效边界。我们只考虑暂时的价格影响以进行公平比较。
- VWAP (Volume-weighted Average Price). 是另一种基于模型的策略,它根据(经验估计的)市场交易量分配订单,以使执行价格密切跟踪市场平均价格基本事实。
- DDQN (Double Deep Q-network). 是一种基于 Value 的 RL 方法,并针对单个工具采用状态工程优化。
- PPO. 是一种基于策略的 RL 方法,它利用 PPO 算法和稀疏奖励来训练具有循环神经网络的 agent 进行状态特征提取。那里的功能和网络架构与本文的方法不同。(An End-to-End Optimal Trade Execution Framework based on Proximal Policy Optimization. https://www.ijcai.org/proceedings/2020/627)
- OPD. 是我们上面描述的我们提出的方法,它有另外两个用于消融研究的变体: O P D S OPD^{S} OPDS 是在没有预言机指导的情况下训练的纯学生,而 O P D T OPD^T OPDT 是在完美市场信息下训练的教师。
本文代码链接:https://seqml.github.io/opd/
3.2 数据集
所有比较的方法都使用 中国A股市场股票 的历史交易数据进行训练和评估。该数据集包含
- 分钟级价格-成交量市场信息;
- 2017年1月1日至2019年6月30日每个工具每个交易日的订单量。
本文专注于每日内订单执行,同时本文的方法可以很容易地适应更高频的交易场景。
数据集根据交易时间分为训练数据集、验证数据集和测试数据集。由于作者计算能力的限制,我们只保留了 CSI800 验证和测试数据集的工具。对于所有基于模型的方法,基于训练数据集设置参数,直接在测试数据集上评估性能。对于所有基于学习的 RL 方法,策略是在训练数据集上训练的,并且在验证数据集上调整超参数。
3.3 评估流程
每个交易策略都按照下图的程序进行评估。给定交易策略,我们需要通过评估数据来评估订单执行的性能。在(1)评估开始后,如果(2)还有未执行的订单,(3)下一个订单记录将用于日内订单执行评估。否则,(4)评估流程结束。对于每个订单记录,一旦时间范围结束或订单完成,订单的执行就会结束。在数据集中的所有订单都执行完毕后,将报告整体性能。
3.3.1 评价指标
第一个指标:reward. 尽管一些方法是基于模型的(即 TWAP、AC、VWAP)或使用不同的奖励函数(即 PPO),但它们的交易轨迹的奖励都将计算为: 1 ∣ D ∣ ∑ k = 1 ∣ D ∣ ∑ t = 0 T − 1 R t k ( s t k , a t k ) \\frac{1}{|\\mathbb{D}|} \\sum_{k=1}^{|\\mathbb{D}|} \\sum_{t=0}^{T-1} R_{t}^{k}\\left(\\mathbf{s}_{t}^{k}, a_{t}^{k}\\right) ∣D∣1∑k=1∣D∣∑t=0T−1Rtk(stk,atk),其中 R t k R_{t}^{k} Rtk 表示在第 t t t 个时间步上的第 i i i 个订单收到的奖励(上文中有给出相关公式), ∣ D ∣ |\\mathbb{D}| ∣D∣ 为数据集的大小。
第二个指标:Price advantage (PA). price advantage ( P A ) = 1 0 4 ∣ D ∣ ∑ k = 1 ∣ D ∣ ( P ˉ srategy k p ~ k − 1 ) \\text { price advantage }(\\mathbf{P A})=\\frac{10^{4}}{|\\mathbb{D}|} \\sum_{k=1}^{|\\mathbb{D}|}\\left(\\frac{\\bar{P}_{\\text {srategy }}^{k}}{\\tilde{p}^{k}}-1\\right) price advantage (PA)=∣D∣104∑k=1∣D∣(p~kPˉsrategy k−1)。其中, P ˉ srategy k \\bar{P}_{\\text {srategy }}^{k} Pˉsrategy k 是策略在第 k k k 个订单上实现的对应 AEP。这衡量了交易策略的相对收益与基线价格 p ~ k \\tilde{p}^{k} p~k 的收益相比。通常, p ~ k \\tilde{p}^{k} p~k 是特定交易日该工具的平均市场价格,对于所有比较的方法来说都是常数。
第三个指标:gain-loss ratio (GLR). gain-loss ratio ( G L R ) = E [ P A ∣ P A > 0 ] E [ P A ∣ P A 0]}{\\mathbb{E}[\\mathrm{PA} \\mid \\mathrm{PA}<0]} gain-loss ratio (GLR)=E[PA∣PA<0]E[PA∣PA>0]。 PA \\text{PA} PA 以基点 (BP) 衡量,其中一个基点等于 0.01 % 0.01\\% 0.01%。
我们对 PA \\text{PA} PA 和奖励进行了显著性检验,以验证性能改进的统计显着性。
3.4 实验结果
3.4.1 整体情况
实验结果如下图表示,其中标有 “*” 的结果指在显著性检验中 p − v a l u e < 0.01 p-value < 0.01 p−value<0.01。
- 在没有教师指导的情况下,包括 O P D S OPD^S OPDS 在内的所有比较方法中, O P D OPD OPD 的性能最好,这说明了预言机策略蒸馏的有效性,从而回答了第二个研究问题;
- 所有基于模型的方法都比基于学习的方法表现更差,因为它们采用的市场假设在现实世界中可能不切实际。 此外,他们未能捕捉到市场的微观结构,无法相应地调整策略。 由于 T W A P TWAP TWAP 将订单平均分配到每个时间步,因此 T W A P TWAP TWAP 的 A E P AEP AEP 始终为 p ~ \\tilde{p} p~。 因此 T W A P TWAP TWAP 的 P A PA PA 和 G L R GLR GLR 结果都为零;
- 我们提出的方法优于其他基于学习的方法,回答了第一个研究问题。对于 D D Q N DDQN DDQN,我们可以得出结论,基于值的方法很难为所有工具学习通用 Q Q Q 函数。在将 O P D S OPD^S OPDS 与 P P O PPO PPO 进行比较时,我们得出结论,归一化的即时奖励函数可能在很大程度上有助于提高性能。
3.4.2 Learning analysis
- 所有这些方法经过大约 800 万步训练后都达到稳定收敛;
- 在所有基于学习的方法中,我们的 O P D OPD OPD 方法在收敛后稳定地在验证集上实现了最高的 P A PA PA 和奖励结果,这表明了预言家策略蒸馏的有效性;
- 尽管 O P D S OPD^S OPDS 和 O P D OPD OPD 在训练数据集上的性能差距相对较小,但 O P D OPD OPD 在验证数据集上明显优于 O P D S OPD^S OPDS,这表明预言家指导可以帮助学习更通用和有效的交易策略。
3.4.3 案例分析
作者进一步研究了不同策略的行动模式,以回答第三个研究问题。本文展示了基于学习的方法的执行细节。彩色线显示这些 agent 每分钟交易的股票量,灰色线显示当日标的交易资产的市场价格 p t p_t pt 的趋势。
可以看到,在所有情况下, O P D T OPD^T OPDT 老师总是能捕捉到最佳交易机会。这是合理的,因为 O P D T OPD^T OPDT 可以充分观察到完美的信息,包括未来的趋势。 D D Q N DDQN DDQN 在所有情况下的执行情况完全相同,这说明 D D Q N DDQN DDQN 没有根据市场动态调整其执行策略,因此表现不佳。对于 P P O PPO PPO 和 O P D S OPD^S OPDS,他们要么错过最佳执行价格,要么在糟糕的市场机会中浪费库存。
除了教师 O P D T OPD^T OPDT 之外,我们提出的 O P D OPD OPD 方法在所有三种情况下都优于所有其他方法。在案例 1 中, O P D OPD OPD 抓住了最佳机会并设法找到了最佳动作序列。尽管 O P D OPD OPD 未能在 Case2 中捕捉到最佳交易时间,但它仍然设法找到了一个相对较好的机会并实现了合理且有利可图的操作序列。然而,由于在交易日开始时没有观察到任何信息,我们的方法往往会在一天开始时错过一些机会,如案例 3 所示。尽管如此,在这种情况下, O P D OPD OPD 仍然设法找到一个次优交易机会并说明了其他方法的一些优势。