From 09f8904545b35454534cf2866216ec4e656c4381 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 19 Aug 2022 15:12:55 +0200 Subject: [PATCH] Extract analysis to separate method --- freqtrade/optimize/hyperopt.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/freqtrade/optimize/hyperopt.py b/freqtrade/optimize/hyperopt.py index cbcf39131..ebeb7eb25 100644 --- a/freqtrade/optimize/hyperopt.py +++ b/freqtrade/optimize/hyperopt.py @@ -406,6 +406,14 @@ class Hyperopt: def _set_random_state(self, random_state: Optional[int]) -> int: return random_state or random.randint(1, 2**16 - 1) + def advise_and_trim(self, data: Dict[str, DataFrame]) -> Dict[str, DataFrame]: + preprocessed = self.backtesting.strategy.advise_all_indicators(data) + + # Trim startup period from analyzed dataframe to get correct dates for output. + processed = trim_dataframes(preprocessed, self.timerange, self.backtesting.required_startup) + self.min_date, self.max_date = get_timerange(processed) + return processed + def prepare_hyperopt_data(self) -> None: data, timerange = self.backtesting.load_bt_data() self.backtesting.load_bt_data_detail() @@ -413,9 +421,7 @@ class Hyperopt: preprocessed = self.backtesting.strategy.advise_all_indicators(data) - # Trim startup period from analyzed dataframe to get correct dates for output. - processed = trim_dataframes(preprocessed, timerange, self.backtesting.required_startup) - self.min_date, self.max_date = get_timerange(processed) + preprocessed = self.advise_and_trim(data) logger.info(f'Hyperopting with data from {self.min_date.strftime(DATETIME_PRINT_FORMAT)} ' f'up to {self.max_date.strftime(DATETIME_PRINT_FORMAT)} '