常见问题解答

版本:

0.3

日期:

05-29-2022

贡献者:

Roberto Fray da Silva, Xiao-Yang Liu, Ziyi Xia, Ming Zhu

本文档包含与 FinRL 相关的最常见问题,这些问题基于在 Slack 频道和 Github 问题中提出的问题。

大纲

1-输入和数据集

  • 我可以使用 FinRL 进行加密货币交易吗?

    暂未支持。我们正在开发此功能。

  • 我可以使用 FinRL 进行实盘交易吗?

    暂未支持。我们正在开发此功能。

  • 我可以使用 FinRL 进行外汇交易吗?

    暂未支持。我们正在开发此功能。

  • 我可以使用 FinRL 进行期货交易吗?

    暂未支持

  • 免费日线数据的最佳来源是什么?

    Yahoo Finance(通过 yfinance 库)

  • 分钟数据的最佳来源是什么?

    Yahoo Finance(仅限过去 7 天),通过 yfinance 库。这是除爬虫(或付费服务提供商)之外的唯一选择。

  • FinRL 支持杠杆交易吗?

    不支持,因为这更多是一种与风险控制相关的执行策略。您可以将其作为系统的一部分使用,将风险控制部分作为单独的组件添加。

  • 是否可以添加情绪特征来提高模型的性能?

    是的,您可以添加。请记住检查代码中是否将此附加特征输入到模型(状态)中。

  • 是否有好的免费市场情绪来源可以用作特征?

    没有,您需要使用付费服务或库/代码来抓取新闻并从中获取情绪(通常使用深度学习和自然语言处理)。

2-代码和实现

  • FinRL 支持 GPU 训练吗?

    是的,支持。

  • 代码适用于日线数据,但在日内频率下效果不佳。

    是的,因为当前参数是为日线数据定义的。您需要针对日内交易调整模型参数。

  • 是否有不同的奖励函数可用?

    目前不多,但我们正在努力提供不同的奖励函数以及一种设置您自己的奖励函数的简便方法。

  • 我可以使用预训练模型吗?

    是的,但目前没有可用的。在文献中有时将此称为迁移学习。

  • 模型中最需要调整的重要超参数是什么?

    每个模型都有自己的超参数,但最重要的是 total_timesteps(可以将其视为神经网络中的 epoch:即使所有其他超参数都最优,如果 epoch 数量太少,模型性能也会很差)。其他重要超参数通常包括:learning_rate、batch_size、ent_coef、buffer_size、policy 和 reward scaling。

  • 有哪些库可以用来更好地调整模型?

    有很多,例如:Ray Tune 和 Optuna。您可以从教程中的示例开始。

  • 我可以使用 FinRL 的哪些 DRL 算法?

    我们建议使用 ElegantRL 或 Stable Baselines 3。我们成功测试了以下模型:A2C、A3C、DDPG、PPO、SAC、TD3、TRPO。您还可以创建自己的算法,并使用 OpenAI Gym 风格的市场环境。

  • 模型结果异常或未训练。

    请更新到最新版本 (https://github.com/AI4Finance-LLC/FinRL-Library),检查使用的超参数是否在正常范围内(例如:学习率过高),然后再次运行代码。如果仍然有问题,请查看第 2 部分(遇到问题时该怎么办)。

  • 原始 HTML:

    <font color=”#A52A2A”>遇到问题时该怎么办?</font>

1. 检查本常见问题解答中是否已有答案。2. 检查是否已在 GitHub 仓库的 issues 中提出。如果尚未提出,欢迎在 GitHub 上提交 issue。3. 在 AI4Finance Slack 或微信群中使用正确的频道寻求帮助。

  • 原始 HTML:

    <font color=”#A52A2A”>请问是否有针对单一股票的交易环境?文档中有一个,但 Colab 链接似乎已损坏。</font>

    我们很久没有更新单一股票环境了。单一股票环境的性能不太好,因为状态空间太小,代理无法从环境中提取太多信息。请使用多股票环境,并在训练后仅使用单一股票进行交易。

3-模型评估

  • 我的数据下,模型没有跑赢买入并持有 (BH)。是模型或代码有问题吗?

    不完全是。取决于时期、资产、选择的模型和使用的超参数,BH 可能非常难以跑赢(在波动性较低且稳步增长的股票/时期几乎从未被跑赢)。尽管如此,请更新库及其依赖项(GitHub 仓库拥有最新版本),并检查特定环境类型(单一、多股票、投资组合优化)的示例 notebook,以查看代码是否正确运行。

  • 该库中的回测如何工作?

    我们使用来自 Quantopian 的 Pyfolio 回测库 (https://github.com/quantopian/pyfolio),特别是简单的 Tearsheet 及其图表。一般来说,最重要的指标是:年化收益、累计收益、年化波动率、夏普比率、卡尔马比率、稳定性以及最大回撤。

  • 我应该使用哪些指标来评估模型?

    有几个指标,但我们推荐以下市场中最常用的指标:年化收益、累计收益、年化波动率、夏普比率、卡尔马比率、稳定性以及最大回撤。

  • 我应该使用哪些模型作为比较基准?

    我们建议使用买入并持有 (BH),因为这是一种适用于任何市场的策略,并且长期来看往往能提供不错的结果。您还可以与其他 DRL 模型和交易策略进行比较,例如最小方差投资组合。

4-其他

  • 我很感兴趣,但一无所知。我应该如何开始?

1. 从头开始阅读文档。2. 浏览 * `教程 <https://github.com/AI4Finance-Foundation/FinRL/tree/master/tutorials>`_ *3. 阅读我们的论文。

  • 该库的开发路线图是什么?

    可在我们的 Github 仓库查看 https://github.com/AI4Finance-LLC/FinRL-Library

  • 我如何为开发做贡献?

    参与 Slack 频道,查看当前的 issue 和路线图,并以任何方式提供帮助(与他人分享该库、在不同的市场/模型/策略上测试该库、贡献代码开发等)。

  • 在使用该库之前有哪些好的参考资料?

  • 对于金融背景的人来说,有哪些好的强化学习参考资料?对于机器学习背景的人来说,有哪些好的金融参考资料?

    请阅读 4-其他

  • FinRL 将集成哪些新的 SOTA(State-of-the-Art)模型?

    请在我们的 Github 仓库查看开发路线图:https://github.com/AI4Finance-LLC/FinRL-Library

  • FinRL 和 FinRL-Meta 的主要区别是什么?

    FinRL 主要用于教育和演示,而 FinRL-Meta 旨在构建金融大数据和数据驱动的金融强化学习元宇宙。

5-常见问题/错误

  • 包 trading_calendars 在 Windows 系统中报错

    trading_calendars 目前不再维护。它可能在 Windows 系统(python>=3.7)中报错。有两种可能的解决方案:1). 使用 python=3.6 环境。2). 将 trading_calendars 替换为 exchange_caldenars。