Here you can see the full list of changes between each QLib release.
This is the initial release of QLib library.
Performance optimize. Add more features and operators.
- Support operator syntax. Now
High() - Low()is equivalent to
- Add more technical indicators.
Bug fix and add instruments filtering mechanism.
LocalProviderdatabase format for performance improvement.
- Support load features as string fields.
- Add scripts for database construction.
- More operators and technical indicators.
- Support registering user-defined
- Support use operators in string format, e.g.
['Ref($close, 1)']is valid field format.
- Support dynamic fields in
$some_fieldformat. And existing fields like
Close()may be deprecated in the future.
disk_cachefor reusing features (enabled by default).
qlib.contribfor experimental model construction and evaluation.
- Decoupling the Strategy, Account, Position, Exchange from the backtest module
- Add real price trading, if the
factorfield in the data set is incomplete, use
backtestconfiguration parameters in the configuration file
- Fix bug in position
- Fix bug of
- Fix bug of
- Support for
- Support multi-label training, you can provide multiple label in
handler. (But LightGBM doesn’t support due to the algorithm itself)
handlercode, dataset.py is no longer used, and you can deploy your own labels and features in
- Handler only offer DataFrame. Also,
trainerand model.py only receive DataFrame
split_rolling_data, we roll the data on market calendar now, not on normal date
- Move some date config from
- 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
D.instruments function does not support
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)
- Add support Windows
featuresis empty bug(It will cause failure in updating)
cachelock and update bug
- Fix 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
risk_analysisfunction is changed from ci to si
- Refactor DataHandler
- Implementing Online Inference and Trading Framework
- Refactoring The interfaces of backtest and strategy module.
- Optimize cache generation performance
- Add report module
- Fix bug when using
- In the previous version of
long_short_backtest, there is a case of
np.nanin long_short. The current version
0.4.4has been fixed, so
long_short_backtestwill be different from the previous version.
- In the
0.002122smaller than the
0.4.3the backtest result is slightly different between
- refactor the argument of backtest function.
- 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)
- 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
- The margin ratio mechanism is supported in the Topk Margin strategies.
- 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.
- 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.
- First opensource version
- Refine the docs, code
- Add baselines
- public data crawler
- 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
Please refer to Github release Notes