From ddbbcc6203ab78addbceee2fb7b9e13a7d134d8a Mon Sep 17 00:00:00 2001 From: lwwang Date: Wed, 19 Oct 2022 23:16:59 +0800 Subject: [PATCH 01/43] Add docs for qlib.rl --- docs/_static/img/qlib_rl_highlevel.png | Bin 0 -> 184325 bytes docs/component/rl.rst | 93 +++++++++++++++++++++++++ docs/index.rst | 1 + 3 files changed, 94 insertions(+) create mode 100644 docs/_static/img/qlib_rl_highlevel.png create mode 100644 docs/component/rl.rst diff --git a/docs/_static/img/qlib_rl_highlevel.png b/docs/_static/img/qlib_rl_highlevel.png new file mode 100644 index 0000000000000000000000000000000000000000..366c9793efafb5c985675791144ef93d52f4f074 GIT binary patch literal 184325 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 literal 0 HcmV?d00001 diff --git a/docs/component/rl.rst b/docs/component/rl.rst new file mode 100644 index 0000000000..40e1d51b46 --- /dev/null +++ b/docs/component/rl.rst @@ -0,0 +1,93 @@ +.. _rl: +======================================================================== +Reinforcement Learning in Quantitative Trading +======================================================================== +.. currentmodule:: qlib + +Introduction +============ +The Qlib Reinforcement Learning toolkit (QlibRL) is the RL platform for quantitative investment. It contains a full set of components that cover the entire lifecycle of an RL pipeline, including building the simulator of the market, shaping states & actions, training policies (strategies), and backtesting strategies in the simulated environment. + +QlibRL is basically implemented within the frameworks of Tianshou and Gym. The high-level structure of QlibRL is demonstrated below: + +.. image:: ../_static/img/qlib_rl_highlevel.png + +Here, we briefly introduce each of the components in the figure. + +Base Modules +============ + +EnvWrapper +------------ +EnvWrapper is the complete capsulation of the simulated environment. It receives actions from outside (policy / strategy / agent), simulates the changes of the market, and then replies rewards and updated states, thus forming an interaction loop. + +In QlibRL, EnvWrapper is a subclass of gym.Env, so it implements all necessary interfaces of gym.Env. Any classes or pipelines that accept gym.Env should also accept EnvWrapper. Developers do not need to implement their own EnvWrapper to build their own environment. Instead, they only need to implement 4 components of the EnvWrapper: +- `Simulator` + The simulator is the core component responsible for the environment simulation. Developers could implement all the logic that is directly related to the environment simulation in the Simulator in any way they like. In QlibRL, there are already two implementations of Simulator: 1) SingleAssetOrderExecution, which is built based on Qlib's backtest toolkits. 2) SimpleSingleAssetOrderExecution, which is built based on naive simulation logic. +- `State interpreter` + The state interpreter is responsible for "interpret" states in the original format (format provided by the simulator) into states in a format that the policy could understand. For example, transform unstructured raw features into numerical tensors. +- `Action interpreter` + The action interpreter is similar to the state interpreter. But instead of states, it interprets actions generated by the policy, from the format provided by the policy to the format that is acceptable to the simulator. +- `Reward function` + The reward function returns a numerical reward to the policy after each time the policy takes an action. + +EnvWrapper will organically organize these components. Such decomposition allows for better flexibility in development. For example, if the developers want to train multiple types of policies in one same environment, they only need to design one simulator, and design different state interpreters / action interpreters / reward functions for a different types of policies. + +QlibRL has well-defined base classes for all these 4 components. All the developers need to do is define their own components by inheriting the base classes and then implementing all interfaces required by the base classes. + +Policy +------------ +QlibRL directly uses Tianshou's policy. Developers could use policies provided by Tianshou off the shelf, or implement their own policies by inheriting Tianshou's policies. + +Training Vessel & Trainer +------------ +As stated by their names, training vessels and trainers are helper classes used in training. A training vessel is a ship that contains a simulator / interpreters / reward function / policy, and it controls algorithm-related parts of training. Correspondingly, the trainer is responsible for controlling the runtime parts of training. + +As you may have noticed, a training vessel itself holds all the required components to build an EnvWrapper rather than holding an instance of EnvWrapper directly. This allows the training vessel to create duplicates of EnvWrapper dynamically when necessary (for example, under parallel training). + +With a training vessel, the trainer could finally launch the training pipeline by simple, Scikit-learn-like interfaces (i.e., `trainer.fit()`). + + +Potential Application Scenarios +============ + +Portfolio Construction +------------ +Portfolio construction is a process of selecting securities optimally by taking a minimum risk to achieve maximum returns. With an RL-based solution, an agent allocates stocks at every time step by obtaining information for each stock and the market. The key is to develop of policy for building a portfolio and make the policy able to pick the optimal portfolio. + +Order Execution +------------ +As a fundamental problem in algorithmic trading, order execution aims at fulfilling a specific trading order, either liquidation or acquirement, for a given instrument. Essentially, the goal of order execution is twofold: it not only requires to fulfill the whole order but also targets a more economical execution with maximizing profit gain (or minimizing capital loss). The order execution with only one order of liquidation or acquirement is called single-asset order execution. + +Considering stock investment always aim to pursue long-term maximized profits, is usually behaved in the form of a sequential process of continuously adjusting the asset portfolio, execution for multiple orders, including order of liquidation and acquirement, brings more constraints and making the sequence of execution for different orders should be considered, e.g. before executing an order to buy some stocks, we have to sell at least one stock. The order execution with multiple assets is called multi-asset order execution. + +According to the order execution’s trait of sequential decision making, an RL-based solution could be applied to solve the order execution. With an RL-based solution, an agent optimizes execution strategy through interacting with the market environment. + +With QlibRL, the RL algorithm in the above scenarios can be easily implemented. + +Example +============ +QlibRL provides a set of APIs for developers to further simplify their development. For example, if developers have already defined their simulator / interpreters / reward function / policy, they could launch the training pipeline by simply running: + +.. code-block:: python + train( + simulator_fn=partial(SingleAssetOrderExecution, data_dir=DATA_DIR, ticks_per_step=30), + state_interpreter=state_interp, + action_interpreter=action_interp, + initial_states=orders, + policy=policy, + reward=PAPenaltyReward(), + vessel_kwargs={ + "episode_per_iter": 100, + "update_kwargs": { + "batch_size": 64, + "repeat": 5, + }, + }, + trainer_kwargs={ + "max_iters": 2, + "loggers": ConsoleWriter(total_episodes=100), + }, + ) + +We demonstrate an example of an implementation of a single asset order execution task based on QlibRL, the details about the example can be found `here <../../examples/rl/README.md>`_. diff --git a/docs/index.rst b/docs/index.rst index 71ed8ccec5..5dcbb4bdd3 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -44,6 +44,7 @@ Document Structure Qlib Recorder: Experiment Management Analysis: Evaluation & Results Analysis Online Serving: Online Management & Strategy & Tool + Reinforcement Learning .. toctree:: :maxdepth: 3 From 9dd860c1e77a6ea3e016e089c5fd52e71606de20 Mon Sep 17 00:00:00 2001 From: lwwang Date: Wed, 19 Oct 2022 23:21:19 +0800 Subject: [PATCH 02/43] Update docs for qlib.rl --- docs/component/rl.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/component/rl.rst b/docs/component/rl.rst index 40e1d51b46..2b4f65eb8b 100644 --- a/docs/component/rl.rst +++ b/docs/component/rl.rst @@ -22,8 +22,9 @@ EnvWrapper EnvWrapper is the complete capsulation of the simulated environment. It receives actions from outside (policy / strategy / agent), simulates the changes of the market, and then replies rewards and updated states, thus forming an interaction loop. In QlibRL, EnvWrapper is a subclass of gym.Env, so it implements all necessary interfaces of gym.Env. Any classes or pipelines that accept gym.Env should also accept EnvWrapper. Developers do not need to implement their own EnvWrapper to build their own environment. Instead, they only need to implement 4 components of the EnvWrapper: + - `Simulator` - The simulator is the core component responsible for the environment simulation. Developers could implement all the logic that is directly related to the environment simulation in the Simulator in any way they like. In QlibRL, there are already two implementations of Simulator: 1) SingleAssetOrderExecution, which is built based on Qlib's backtest toolkits. 2) SimpleSingleAssetOrderExecution, which is built based on naive simulation logic. + The simulator is the core component responsible for the environment simulation. Developers could implement all the logic that is directly related to the environment simulation in the Simulator in any way they like. In QlibRL, there are already two implementations of Simulator: 1) ``SingleAssetOrderExecution``, which is built based on Qlib's backtest toolkits. 2) ``SimpleSingleAssetOrderExecution``, which is built based on naive simulation logic. - `State interpreter` The state interpreter is responsible for "interpret" states in the original format (format provided by the simulator) into states in a format that the policy could understand. For example, transform unstructured raw features into numerical tensors. - `Action interpreter` From c7b68b1d284199a7693dbcebca8a16eee0ee49f8 Mon Sep 17 00:00:00 2001 From: Young Date: Thu, 20 Oct 2022 17:25:08 +0800 Subject: [PATCH 03/43] Add homepage introduct to RL framework --- README.md | 17 ++++++++- docs/_static/img/framework.svg | 2 +- docs/introduction/introduction.rst | 55 +++++++++++++++++------------- 3 files changed, 48 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 59338ef372..ab583ec11f 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Recent released features | Feature | Status | | -- | ------ | +| RL Learning Framework | :chart_with_upwards_trend: Released on Oct 20, 2022. [#1322](https://github.com/microsoft/qlib/pull/1322), [#1316](https://github.com/microsoft/qlib/pull/1316),[#1299](https://github.com/microsoft/qlib/pull/1299),[#1263](https://github.com/microsoft/qlib/pull/1263), [#1244](https://github.com/microsoft/qlib/pull/1244), [#1169](https://github.com/microsoft/qlib/pull/1169), [#1125](https://github.com/microsoft/qlib/pull/1125), [#1076](https://github.com/microsoft/qlib/pull/1076)| | HIST and IGMTF models | :chart_with_upwards_trend: [Released](https://github.com/microsoft/qlib/pull/1040) on Apr 10, 2022 | | Qlib [notebook tutorial](https://github.com/microsoft/qlib/tree/main/examples/tutorial) | 📖 [Released](https://github.com/microsoft/qlib/pull/1037) on Apr 7, 2022 | | Ibovespa index data | :rice: [Released](https://github.com/microsoft/qlib/pull/990) on Apr 6, 2022 | @@ -114,7 +115,8 @@ At the module level, Qlib is a platform that consists of the above components. T | ------ | ----- | | `Infrastructure` layer | `Infrastructure` layer provides underlying support for Quant research. `DataServer` provides a high-performance infrastructure for users to manage and retrieve raw data. `Trainer` provides a flexible interface to control the training process of models, which enable algorithms to control the training process. | | `Workflow` layer | `Workflow` layer covers the whole workflow of quantitative investment. `Information Extractor` extracts data for models. `Forecast Model` focuses on producing all kinds of forecast signals (e.g. _alpha_, risk) for other modules. With these signals `Decision Generator` will generate the target trading decisions(i.e. portfolio, orders) to be executed by `Execution Env` (i.e. the trading market). There may be multiple levels of `Trading Agent` and `Execution Env` (e.g. an _order executor trading agent and intraday order execution environment_ could behave like an interday trading environment and nested in _daily portfolio management trading agent and interday trading environment_ ) | -| `Interface` layer | `Interface` layer tries to present a user-friendly interface for the underlying system. `Analyser` module will provide users detailed analysis reports of forecasting signals, portfolios and execution results | +| `Learning Framework` layer| The `Forecast Model` and `Trading Agent` are learnable. They are learned based on the `Learning Framework` layer and then applied to multiple scenarios in `Workflow` layer. The supported learning paradigms can be categorized into reinforcement learning and supervised learning. The learning framework leverages the `Workflow` layer as well(e.g. sharing `Information Extractor`, creating environments based on `Execution Env`). | +| `Interface` layer | `Interface` layer tries to present a user-friendly interface for the underlying system. `Analyser` module will provide users detailed analysis reports of forecasting signals, portfolios and execution results | * The modules with hand-drawn style are under development and will be released in the future. * The modules with dashed borders are highly user-customizable and extendible. @@ -404,6 +406,19 @@ Dataset plays a very important role in Quant. Here is a list of the datasets bui [Here](https://qlib.readthedocs.io/en/latest/advanced/alpha.html) is a tutorial to build dataset with `Qlib`. Your PR to build new Quant dataset is highly welcomed. + +# Learning Framework +Qlib is high customizable and a lot of components is learnable. +The learnable components are instances of `Forecast Model` and `Trading Agent`. They are learned based on the `Learning Framework` layer and then applied to multiple scenarios in `Workflow` layer. +The learning framework leverages the `Workflow` layer as well(e.g. sharing `Information Extractor`, creating environments based on `Execution Env`). + +Based on learning paradigms, they can be categorized into reinforcement learning and supervised learning. + +For supervised learning, the detailed docs can be found [here](https://qlib.readthedocs.io/en/latest/component/model.html). + +For reinforcement learning, the detailed docs can be found [here](https://qlib.readthedocs.io/en/latest/component/rl.html). Qlib's RL learning framework leverages `Execution Env` in `Workflow` layer to create environments. It's worth noting that `NestedExecutor` is supported as well. This empowers users to optimize different level of strategies/models/agents together (e.g. optimizing an order execution strategy for a specific portfolios management strategy). + + # More About Qlib If you want to have a quick glance at the most frequently used components of qlib, you can try notebooks [here](examples/tutorial/). diff --git a/docs/_static/img/framework.svg b/docs/_static/img/framework.svg index 1217fd544c..79151c5b48 100644 --- a/docs/_static/img/framework.svg +++ b/docs/_static/img/framework.svg @@ -1,4 +1,4 @@ -
Trading Agent
Trading Agent
Meta Controller
Meta Controller
Analyser
Analyser
Decision
Decision
Forecast Model
Forecast Model
Interface
Interface
Multi-level Workflow
Multi-level Workflow
Infrastracture
Infrastracture
Forecasting Analyser
Forecasting...
Portfolio Analyser
Portfolio A...
Execution Analyser
Execution...
Information Extractor
Information Extractor
Online Serving
Online Serving
Graph
Graph
Event
Event
Factor
Factor
Text
Text
Risk
Risk
Alpha
Alpha
Data Server
Data Server
local
local
remote
remote
Trainer
Trainer
Algorithms
Algorithms
Auto-ML
Auto-ML
Model Manager
Model Manager
Model
Model
Model
Model
Models
Models
Model
Model
Model
Model
Decision Generators
Decision Generators
Model Interpreter
Model Interpreter
Decision Generator
Decision Generator
Order execution
Order executi...
Execution Results
Execution Results
Execution Env
Execution Env
Sub-workflow
Sub-workfl...
VWAP/Close/...
Executor
VWAP/Close/......
Highly Customizable
Module
Highly Customiz...
Module in development
Module in devel...
Explanation
Explanation
Sub-workflow(1) (E.g. High-frequency order execution)
Sub-workflow(1) (E.g. High-frequ...
Execution Env
Execution E...
...
...
(1)  The sub-workflow will make more fine-grained decisions according to the decision from the upper-level trading agent
(1)  The sub-workflow will make more fine-grained decisions according to the decision from the upper-level trading agent
Stock selection
Stock selecti...
Asset allocation
Asset allocat...
Trading
Agent
Trading...
Viewer does not support full SVG 1.1
\ No newline at end of file +
Supervised Learning
Supervised Learning
Reinforcement  Learning
Reinforcement  Learning
Trading Agent
Trading Agent
Meta Controller
Meta Controller
Analyser
Analyser
Decision
Decision
Forecast Model
Forecast Model
Interface
Interface
Multi-level Workflow
Multi-level Workflow
Infrastracture
Infrastracture
Forecasting Analyser
Forecasting...
Portfolio Analyser
Portfolio A...
Execution Analyser
Execution...
Information Extractor
Information Extractor
Online Serving
Online Serving
Graph
Graph
Event
Event
Factor
Factor
Text
Text
Risk
Risk
Alpha
Alpha
Data Server
Data Server
local
local
remote
remote
Trainer
Trainer
Algorithms
Algorithms
Auto-ML
Auto-ML
Model Manager
Model Manager
Model
Model
Model
Model
Models
Models
Model
Model
Model
Model
Decision Generators
Decision Generators
Model Interpreter
Model Interpreter
Decision Generator
Decision Generator
Order execution
Order executi...
Execution Results
Execution Results
Execution Env
Execution Env
Sub-workflow
Sub-workfl...
VWAP/Close/...
Executor
VWAP/Close/......
Highly Customizable
Module
Highly Customiz...
Module in development
Module in devel...
Explanation
Explanation
Sub-workflow(1) (E.g. High-frequency order execution)
Sub-workflow(1) (E.g. High-frequ...
Execution Env
Execution E...
...
...
(1)  The sub-workflow will make more fine-grained decisions according to the decision from the upper-level trading agent
(1)  The sub-workflow will make more fine-grained decisions according to the decision from the upper-level trading agent
Stock selection
Stock selecti...
Asset allocation
Asset allocat...
Trading
Agent
Trading...
Supervised signal
Supervised signal
Model Traning
Model Traning
Forecast Model
Forecast Model
Risk
Risk
Alpha
Alpha
State/Reward (Execution Results)
State/Reward (Execution Results)
Environment
Environment
Action(Decision)
Action(Decision)
Trading Agent
Trading Agent
Learning Framework
Learning Framework
Trainer
Trainer
Model Manager
Model Manager
+
+
Information Extractor
Information Extrac...
Graph
Graph
Event
Event
Factor
Factor
Text
Text
- Portfolio Management
- Order Execution
- Portfolio Management...
Execution Env
Execution Env
Order Execution
Order Execu...
Execution Env
Execution Env
Portfolio Management
Portfolio M...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/introduction/introduction.rst b/docs/introduction/introduction.rst index 8ca2b41be0..3932d95fad 100644 --- a/docs/introduction/introduction.rst +++ b/docs/introduction/introduction.rst @@ -23,30 +23,37 @@ At the module level, Qlib is a platform that consists of above components. The c -======================== ============================================================================== -Name Description -======================== ============================================================================== -`Infrastructure` layer `Infrastructure` layer provides underlying support for Quant research. - `DataServer` provides high-performance infrastructure for users to manage - and retrieve raw data. `Trainer` provides flexible interface to control - the training process of models which enable algorithms controlling the - training process. - -`Workflow` layer `Workflow` layer covers the whole workflow of quantitative investment. - `Information Extractor` extracts data for models. `Forecast Model` focuses - on producing all kinds of forecast signals (e.g. *alpha*, risk) for other - modules. With these signals `Decision Generator` will generate the target - trading decisions(i.e. portfolio, orders) to be executed by `Execution Env` - (i.e. the trading market). There may be multiple levels of `Trading Agent` - and `Execution Env` (e.g. an *order executor trading agent and intraday - order execution environment* could behave like an interday trading - environment and nested in *daily portfolio management trading agent and - interday trading environment* ) - -`Interface` layer `Interface` layer tries to present a user-friendly interface for the underlying - system. `Analyser` module will provide users detailed analysis reports of - forecasting signals, portfolios and execution results -======================== ============================================================================== +=========================== ============================================================================== +Name Description +=========================== ============================================================================== +`Infrastructure` layer `Infrastructure` layer provides underlying support for Quant research. + `DataServer` provides high-performance infrastructure for users to manage + and retrieve raw data. `Trainer` provides flexible interface to control + the training process of models which enable algorithms controlling the + training process. + +`Workflow` layer `Workflow` layer covers the whole workflow of quantitative investment. + `Information Extractor` extracts data for models. `Forecast Model` focuses + on producing all kinds of forecast signals (e.g. *alpha*, risk) for other + modules. With these signals `Decision Generator` will generate the target + trading decisions(i.e. portfolio, orders) to be executed by `Execution Env` + (i.e. the trading market). There may be multiple levels of `Trading Agent` + and `Execution Env` (e.g. an *order executor trading agent and intraday + order execution environment* could behave like an interday trading + environment and nested in *daily portfolio management trading agent and + interday trading environment* ) + +`Learning Framework` layer The `Forecast Model` and `Trading Agent` are learnable. They are learned + based on the `Learning Framework` layer and then applied to multiple scenarios + in `Workflow` layer. The supported learning paradigms can be categorized into + reinforcement learning and supervised learning. The learning framework + leverages the `Workflow` layer as well(e.g. sharing `Information Extractor`, + creating environments based on `Execution Env`). + +`Interface` layer `Interface` layer tries to present a user-friendly interface for the underlying + system. `Analyser` module will provide users detailed analysis reports of + forecasting signals, portfolios and execution results +=========================== ============================================================================== - The modules with hand-drawn style are under development and will be released in the future. - The modules with dashed borders are highly user-customizable and extendible. From d13262fb7d9fc8b6d9c849aabcbcbb4358c414c7 Mon Sep 17 00:00:00 2001 From: Young Date: Thu, 20 Oct 2022 17:29:43 +0800 Subject: [PATCH 04/43] Update index Link --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ab583ec11f..fb38857797 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,7 @@ For more details, please refer to our paper ["Qlib: An AI-oriented Quantitative
  • Auto Quant Research Workflow
  • Building Customized Quant Research Workflow by Code
  • Quant Dataset Zoo
  • +
  • Learning Framework
  • More About Qlib
  • Offline Mode and Online Mode