microsoft / qlib

Qlib is an AI-oriented quantitative investment platform that aims to realize the potential, empower research, and create value using AI technologies in quantitative investment, from exploring ideas to implementing productions. Qlib supports diverse machine learning modeling paradigms. including supervised learning, market dynamics modeling, and RL.
https://qlib.readthedocs.io/en/latest/
MIT License
15.14k stars 2.59k forks source link

[Proposal] Systematic RL support in qlib #1011

Open ultmaster opened 2 years ago

ultmaster commented 2 years ago

2022/2/25

Package name:

K: Keep in an internal repo (possibly another repo)

D: Delete

TBD: To be discussed (possibly need merge effort)

Major efforts

K .azure/docker.yml
D .azure/pipeline.yml
TBD .coveragerc
K .gitignore
K README.md
K docker/base.Dockerfile
K docker/neutrader.Dockerfile
qlib/examples examples/backtest/qlib.yml
qlib.contrib.data.utils examples/data/ordergen.py
neutrader/__init__.py
<neutrader>.action neutrader/action.py
neutrader/data/__init__.py
neutrader.data neutrader/data/base.py
neutrader.utils neutrader/data/data_queue.py
qlib.contrib.data neutrader/data/highfreq_handler.py
qlib.contrib.data neutrader/data/highfreq_handler_order.py
qlib.contrib.data neutrader/data/highfreq_handler_order_other_price.py
qlib.contrib.data neutrader/data/highfreq_label_handler.py
qlib.contrib.data neutrader/data/highfreq_label_handler_other_price.py
qlib.contrib.ops neutrader/data/highfreq_ops.py
qlib.contrib.data neutrader/data/highfreq_processor.py
qlib.contrib.data neutrader/data/highfreq_provider.py
neutrader.data neutrader/data/intraday.py
neutrader/env/__init__.py
neutrader.utils neutrader/env/finite_env.py
neutrader.env (deprecated) neutrader/env/intraday_sa.py
neutrader.utils neutrader/env/logging.py
neutrader/forecast/__init__.py
K neutrader/forecast/__main__.py
K neutrader/forecast/common/__init__.py
K neutrader/forecast/common/function.py
K neutrader/forecast/common/util.py
K neutrader/forecast/config.py
K neutrader/forecast/dataset/__init__.py
K neutrader/forecast/dataset/forecast.py
K neutrader/forecast/dataset/minlevel.py
K neutrader/forecast/model/__init__.py
K neutrader/forecast/model/base.py
K neutrader/forecast/model/darnn.py
neutrader/network/__init__.py
neutrader.network neutrader/network/base.py
neutrader.network neutrader/network/darnn.py
K neutrader/network/darnn4pred.py
neutrader.network neutrader/network/recurrent.py
neutrader.observation neutrader/observation.py
neutrader/policy/__init__.py
neutrader.policy neutrader/policy/base.py
K neutrader/policy/baseline.py
neutrader.policy neutrader/policy/twap/vwap/ac.py
K neutrader/policy/mappo.py
neutrader.policy neutrader/policy/ppo.py
neutrader.policy neutrader/policy/utils.py
neutrader/qlib_integration/__init__.py
neutrader.integration neutrader/qlib_integration/feature.py
neutrader.integration neutrader/qlib_integration/infrastructure.py
K neutrader/qlib_integration/predictor.py
neutrader.integration neutrader/qlib_integration/simulator.py
neutrader.integration neutrader/qlib_integration/strategy.py
neutrader.reward neutrader/reward.py
D neutrader/search/__init__.py
D neutrader/search/config_gen.py
D neutrader/search/rerun_exp.py
D neutrader/search/search.py
D neutrader/search/util.py
neutrader.state neutrader/state.py
neutrader.cli neutrader/tools/__init__.py
neutrader.cli neutrader/tools/backtest.py
neutrader.cli neutrader/tools/backtest_qlib.py
neutrader.cli neutrader/tools/config.py
neutrader.cli neutrader/tools/ctl.py
neutrader.cli neutrader/tools/openpai.py
neutrader.cli neutrader/tools/train_onpolicy.py
TBD setup.py
qlib/tests/rl tests/assets/opds_15_225_backtest_qlib.csv
qlib/tests tests/assets/opds_15_225_inner_twap_backtest_qlib.csv
qlib/tests tests/assets/opds_15_225_single_day_backtest_qlib.csv
qlib/tests tests/assets/peppo_15_225_backtest_qlib.csv
qlib/tests tests/assets/twap_backtest_qlib.csv
qlib/tests tests/assets/twap_nested_backtest_qlib.csv
qlib/tests tests/assets/twap_single_day_backtest_qlib.csv
qlib/tests tests/configs/hamburger.yml
qlib/tests tests/configs/opds_15_225_backtest_qlib.py
qlib/tests tests/configs/peppo_15_225_backtest_qlib.py
qlib/tests tests/configs/ppo_30min_test.yml
qlib/tests tests/configs/ppo_30min_test_qlib.yml
qlib/tests tests/configs/ppo_30min_train.yml
qlib/tests tests/configs/twap_30min.yml
qlib/tests tests/configs/twap_backtest_qlib.yml
qlib/tests tests/configs/twap_nested_backtest_qlib.yml
qlib/tests tests/test_dataloader.py
qlib/tests tests/test_e2e.py
qlib/tests tests/test_finite_env.py
qlib/tests tests/test_qlib_integration.py
qlib/tests tests/test_state.py
matluster commented 2 years ago

Status update (5/27)


Immediate work items are those I believe important and marked italic.

RL framework - self-contained, agnostic to tasks

Qlib integration - Make RL framework part of qlib

Tasks and algorithms - somewhat independent

Others