摘要
https://arxiv.org/pdf/2505.15155v1
金融市场因其高维度、非平稳性以及持续的波动性,给资产收益率预测带来了根本性挑战。尽管大型语言模型和多智能体系统取得了进展,但当前的量化研究流程仍存在自动化程度有限、可解释性弱以及在因子挖掘和模型创新等关键组件之间协调碎片化的问题。在本文中,我们提出了面向量化金融的研发智能体(Research and Development-Agent for Quantitative Finance),简称 RD-Agent(Qi),这是首个以数据为中心的多智能体框架,旨在通过协调的因子 - 模型协同优化,实现量化策略全栈研发的自动化。RD-Agent(Q)将量化流程分解为两个迭代阶段:研究阶段动态设定与目标一致的提示,基于领域先验知识提出假设,并将其映射到具体任务;开发阶段则采用代码生成智能体 Co-STEER 来实现特定任务的代码,随后在真实市场回测中执行。这两个阶段通过反馈阶段相连,该阶段全面评估实验结果,并为后续迭代提供信息,同时采用多臂老虎机调度器进行自适应方向选择。经验表明,RD-Agent(Q)的年化收益率比经典因子库高出最多 2 倍,且使用的因子数量减少了 70%,在真实市场上表现优于最先进的深度时间序列模型。其联合因子 - 模型优化在预测准确性和策略稳健性之间实现了良好的平衡。我们的代码可在以下网址获取:https://github.com/microsoft/RD-Agent。
1 引言
金融市场构成高维、非线性动力学系统,其收益率序列呈现出厚尾分布[1]、时变波动性[2]以及复杂的横截面依赖性[3]。这些特征表明,资产价格同时受到宏观因素、微观结构信号和行为反馈的驱动[4 - 6],这使得预测比传统时间序列更具挑战性。在数据呈指数级增长以及计算能力和人工智能技术取得突破的推动下,资产管理行业正从经验驱动型向数据驱动型范式转变。在这一转变过程中,量化投资因以下原因正成为主流:(i)通过数据 - 因子 - 模型循环实现高效决策;(ii)集成风险控制下的可重复执行;(iii)在策略趋同加剧的情况下精确追求超额收益[7, 8]。
图 1 展示了现代量化研究流程。微软的开源项目 Qlib[9]简化了数据处理和回测,减轻了大量重复性工程负担。因此,这一转变将量化研究的重点重新导向其核心组件:因子挖掘和模型创新。因子挖掘从封闭形式的风险 - 收益模型[10, 11](如法玛 - 弗伦奇模型)发展到进化符号回归[12 - 14],最近还发展到因子组合的强化学习优化[15 - 17]。模型创新从经典自回归模型[18, 2]发展到机器学习模型[19 - 21]和序列到序列的深度学习架构(例如,GRU[22]和 LSTM[23])。最近的发展还包括专门的时间序列模型,这些模型将信号分解为趋势 - 季节性成分[24],或改进用于长期预测的注意力机制[25]。与此同时,股票特定模型通过图神经网络将时间事件序列与横截面依赖性相结合,以捕捉股票间的相互作用[26 - 28]。最近,大型语言模型(LLMs)和多智能体系统通过从新闻和社交网络中提取信号[29 - 31],以及模拟对冲基金和金融专家之间的协作[32 - 34],进一步扩展了信息集。
尽管取得了这些进展,但量化研究仍面临三个关键局限性:(i)自动化程度有限:当前工作流程在假设生成、编码和调优方面需要大量人工干预,导致迭代缓慢且存在偏差。此外,半自动化系统无法满足快速变化市场所需的响应速度和可扩展性。(ii)可解释性差:现有的基于 LLM 的智能体通常直接从语言交互中产生交易信号,没有基于因子的构建或透明的模型逻辑,因此容易出现幻觉。这阻碍了其在实时交易中的应用,因为在实时交易中,可解释性和风险控制至关重要。(iii)优化碎片化:量化流程涵盖数据处理、因子挖掘、模型训练和评估,但当前方法缺乏系统的任务分解或智能体级别的协调。这种孤立的结构限制了跨阶段的反馈和联合性能提升。
为了应对这些挑战,我们提出了 RD-Agent(Q),这是首个以数据为中心的多智能体框架,旨在通过协调的因子 - 模型协同优化实现全栈量化策略开发的自动化(图 2)。我们的框架将量化研究分解为涵盖两个核心阶段(研究和开发)的五个阶段。在研究阶段,规范单元从优化目标中动态生成与目标一致的提示。综合单元则从先前结果中构建特定任务的知识森林,并生成新的因子或模型假设,然后将其映射到可执行任务。在开发阶段,我们引入了 Co-STEER,这是一个利用思维链推理和基于图的知识存储的代码生成智能体。实现单元将假设转化为代码,而验证单元则运行真实市场回测。分析单元使用统一指标进行评估,并使用多臂老虎机调度器自适应地选择下一个优化方向。这形成了一个假设 - 实现 - 验证 - 反馈的闭环,支持策略的持续、目标导向的进化,标志着向智能和自主量化研究迈出了一步。
我们的主要贡献如下:
- 端到端自动化且具有透明度:RD-Agent(Q)是量化金融领域首个以数据为中心的多智能体框架,它实现了整个研发过程的自动化,并提供了可验证的输出,增强了可解释性,降低了幻觉风险。
- 高性能研发工具:在研究阶段,RD-Agent(Q)通过结构化的知识森林模拟分析师工作流程,能够生成连贯、高质量的假设。在开发阶段,我们提出了 Co-STEER,这是一个针对以数据为中心的任务量身定制的知识进化智能体,提高了因子和模型代码生成的准确性和效率。
- 强大的经验性能:在真实股票市场进行的广泛实验表明,在成本低于 10 美元的情况下,RD-Agent(Q)的年化收益率(ARR)比基准因子库高出约 2 倍,同时使用的因子数量减少了 70%以上。在资源预算较小的情况下,它也超越了最先进的深度时间序列模型。其交替的因子 - 模型优化在预测准确性和策略稳健性之间实现了出色的权衡。
2 RD-Agent(Q)
基于图1)和附录B中的正式量化研究流水线结构,我们提出了RD-Agent (Q),这是一个以数据为中心的多智能体框架,用于具备自动化、可解释性和高效性的迭代式因子模型研发。我们将量化流程分解为五个紧密耦合的单元:规范(场景定义)、综合(想法生成)、实现(代码开发)、验证(回测)和分析(结果评估与任务调度)。在统一的输入输出约束下,这些单元在一个闭环循环中运行,模拟人类量化研究人员的试错过程。与手动工作流程不同,RD-Agent (Q)能够持续、自主地运行,支持因子和模型组件的动态协同优化。此外,每一轮的假设、实现和结果都会被持久存储,从而实现知识的累积增长,并随着时间的推移做出更加明智的决策。
2.1 规范单元
规范单元是RD-Agent的顶层组件,负责为下游模块动态配置任务上下文和约束条件,确保设计、实现和评估之间的一致性。它沿着两个维度运行:(1)理论维度:将先验假设、数据模式和输出协议编码为结构化的规范;(2)经验维度:为回测建立可验证的执行环境和标准化接口,使智能体免受底层预处理和基础设施问题的困扰。通过将正式定义与统一接口相结合,该模块减少了歧义,提高了组件之间的协调效率。
我们将规范单元形式化为一个元组 S = ( B , D , F , M ) \mathcal{S}=(\mathcal{B}, \mathcal{D}, \mathcal{F}, \mathcal{M}) S=(B,D,F,M),其中 B \mathcal{B} B编码了关于因子或模型的背景假设和先验知识; D \mathcal{D} D定义了市场数据接口; F \mathcal{F} F表示预期输出格式(例如,因子张量或收益预测); M \mathcal{M} M表示外部执行环境(例如,基于Qlib的回测)。在此形式化定义下,任何候选因子或模型 f θ f_{\boldsymbol{\theta}} fθ都必须满足条件: ∀ , x ∈ D , ; f θ ( x ) ∈ F \forall, x \in \mathcal{D}, ; f_{\boldsymbol{\theta}}(x) \in \mathcal{F} ∀,x∈D,;fθ(x)∈F,且 f θ f_{\boldsymbol{\theta}} fθ在 M \mathcal{M} M内可执行。这确保了与标准化输入/输出结构的兼容性,并确保后续模块能够在共享的操作上下文中与 f θ f_{\theta} fθ交互,从而支持协作工作流程中的一致性和可重复性。
2.2 综合单元
综合单元通过基于历史实验生成新假设来模拟人类的推理过程。每个优化动作定义为 a t ∈ { 因子 , 模型 } a_{t} \in\{ \text{因子}, \text{模型} \} at∈{因子,模型}。对于当前动作 a t a_{t} at,该单元通过选择一组相关的历史实验来构建实验轨迹。第 t t t个实验表示为 e t = { h t , f t } e^{t}=\left\{h^{t}, f^{t}\right\} et={ht,ft},其中 h t h^{t} ht是假设, f t f^{t} ft是来自分析单元的相应反馈。一组当前表现最佳的解决方案被维护为SOTA(State-Of-The-Art)。基于此,历史假设和反馈集分别定义为 H t = { h 1 , … , h t } \mathcal{H}_{t}=\left\{h_{1}, \ldots, h_{t}\right\} Ht={h1,…,ht}和 F t = { f 1 , … , f t } \mathcal{F}_{t}=\left\{f_{1}, \ldots, f_{t}\right\} Ft={f1,…,ft}。然后,根据动作条件提取子集,如公式(1)所示。
F t ( a ) = { f i a ∈ F t ∣ a = a t ∨ e i ∈ SOTA ( a ) } H t ( a ) = { h i a ∈ H t ∣ a = a t ∨ h i ∈ SOTA ( a ) } \begin{array}{l} \mathcal{F}_{t}^{(a)}=\left\{f_{i}^{a} \in \mathcal{F}_{t} \mid a=a_{t} \vee e_{i} \in \operatorname{SOTA}(a)\right\} \\ \mathcal{H}_{t}^{(a)}=\left\{h_{i}^{a} \in \mathcal{H}_{t} \mid a=a_{t} \vee h_{i} \in \operatorname{SOTA}(a)\right\} \end{array} Ft(a)={fia∈Ft∣a=at∨ei∈SOTA(a)}Ht(a)={hia∈Ht∣a=at∨hi∈SOTA(a)}
这些子集被传递给生成映射函数 G G G(作为研究的核心,模拟理论先验和经验反馈的综合,以生成有效且新颖的假设),从而产生下一个假设: h ( t + 1 ) = G ( H t ( a ) , F t ( a ) ) h^{(t+1)}=G\left(\mathcal{H}_{t}^{(a)}, \mathcal{F}_{t}^{(a)}\right) h(t+1)=G(Ht(a),Ft(a))。在实践中,该模块依赖于结构化模板和标准化格式,以确保假设既可执行又具有科学依据。例如,在因子生成任务中, h ( ∗ + 1 ) h^{(*+1)} h(∗+1)不仅结合了最近的反馈,还考虑了当前的市场条件和特定领域的经济理论,从而确保因子的有效性和可观测性。为了促进多样性和渐进式改进,生成机制会根据性能反馈调整其策略。如果 F t ( a ) \mathcal{F}_{t}^{(a)} Ft(a)表明成功,则下一个假设会增加复杂性或范围;否则,它会进行结构调整或引入新变量,从而构成一个想法森林。这种自适应机制使智能体能够在保持对经验结果的响应性的同时探索新方向,支持迭代且有效的策略开发。
最后,假设 h t h^{t} ht被实例化为一个具体任务 t t t^{t} tt,下游实现模块使用该任务进行代码层面的实现。由于因子假设 h t factor h_{t}^{\text {factor }} htfactor 的异质性和潜在交互作用,它们可以被分解为多个子任务 t i factor t_{i}^{\text {factor }} tifactor 。相比之下,模型假设由于其结构一致性,被映射到一个单一任务 t model t^{\text {model }} tmodel 上,负责执行整个建模和推理流水线。
2.3 实现单元
实现单元负责将综合单元生成的可执行任务转换为功能代码。它是RD-Agent (Q)中复杂开发的核心。为了支持这一过程,我们设计了一个专门用于量化研究中因子和模型开发的智能体Co-STEER。如图4所示,Co-STEER集成了系统化的调度和代码生成策略,以确保实现的正确性、效率和适应性。
在因子开发中,任务通常表现出结构依赖性。为了解决这一问题,我们引入了一种引导式的思维链机制,鼓励推理的可追溯性。具体来说,智能体构建一个有向无环图(DAG) G = ( V , E ) \mathcal{G}=(\mathcal{V}, \mathcal{E}) G=(V,E)来表示任务依赖关系,其中从任务A到任务B的边意味着由于知识流动或复杂性,A应该在B之前执行。然后推导出一个拓扑排序 π S = ( t ( 1 ) , … , t ( n ) ) \pi_{S}=\left(t_{(1)}, \ldots, t_{(n)}\right) πS=(t(1),…,t(n))来指导任务执行。调度是自适应的。来自之前执行的反馈会不断整合以改进规划:任务上的重复失败表明复杂性增加,促使优先处理更简单的任务以增强知识积累和执行成功率。
对于每个任务 t j t_{j} tj,实现智能体 I I I根据任务描述和当前知识库生成其对应的代码 c j c_{j} cj,即 c j = I ( t j , K ) c_{j}=I\left(t_{j}, \mathcal{K}\right) cj=I(tj,K)。这一过程包括任务解析、代码合成与细化、执行和验证。智能体的目标是最大化累积实现质量: π I = arg max π E [ ∑ j = 1 n R I ( c j ) ] \pi_{I}=\arg \max _{\pi} \mathbb{E}\left[\sum_{j=1}^{n} R_{I}\left(c_{j}\right)\right] πI=argmaxπE[∑j=1nRI(cj)],其中 R I ( c j ) R_{I}\left(c_{j}\right) RI(cj)评估代码 c j c_{j} cj的正确性和性能。知识库 K \mathcal{K} K通过记录成功和失败的任务-代码-反馈三元组发挥着核心作用: K ( t + 1 ) = K ( t ) ∪ { ( t j , c j , f j ) } \mathcal{K}^{(t+1)}=\mathcal{K}^{(t)} \cup\left\{\left(t_{j}, c_{j}, f_{j}\right)\right\} K(t+1)=K(t)∪{(tj,cj,fj)},其中 f j f_{j} fj表示执行任务 t j t_{j} tj后收到的反馈。通过知识转移机制,实现智能体还可以根据当前反馈 f ( t ) f^{(t)} f(t)从知识库中检索类似任务的解决方案,从而提高新任务代码生成的效率和成功率: c new = arg max c k ∈ K similarity ( t new , t k ) ⋅ c k c_{\text {new }}=\arg \max _{c_{k} \in \mathcal{K}} \operatorname{similarity}\left(t_{\text {new }}, t_{k}\right) \cdot c_{k} cnew =argmaxck∈Ksimilarity(tnew ,tk)⋅ck。完整的算法细节在附录A.1中提供。
这种反馈驱动的优化循环使实现单元能够不断提高代码质量和效率,促进量化研究组件的快速和稳健开发。
2.4 验证单元
验证单元评估实现单元生成的因子或模型的实际有效性。对于因子,首先应用去重过程,通过计算它们与现有SOTA因子库的相关性来过滤掉冗余信号。给定连接后的因子矩阵 F = [ F SOTA , F new ] ∈ R T × ( M + N ) \mathbf{F}=\left[F_{\text {SOTA }}, F_{\text {new }}\right] \in \mathbb{R}^{T \times(M+N)} F=[FSOTA ,Fnew ]∈RT×(M+N),在每个时间切片内计算所有 M × N M \times N M×N对SOTA和新因子之间的IC(信息系数): IC m , n ( t ) = corr ( F SOTA, m ( t ) , F new, n ( t ) ) \operatorname{IC}_{m, n}^{(t)}=\operatorname{corr}\left(F_{\text {SOTA, } m}^{(t)}, F_{\text {new, } n}^{(t)}\right) ICm,n(t)=corr(FSOTA, m(t),Fnew, n(t)),其中 ( m , n ) (m, n) (m,n)索引一个SOTA-新因子对, t t t索引一个时间切片。然后,这些IC值在时间上取平均,对于每个新因子 n n n,获得其相对于所有SOTA因子的最大IC值: I C max ( n ) = max m E t [ I C m , n ( t ) ] \mathrm{IC}_{\max }^{(n)}=\max _{m} \mathbb{E}_{t}\left[\mathrm{IC}_{m, n}^{(t)}\right] ICmax(n)=maxmEt[ICm,n(t)]。具有 I C max ( n ) ≥ 0.99 \mathrm{IC}_{\max }^{(n)} \geq 0.99 ICmax(n)≥0.99的新因子被视为冗余并被排除。因子过滤后,剩余的候选因子与当前SOTA模型(或如果没有可用模型,则使用基线模型)结合,并通过Qlib回测平台进行评估。这允许在现实市场条件下评估性能。对于模型,过程是对称的:每个候选模型与当前SOTA因子集配对,并通过相同的回测流水线进行评估。
因此,验证单元提供了一个集成且自动化的流水线,支持在生产级市场模拟环境中对新型组件进行标准化评估。
2.5 分析单元
分析单元在RD-Agent (Q)框架中既作为研究评估器又作为策略分析师。在每次实验轮次后,它对当前假设 h t h^{t} ht、特定任务 t t t^{t} tt和实验结果 r t r^{t} rt进行多维评估。如果实验在动作类型 a t a_{t} at下被判定为优于SOTA,则其结果将被添加到对应的SOTA集SOTA ( a t ) \left(a_{t}\right) (at)中。然后,该单元诊断失败策略并生成有针对性的改进建议。反馈 f t f_{t} ft被传递给综合单元以指导未来假设的制定。
值得注意的是,分析单元以当前实验的局部视角运行,而综合单元则在整个实验历史中保持全局视角。它们的交互实现了一个闭环系统,平衡了短期响应性和长期探索性,支持研究设计、策略实施、验证和深入分析之间的自动化迭代。
在每次分析轮次后,分析单元进一步确定下一次迭代是优先进行因子细化还是模型优化。为了最大化性能提升,这一决策被形式化为一个上下文相关的双臂老虎机问题,并通过线性汤普森采样解决(详细算法见附录A.2)。具体来说,在每一轮 t t t,系统观察一个8维的性能状态向量 x t ∈ R 8 \mathbf{x}_{t} \in \mathbb{R}^{8} xt∈R8,该向量编码了当前策略的关键评估指标。动作空间是 A = { 因子 , 模型 } \mathcal{A}=\{ \text{因子}, \text{模型} \} A={因子,模型},对应于两种可能的优化路径。为了评估在上下文 x t \mathrm{x}_{t} xt下每个动作的预期收益,我们采用了一个线性奖励函数 r = w ⊤ x t r=\mathbf{w}^{\top} \mathbf{x}_{t} r=w⊤xt,其中 w \mathbf{w} w反映了每个指标的相对重要性。为每个动作维护一个单独的贝叶斯线性模型,高斯后验编码了奖励系数的不确定性。在每一步,系统从每个后验中采样一个奖励向量,并计算相应的预期奖励。执行具有最高采样奖励的动作。在观察到实际改进后,所选臂的后验被更新。通过这种上下文相关的汤普森采样机制,RD-Agent (Q)自适应地平衡了探索和利用,实现了跨迭代的稳健性能提升。
3 实验设置
数据集
参照文献[35 - 38],我们使用沪深300数据集,该数据集涵盖了中国市场中300只大盘A股。时间跨度被划分为训练集(2008年1月1日 - 2014年12月31日)、验证集(2015年1月1日 - 2016年12月31日)和测试集(2017年1月1日 - 2020年8月1日)。我们在三种配置下对RD - Agent (Q)进行评估:
- RD - Factor:将预测模型固定为LightGBM[39],并从Alpha 203开始优化因子集。
- RD - Model:将输入因子集固定为Alpha 20,并搜索更优的模型。
- RD - Agent (Q):联合优化因子和模型组件。
基准方法
在因子层面,我们将RD - Agent与Alpha 101[40]、Alpha 158[41]、Alpha 360[42]和AutoAlpha[43]进行比较。在模型层面,我们纳入了机器学习模型(线性模型、多层感知机(MLP)、LightGBM[39]、XGBoost[44]、CatBoost[45]、DoubleEnsemble[46])和深度学习模型(门控循环单元(GRU)[22]、长短期记忆网络(LSTM)[23]、ALSTM[47]、Transformer[48]、PatchTST[49]、iTransformer[50]、Mamba[51]、TRA[37]、MASTER[38]、图注意力网络(GATs)[52])。更多细节见附录C.3。
评估细节
我们使用两类指标对RD - Agent (Q)进行评估:
- 因子预测指标:包括信息系数(IC)、IC信息比率(ICIR)、秩IC和秩ICIR。
- 策略表现指标:包括年化收益率(ARR)、信息比率(IR)、最大回撤(MDD)和卡尔马比率(CR)。
我们遵循基于预测收益排名的每日多空交易策略,包括仓位更新、持仓保留规则和现实的交易成本。完整的评估和实现细节见附录C.4和C.1。
4 实验分析
主要结果分析
表1报告了基准模型和RD - Agent框架在沪深300数据集上的表现,结果表明RD - Agent在预测和策略指标方面均持续优于所有基准方法。
-
RD - Factor(因子优化):当仅对因子空间进行自适应优化时,RD - Factor G P T − 4 o _{GPT - 4o} GPT−4o和RD - Factor o 3 − m i n i _{o3 - mini} o3−mini均超越了静态因子库(例如Alpha 158/360),使用更少的手工设计因子获得了更高的IC(最高达0.0497)和显著提高的ARR(最高达14.61%)。这表明RD - Agent (Q)中的动态假设细化和因子筛选能够产生比固定高维因子集更具信息量的信号。
-
RD - Model(模型优化):对于在固定因子下的模型优化,RD - Model 03 − m i n i _{03 - mini} 03−mini超越了所有基准方法,在秩IC(0.0546)和MDD(-6.94%)方面取得了最佳表现。机器学习模型明显落后,凸显了它们在捕捉金融噪声和非线性模式方面的局限性。虽然一般的深度学习架构(GRU、LSTM、Transformer)提供了适度的预测指标,但它们的策略表现仍然较弱,这表明特征提取与可操作收益之间存在差距。令人惊讶的是,时间序列预测模型(例如PatchTST、Mamba)在两方面表现均不佳,表明标准序列预测与股票市场动态之间存在根本性不匹配。相比之下,专门的股票预测模型(TRA、MASTER)在策略指标方面表现出色,但在预测能力方面稍逊一筹,凸显了稳健性(低MDD、高IR)与精确性(高IC)之间的权衡。这些结果表明,由自动化假设评估引导的自适应模型配置能够产生比机器学习和手工设计的深度学习架构更稳健且对风险敏感的预测结构。
-
RD - Agent (Q)(联合优化):通过共同优化因子和模型,RD - Agent (Q) o 3 − m i n i _{o3 - mini} o3−mini实现了最高的总体性能:IC为0.0532,ARR为14.21%,IR为1.74。这些改进远远超过了最强的基准方法(例如Alpha 158、TRA)。这表明因子和架构的联合优化能够释放互补的改进潜力,实现可扩展且一致的阿尔法建模。
研究组件分析
为了评估RD - Agent (Q)的研究动态,我们分析了RD - Factor中因子假设的演变,重点关注其在探索(多样化想法生成)和利用(局部细化)之间的平衡。该方法包括三个步骤:
- 文本嵌入:使用Sentence - BERT[53]将迭代 t t t时生成的假设 h t h_{t} ht编码为固定维度的向量 h t \mathbf{h}_{t} ht。
- 相似度矩阵:计算成对余弦相似度,形成对称矩阵 S ∈ [ 0 , 1 ] T × T \mathbf{S} \in[0,1]^{T \times T} S∈[0,1]T×T。
- 层次聚类:应用凝聚聚类对相似假设进行分组,并重新排序 S \mathbf{S} S以形成块结构。
图5揭示了三种探索模式:
- 局部细化后方向转变:对角块(例如试验1 - 6、7 - 11)表明,RD - Factor在一个概念线索内进行多步细化,然后再转变方向,平衡了深度与新颖性。
- 战略性回顾:试验26与早期试验12 - 14聚为一类,表明智能体能够回顾并逐步细化有潜力的早期假设。
- 多样化路径产生协同效应:在36次试验中,有8次被选入最终的SOTA集合,涵盖了6个聚类中的5个。这表明探索多个方向会产生互补信号,共同增强最终的因子库。这种细化 - 转变 - 重用模式支撑了高效的深度搜索和广泛的概念覆盖,使得能够构建紧凑、多样且高性能的因子库。
开发组件分析
为了评估开发组件的代码生成能力,我们使用pass@k准确率指标(图6)分析了Co - STEER在RD - Agent (Q)不同框架中的表现。在因子和模型任务中,成功率在几次迭代内迅速收敛,表明CoSTEER能够通过反馈有效地修复初始错误。由于全栈任务(RD - Agent (Q))的复杂性更高,其差异更为明显,因此迭代细化至关重要。在这里,o3 - mini始终实现了更高的恢复率,反映了其更强的思维链推理能力——这在结构化、高依赖性的编码场景中是一个明显的优势。总体而言,pass@k轨迹说明了Co - STEER在结构化金融编码中通过迭代细化逐步自我纠正的能力。附录D.3提供了关于Co - STEER的更多实验。
因子效应分析
在图7中,我们将RD - Factor生成的因子库与基准方法进行比较,以评估因子生成效果。子图(a)和(b)表明,即使从Alpha 20初始化,RD - Factor也能迅速达到与Alpha 158和Alpha 360相当的IC水平,同时仅使用了22%的因子。2017年后,它持续优于Alpha 20,并且在2019 - 2020年基准方法性能下降时,其IC保持稳定。当从Alpha 158初始化时,RD - Factor进一步改进,特别是使用o3 - mini时,在2020年IC达到>0.07,超过了所有基准方法。这表明迭代因子细化有助于消除对市场状态敏感或冗余的信号,提高整体预测稳定性。附录D.2提供了更多相关结果。
模型效应分析
图8从ARR、MDD和资源使用三个维度比较了RD - Model与基准深度学习模型。两种RD - Model变体都显著向理想的左上区域移动。RD - Model G P T − 4 o _{GPT - 4o} GPT−4o在IMDDI(8%)的情况下实现了ARR(12%),达到了最高的收益 - 风险斜率。RD - Model o 3 − m i n i _{o3 - mini} o3−mini在ARR(11%)的情况下提供了更低的回撤,在更严格的风险约束下表现出色。
消融实验
为了评估不同动作选择策略的影响,我们进行了消融实验,结果如表2所示。Bandit调度器实现了最佳总体性能,具有最高的IC、ARR和SOTA选择数量,证实了其在有限计算预算下优先选择最有前景的优化目标的能力。基于LLM的策略表现中等,但由于额外的模型调用导致每步开销更高,因此迭代次数较少。随机调度表现最差,凸显了知情决策在推动有效优化中的重要性。完整的消融结果见附录D.1。
表2:RD - Agent (Q) (o3 - mini)动作选择策略的消融结果。我们比较了随机、基于LLM和Bandit控制器在预测质量、策略表现和执行统计(TL:总循环次数,VL:有效循环次数,SL:SOTA选择次数,TRH:运行时间(小时))方面的差异。
后端比较
为了评估RD - Agent (Q)对LLM后端的敏感性,我们根据研究和策略指标评估了六种API变体(图9)。尽管循环统计数据适中,但o1通过几轮具有重大战略突破的影响力表现,实现了顶级性能。最近发布的GPT - 4.1在大多数指标上排名第二。其他变体(除GPT - 4omini外,其推理能力有限,导致性能较弱)表现出可比的结果,表明我们的框架在不同LLM后端上具有鲁棒性。
扩展研究
附录D.4进一步表明,RD - Agent (Q)的成本(在论文设置下)低于10美元,证实了其成本高效的扩展性。附录D.5验证了其在现实量化场景中的稳健性。
5 相关工作
量化研究中的传统方法
量化策略传统上依赖于资产定价理论中人工设计的因子,例如价值因子和动量因子[10, 11]。虽然这些因子具有可解释性,但这些固定的信号往往缺乏适应市场状态变化的灵活性。为了克服这些局限性,符号回归和遗传编程(GP)方法[14, 54]通过进化复杂的非线性表达式来自动化因子挖掘。引入滞后算子[13]和带剪枝的算子变异[55]等改进方法,能够产生更多样化且有效的信号。强化学习(RL)方法将因子配置重新定义为序列决策问题,直接优化夏普比率或卡尔马比率[15, 56]。Andre等人[16]通过带有KL正则化的狄利克雷策略对因子权重进行建模,从而实现了稀疏且自适应的策略。然而,强化学习方法在市场状态发生转变时(例如2020年的熔断机制[57])往往缺乏稳健性,并且仍然难以解释。
模型方面
早期的方法,如ARIMA[58]和指数平滑[59],在处理噪声大、维度高的数据时面临困难。经典的机器学习方法(例如支持向量机(SVM)[19]、随机森林[20])提高了稳健性,但仍需要人工进行特征工程。此后,长短期记忆网络(LSTM)[60]和Transformer[61]等深度学习模型被应用于捕捉长期和横截面依赖关系[27, 62]。在此基础上,出现了专门的时间序列神经网络。PatchTST[63]将输入分割为局部块,而iTransformer[64]将变量 - 令牌关系重新映射以建模多元结构。像MASTER[65]这样的特定领域模型进一步融入了市场层面的动态信息,以提高金融预测的准确性。然而,因子和模型流程仍然相互孤立、依赖专家且缺乏灵活性,这限制了它们在波动市场中的可扩展性。
金融领域的大型语言模型驱动的智能体
大型语言模型(LLM)凭借其强大的推理和抽象能力,为金融研究的自动化提供了新的机遇。近期的研究探索了其在从金融文本中提取预测信号[66, 31]、生成因子解释[30]以及实现多模态市场分析[33]方面的应用。基于LLM的多智能体系统(例如AutoGen[67]、AutoGPT[68])的并行进展为复杂的决策提供了协调框架。在金融领域,像FinAgent[33]和TradingAgents[34]这样的系统使用基于角色的智能体来完成事件提取或投资组合更新等子任务。然而,大多数现有的工作都聚焦于狭窄的子任务,并且严重依赖语义信号,这使得它们容易出现幻觉、难以解释且难以复现。此外,它们缺乏联合因子 - 模型优化或工作流程集成的机制,从而限制了它们在实际量化系统中的有效性。
6 结论
我们提出了RD-Agent (Q),这是一个用于量化金融中因子 - 模型协同开发的大型语言模型驱动框架。通过将研究分解为模块化组件,并集成基于多臂老虎机的调度器,该框架能够在固定的计算预算下支持高效、自适应的迭代。从实证角度来看,RD-Agent在信号质量和策略表现方面均优于基线模型,且具有较高的成本效益和泛化能力。其模块化设计也使其能够适应实际应用场景。然而,当前框架仅依赖于大型语言模型的内部金融知识。未来的工作可能会增强数据多样性、融入领域先验知识,并实现对不断变化的市场状态的在线适应。
7 免责声明
RD-Agent (Q)框架及相关代码的使用者应自行准备金融数据,并独立评估和测试所生成因子和模型在实际应用场景中的风险。谨慎使用智能体生成的代码、数据和模型,并进行彻底检查至关重要。RD-Agent (Q)框架不提供金融观点,也不旨在取代合格金融专业人员在制定、评估和批准金融产品方面的角色。RD-Agent (Q)框架的输出结果并不代表微软的观点。
附录
A 算法细节
A.1 Co-STEER 实现逻辑
为进一步阐明 Co-STEER 智能体的内部机制,我们提供了正式的算法流程(算法(1))和对比方法分析(表 3)。
现有的自然语言转代码方法主要侧重于孤立的能力。小样本学习(Few-shot)[69] 利用上下文示例来引导模型输出。思维链(Chain-of-Thought,CoT)[70] 通过逐步提示的方式提高推理的连贯性。Reflexion[71] 和自调试(Self-Debugging)[72] 强调通过反馈进行迭代修正,而自规划(Self-Planning)[73] 支持自动的任务分解。
相比之下,Co-STEER 提供了一个统一的解决方案,整合了调度、推理、基于反馈的优化以及长期知识积累。它维护着一个不断增长的前期尝试知识库,这使得它能够检索和适配之前成功的解决方案。此外,其调度智能体支持多任务代码生成,例如在量化研究中实现因子,它根据任务的复杂度和反馈动态地对任务进行优先级排序,早期更倾向于更简单、更基础的任务,为后续的代码生成提供有信息量的框架。
下面,我们呈现 Co-STEER 用于因子实现任务的完整伪代码。
A.2 多臂老虎机调度逻辑
如第 2.5 节所述,我们应用上下文汤普森采样(Contextual Thompson Sampling)来根据当前策略表现自适应地在两个优化方向——因子优化和模型优化之间进行选择。该问题被表述为一个具有线性奖励函数的双臂上下文多臂老虎机问题。每个臂都维护着自己的贝叶斯线性回归模型,每次交互后都会更新其后验分布。
在每一轮 t t t,系统使用以下 8 维性能向量来总结策略质量:
x t = [ I C , I C I R , Rank ( I C ) , Rank ( I C I R ) , A R R , I R , − M D D , S R ] ⊤ ∈ R 8 \mathbf{x}_{t}=[\mathrm{IC}, \mathrm{ICIR}, \operatorname{Rank}(\mathrm{IC}), \operatorname{Rank}(\mathrm{ICIR}), \mathrm{ARR}, \mathrm{IR},-\mathrm{MDD}, \mathrm{SR}]^{\top} \in \mathbb{R}^{8} xt=[IC,ICIR,Rank(IC),Rank(ICIR),ARR,IR,−MDD,SR]⊤∈R8
每个分量都与理想的策略结果呈正相关;最大回撤(MDD)取负值以与该方向保持一致。
给定先验 μ ( a ) = 0 \mu^{(a)} = 0 μ(a)=0, P ( a ) = τ − 2 I P^{(a)} = \tau^{-2} I P(a)=τ−2I,算法从每个动作的后验分布中采样一个奖励系数向量,在当前上下文 x t \mathbf{x}_{t} xt 下估计奖励,并选择采样值最高的动作。然后使用标准的贝叶斯线性回归更新规则更新后验分布。
B 量化研究流程的正式定义
基于量化金融领域的几部经典著作[9, 38, 74],我们将原始数据集定义为一个具有双重时间索引的三维张量,记为 X ∈ R N × T × P \mathbf{X} \in \mathbb{R}^{N \times T \times P} X∈RN×T×P。该数据集以股票作为基础资产类别,每个资产都与一组因子维度相关联。如公式(2)正式定义,该张量包含在观测期 T = { 1 , … , T } \mathcal{T}=\{1, \ldots, T\} T={1,…,T} 内的 N N N 个资产。行索引对应时间 t t t,列索引对应资产 i i i,通道索引 p p p 指代 P P P 个因子维度中的一个。每个条目 x i , t ( p ) x_{i, t}^{(p)} xi,t(p) 表示资产 i i i 在时间 t t t 时第 p p p 个因子的值。
X = { x i , t ( p ) ∣ i ∈ [ N ] , t ∈ { 1 , … , T } , p ∈ [ P ] } ∈ R N × T × P \mathbf{X}=\left\{x_{i, t}^{(p)} \mid i \in[N], t \in\{1, \ldots, T\}, p \in[P]\right\} \in \mathbb{R}^{N \times T \times P} X={xi,t(p)∣i∈[N],t∈{1,…,T},p∈[P]}∈RN×T×P
然后,基于原始因子特征,通过解析或使用机器学习的方法构造新的因子。给定长度为 ℓ \ell ℓ 的滑动窗口,通过公式(3)中定义的映射生成 m m m 个新因子 f i , t ( j ) f_{i, t}^{(j)} fi,t(j),其中 x i , t − ℓ + 1 : t \mathbf{x}_{i, t - \ell + 1: t} xi,t−ℓ+1:t 表示资产 i i i 最近的 ℓ \ell ℓ 天张量切片, f i , t ( j ) f_{i, t}^{(j)} fi,t(j) 是第 j j j 个衍生因子。通过将原始因子和生成的因子拼接起来,形成新的因子张量 Z ∈ R N × T × ( P + m ) \mathbf{Z} \in \mathbb{R}^{N \times T \times(P + m)} Z∈RN×T×(P+m), z i , t \mathbf{z}_{i, t} zi,t 表示在 ( i , t ) (i, t) (i,t) 处的拼接向量,如公式(4)所示。
Φ : R ℓ × P ⟶ R m , Φ ( x i , t − ℓ + 1 : t ) = ( f i , t ( 1 ) , … , f i , t ( m ) ) z i , t = [ x i , t ∥ F i , t ] ∈ R P + m , F i , t = Φ ( x i , t − ℓ + 1 : t ) \begin{array}{c} \Phi: \mathbb{R}^{\ell \times P} \longrightarrow \mathbb{R}^{m}, \quad \Phi\left(\mathbf{x}_{i, t - \ell + 1: t}\right)=\left(f_{i, t}^{(1)}, \ldots, f_{i, t}^{(m)}\right) \\ \mathbf{z}_{i, t}=\left[\mathbf{x}_{i, t} \| \mathbf{F}_{i, t}\right] \in \mathbb{R}^{P + m}, \quad \mathbf{F}_{i, t}=\Phi\left(\mathbf{x}_{i, t - \ell + 1: t}\right) \end{array} Φ:Rℓ×P⟶Rm,Φ(xi,t−ℓ+1:t)=(fi,t(1),…,fi,t(m))zi,t=[xi,t∥Fi,t]∈RP+m,Fi,t=Φ(xi,t−ℓ+1:t)
鉴于金融数据的噪声性和不完整性,采用两阶段预处理流程来抑制异常值的影响。首先,对每个特征应用横截面稳健 Z 分数标准化,如公式(5)所示,其中 MAD 是中位数绝对偏差, ε \varepsilon ε 是一个数值稳定性常数。其次,使用“前向填充 + 横截面均值”策略来填补缺失值,如公式(6)正式定义。
x ~ i , t ( p ) = x i , t ( p ) − Median i ( x ⋅ , t ( p ) ) MAD i ( x ⋅ , t ( p ) ) + ε , x i , t ( p ) ← { x i , t − 1 ( p ) , if x i , t ( p ) = NA and x i , t − 1 ( p ) eq NA , Mean i ( x ⋅ , t ( p ) ) , otherwise . \begin{array}{c} \tilde{x}_{i, t}^{(p)}=\frac{x_{i, t}^{(p)}-\operatorname{Median}_{i}\left(x_{\cdot, t}^{(p)}\right)}{\operatorname{MAD}_{i}\left(x_{\cdot, t}^{(p)}\right)+\varepsilon}, \\ x_{i, t}^{(p)} \leftarrow\left\{\begin{array}{ll} x_{i, t - 1}^{(p)}, & \text { if } x_{i, t}^{(p)}=\text { NA and } x_{i, t - 1}^{(p)} \text { eq NA }, \\ \operatorname{Mean}_{i}\left(x_{\cdot, t}^{(p)}\right), & \text { otherwise } . \end{array}\right. \end{array} x~i,t(p)=MADi(x⋅,t(p))+εxi,t(p)−Mediani(x⋅,t(p)),xi,t(p)←{xi,t−1(p),Meani(x⋅,t(p)), if xi,t(p)= NA and xi,t−1(p) eq NA , otherwise .
资产收益率被定义为训练和验证的预测目标,在本工作中 τ = 1 \tau = 1 τ=1 个交易日,如公式(7)所示。与因子预处理类似,移除缺失标签,并在每个交易日进行横截面 Z 分数标准化,得到监督样本对 ( z i , t , y ~ i , t ( τ ) ) \left(\mathbf{z}_{i, t}, \tilde{y}_{i, t}^{(\tau)}\right) (zi,t,y~i,t(τ))。
y i , t ( τ ) = P i , t + τ − P i , t P i , t , P i , t 是资产 i 在时间 t 的收盘价 y ~ i , t ( τ ) = y i , t ( τ ) − Mean i ( y ⋅ , t ( τ ) ) Std i ( y ⋅ , t ( τ ) ) + ε \begin{array}{c} y_{i, t}^{(\tau)}=\frac{P_{i, t + \tau}-P_{i, t}}{P_{i, t}}, \quad P_{i, t} \text { 是资产 } i \text { 在时间 } t \text { 的收盘价 } \\ \tilde{y}_{i, t}^{(\tau)}=\frac{y_{i, t}^{(\tau)}-\operatorname{Mean}_{i}\left(y_{\cdot, t}^{(\tau)}\right)}{\operatorname{Std}_{i}\left(y_{\cdot, t}^{(\tau)}\right)+\varepsilon} \end{array} yi,t(τ)=Pi,tPi,t+τ−Pi,t,Pi,t 是资产 i 在时间 t 的收盘价 y~i,t(τ)=Stdi(y⋅,t(τ))+εyi,t(τ)−Meani(y⋅,t(τ))
为了更好地封装因子和模型之间的交互接口,预测值 y ^ i , t \hat{y}_{i, t} y^i,t 由预测器 f θ f_{\boldsymbol{\theta}} fθ 统一生成,如公式(9)定义,其中 θ \boldsymbol{\theta} θ 表示可学习参数。该预测器既支持表格模型(以 z i , t \mathbf{z}_{i, t} zi,t 作为输入),也支持时间序列模型,后者使用张量切片 Z i , t − ℓ + 1 : t \mathbf{Z}_{i, t - \ell + 1: t} Zi,t−ℓ+1:t 来捕捉时间结构。
y ^ i , t = f θ ( z i , t ) , f θ : R P + m → R \hat{y}_{i, t}=f_{\boldsymbol{\theta}}\left(\mathbf{z}_{i, t}\right), \quad f_{\boldsymbol{\theta}}: \mathbb{R}^{P + m} \rightarrow \mathbb{R} y^i,t=fθ(zi,t),fθ:RP+m→R
模型训练遵循滚动向前验证流程,通过梯度下降最小化均方误差损失 L ( θ ) \mathcal{L}(\boldsymbol{\theta}) L(θ)(公式(10))来优化参数到 θ ∗ \boldsymbol{\theta}^{*} θ∗。
L ( θ ) = 1 ∣ D train ∣ ∑ ( i , t ) ∈ D train ( y i , t ( τ ) − y ^ i , t ) 2 \mathcal{L}(\boldsymbol{\theta})=\frac{1}{\left|\mathcal{D}_{\text {train }}\right|} \sum_{(i, t) \in \mathcal{D}_{\text {train }}}\left(y_{i, t}^{(\tau)}-\hat{y}_{i, t}\right)^{2} L(θ)=∣Dtrain ∣1∑(i,t)∈Dtrain (yi,t(τ)−y^i,t)2
该流程涵盖了四个关键组件——数据表示、特征工程、样本构建和模型训练——为 RD-Agent (Q) 框架中的双循环因子 - 模型优化机制提供了标准化的输入接口。
C 实验细节
C.1 实现设置
硬件设置:所有实验均在配备双英特尔至强金牌6348 CPU(共提供112个线程)和四块NVIDIA RTX A6000 GPU(每块显存为48 GiB,总计192 GiB)的专用服务器上进行。
评估协议:为确保公平比较,所有模型均在一致的数据集划分上进行训练和验证。对于每个基准模型,我们进行了广泛的超参数调优,并使用五个不同随机种子进行了独立运行以评估其稳健性。我们没有报告标准误差条或置信区间,而是报告了这些运行的中位数年化收益率(ARR)。这遵循了量化金融领域的实践,在该领域中,持续的优异表现比逐点方差更受重视。使用中位数也减少了异常值的影响。
框架配置:实验使用RD-Agent框架进行。RD-Factor自动化因子设计和评估,RD-Model优化预测模型。每个模块每次实验运行6小时。联合框架RD-Agent (Q)在两者之间交替运行,总计12小时。在整个过程中启用了持久缓存,以加速对中间输出的重复访问,包括在每次循环中引用的SOTA因子库。
参数配置:在实验过程中,我们使用了各种LLM API后端。对于GPT-4o和GPT-4o-mini,我们启用了流式传输,将温度设置为0.8,并将令牌使用量限制在4096个以内。对于o3-mini、o3和GPT-4.1,我们禁用了流式传输,使用温度为1.0,并允许最多使用10,000个令牌。所有API交互都使用了来自用户角色的统一系统提示,并根据每个后端的能力进行了调整。在Co-STEER模块(实现单元)中,我们使用text-embedding-ada-002来计算代码、假设和日志分析的语义嵌入。为了确保细粒度调试的效率,Co-STEER中的内部优化循环对于因子和模型工作流程都限制为每个任务最多10次迭代。对于每个任务,我们将实现单元的最大运行时间设置为600秒,验证单元的最大运行时间设置为3600秒。
C.2 数据集
在本文中,我们并未提出新的数据集。基准因子库Alpha 20如表4所示。用于因子挖掘的原始金融数据可分为两类:市场数据和基本面数据。市场数据可使用以下脚本生成:https://github.com/microsoft/RD-Agent/blob/main/rdagent/scenarios/qlib/experiment/factor_data_template/generate.py,而基本面数据(包括盈利能力、估值和增长指标等标准财务指标)如表5所示。
C.3 基准方法
在基准实验中,基于因子的实验使用LightGBM模型进行,基于模型的实验使用Alpha 20因子库进行。
机器学习模型:
- 线性模型:最基本的线性回归模型,用于建模特征与目标变量之间的线性关系。它具有高度可解释性和低复杂性,作为模型预测性能的下限基准。
- 多层感知机(MLP):一种前馈神经网络架构,包含一个或多个非线性隐藏层,适用于建模特征之间的非线性关系。
- LightGBM [39]:一种基于梯度提升框架的树模型。它使用基于直方图的分割方法和叶节点生长策略,提供快速的训练速度和低内存使用量。源代码可在:https://github.com/microsoft/LightGBM获取。
- XGBoost [44]:一种增强的树模型,利用二阶梯度优化、剪枝和正则化策略来提高泛化能力和稳健性。源代码可在:https://github.com/dmlc/xgboost获取。
- CatBoost [45]:一种针对分类特征优化的提升树模型。它采用有序提升策略来减少预测偏差,并适用于广泛的结构化数据建模任务。源代码可在:https://github.com/catboost/catboost获取。
- DoubleEnsemble [46]:集成多个异构模型,并结合样本重加权和特征选择机制,以提高准确性和稳健性。源代码可在:https://github.com/microsoft/qlib/tree/main/examples/benchmarks/DoubleEnsemble获取。
深度学习模型:
通用深度学习模型:
- Transformer [48]:利用多头自注意力机制来捕捉时间序列数据中的长距离依赖关系。它并行处理整个序列,与循环结构相比具有更好的可扩展性。
- GRU [22]:门控循环单元通过引入更新门和重置门简化了传统的循环神经网络,提高了训练效率并缓解了梯度消失问题。
- LSTM [23]:长短期记忆网络是循环神经网络的一种变体,融入了记忆单元和门控机制,以有效建模长期依赖关系。它是时间序列建模的标准方法之一。
- ALSTM [47]:LSTM模型的增强版本,集成了注意力机制,使模型能够关注关键时间步并选择性地建模序列特征。
- GATs [52]:图注意力网络将注意力机制扩展到图结构,能够对非欧几里得空间中节点之间的关系进行建模。
时间序列预测模型:
- PatchTST [49]:一种基于Transformer的时间序列模型,使用分块和通道独立性技术。它支持跨数据集的有效预训练和迁移学习。源代码可在:https://github.com/yuqinie98/PatchTST获取。
- iTransformer [50]:一种基于Transformer的时间序列模型,将每个时间序列嵌入为变量令牌,提高了参数效率和建模精度。它适用于长序列建模任务。源代码可在:https://github.com/thuml/iTransformer获取。
- Mamba [51]:一种基于状态空间模型的下一代长序列模型,提供并行计算和线性时空复杂度。
股票预测模型:
- TRA [37]:在Transformer架构中引入了一种新颖的动态路由机制,使模型能够自适应地学习股票价格中的时间模式,并提高其捕捉多样化市场趋势的能力。源代码可在:https://github.com/TongjiFinLab/THGNN获取。
- MASTER [38]:一种以市场为中心的Transformer模型,旨在动态建模股票之间的瞬时和跨时间相关性,从而提高趋势预测准确性。源代码可在:https://github.com/SJTU-DMTai/MASTER获取。
因子库:
- Alpha 101 [40]:WorldQuant团队在2015年提出的一组101个公式化交易阿尔法因子。使用每日价格-成交量数据构建,代表了量化金融领域早期公开可用的结构化阿尔法因子基准。
- Alpha 158 [41]:由微软Qlib团队提出,该库包括158个传统技术指标(例如,MA、RSI),这些指标是通过在不同时间窗口(例如,5、10、20天)上的组合构建的。
- Alpha 360 [42]:微软Qlib提供的更全面的因子库,包含360个因子,这些因子是通过历史价格序列(例如,收盘价和成交量的多周期相对值)上的归一化构建的。
- AutoAlpha [43]:一种由大型语言模型驱动的动态结构化因子库,集成了文本、数值和图像等多模态数据。
C.4 评估详情
C.4.1 评估指标
我们采用两类指标:因子层面的预测性能和策略层面的投资组合收益。
信息系数(IC):IC衡量预测排名与实际收益排名之间的横截面相关性。它在量化金融领域应用广泛,定义如下:
I C = ( y ^ − E [ y ^ ] ) ⊤ ( y − E [ y ] ) σ ( y ^ ) ⋅ σ ( y ) \mathrm{IC}=\frac{(\hat{y}-\mathbb{E}[\hat{y}])^{\top}(y-\mathbb{E}[y])}{\sigma(\hat{y}) \cdot \sigma(y)} IC=σ(y^)⋅σ(y)(y^−E[y^])⊤(y−E[y])
其中, y ^ \hat{y} y^ 和 y y y 分别表示预测排名和实际排名; E [ ⋅ ] \mathbb{E}[\cdot] E[⋅] 表示期望, σ ( ⋅ ) \sigma(\cdot) σ(⋅) 表示标准差。在实践中,IC按日计算,并报告其时间均值。
信息系数信息比率(ICIR):ICIR用于评估IC随时间的稳定性,定义为每日IC值的均值与标准差之比:
I C I R = mean ( I C ) std ( I C ) \mathrm{ICIR}=\frac{\operatorname{mean}(\mathrm{IC})}{\operatorname{std}(\mathrm{IC})} ICIR=std(IC)mean(IC)
ICIR值越高,表明在交易日中预测排名的稳定性越好。
排名IC(Rank IC):Rank IC指预测排名与实际收益排名之间的斯皮尔曼等级相关系数。它对异常值具有鲁棒性,特别适用于具有厚尾或极端值的分布。
排名ICIR(Rank ICIR):与ICIR类似,Rank ICIR衡量Rank IC的时间稳定性:
Rank ICIR = mean(Rank IC) std(Rank IC) \text { Rank ICIR }=\frac{\text { mean(Rank IC) }}{\text { std(Rank IC) }} Rank ICIR = std(Rank IC) mean(Rank IC)
它是评估基于因子排名模型长期一致性的关键指标。
年化收益率(ARR):ARR反映投资组合的复合年增长率:
ARR = ( ∏ t = 1 T ( 1 + r t ) ) 252 T − 1 \operatorname{ARR}=\left(\prod_{t=1}^{T}\left(1+r_{t}\right)\right)^{\frac{252}{T}}-1 ARR=(∏t=1T(1+rt))T252−1
其中, r t r_{t} rt 表示日收益率, T T T 表示总交易日数。
信息比率(IR):IR通过比较超过基准的年化均值和标准差来评估风险调整后的超额收益:
I R = mean ( r t − r f ) std ( r t − r f ) × 252 \mathrm{IR}=\frac{\operatorname{mean}\left(r_{t}-r_{f}\right)}{\operatorname{std}\left(r_{t}-r_{f}\right)} \times \sqrt{252} IR=std(rt−rf)mean(rt−rf)×252
其中, r f r_{f} rf 表示基准收益率,通常为无风险利率或市场收益率。
最大回撤(MDD):MDD衡量评估期间从峰值到谷底的最大损失,反映下行风险:
M D D = max t ∈ [ 1 , T ] ( max i ∈ [ 1 , t ] P i − P t max i ∈ [ 1 , t ] P i ) \mathrm{MDD}=\max _{t \in[1, T]}\left(\frac{\max _{i \in[1, t]} P_{i}-P_{t}}{\max _{i \in[1, t]} P_{i}}\right) MDD=maxt∈[1,T](maxi∈[1,t]Pimaxi∈[1,t]Pi−Pt)
其中, P t P_{t} Pt 表示第 t t t 天的投资组合价值, T T T 表示评估期限。
卡尔马比率(Calmar Ratio):卡尔马比率量化收益与下行风险的比率,定义为:
Calmar Ratio = A R R ∣ M D D ∣ \text { Calmar Ratio }=\frac{\mathrm{ARR}}{|\mathrm{MDD}|} Calmar Ratio =∣MDD∣ARR
卡尔马比率越高,表明每单位最大损失的收益越好,适用于强调回撤控制的策略评估。
C.4.2 交易策略
完整的交易策略模拟如下:
- 在交易日 t t t 收盘时,模型根据预测收益为每只股票生成排名分数。
- 在交易日 t + 1 t+1 t+1 开盘时,交易者卖出 t t t 天的所有持仓,并根据预测收益选择排名前50的股票构建新的投资组合,排除表现最差的5只股票。
- 持续保持高排名的股票保留在投资组合中,以支持高质量资产的长期持有。
- 在交易执行过程中,设置0.095的价格限制阈值。交易按收盘价执行,买入成本为0.05%,卖出成本为0.15%,每笔交易最低手续费为5元人民币。
D 补充实验
D.1 消融分析
表6展示了RD-Agent(Q)框架在两个LLM后端(GPT-4o和o3-mini)上的扩展消融研究。我们评估了组件层面的贡献,并比较了三种用于动作选择的调度策略:随机、基于LLM和上下文老虎机。
组件消融:移除模型分支(RD-Factor)通常比移除因子分支(RD-Model)获得更高的IC、ICIR和ARR。这反映了两个效应:(i)因子优化在有限的运行时间内能够更快迭代并发现更多信号;(ii)在早期阶段,改进特征比调整模型的影响更大。尽管如此,RD-Model有助于投资组合层面的风险平滑(例如,使用o3-mini时MDD较低)。
算法消融:在调度方面,随机选择在两个模型上的表现均最低。基于LLM的决策提高了预测质量,但存在规划不稳定性。老虎机调度器在IC、ARR和有效循环次数方面始终优于其他策略,通过适应不断变化的性能信号展示了卓越的资源分配能力。
总体而言,结果表明因子分支是信号质量的主要驱动因素,模型分支是风险稳定器,老虎机调度器是在有限时间和计算预算下管理权衡的有效机制。
D.2 因子库分析
图10展示了因子效应评估实验的完整结果。除了IC(子图(a)和(c))外,子图(b)和(d)显示Rank IC的一致性提升,表明RD-Factor不仅提高了绝对预测准确性,还增强了股票收益的相对排名。特别是在Alpha 158初始化下,使用o3-mini时,2020年Rank IC保持在0.07以上,而经典库则急剧下降。这支持了迭代优化在不同机制下均能提高信号强度和排名一致性的观点。
在累计收益(子图(e))方面,性能差异从2018年初开始显现。由RD-Factor(158)生成的因子集始终优于其他因子集,到2020年第三季度末,净资产价值(NAV)超过5.1。即使RD-Factor(20)配置也超过了Alpha360,表明更大的因子集不一定带来更高的收益。传统库因因子冗余而面临更高的波动性。相比之下,RD-Factor通过动态过滤缓解了这一问题,实现了更稳定和资本高效的性能。
这些结果凸显了RD-Factor在信息效率(用更少的因子实现更高的IC/Rank IC)和资本效率(提供卓越的NAV)方面的双重优势。无论是从紧凑还是高维基础开始,其迭代优化管道都能可靠地发现有效信号并去除冗余,为RD-Quant中的后续模型优化和全栈协同进化奠定了坚实基础。
D.3 Co-STEER有效性分析
作为RD-Agent(Q)开发阶段的关键组件,除了在第4节中描述的RD-Agent(Q)框架内直接实施Co-STEER外,我们还进行了进一步实验以验证Co-STEER的能力。具体而言,我们希望回答以下研究问题:
- RQ1:与最近的代码生成基线相比,Co-STEER在生成可执行且语义正确的金融任务代码方面表现如何?
- RQ2:在有限的计算预算下,其进化调度器能否提高实施效率和输出质量?
数据集:我们在RD2Bench [75]上评估Co-STEER,这是一个用于金融领域以数据为中心的智能体系统的综合基准。该基准包括可实现的27个因子和不可实现的13个因子,涵盖基本面、价格-成交量和高频类别。每个因子都提出了独特的挑战,需要对异构金融数据源进行复杂推理,并在严格约束下生成可执行的Python代码。
基线:我们采用Few-shot [69]、CoT [70]、Reflexion [71]、Self-Debugging [73]和SelfPlanning [72]作为基线。详见A.1节。
指标:我们引入了四个评估指标:平均执行率、平均格式正确性、平均相关性和最大相关性。平均执行率指标用于衡量代码执行的平均成功率;执行过程中遇到的任何错误均计为0。平均格式正确性指标用于衡量生成代码与正确格式的符合程度,例如列名是否符合预期。平均相关性指标反映模型生成的代码输出序列与真实结果之间的平均相关性。例如,给定相同的输入特征,它评估大型语言模型生成的因子与实际实现生成的因子之间的相关性。最大相关性指标表示模型生成的代码输出序列与真实结果之间的最高相关性。
方法实现结果(RQ1): 表7中的实验结果表明,Co-STEER在我们27个测试用例的所有评估指标上均表现出卓越的实施能力。这种性能优势源于两个关键创新:动态知识扩展和上下文检索。虽然Reflexion和Self-Debugging都利用了环境反馈(表3),但Co-STEER独特地积累并检索了跨实施的实际经验。与仅考虑即时反馈的现有方法不同,Co-STEER通过持续实践构建了一个全面的知识库,有效弥合了初级和高级工程师之间的专业知识差距。这种系统的知识积累和检索机制使Co-STEER能够在各种实施场景中实现显著的性能提升。
总体性能分析(RQ2):我们在资源受限的环境中评估Co-STEER的有效性,其中智能体必须在有限的实施尝试下,针对40个候选方法(27个可实现,13个不可实现)优化性能。这种设置反映了现实世界的计算约束,并测试了调度与实施能力之间的协同作用。表8呈现了比较结果,揭示了在实际约束下系统性能的几个关键见解。
(1)进化调度提高了任务有效性。表8显示,进化调度器在所有top-k阈值上均始终优于随机基线。这凸显了其通过识别任务复杂性和依赖关系来学习有效执行顺序的能力。随着时间的推移积累经验,系统建立了一种工程直觉,使其能够优先处理更容易或基础的任务,从而解锁下游实施的成功。
(2)更多资源带来更强的泛化能力。随着预算的增加,两种调度器都受益,但进化策略显示出更大的增益。与早期趋于平稳的自修正方法不同,进化过程通过检索和改进过去的尝试继续改进,无论初始试验是否成功。调度器与实施之间的这种协同进化使得在实际约束下能够高效适应。
D.4 成本效率分析
图11比较了在固定运行时间设置下GPT-4o和o3-mini的token支出。因子任务由于涉及多阶段结构(包括假设生成、实施和多个候选因子的分析),每轮循环的成本更高;而模型任务则更简单且成本更低,因为每轮循环仅生成一个模型。GPT-4o和o3-mini在模型和量化设置中显示出相似的每轮循环成本。因子任务中较大的差距源于o3-mini每轮循环生成更复杂的假设(产生更多样化的因子类型并处理更困难的实施),从而导致更高的成本。尽管存在这些差异,但两个后端在所有RD-Agent(Q)工作流程中的总成本均保持在10美元以下(见附录C.1),证实了该框架对于可扩展、自动化量化研究的成本效益。
D.5 现实世界量化竞赛分析
为了进一步探索RD-Agent(Q)框架的潜力,我们利用RD-Agent(Q)参加了Kaggle上的Optiver已实现波动率预测[76]竞赛。这是一项预测竞赛,专注于使用高度细粒度的金融数据预测数百只股票的短期波动率。竞赛要求参与者在10分钟的时间窗口内收集信息,预测一组股票的已实现波动率,涉及处理经典的表格时间序列数据并优化均方根百分比误差(RMSPE)指标。
如图12所示,RD-Agent(Q)在第12次实验中取得了最佳性能。根据实验总结,该实验基于以下假设:通过捕捉不同时间窗口内买卖价差的演变,可以提高模型预测短期股票波动率的能力。具体实现涉及计算多个时间窗口(5秒、10秒和30秒)内买卖价差的滚动平均值和标准差,以有效捕捉市场微观结构的动态特征。总体而言,从第3轮的模型优化到第8轮和第12轮的因子调优,通过持续的实验和探索,RD-Agent(Q)发现捕捉买卖价差动态的时间特征对于该金融任务最为有效。这也表明,RD-Agent(Q)能够在众多可能的建模方法中探索,并通过经验评估而非仅依赖直觉或预定策略来理性识别最有前景的方向。此外,RD-Agent(Q)框架可适应各种量化金融任务,并表现出相对较好的性能。
E 提示设计
E.1 规范单元
如第 2.1 节所述,规范单元负责根据当前的优化目标动态生成元组 S \mathcal{S} S。下游单元根据其功能角色有选择地访问 S \mathcal{S} S 的组件——例如,综合单元和分析单元通常使用 B \mathcal{B} B、 D \mathcal{D} D 和 M \mathcal{M} M,而实现单元则依赖 D \mathcal{D} D、 F \mathcal{F} F 和 M \mathcal{M} M。
以下我们提供因子优化设置和模型优化设置下的完整规范元组。
E.2 综合单元
综合单元在从规范单元接收到动态组装的规范元组后,利用其不断演进的知识森林提出新的假设。然后,将这些假设分解为可操作的研究任务。
以下是当优化目标为因子时使用的提示:
E.3 实现单元
实现单元使用 Co-STEER 框架执行综合单元提出的任务,该框架通过迭代优化将高级描述转换为可执行代码。这一过程涉及三个关键的提示阶段:(i)代码综合:根据任务描述生成初始代码;(ii)日志分析:解析错误痕迹或输出以诊断问题;(iii)正确性验证:判断当前代码是否符合规范;如果不符合,则提示进行修订。
每个阶段都构成了一个自我修正的循环,即使在初始综合不完美的情况下也能实现稳健的执行。
E.4 验证单元
验证单元不涉及任何提示。
E.5 分析单元
如第 2.5 节所述,分析单元不仅评估实验结果,还生成基于提示的反馈以进行局部优化。在每一轮之后,它使用结构化的提示来解释结果三元组 ( h t , t t , r t ) (h^{t}, t^{t}, r^{t}) (ht,tt,rt),识别潜在的失败原因,并生成针对特定弱点(例如,过拟合、泛化能力差、特征不稳定)的短期假设。
这些经过优化的假设会作为上下文传递给综合单元,用于下一代循环。虽然分析单元基于局部、最近的证据进行操作,但综合单元将这些建议与全局搜索记忆相结合——在短期适应和长期发现之间实现了互补的平衡。
F 讨论
F.1 局限性与未来工作
尽管 RD-Agent (Q) 在现实市场和量化竞赛中都展现出了令人信服的结果,但我们仍识别出了几个局限性,为未来的研究方向指明了明确的路径:
- 多模态数据集成:尽管系统处理了多样化的市场数据,但通过纳入替代数据源(例如,新闻情绪、宏观经济指标和企业文件),其因子生成能力可以得到增强,从而捕捉更丰富的市场信号。
- 领域知识整合:尽管当前系统已经使用通用大型语言模型(例如,GPT-4o、o3-mini)取得了出色的结果,但它仅依赖模型内置的知识来提出金融假设。通过检索增强生成(RAG)整合结构化的金融专业知识(例如,来自财务报告或经济理论的创新解决方案),可以进一步提高假设生成的合理性、领域基础性和效率。
- 实时市场适应:基于批处理的设计限制了对高频交易的及时反应。纳入事件驱动或增量学习可以提高对市场状态转变、异常和新兴信号的适应性。
F.2 更广泛的影响
RD-Agent (Q) 通过几个变革性的贡献推动了智能资产管理的发展:
- 可泛化的研发自动化:尽管我们的框架是针对量化金融量身定制的,但它提供了一个模块化的、以数据为中心的工作流程,可以轻松适应其他需要假设 - 实施 - 验证循环的科学和工程领域,可能解决医疗保健、材料科学和运筹学等领域的瓶颈问题。
- 可重复且可部署的输出:RD-Agent (Q) 产生的每个结果都作为可执行代码实现。这种设计确保了端到端的可重复性,并允许在不同数据集或金融市场之间进行无缝部署,且只需极少的适配开销。
- 迈向新的金融人工智能范式:该框架通过结构化的多智能体设计统一了数据驱动建模和经济推理,为可解释、可组合和自适应的金融智能系统提供了新的基础。
这些进步使 RD-Agent (Q) 成为未来十年基于证据的量化投资的基础技术。
尽管 RD-Agent (Q) 降低了构建量化策略的门槛,但这种可访问性也引发了担忧,即非专业用户可能会在没有适当金融专业知识或风险管理的情况下,直接将生成的因子或模型部署到实际交易中。为了缓解这一问题,我们在代码库中包含明确的免责声明,表明该框架仅用于研究目的,且输出在实际部署前需要经过严格的验证。
F.3 大型语言模型的使用
我们将大型语言模型(LLMs)作为框架的核心组件——具体而言,用于交易因子和预测模型的自动化生成。我们使用的 LLM 的所有设置都在附录 C.1 中提供。除此之外,我们仅使用 LLM 来检查论文中的语法错误和格式问题。