Changelog¶
Here you can see the full list of changes between each QLib release.
Version 0.1.0¶
This is the initial release of QLib library.
Version 0.1.1¶
Performance optimize. Add more features and operators.
Version 0.1.2¶
Support operator syntax. Now
High() - Low()is equivalent toSub(High(), Low()).Add more technical indicators.
Version 0.1.3¶
Bug fix and add instruments filtering mechanism.
Version 0.2.0¶
Redesign
LocalProviderdatabase format for performance improvement.Support load features as string fields.
Add scripts for database construction.
More operators and technical indicators.
Version 0.2.1¶
Support registering user-defined
Provider.Support use operators in string format, e.g.
['Ref($close, 1)']is valid field format.Support dynamic fields in
$some_fieldformat. And existing fields likeClose()may be deprecated in the future.
Version 0.2.2¶
Add
disk_cachefor reusing features (enabled by default).Add
qlib.contribfor experimental model construction and evaluation.
Version 0.2.3¶
Add
backtestmoduleDecoupling the Strategy, Account, Position, Exchange from the backtest module
Version 0.2.4¶
Add
profit attributionmoduleAdd
rick_controlandcost_controlstrategies
Version 0.3.0¶
Add
estimatormodule
Version 0.3.1¶
Add
filtermodule
Version 0.3.2¶
Add real price trading, if the
factorfield in the data set is incomplete, useadj_pricetradingRefactor
handlerlaunchertrainercodeSupport
backtestconfiguration parameters in the configuration fileFix bug in position
amountis 0Fix bug of
filtermodule
Version 0.3.3¶
Fix bug of
filtermodule
Version 0.3.4¶
Support for
finetune modelRefactor
fetchercode
Version 0.3.5¶
Support multi-label training, you can provide multiple label in
handler. (But LightGBM doesn't support due to the algorithm itself)Refactor
handlercode, dataset.py is no longer used, and you can deploy your own labels and features infeature_label_configHandler only offer DataFrame. Also,
trainerand model.py only receive DataFrameChange
split_rolling_data, we roll the data on market calendar now, not on normal dateMove some date config from
handlertotrainer
Version 0.4.0¶
Add data package that holds all data-related codes
Reform the data provider structure
Create a server for data centralized management qlib-server
Add a ClientProvider to work with server
Add a pluggable cache mechanism
Add a recursive backtracking algorithm to inspect the furthest reference date for an expression
备注
The D.instruments function does not support start_time, end_time, and as_list parameters, if you want to get the results of previous versions of D.instruments, you can do this:
>>> 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)
Version 0.4.1¶
Add support Windows
Fix
instrumentstype bugFix
featuresis empty bug(It will cause failure in updating)Fix
cachelock and update bugFix use the same cache for the same field (the original space will add a new cache)
Change "logger handler" from config
Change model load support 0.4.0 later
The default value of the
methodparameter ofrisk_analysisfunction is changed from ci to si
Version 0.4.2¶
Refactor DataHandler
Add
Alpha360DataHandler
Version 0.4.3¶
Implementing Online Inference and Trading Framework
Refactoring The interfaces of backtest and strategy module.
Version 0.4.4¶
Optimize cache generation performance
Add report module
Fix bug when using
ServerDatasetCacheoffline.In the previous version of
long_short_backtest, there is a case ofnp.nanin long_short. The current version0.4.4has been fixed, solong_short_backtestwill be different from the previous version.In the
0.4.2version ofrisk_analysisfunction,Nis250, andNis252from0.4.3, so0.4.2is0.002122smaller than the0.4.3the backtest result is slightly different between0.4.2and0.4.3.- refactor the argument of backtest function.
NOTE: - The default arguments of topk margin strategy is changed. Please pass the arguments explicitly if you want to get the same backtest result as previous version. - The TopkWeightStrategy is changed slightly. It will try to sell the stocks more than
topk. (The backtest result of TopkAmountStrategy remains the same)
The margin ratio mechanism is supported in the Topk Margin strategies.
Version 0.4.5¶
- Add multi-kernel implementation for both client and server.
Support a new way to load data from client which skips dataset cache.
Change the default dataset method from single kernel implementation to multi kernel implementation.
Accelerate the high frequency data reading by optimizing the relative modules.
Support a new method to write config file by using dict.
Version 0.4.6¶
- Some bugs are fixed
The default config in Version 0.4.5 is not friendly to daily frequency data.
Backtest error in TopkWeightStrategy when WithInteract=True.
Version 0.5.0¶
- First opensource version
Refine the docs, code
Add baselines
public data crawler
Version 0.8.0¶
- The backtest is greatly refactored.
Nested decision execution framework is supported
- There are lots of changes for daily trading, it is hard to list all of them. But a few important changes could be noticed
- The trading limitation is more accurate;
In previous version, longing and shorting actions share the same action.
In current version, the trading limitation is different between logging and shorting action.
- The constant is different when calculating annualized metrics.
Current version uses more accurate constant than previous version
A new version of data is released. Due to the unstability of Yahoo data source, the data may be different after downloading data again.
Users could check out the backtesting results between Current version and previous version
Other Versions¶
Please refer to Github release Notes