🥇 第一个以数据为中心的量化多智能体框架 RD-Agent(Q)

研发金融量化智能代理,简称 RD-Agent(Q),是首个以数据为中心的多智能体框架,旨在通过协调因子-模型协同优化,实现量化策略全栈式研发的自动化。

您可以通过论文了解更多关于 RD-Agent(Q) 的细节。


⚡ 快速入门

在开始之前,请确保您已正确安装 RD-Agent 并配置好环境。如果想了解如何安装和配置 RD-Agent,请参考文档

之后,您可以通过运行以下命令来启动框架:

🐍 创建 Conda 环境

使用 Python 创建一个新的 conda 环境(我们的 CI 已对 Python 3.10 和 3.11 进行了充分测试):

conda create -n rdagent python=3.10

激活环境:

conda activate rdagent

📦 安装 RDAgent

您可以从 PyPI 安装 RDAgent 包:

pip install rdagent

🚀 运行应用

您可以使用以下命令直接运行应用程序:

rdagent fin_quant


🛠️ 模块使用

环境变量配置

以下环境变量可以在 .env 文件中设置,以自定义应用程序的行为:

pydantic 设置 rdagent.app.qlib_rd_loop.conf.QuantBasePropSetting

显示 JSON 模式

配置:

  • env_prefix: str = QLIB_QUANT_

  • protected_namespaces: tuple = ()

  • field action_selection: str = 'bandit'

    • 行动选择策略:'bandit' 表示基于多臂赌博机的选择,'llm' 表示基于大语言模型的选择,'random' 表示随机选择。

  • field evolving_n: int = 10

    • 演进次数。

  • field factor_coder: str = 'rdagent.scenarios.qlib.developer.factor_coder.QlibFactorCoSTEER'

    • 因子编码器类。

  • field factor_hypothesis2experiment: str = 'rdagent.scenarios.qlib.proposal.factor_proposal.QlibFactorHypothesis2Experiment'

    • 假设到实验转换类。

  • field factor_runner: str = 'rdagent.scenarios.qlib.developer.factor_runner.QlibFactorRunner'

    • 因子运行器类。

  • field factor_summarizer: str = 'rdagent.scenarios.qlib.developer.feedback.QlibFactorExperiment2Feedback'

    • 因子摘要器类。

  • field model_coder: str = 'rdagent.scenarios.qlib.developer.model_coder.QlibModelCoSTEER'

    • 模型编码器类。

  • field model_hypothesis2experiment: str = 'rdagent.scenarios.qlib.proposal.model_proposal.QlibModelHypothesis2Experiment'

    • 假设到实验转换类。

  • field model_runner: str = 'rdagent.scenarios.qlib.developer.model_runner.QlibModelRunner'

    • 模型运行器类。

  • field model_summarizer: str = 'rdagent.scenarios.qlib.developer.feedback.QlibModelExperiment2Feedback'

    • 模型摘要器类。

  • field quant_hypothesis_gen: str = 'rdagent.scenarios.qlib.proposal.quant_proposal.QlibQuantHypothesisGen'

    • 假设生成类。

  • field scen: str = 'rdagent.scenarios.qlib.experiment.quant_experiment.QlibQuantScenario'

    • Qlib 模型的场景类。

pydantic 设置 rdagent.components.coder.factor_coder.config.FactorCoSTEERSettings

显示 JSON 模式

配置:

  • env_prefix: str = FACTOR_CoSTEER_

  • field coder_use_cache: bool = False

    • 指示编码器是否使用缓存。

  • field data_folder: str = 'git_ignore_folder/factor_implementation_source_data'

    • 包含金融数据(默认为 Qlib 中的基础数据)的文件夹路径。

  • field data_folder_debug: str = 'git_ignore_folder/factor_implementation_source_data_debug'

    • 包含部分金融数据(用于调试)的文件夹路径。

  • field enable_filelock: bool = False

  • field file_based_execution_timeout: int = 3600

    • 每次因子实现执行的超时时间(以秒为单位)。

  • field filelock_path: str | None = None

  • field knowledge_base_path: str | None = None

    • 知识库路径。

  • field max_loop: int = 10

    • 任务实现的最大循环次数。

  • field max_seconds_multiplier: int = 1000000

  • field new_knowledge_base_path: str | None = None

    • 新知识库的路径。

  • field python_bin: str = 'python'

    • Python 二进制文件的路径。

  • field select_method: str = 'random'

    • 因子实现的选择方法。

  • field simple_background: bool = False

    • 是否使用简单的背景信息进行代码反馈。

  • field v2_add_fail_attempt_to_latest_successful_execution: bool = False

Qlib 配置

model_templatefactor_template 目录中的 .yaml 文件包含用于在 Qlib 框架中运行相应模型或因子的一些配置。下面是它们的内容和作用概述:

  • 通用设置:

    • provider_uri:指定本地 Qlib 数据路径,设置为 ~/.qlib/qlib_data/cn_data

    • market:配置为 csi300,表示沪深 300 指数成分股。

    • benchmark:设置为 SH000300,用于回测评估。

  • 数据处理:

    • start_timeend_time:定义完整数据范围,从 2008-01-012022-08-01

    • fit_start_time:模型拟合的开始日期,设置为 2008-01-01

    • fit_end_time:模型拟合的结束日期,设置为 2014-12-31

    • featureslabels:通过嵌套数据加载器生成,该加载器结合了 Alpha158DL(用于如 RESI5WVMA5RSQR5KLEN 等工程特征)和一个加载预计算的因子文件 (combined_factors_df.parquet) 的 StaticDataLoader

    • normalization:管道包括用于推理的 RobustZScoreNorm(带裁剪)和 Fillna,以及用于训练的 DropnaLabelCSZScoreNorm

  • 训练配置:

    • Model:使用 GeneralPTNN,一个基于 PyTorch 的神经网络模型。

    • 数据集划分:

      • train2008-01-012014-12-31

      • valid2015-01-012016-12-31

      • test2017-01-012020-08-01

    • 默认超参数(可通过命令行参数覆盖):

      • n_epochs100

      • lr2e-4

      • early_stop10

      • batch_size256

      • weight_decay0.0

      • metricloss

      • lossmse

      • n_jobs20

      • GPU0(如果可用,使用 GPU 0)

  • 回测和评估:

    • strategyTopkDropoutStrategy,它选择排名前 50 的股票并随机剔除 5 只以引入探索性。

    • backtest period2017-01-012020-08-01

    • initial capital100,000,000

    • cost configuration:包括开盘/收盘成本、最低交易成本和滑点控制。

  • 记录和分析:

    • SignalRecord:记录预测的信号。

    • SigAnaRecord:执行信号分析,不进行多空分离。

    • PortAnaRecord:使用配置的策略和回测设置进行投资组合分析。


使用 MongoDB Atlas 简化基础设施,这是领先的开发者数据平台。

Last modified: Monday, 18 August 2025, 11:55 AM