FinRL
经典金融强化学习框架,以数据、市场环境、智能体和训练流程组织教学与研究。
为什么值得学
适合理解状态、动作、奖励如何映射到持仓与交易成本,并检验强化学习实验是否可信。
数据与控制流程
- 1行情与特征
- 2市场环境
- 3智能体动作
- 4持仓和奖励更新
- 5模型训练
- 6独立测试
此流程为教学归纳,便于建立整体认识;完整条件分支与运行细节请对照下方源码。
架构拆解 · 4 个核心模块
每个入口均已核对,点击可阅读源码数据与特征
FeatureEngineer 和数据切分函数构造训练所需特征与时间区间。
- 输入
- 行情表与特征选项
- 输出
- 带特征的训练 / 测试数据
finrl/meta/preprocessor/preprocessors.py交易环境
StockTradingEnv 将现金、持仓和价格组成状态,执行动作并计算奖励。
- 输入
- 状态与交易动作
- 输出
- 下一状态、奖励和结束标记
finrl/meta/env_stock_trading/env_stocktrading.py智能体封装
DRLAgent 接入 Stable-Baselines3 算法,统一训练和预测调用。
- 输入
- 环境、算法与超参数
- 输出
- 学习后的策略模型
finrl/agents/stablebaselines3/models.py训练入口
train 根据数据处理、环境和算法选择串联训练任务。
- 输入
- 数据源与训练配置
- 输出
- 训练模型及相关结果
finrl/train.py建议阅读顺序
- 从 StockTradingEnv 的 reset / step 理解状态变化
- 检查奖励里是否计入手续费
- 阅读 DRLAgent 的模型构建
- 回到 train 确认训练数据范围
动手做一次
在固定数据上比较一个简单持有基线与一个 DRL 智能体,分析奖励设计影响。
完成后,检查这些证据
- 固定随机种子并重复多次
- 测试区间不参与训练和调参
- 同时输出收益、换手、回撤及基线结果
适用边界与版本说明
此仓库保留经典教学研究框架;README 将下一代部署方向指向 FinRL-X / FinRL-Trading。不能把环境内收益直接视为实盘能力。
Star 快照:16,758 · 核验日期:2026-10-20 · GitHub 归档标记:未归档
核验默认分支:master · 源码固定提交:c0018c25de86 ↗
来源:GitHub 仓库与 Star 页面、README及上述源文件。分层、阅读顺序与练习为本站归纳;未逐一安装运行这些框架,源码提交不等于推荐安装版本。