FinRL / Architecture

FinRL 架构详解:三层架构与生态四件套

FinRL 围绕三层核心架构组织:市场环境(Market Environments)、DRL 智能体(DRL Agents)、金融应用(Financial Applications)。一个交易任务里,智能体与市场环境交互、学习序贯决策策略。这套架构支撑了 FinRL 生态四件套——FinRL-Meta、FinRL、ElegantRL、FinRL-X。

3 层解耦生态 4 件套train-test-trade
市场环境FinRL-Meta
DRL 智能体ElegantRL/SB3/RLlib
金融应用股票/加密/高频
FinRL 三层架构示意(基于官方 README);示意非官方图。
Three layers

三层架构拆解

三层各司其职、可单独替换,避免把数据、算法和应用耦合在一起。

职责FinRL 里的落点
市场环境Gym 风格金融环境:定义状态、动作、奖励,模拟行情与交易约束finrl/meta/env_stock_trading、env_portfolio_allocation、env_cryptocurrency_trading
DRL 智能体强化学习算法实现,学习买卖决策策略finrl/agents(elegantrl、stablebaseline3、rllib)
金融应用具体交易任务:训练、回测、实盘finrl/applications(stock_trading、portfolio_allocation、cryptocurrency_trading、high_frequency_trading 等)
Ecosystem

FinRL 生态四件套

官方把生态按「定位 → 目标用户 → 仓库」分层,经典 FinRL 只是其中一环。

仓库定位目标用户说明
FinRL-Meta市场环境从业者Gym 风格金融市场环境与基准
FinRL经典端到端框架学习者/开发者/研究者原始 train-test-trade 管线(本仓库)
ElegantRL算法层研究者/专家轻量优雅的 DRL 算法实现
FinRL-X / FinRL-Trading下一代 / 生产级专业交易者/机构/对冲基金AI-native 模块化、面向部署的量化交易基础设施
注意:官方 README 建议新用户若构建现代或生产级交易系统,从 FinRL-X / FinRL-Trading 起步;本仓库 FinRL 保留经典教育/研究框架。
Pipeline

train-test-trade 工作流

FinRL 用三个文件把「训练 → 测试 → 交易」串起来,是理解整个框架的关键。

  1. train.py

    在训练集上训练 DRL 智能体,保存训练好的模型。

  2. test.py

    在测试集上评估模型,输出回测指标。

  3. trade.py

    用训练好的模型在(模拟/实盘)环境里做交易决策。

File structure

目录结构速览

主目录 finrl 下三个子目录 applications / agents / meta,外加 config 与 train/test/trade。

FinRL
├── finrl
│   ├── applications   # 股票/加密/高频/组合/模仿学习
│   ├── agents         # elegantrl / rllib / stablebaseline3
│   ├── meta           # 数据处理器 + 各市场环境
│   ├── config.py / config_tickers.py
│   └── train.py / test.py / trade.py
├── examples           # 教程脚本
├── unit_tests
├── setup.py / requirements.txt
└── README.md
FinRL vs FinRL-X

经典版与下一代差异

官方 README 明确对比了 FinRL(Stage 1.0)与 FinRL-X(Stage 3.0)的能力差异。

能力FinRL(经典)FinRL-X
范式深度强化学习AI-Native(ML + DRL + LLM-ready)
架构三层耦合单体完全解耦的模块化层
策略DRL 智能体(A2C/DDPG/PPO/SAC/TD3)ML 选股 + DRL 择时 + 可扩展基座
回测手写评估循环专业 bt 库引擎
实盘基础 Alpaca 支持多账户集成 + 风控
目标用户研究者/学生量化/机构/生产部署
FAQ

常见问题

FinRL 的三层架构分别是什么?

市场环境(Market Environments)、DRL 智能体(DRL Agents)、金融应用(Financial Applications)。智能体与市场环境交互,学习序贯决策策略,应用层承载具体交易任务。

FinRL 和 FinRL-X 有什么区别?

FinRL 是经典端到端研究框架(三层耦合、DRL 算法、手写回测);FinRL-X/FinRL-Trading 是下一代生产级框架(模块化解耦、专业 bt 回测、多账户实盘)。生产级建议用 FinRL-X。

FinRL-Meta 和 ElegantRL 是干什么的?

FinRL-Meta 提供 Gym 风格的市场环境与基准;ElegantRL 是轻量 DRL 算法库。它们与 FinRL 共同构成生态四件套。

train-test-trade 是什么意思?

用 train.py 训练智能体、test.py 回测评估、trade.py 做交易决策的三步管线,是 FinRL 的核心工作流。

看懂架构后,去安装跑通

三层架构与 train-test-trade 理解了,下一步是 clone 仓库装环境跑首次训练。想快速验证想法,也可看 EasyClaw 量化 Skill 路线。