金融相关的强化学习工具

在金融强化学习中,我们既可以自己实现环境,也可以利用现有工具快速搭建实验平台。本文重点介绍如何使用现成工具来简化金融 RL 实践。

1 选择金融的 RL 库

方式 代码量 学习成本 复用性 回测功能 适用场景
FinRL / gym-anytrading 完善 教学、快速实验、科研
自写 gym.Env 极简环境 需自写 简单实验
完全自研环境和回测 需自写 高度定制的金融研究

现成工具推荐:

  • gym-anytrading

    :适合快速上手和教学实验,带示例数据(如 Open/High/Low/Close/Volume)。

  • FinRL

    :适合多资产、真实市场数据回测、科研和产业应用。

  • quantgym

    :适合专业衍生品市场建模,需要金融衍生品基础。

新手建议使用 gym-anytrading,快速完成实验,降低开发成本。


2 gym-anytrading 简介

gym-anytrading (https://github.com/AminHP/gym-anytrading) 2.3k star,主要支持股票和外汇市场,提供三种环境:TradingEnvForexEnvStocksEnv。默认动作仅包含买入(1)和卖出(0)。

优势:

  • 简单易用,代码量少,上手快

  • 支持数据处理、回测和可视化

  • 内置时序信息,只需设置 window_size

  • 可扩展和集成,适合 RL 实验和策略验证


3 gym-anytrading 回测示例

复制代码
import gymnasium as gym
import gym_anytrading
from gym_anytrading.envs import StocksEnv
from gym_anytrading.datasets import STOCKS_GOOGL

env = gym.make('stocks-v0', df=STOCKS_GOOGL, frame_bound=(50, 100), window_size=10)

observation = env.reset(seed=2023)
while True:
    action = env.action_space.sample()
    observation, reward, terminated, truncated, info = env.step(action)
    done = terminated or truncated
    if done:
        print("info:", info)
        break

env.unwrapped.render_all()

通过控制 action,可以切换 RL 模型策略、手写规则策略或实盘操作。


4 可视化示例

复制代码
import matplotlib.pyplot as plt  
plt.figure(figsize=(15,6)) 
plt.plot(env.history['total_profit'], label='Total Profit') plt.legend() 
  • env.render()

    env.unwrapped.render_all() 可用于可视化回测结果。


5 自定义环境类示例

​​​​​​​

复制代码
import pandas as pd 
from gym_anytrading.envs 
import TradingEnv from gym_anytrading.datasets 
import STOCKS_GOOGL  

class StockTradingEnv3(TradingEnv):     
...

5.1 核心方法和说明

方法 说明
__init__ 初始化环境,传入 dfwindow_sizeframe_bound
_process_data 决定 observation 特征(如 OHLCV)
step 执行动作,返回 observation、reward、done 等
reset 重置环境,返回初始 observation
_calculate_reward 根据当前价格或特征计算 reward
_update_profit 累计总利润,计算 RL 代理的收益

observation 是 (window_size, feature_dim) 的二维数组,reward 与当前步 _current_tick 同步。

5.2 附加功能

  • 可设置交易费率 trade_fee_bid_percent / trade_fee_ask_percent

  • 可获取最大可能利润 max_possible_profit


6 总结

  • 使用 gym-anytrading 可以快速搭建金融 RL 实验环境,节省大量重复代码

  • 支持回测和可视化,同时保留自定义空间

    • 非常适合教学、实验和快速原型开发

7 参考资料

  • gym-anytrading 文档
相关推荐
Dontla3 小时前
黑马大模型RAG与Agent智能体实战教程LangChain提示词——6、提示词工程(提示词优化、few-shot、金融文本信息抽取案例、金融文本匹配案例)
redis·金融·langchain
vx-bot5556664 小时前
企业微信接口在金融级业务场景下的合规架构与实践
金融·架构·企业微信
Web3VentureView1 天前
SYNBO Protocol AMA回顾:下一个起点——什么将真正推动比特币重返10万美元?
大数据·人工智能·金融·web3·区块链
期权汇小韩2 天前
大盘下跌真相:一边是科技砸盘,一边是神秘力量托底!
金融
机器懒得学习2 天前
智能股票分析系统
python·深度学习·金融
硅基流动3 天前
硅基流动 × ValueCell:8K+Star,去中心化金融智能体加速投资决策
金融·去中心化·区块链
Li emily3 天前
轻松获取实时外汇行情数据
金融
得助智能-垂类大模型4 天前
得助智能证券质检系统:客服推诿、违规承诺回报率、案件关联质检场景应用!
金融·证券·质检·合规·智能质检·得助智能·券商
每天的每一天4 天前
交易所-做市商-账户部分
金融
麦兜*5 天前
深入解析现代分布式事务架构:基于Seata Saga模式与TCC模式实现金融级高可用与数据最终一致性的工程实践全解析
分布式·金融·架构