Add DoubleEnsemble
This commit is contained in:
		
							
								
								
									
										97
									
								
								configs/qlib/workflow_config_doubleensemble_Alpha360.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								configs/qlib/workflow_config_doubleensemble_Alpha360.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,97 @@ | ||||
| qlib_init: | ||||
|     provider_uri: "~/.qlib/qlib_data/cn_data" | ||||
|     region: cn | ||||
| market: &market all | ||||
| benchmark: &benchmark SH000300 | ||||
| data_handler_config: &data_handler_config | ||||
|     start_time: 2008-01-01 | ||||
|     end_time: 2020-08-01 | ||||
|     fit_start_time: 2008-01-01 | ||||
|     fit_end_time: 2014-12-31 | ||||
|     instruments: *market | ||||
|     infer_processors: [] | ||||
|     learn_processors: | ||||
|         - class: DropnaLabel | ||||
|         - class: CSRankNorm | ||||
|           kwargs: | ||||
|               fields_group: label | ||||
|     label: ["Ref($close, -2) / Ref($close, -1) - 1"] | ||||
| port_analysis_config: &port_analysis_config | ||||
|     strategy: | ||||
|         class: TopkDropoutStrategy | ||||
|         module_path: qlib.contrib.strategy.strategy | ||||
|         kwargs: | ||||
|             topk: 50 | ||||
|             n_drop: 5 | ||||
|     backtest: | ||||
|         verbose: False | ||||
|         limit_threshold: 0.095 | ||||
|         account: 100000000 | ||||
|         benchmark: *benchmark | ||||
|         deal_price: close | ||||
|         open_cost: 0.0005 | ||||
|         close_cost: 0.0015 | ||||
|         min_cost: 5 | ||||
| task: | ||||
|     model: | ||||
|         class: DEnsembleModel | ||||
|         module_path: qlib.contrib.model.double_ensemble | ||||
|         kwargs: | ||||
|             base_model: "gbm" | ||||
|             loss: mse | ||||
|             num_models: 6 | ||||
|             enable_sr: True | ||||
|             enable_fs: True | ||||
|             alpha1: 1 | ||||
|             alpha2: 1 | ||||
|             bins_sr: 10 | ||||
|             bins_fs: 5 | ||||
|             decay: 0.5 | ||||
|             sample_ratios: | ||||
|                 - 0.8 | ||||
|                 - 0.7 | ||||
|                 - 0.6 | ||||
|                 - 0.5 | ||||
|                 - 0.4 | ||||
|             sub_weights: | ||||
|                 - 1 | ||||
|                 - 0.2 | ||||
|                 - 0.2 | ||||
|                 - 0.2 | ||||
|                 - 0.2 | ||||
|                 - 0.2 | ||||
|             epochs: 136 | ||||
|             colsample_bytree: 0.8879 | ||||
|             learning_rate: 0.0421 | ||||
|             subsample: 0.8789 | ||||
|             lambda_l1: 205.6999 | ||||
|             lambda_l2: 580.9768 | ||||
|             max_depth: 8 | ||||
|             num_leaves: 210 | ||||
|             num_threads: 20 | ||||
|             verbosity: -1 | ||||
|     dataset: | ||||
|         class: DatasetH | ||||
|         module_path: qlib.data.dataset | ||||
|         kwargs: | ||||
|             handler: | ||||
|                 class: Alpha360 | ||||
|                 module_path: qlib.contrib.data.handler | ||||
|                 kwargs: *data_handler_config | ||||
|             segments: | ||||
|                 train: [2008-01-01, 2014-12-31] | ||||
|                 valid: [2015-01-01, 2016-12-31] | ||||
|                 test: [2017-01-01, 2020-08-01] | ||||
|     record: | ||||
|         - class: SignalRecord | ||||
|           module_path: qlib.workflow.record_temp | ||||
|           kwargs: {} | ||||
|         - class: SigAnaRecord | ||||
|           module_path: qlib.workflow.record_temp | ||||
|           kwargs: | ||||
|             ana_long_short: False | ||||
|             ann_scaler: 252 | ||||
|         - class: PortAnaRecord | ||||
|           module_path: qlib.workflow.record_temp | ||||
|           kwargs: | ||||
|             config: *port_analysis_config | ||||
| @@ -8,6 +8,7 @@ | ||||
| # python exps/trading/baselines.py --alg SFM        # | ||||
| # python exps/trading/baselines.py --alg XGBoost    # | ||||
| # python exps/trading/baselines.py --alg LightGBM   # | ||||
| # python exps/trading/baselines.py --alg DoubleE    # | ||||
| ##################################################### | ||||
| import sys | ||||
| import argparse | ||||
| @@ -46,6 +47,8 @@ def retrieve_configs(): | ||||
|     alg2names["LightGBM"] = "workflow_config_lightgbm_Alpha360.yaml" | ||||
|     # State Frequency Memory (SFM): Stock Price Prediction via Discovering Multi-Frequency Trading Patterns, KDD-2017 | ||||
|     alg2names["SFM"] = "workflow_config_sfm_Alpha360.yaml" | ||||
|     # DoubleEnsemble: A New Ensemble Method Based on Sample Reweighting and Feature Selection for Financial Data Analysis, https://arxiv.org/pdf/2010.01265.pdf | ||||
|     alg2names["DoubleE"] = "workflow_config_doubleensemble_Alpha360.yaml" | ||||
|  | ||||
|     # find the yaml paths | ||||
|     alg2paths = OrderedDict() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user