From 2f8fc8d28ab91246c89e70b02353c414d3568b06 Mon Sep 17 00:00:00 2001 From: Huoran Li Date: Wed, 24 May 2023 10:37:21 +0800 Subject: [PATCH] Black --- qlib/rl/contrib/backtest.py | 2 +- qlib/rl/contrib/naive_config_parser.py | 4 +++- qlib/rl/contrib/train.py | 15 +++++++-------- qlib/rl/contrib/train_onpolicy_full_simulation.py | 6 +++--- qlib/rl/data/native.py | 8 +++++++- qlib/rl/utils/profiling.py | 2 ++ 6 files changed, 23 insertions(+), 14 deletions(-) diff --git a/qlib/rl/contrib/backtest.py b/qlib/rl/contrib/backtest.py index fec7ba35d..1786c07b1 100644 --- a/qlib/rl/contrib/backtest.py +++ b/qlib/rl/contrib/backtest.py @@ -278,7 +278,7 @@ def single_with_collect_data_loop( **{ "codes": stocks, "freq": backtest_config["data_granularity"], - } + }, } strategy, executor = get_strategy_executor( diff --git a/qlib/rl/contrib/naive_config_parser.py b/qlib/rl/contrib/naive_config_parser.py index 6a4e9d410..5de307362 100644 --- a/qlib/rl/contrib/naive_config_parser.py +++ b/qlib/rl/contrib/naive_config_parser.py @@ -192,13 +192,15 @@ class TrainingConfigParser: "qlib": { "provider_uri_1min": config["qlib"]["provider_uri_1min"], }, - "exchange": exchange_config + "exchange": exchange_config, } return ret_config + if __name__ == "__main__": parser = TrainingConfigParser("/home/huoran/exp_configs/amc4th_training_refined.yml") from pprint import pprint + pprint(parser.parse()) diff --git a/qlib/rl/contrib/train.py b/qlib/rl/contrib/train.py index dbfdf8507..ca5f54def 100644 --- a/qlib/rl/contrib/train.py +++ b/qlib/rl/contrib/train.py @@ -49,7 +49,7 @@ def get_executor_config(freq: int) -> dict: "track_data": True, "trade_type": "serial", "verbose": False, - } + }, }, "inner_strategy": { "class": "TWAPStrategy", @@ -58,7 +58,7 @@ def get_executor_config(freq: int) -> dict: }, "time_per_step": "30min", "track_data": True, - } + }, }, "inner_strategy": { "class": "ProxySAOEStrategy", @@ -67,7 +67,7 @@ def get_executor_config(freq: int) -> dict: }, "time_per_step": "1day", "track_data": True, - } + }, } @@ -168,6 +168,7 @@ def train_and_test( sim_type = simulator_config["type"] if sim_type == "simple": + def _simulator_factory(order: Order) -> SingleAssetOrderExecutionSimple: simulator = SingleAssetOrderExecutionSimple( order=order, @@ -178,6 +179,7 @@ def train_and_test( vol_threshold=simulator_config["vol_limit"], ) return simulator + elif sim_type == "full": init_qlib(simulator_config["qlib"]) executor_config = get_executor_config(freq) @@ -287,16 +289,13 @@ def main(config: dict, run_training: bool, run_backtest: bool) -> None: network_config = config["policy"]["network"] network_config["kwargs"] = { **network_config.get("kwargs", {}), - **{"obs_space": state_interpreter.observation_space} + **{"obs_space": state_interpreter.observation_space}, } additional_policy_kwargs["network"] = init_instance_by_config(network_config) # Create policy policy_config = config["policy"]["policy"] - policy_config["kwargs"] = { - **policy_config.get("kwargs", {}), - **additional_policy_kwargs - } + policy_config["kwargs"] = {**policy_config.get("kwargs", {}), **additional_policy_kwargs} policy: BasePolicy = init_instance_by_config(policy_config) use_cuda = config["runtime"]["use_cuda"] diff --git a/qlib/rl/contrib/train_onpolicy_full_simulation.py b/qlib/rl/contrib/train_onpolicy_full_simulation.py index af2abb3e3..bd7732786 100644 --- a/qlib/rl/contrib/train_onpolicy_full_simulation.py +++ b/qlib/rl/contrib/train_onpolicy_full_simulation.py @@ -50,7 +50,7 @@ def get_executor_config(data_granularity: int = 1) -> dict: "track_data": True, "trade_type": "serial", "verbose": False, - } + }, }, "inner_strategy": { "class": "TWAPStrategy", @@ -59,7 +59,7 @@ def get_executor_config(data_granularity: int = 1) -> dict: }, "time_per_step": "30min", "track_data": True, - } + }, }, "inner_strategy": { "class": "ProxySAOEStrategy", @@ -68,7 +68,7 @@ def get_executor_config(data_granularity: int = 1) -> dict: }, "time_per_step": "1day", "track_data": True, - } + }, } diff --git a/qlib/rl/data/native.py b/qlib/rl/data/native.py index eb9d44d58..04dad778b 100644 --- a/qlib/rl/data/native.py +++ b/qlib/rl/data/native.py @@ -149,6 +149,7 @@ def _load_handler_pickle(path: str) -> object: obj = pickle.load(fstream) return obj + class HandlerIntradayProcessedData(BaseIntradayProcessedData): """Subclass of IntradayProcessedData. Used to handle handler (bin format) style data.""" @@ -189,7 +190,12 @@ def load_handler_intraday_processed_data( backtest: bool = False, ) -> HandlerIntradayProcessedData: return HandlerIntradayProcessedData( - data_dir, stock_id, date, feature_columns_today, feature_columns_yesterday, backtest, + data_dir, + stock_id, + date, + feature_columns_today, + feature_columns_yesterday, + backtest, ) diff --git a/qlib/rl/utils/profiling.py b/qlib/rl/utils/profiling.py index 15d350e9c..05792b8ec 100644 --- a/qlib/rl/utils/profiling.py +++ b/qlib/rl/utils/profiling.py @@ -2,6 +2,7 @@ import time from contextlib import contextmanager from line_profiler import LineProfiler + @contextmanager def simple_perf(desc: str = ""): s = time.perf_counter() @@ -17,4 +18,5 @@ def lprofile(func): res = lpw(*args, **kwargs) lp.print_stats() return res + return wrapper