diff --git a/examples/benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml b/examples/benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml index e1171a85d..2d441dea9 100644 --- a/examples/benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml +++ b/examples/benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml @@ -14,9 +14,8 @@ port_analysis_config: &port_analysis_config class: TopkDropoutStrategy module_path: qlib.contrib.strategy kwargs: - signal: - - - - + model: + dataset: topk: 50 n_drop: 5 backtest: diff --git a/qlib/contrib/strategy/signal_strategy.py b/qlib/contrib/strategy/signal_strategy.py index b47da9ed7..ae69b4bb6 100644 --- a/qlib/contrib/strategy/signal_strategy.py +++ b/qlib/contrib/strategy/signal_strategy.py @@ -27,7 +27,7 @@ class TopkDropoutStrategy(BaseStrategy): *, topk, n_drop, - signal: Union[Signal, Tuple[BaseModel, Dataset], List, Dict, Text, pd.Series, pd.DataFrame], + signal: Union[Signal, Tuple[BaseModel, Dataset], List, Dict, Text, pd.Series, pd.DataFrame] = None, method_sell="bottom", method_buy="top", risk_degree=0.95, @@ -36,6 +36,8 @@ class TopkDropoutStrategy(BaseStrategy): trade_exchange=None, level_infra=None, common_infra=None, + model=None, + dataset=None, **kwargs, ): """ @@ -82,6 +84,12 @@ class TopkDropoutStrategy(BaseStrategy): self.risk_degree = risk_degree self.hold_thresh = hold_thresh self.only_tradable = only_tradable + + # This is trying to be compatible with previous version of qlib task config + if model is not None and dataset is not None: + warnings.warn("`model` `dataset` is deprecated; use `signal`.", DeprecationWarning) + signal = model, dataset + self.signal: Signal = create_signal_from(signal) def get_risk_degree(self, trade_step=None):