mirror of
https://github.com/microsoft/qlib.git
synced 2026-06-06 05:51:17 +08:00
* Add util function to help automatically get horizon * Reformat for CI * Leverage horizon change * Udpate config yaml * Update for formatting * Adapt to pickled handler * Fix CI error * remove blank * Fix lint * Update tests * Remove redundant check * modify the code as suggested * format code with pylint * fix pytest error --------- Co-authored-by: Linlang <Lv.Linlang@hotmail.com>
128 lines
2.9 KiB
YAML
128 lines
2.9 KiB
YAML
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: RobustZScoreNorm
|
|
kwargs:
|
|
fields_group: feature
|
|
clip_outlier: true
|
|
- class: Fillna
|
|
kwargs:
|
|
fields_group: feature
|
|
learn_processors:
|
|
- class: CSRankNorm
|
|
kwargs:
|
|
fields_group: label
|
|
label: ["Ref($close, -2) / Ref($close, -1) - 1"]
|
|
|
|
num_states: &num_states 3
|
|
|
|
memory_mode: &memory_mode sample
|
|
|
|
tra_config: &tra_config
|
|
num_states: *num_states
|
|
rnn_arch: LSTM
|
|
hidden_size: 32
|
|
num_layers: 1
|
|
dropout: 0.0
|
|
tau: 1.0
|
|
src_info: LR_TPE
|
|
|
|
model_config: &model_config
|
|
input_size: 6
|
|
hidden_size: 64
|
|
num_layers: 2
|
|
rnn_arch: LSTM
|
|
use_attn: True
|
|
dropout: 0.0
|
|
|
|
port_analysis_config: &port_analysis_config
|
|
strategy:
|
|
class: TopkDropoutStrategy
|
|
module_path: qlib.contrib.strategy
|
|
kwargs:
|
|
signal: <PRED>
|
|
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: TRAModel
|
|
module_path: qlib.contrib.model.pytorch_tra
|
|
kwargs:
|
|
tra_config: *tra_config
|
|
model_config: *model_config
|
|
model_type: RNN
|
|
lr: 1e-3
|
|
n_epochs: 100
|
|
max_steps_per_epoch:
|
|
early_stop: 20
|
|
logdir: output/Alpha360
|
|
seed: 0
|
|
lamb: 1.0
|
|
rho: 0.99
|
|
alpha: 0.5
|
|
transport_method: router
|
|
memory_mode: *memory_mode
|
|
eval_train: False
|
|
eval_test: True
|
|
pretrain: True
|
|
init_state:
|
|
freeze_model: False
|
|
freeze_predictors: False
|
|
dataset:
|
|
class: MTSDatasetH
|
|
module_path: qlib.contrib.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]
|
|
seq_len: 60
|
|
input_size: 6
|
|
num_states: *num_states
|
|
batch_size: 1024
|
|
n_samples:
|
|
memory_mode: *memory_mode
|
|
drop_last: True
|
|
record:
|
|
- class: SignalRecord
|
|
module_path: qlib.workflow.record_temp
|
|
kwargs:
|
|
model: <MODEL>
|
|
dataset: <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
|