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
14.54k stars 2.53k forks source link

Qlib RL 是否不支持一分鐘數據訓練嗎? #1779

Open man0819 opened 2 months ago

man0819 commented 2 months ago

(qqlib) C:\Users\man-pc\qlib>python examples/rl_order_execution/scripts/gen_pickle_data.py -c examples/rl_order_execution/scripts/pickle_data_config.yml [18380:MainThread](2024-04-23 08:22:19,538) INFO - qlib.Initialization - [config.py:416] - default_conf: client. [18380:MainThread](2024-04-23 08:22:20,609) INFO - qlib.Initialization - [init.py:74] - qlib successfully initialized based on client settings. [18380:MainThread](2024-04-23 08:22:20,609) INFO - qlib.Initialization - [init.py:76] - data_path={'1min': WindowsPath('C:/Users/man-pc/qlib/data/bin')} [18380:MainThread](2024-04-23 08:22:20,610) INFO - qlib.HighFreqProvider - [highfreq_provider.py:144] - [qlib.contrib.data.highfreq_provider]Generating dataset [18380:MainThread](2024-04-23 08:22:24,047) INFO - qlib.timer - [log.py:127] - Time cost: 2.972s | Loading data Done C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\contrib\data\highfreq_processor.py:52: RuntimeWarning: Mean of empty slice self.feature_mean = np.nanmean(df_values) C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\numpy\lib\nanfunctions.py:1878: RuntimeWarning: Degrees of freedom <= 0 for slice. var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof, [18380:MainThread](2024-04-23 08:22:24,051) ERROR - qlib.workflow - [utils.py:41] - An exception has been raised[ValueError: zero-size array to reduction operation fmax which has no identity]. File "examples/rl_order_execution/scripts/gen_pickle_data.py", line 30, in feature = provider._gen_dataframe(deepcopy(provider.feature_conf)) File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\contrib\data\highfreq_provider.py", line 147, in _gen_dataframe dataset = init_instance_by_config(config) File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\utils\mod.py", line 174, in init_instance_by_config return klass(cls_kwargs, try_kwargs, kwargs) File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\data\dataset__init.py", line 119, in init__ self.handler: DataHandler = init_instance_by_config(handler, accept_types=DataHandler) File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\utils\mod.py", line 174, in init_instance_by_config return klass(cls_kwargs, try_kwargs, kwargs) File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\contrib\data\highfreq_handler.py", line 134, in init super().init( File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\data\dataset\handler.py", line 468, in init super().init(instruments, start_time, end_time, data_loader, kwargs) File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\data\dataset\handler.py", line 100, in init self.setup_data() File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\data\dataset\handler.py", line 619, in setup_data self.fit_process_data() File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\data\dataset\handler.py", line 487, in fit_process_data self.process_data(with_fit=True) File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\data\dataset\handler.py", line 551, in process_data _infer_df = self._run_proc_l(_infer_df, self.infer_processors, with_fit=with_fit, check_for_infer=True) File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\data\dataset\handler.py", line 498, in _run_proc_l proc.fit(df) File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\qlib\contrib\data\highfreq_processor.py", line 58, in fit np.save(self.feature_save_dir + name + "_vmax.npy", np.nanmax(df_values)) File "<__array_function__ internals>", line 180, in nanmax File "C:\Users\man-pc\AppData\Local\anaconda3\envs\qqlib\lib\site-packages\numpy\lib\nanfunctions.py", line 476, in nanmax res = np.fmax.reduce(a, axis=axis, out=out, kwargs) ValueError: zero-size array to reduction operation fmax which has no identity