机器学习投研深入

FinRL

经典金融强化学习框架,以数据、市场环境、智能体和训练流程组织教学与研究。

★ 16,758AI4Finance-Foundation/FinRL核验 2026-10-20
PythonGymnasiumStable-Baselines3

为什么值得学

适合理解状态、动作、奖励如何映射到持仓与交易成本,并检验强化学习实验是否可信。

需要的基础

  • 强化学习基础
  • Python 与张量
  • 样本外评估

涉及哪些内容

强化学习市场环境奖励设计训练测试分离

数据与控制流程

  1. 1行情与特征
  2. 2市场环境
  3. 3智能体动作
  4. 4持仓和奖励更新
  5. 5模型训练
  6. 6独立测试

此流程为教学归纳,便于建立整体认识;完整条件分支与运行细节请对照下方源码。

架构拆解 · 4 个核心模块

每个入口均已核对,点击可阅读源码
MODULE 01

数据与特征

FeatureEngineer 和数据切分函数构造训练所需特征与时间区间。

输入
行情表与特征选项
输出
带特征的训练 / 测试数据
源码入口 ↗finrl/meta/preprocessor/preprocessors.py
MODULE 02

交易环境

StockTradingEnv 将现金、持仓和价格组成状态,执行动作并计算奖励。

输入
状态与交易动作
输出
下一状态、奖励和结束标记
源码入口 ↗finrl/meta/env_stock_trading/env_stocktrading.py
MODULE 03

智能体封装

DRLAgent 接入 Stable-Baselines3 算法,统一训练和预测调用。

输入
环境、算法与超参数
输出
学习后的策略模型
源码入口 ↗finrl/agents/stablebaselines3/models.py
MODULE 04

训练入口

train 根据数据处理、环境和算法选择串联训练任务。

输入
数据源与训练配置
输出
训练模型及相关结果
源码入口 ↗finrl/train.py

建议阅读顺序

  1. 从 StockTradingEnv 的 reset / step 理解状态变化
  2. 检查奖励里是否计入手续费
  3. 阅读 DRLAgent 的模型构建
  4. 回到 train 确认训练数据范围
本站设计的学习练习

动手做一次

在固定数据上比较一个简单持有基线与一个 DRL 智能体,分析奖励设计影响。

完成后,检查这些证据

  • 固定随机种子并重复多次
  • 测试区间不参与训练和调参
  • 同时输出收益、换手、回撤及基线结果

适用边界与版本说明

此仓库保留经典教学研究框架;README 将下一代部署方向指向 FinRL-X / FinRL-Trading。不能把环境内收益直接视为实盘能力。

Star 快照:16,758 · 核验日期:2026-10-20 · GitHub 归档标记:未归档

核验默认分支:master · 源码固定提交:c0018c25de86 ↗

来源:GitHub 仓库与 Star 页面、README及上述源文件。分层、阅读顺序与练习为本站归纳;未逐一安装运行这些框架,源码提交不等于推荐安装版本。

同方向继续比较