RDAgent
🤖 自动化量化交易与模型迭代演进
📖 背景
在量化金融领域,因子发现和模型开发在驱动业绩方面都扮演着至关重要的角色。虽然人们通常更关注新金融因子的发现,但利用这些因子的模型也同样重要。一个量化策略的有效性不仅取决于所使用的因子,还取决于这些因子如何被有效地整合到强大、可预测的模型中。
然而,开发和优化这些模型的过程既耗时又复杂,需要持续的优化和调整以适应不断变化的市场条件。这正是**金融模型智能代理(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
:使用的列列表,包括RESI5
、WVMA5
、RSQR5
等各种指标。 -
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)驱动的应用程序,无需单独的数据库。