🤖 自动化量化交易与模型迭代演进


📖 背景

在量化金融领域,因子发现和模型开发在驱动业绩方面都扮演着至关重要的角色。虽然人们通常更关注新金融因子的发现,但利用这些因子的模型也同样重要。一个量化策略的有效性不仅取决于所使用的因子,还取决于这些因子如何被有效地整合到强大、可预测的模型中。

然而,开发和优化这些模型的过程既耗时又复杂,需要持续的优化和调整以适应不断变化的市场条件。这正是**金融模型智能代理(Finance Model Agent)**发挥作用的地方。


🎥 演示

 

 

🌟 简介

在此场景中,我们的自动化系统在一个持续、迭代的过程中,进行假设提出、模型构建、代码实现、回测分析,并利用反馈

其目标是通过自主研发,自动优化 Qlib 库中的性能指标,最终发现最高效的代码。

以下是增强版的步骤大纲:

  • 第一步:假设生成 🔍

    基于之前的实验分析和领域专业知识,生成并提出初始假设,并提供详尽的推理和财务依据。

  • 第二步:模型创建 ✨

    将假设转化为具体任务。

    开发、定义并实现一个量化模型,包括其名称、描述和公式。

  • 第三步:模型实现 👨‍💻

    根据详细描述实现模型代码。

    开发者一样对模型进行迭代演进,以确保其准确性和效率。

  • 第四步:使用 Qlib 进行回测 📉

    使用新开发模型和 Qlib 中从 Alpha158 提取的 20 个因子进行回测。

    评估模型的有效性和性能。

    | 数据集 | 模型 | 因子 | 数据划分 |

    | :--- | :--- | :--- | :--- |

    | CSI300 (沪深300) | RDAgent-dev | 20 个因子 (Alpha158) | 训练集:2008-01-01 至 2014-12-31 |

    | | | | 验证集:2015-01-01 至 2016-12-31 |

    | | | | 测试集:2017-01-01 至 2020-08-01 |

  • 第五步:反馈分析 🔍

    分析回测结果以评估性能。

    整合反馈意见以优化假设并改进模型。

  • 第六步:假设优化 ♻️

    根据回测反馈优化假设。

    重复此过程以持续改进模型。


⚡ 快速入门

请参考**《安装与配置》**文档中的安装部分,以准备您的系统依赖项。

您可以通过运行以下命令来尝试我们的演示:

🐍 创建 Conda 环境

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

conda create -n rdagent python=3.10

激活环境:

conda activate rdagent

📦 安装 RDAgent

您可以从 PyPI 安装 RDAgent 包:

pip install rdagent

🚀 运行应用

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

rdagent fin_model


🛠️ 模块使用

环境变量配置

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

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

显示 JSON 模式

配置:

  • env_prefix: str = QLIB_MODEL_

  • protected_namespaces: tuple = ()

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

    • 编码器类。

  • field evolving_n: int = 10

    • 演进次数。

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

    • 假设到实验转换类。

  • field hypothesis_gen: str = 'rdagent.scenarios.qlib.proposal.model_proposal.QlibModelHypothesisGen'

    • 假设生成类。

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

    • 运行器类。

  • field scen: str = 'rdagent.scenarios.qlib.experiment.model_experiment.QlibModelScenario'

    • Qlib 模型场景类。

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

    • 摘要器类。


Qlib 配置

model_template 文件夹中的 config.yaml 文件包含了在 Qlib 中运行已开发模型的相关配置。默认设置包括关键信息,例如:

  • market:指定市场,设置为 csi300

  • fields_group:定义字段组,值为 feature

  • col_list:使用的列列表,包括 RESI5WVMA5RSQR5 等各种指标。

  • start_time:数据开始日期,设置为 2008-01-01

  • end_time:数据结束日期,设置为 2020-08-01

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

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

默认使用的超参数如下:

  • n_epochs:迭代次数,设置为 100

  • lr:学习率,设置为 1e-3

  • early_stop:早停条件,设置为 10

  • batch_size:批次大小,设置为 2000

  • metric:评估指标,设置为 loss

  • loss:损失函数,设置为 mse

  • n_jobs:并行作业数,设置为 20

使用 MongoDB Atlas,您可以轻松构建由生成式人工智能(GenAI)驱动的应用程序,无需单独的数据库。

Last modified: Monday, 18 August 2025, 1:32 PM