From f648214ca0f502ed001ceb2ace5ac9389c7896f4 Mon Sep 17 00:00:00 2001 From: Emre Date: Tue, 20 Dec 2022 16:59:16 +0300 Subject: [PATCH] Option drop last shifted labels while backtesting --- freqtrade/constants.py | 1 + freqtrade/freqai/freqai_interface.py | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/freqtrade/constants.py b/freqtrade/constants.py index 397367216..8b9f2e756 100644 --- a/freqtrade/constants.py +++ b/freqtrade/constants.py @@ -548,6 +548,7 @@ CONF_SCHEMA = { "conv_width": {"type": "integer", "default": 1}, "train_period_days": {"type": "integer", "default": 0}, "backtest_period_days": {"type": "number", "default": 7}, + "backtest_drop_shifted_labels": {"type": "boolean", "default": False}, "identifier": {"type": "string", "default": "example"}, "feature_parameters": { "type": "object", diff --git a/freqtrade/freqai/freqai_interface.py b/freqtrade/freqai/freqai_interface.py index 9025f358a..86a6650e5 100644 --- a/freqtrade/freqai/freqai_interface.py +++ b/freqtrade/freqai/freqai_interface.py @@ -308,6 +308,11 @@ class IFreqaiModel(ABC): dk.append_predictions(append_df) else: dataframe_train = dk.slice_dataframe(tr_train, dataframe) + if self.freqai_info.get('backtest_drop_shifted_labels', False): + label_period_candles = self.freqai_info.get('feature_parameters', {}) \ + .get("label_period_candles", 0) + if label_period_candles > 0: + dataframe_train = dataframe_train.iloc[:-label_period_candles, :] dataframe_backtest = dk.slice_dataframe(tr_backtest, dataframe) if not self.model_exists(dk): dk.find_features(dataframe_train)