qlib_init: provider_uri: "~/.qlib/qlib_data/cn_data" region: cn market: &market csi300 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: - class: FilterCol kwargs: fields_group: feature col_list: ["RESI5", "WVMA5", "RSQR5", "KLEN", "RSQR10", "CORR5", "CORD5", "CORR10", "ROC60", "RESI10", "VSTD5", "RSQR60", "CORR60", "WVMA60", "STD5", "RSQR20", "CORD60", "CORD10", "CORR20", "KLOW" ] - class: RobustZScoreNorm kwargs: fields_group: feature clip_outlier: true - class: Fillna kwargs: fields_group: feature 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 kwargs: signal: topk: 50 n_drop: 5 backtest: start_time: 2017-01-01 end_time: 2020-08-01 account: 100000000 benchmark: *benchmark exchange_kwargs: limit_threshold: 0.095 deal_price: close open_cost: 0.0005 close_cost: 0.0015 min_cost: 5 task: model: class: GRU module_path: qlib.contrib.model.pytorch_gru_ts kwargs: d_feat: 20 hidden_size: 64 num_layers: 2 dropout: 0.0 n_epochs: 200 lr: 2e-4 early_stop: 10 batch_size: 800 metric: loss loss: mse n_jobs: 20 GPU: 0 dataset: class: TSDatasetH module_path: qlib.data.dataset kwargs: handler: class: Alpha158 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] step_len: 20 record: - class: SignalRecord module_path: qlib.workflow.record_temp kwargs: model: dataset: - 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