更新日志

在这里可以查看每个QLib版本之间的完整变更列表。

版本 0.1.0

这是QLib库的初始版本。

版本 0.1.1

性能优化。添加更多特性和操作符。

版本 0.1.2

  • 支持操作符语法。现在 High() - Low() 等同于 Sub(High(), Low())

  • 添加更多技术指标。

版本 0.1.3

修复错误并添加仪器过滤机制。

版本 0.2.0

  • 为了提高性能,重新设计了 LocalProvider 数据库格式。

  • 支持将特性加载为字符串字段。

  • 添加了用于数据库构建的脚本。

  • 更多操作符和技术指标。

版本 0.2.1

  • 支持注册用户自定义的 Provider

  • 支持在字符串格式中使用操作符,例如 ['Ref($close, 1)'] 是有效的字段格式。

  • 支持以 $some_field 格式的动态字段。而现有字段如 Close() 在未来可能会被弃用。

版本 0.2.2

  • 添加了用于重用特性的 disk_cache (默认启用)。

  • 添加了用于实验性模型构建和评估的 qlib.contrib

版本 0.2.3

  • 添加了 backtest 模块。

  • 将策略、账户、持仓和交易所与回测模块解耦。

版本 0.2.4

  • 添加了 profit attribution 模块。

  • 添加了 risk controlcost control 策略。

版本 0.3.0

  • 添加 estimator 模块

版本 0.3.1

  • 添加 filter 模块

版本 0.3.2

  • 添加真实价格交易,如果数据集中的 factor 字段不完整,则使用 adj_price 进行交易

  • 重构 handlerlaunchertrainer 代码

  • 支持在配置文件中设置 backtest 配置参数

  • 修复 position 的 amount 为 0 的 bug

  • 修复 filter 模块的 bug

版本 0.3.3

  • 修复 filter 模块的 bug

版本 0.3.4

  • 支持 finetune model

  • 重构 fetcher 代码

版本 0.3.5

  • 支持多标签训练,可以在 handler 中提供多个标签。 (但由于算法自身的限制,LightGBM 不支持)

  • 重构 handler 代码,不再使用 dataset.py,可以在 feature_label_config 中部署自己的标签和特征

  • Handler 只提供 DataFrame。此外,trainer 和 model.py 仅接收 DataFrame

  • 更改 split_rolling_data,现在我们在市场日历上滚动数据,而不是在常规日期上

  • 将一些日期配置从 handler 移动到 trainer

版本 0.4.0

  • 添加存放所有数据相关代码的 data

  • 重组数据提供程序结构

  • 创建一个用于数据集中管理的服务器 qlib-server

  • 添加一个与服务器配合使用的 ClientProvider

  • 添加可插拔的缓存机制

  • 添加递归回溯算法来检查表达式的最远参考日期

备注

D.instruments 函数不支持 start_timeend_timeas_list 参数,如果您想获取先前版本的 D.instruments 的结果,可以这样做:

>>> from qlib.data import D
>>> instruments = D.instruments(market='csi500')
>>> D.list_instruments(instruments=instruments, start_time='2015-01-01', end_time='2016-02-15', as_list=True)

版本 0.4.1

  • 添加 Windows 支持

  • 修复 instruments 类型 bug

  • 修复 features 为空的 bug(会导致更新失败)

  • 修复 cache 锁和更新 bug

  • 修复对同一字段使用相同缓存的问题(原有空间会添加新的缓存)

  • 从配置中更改 “logger handler”

  • 从 0.4.0 开始更改模型加载支持

  • risk_analysis 函数的 method 参数的默认值从 ci 更改为 si

版本0.4.2

  • 重构DataHandler

  • 添加 Alpha360 DataHandler

版本0.4.3

  • 实现在线推理和交易框架

  • 重构backtest和strategy模块的接口。

版本0.4.4

  • 优化缓存生成性能

  • 添加报告模块

  • 修复使用 ServerDatasetCache 离线时的错误。

  • 在以前的 long_short_backtest 版本中,long_short中存在 np.nan 的情况。当前版本 0.4.4 已经修复,因此 long_short_backtest 与以前的版本不同。

  • 0.4.2 版本的 risk_analysis 函数中,N250,从 0.4.3 开始,N252,因此 0.4.20.4.3 小了 0.0021220.4.20.4.3 之间的回测结果略有不同。

  • 重构backtest函数的参数。
    • 注意: - topk margin策略的默认参数已更改。如果要获得与以前版本相同的回测结果,请明确传递参数。 - TopkWeightStrategy略有变化。它将尝试卖出超过 topk 的股票。(TopkAmountStrategy的回测结果保持不变)

  • Topk Margin策略支持保证金比例机制。

版本0.4.5

  • 为客户端和服务器添加多内核实现。
    • 支持从客户端加载数据的新方法,跳过数据集缓存。

    • 将默认数据集方法从单内核实现更改为多内核实现。

  • 通过优化相关模块加速高频数据读取。

  • 支持使用字典写入配置文件的新方法。

版本0.4.6

  • 修复一些错误
    • Version 0.4.5 中的默认配置不适用于每日频率数据。

    • TopkWeightStrategy在 WithInteract=True 时的回测错误。

版本0.5.0

  • 第一个开源版本
    • 优化文档和代码

    • 添加基准

    • 公共数据爬虫

版本0.8.0

  • 对回测进行了重大重构。
    • 支持嵌套决策执行框架

    • 对于每日交易,有很多更改,很难列举所有的更改。但是一些重要的更改可以注意到
      • 交易限制更精确;
        • 以前的版本 中,做多和做空操作共享相同的动作。

        • 当前版本 中,做多和做空操作之间的交易限制不同。

      • 使用年化指标计算时的常数不同。
      • 发布了 新版本 的数据。由于Yahoo数据源的不稳定性,重新下载数据后可能会有所不同。

      • 用户可以在 当前版本以前版本 之间检查回测结果。

其他版本

请参考 Github发行说明