更新日志

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

版本 0.1.0

QLib 库的首次发布。

版本 0.1.1

性能优化,新增更多功能和操作符。

版本 0.1.2

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

  • 新增更多技术指标。

版本 0.1.3

修复 Bug 并添加了标的过滤机制。

版本 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 模块

  • 添加 rick_controlcost_control 策略

版本 0.3.0

  • 添加 estimator 模块

版本 0.3.1

  • 添加 filter 模块

版本 0.3.2

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

  • 重构 handlerlaunchertrainer 代码

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

  • 修复持仓 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 锁定和更新问题

  • 修复相同字段重复使用同一缓存的问题(原空间会新增一个缓存)

  • 从配置中更改“logger handler”

  • 更改模型加载以支持 0.4.0 及以后版本

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

版本 0.4.2

  • 重构 DataHandler

  • 新增 Alpha360 DataHandler

版本 0.4.3

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

  • 重构回测和策略模块的接口

版本 0.4.4

  • 优化缓存生成性能

  • 新增报告模块

  • 修复离线使用 ServerDatasetCache 时的 bug

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

  • 0.4.2 版本的 risk_analysis 函数中,N250,而从 0.4.3 版本起 N 变为 252,因此 0.4.2 版本的结果比 0.4.30.002122,导致 0.4.20.4.3 的回测结果略有差异。

  • 重构回测函数的参数。
    • 注意:- Topk 边际策略的默认参数已更改。如果您希望获得与之前版本相同的回测结果,请显式传递参数。- TopkWeightStrategy 策略略有调整,它将尝试卖出超过 topk 数量的股票。(TopkAmountStrategy 的回测结果保持不变)

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

版本 0.4.5

  • 为客户端和服务器端均增加了多核实现。
    • 支持一种从客户端加载数据的新方式,可跳过数据集缓存。

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

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

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

版本 0.4.6

  • 修复了一些 bug
    • 版本 0.4.5 中的默认配置对日频数据不够友好。

    • WithInteract=True 时,TopkWeightStrategy 出现回测错误。

版本 0.5.0

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

    • 新增基线模型

    • 公开数据爬虫

版本 0.8.0

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

    • 每日交易方面有许多变更,难以一一列举,但以下几项重要变更值得注意
      • 交易限制变得更加精确;
        • 之前的版本 中,做多和做空操作共用同一类操作。

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

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

      • 用户可以对比 当前版本之前版本 的回测结果。

其他版本

请参考 Github 发行说明