RDAgent
🤖 自动化量化交易与因子迭代演进
📖 背景
在充满活力的量化交易世界中,因子是交易者利用市场低效性的战略工具。这些因子——从市盈率等简单指标到现金流折现等复杂模型——是高精度预测股价的关键。
通过利用这些因子,量化交易者可以开发出复杂的策略,不仅能识别市场模式,还能显著提高交易效率和精确度。系统地分析和应用这些因子的能力,是区分普通交易和真正战略性地超越市场的关键。这就是**金融模型智能代理(Finance Model Agent)**发挥作用的地方。
🎥 演示
🌟 简介
在此场景中,我们的智能代理演示了假设生成、知识构建和决策制定的迭代过程。
它突显了金融因子如何通过持续的反馈和优化而演进。
以下是增强版的步骤大纲:
-
第一步:假设生成 🔍
基于之前的实验分析和领域专业知识,生成并提出初始假设,并提供详尽的推理和财务依据。
-
第二步:因子创建 ✨
根据假设,将任务进行拆分。
每个任务都涉及开发、定义和实现一个新的金融因子,包括其名称、描述、公式和变量。
-
第三步:因子实现 👨💻
根据描述实现因子代码,并像开发者一样对其进行演进。
对新创建的因子进行量化验证。
-
第四步:使用 Qlib 进行回测 📉
将完整数据集整合到因子实现代码中,并准备好因子库。
在 Qlib 中使用 Alpha158 和新开发的因子以及 LGBModel 进行回测,以评估新因子的有效性和性能。
| 数据集 | 模型 | 因子 | 数据划分 |
| :--- | :--- | :--- | :--- |
| CSI300 (沪深300) | LGBModel | Alpha158 Plus | 训练集: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_factor
🛠️ 模块使用
环境变量配置
以下环境变量可以在 .env
文件中设置,以自定义应用程序的行为:
pydantic 设置 rdagent.app.qlib_rd_loop.conf.FactorBasePropSetting
显示 JSON 模式
配置:
-
env_prefix: str = QLIB_FACTOR_
-
protected_namespaces: tuple = ()
-
field coder: str = 'rdagent.scenarios.qlib.developer.factor_coder.QlibFactorCoSTEER'
-
编码器类。
-
-
field evolving_n: int = 10
-
演进次数。
-
-
field hypothesis2experiment: str = 'rdagent.scenarios.qlib.proposal.factor_proposal.QlibFactorHypothesis2Experiment'
-
假设到实验转换类。
-
-
field hypothesis_gen: str = 'rdagent.scenarios.qlib.proposal.factor_proposal.QlibFactorHypothesisGen'
-
假设生成类。
-
-
field runner: str = 'rdagent.scenarios.qlib.developer.factor_runner.QlibFactorRunner'
-
运行器类。
-
-
field scen: str = 'rdagent.scenarios.qlib.experiment.factor_experiment.QlibFactorScenario'
-
Qlib 因子场景类。
-
-
field summarizer: str = 'rdagent.scenarios.qlib.developer.feedback.QlibFactorExperiment2Feedback'
-
摘要器类。
-
pydantic 设置 rdagent.components.coder.factor_coder.config.FactorCoSTEERSettings
显示 JSON 模式
配置:
-
env_prefix: str = FACTOR_CoSTEER_
-
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 file_based_execution_timeout: int = 3600
-
每次因子实现执行的超时时间(以秒为单位)。
-
-
field python_bin: str = 'python'
-
Python 二进制文件的路径。
-
-
field select_method: str = 'random'
-
因子实现的选择方法。
-
-
field simple_background: bool = False
-
是否使用简单的背景信息进行代码反馈。
-
使用 MongoDB Atlas,您无需单独的数据库即可开始构建由生成式人工智能(GenAI)驱动的应用程序。