Add DoubleEnsemble
This commit is contained in:
parent
2f655f212a
commit
8318aebb06
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 SFM #
|
||||||
# python exps/trading/baselines.py --alg XGBoost #
|
# python exps/trading/baselines.py --alg XGBoost #
|
||||||
# python exps/trading/baselines.py --alg LightGBM #
|
# python exps/trading/baselines.py --alg LightGBM #
|
||||||
|
# python exps/trading/baselines.py --alg DoubleE #
|
||||||
#####################################################
|
#####################################################
|
||||||
import sys
|
import sys
|
||||||
import argparse
|
import argparse
|
||||||
@ -46,6 +47,8 @@ def retrieve_configs():
|
|||||||
alg2names["LightGBM"] = "workflow_config_lightgbm_Alpha360.yaml"
|
alg2names["LightGBM"] = "workflow_config_lightgbm_Alpha360.yaml"
|
||||||
# State Frequency Memory (SFM): Stock Price Prediction via Discovering Multi-Frequency Trading Patterns, KDD-2017
|
# State Frequency Memory (SFM): Stock Price Prediction via Discovering Multi-Frequency Trading Patterns, KDD-2017
|
||||||
alg2names["SFM"] = "workflow_config_sfm_Alpha360.yaml"
|
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
|
# find the yaml paths
|
||||||
alg2paths = OrderedDict()
|
alg2paths = OrderedDict()
|
||||||
|
Loading…
Reference in New Issue
Block a user