From dd430455e411bdfae6bef3162d03e3c893b2e883 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 8 Aug 2020 17:04:32 +0200 Subject: [PATCH] Enable dataprovier for hyperopt --- freqtrade/optimize/backtesting.py | 5 ++--- freqtrade/optimize/hyperopt.py | 15 +++++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py index 214c92e0e..d058493cf 100644 --- a/freqtrade/optimize/backtesting.py +++ b/freqtrade/optimize/backtesting.py @@ -65,9 +65,8 @@ class Backtesting: self.strategylist: List[IStrategy] = [] self.exchange = ExchangeResolver.load_exchange(self.config['exchange']['name'], self.config) - if self.config.get('runmode') != RunMode.HYPEROPT: - self.dataprovider = DataProvider(self.config, self.exchange) - IStrategy.dp = self.dataprovider + dataprovider = DataProvider(self.config, self.exchange) + IStrategy.dp = dataprovider if self.config.get('strategy_list', None): for strat in list(self.config['strategy_list']): diff --git a/freqtrade/optimize/hyperopt.py b/freqtrade/optimize/hyperopt.py index 153ae3861..9bc0dadc0 100644 --- a/freqtrade/optimize/hyperopt.py +++ b/freqtrade/optimize/hyperopt.py @@ -4,26 +4,26 @@ This module contains the hyperopt logic """ +import io import locale import logging import random import warnings -from math import ceil from collections import OrderedDict +from math import ceil from operator import itemgetter +from os import path from pathlib import Path from pprint import pformat from typing import Any, Dict, List, Optional +import progressbar import rapidjson +import tabulate from colorama import Fore, Style from joblib import (Parallel, cpu_count, delayed, dump, load, wrap_non_picklable_objects) -from pandas import DataFrame, json_normalize, isna -import progressbar -import tabulate -from os import path -import io +from pandas import DataFrame, isna, json_normalize from freqtrade.data.converter import trim_dataframe from freqtrade.data.history import get_timerange @@ -35,6 +35,7 @@ from freqtrade.optimize.hyperopt_interface import IHyperOpt # noqa: F401 from freqtrade.optimize.hyperopt_loss_interface import IHyperOptLoss # noqa: F401 from freqtrade.resolvers.hyperopt_resolver import (HyperOptLossResolver, HyperOptResolver) +from freqtrade.strategy import IStrategy # Suppress scikit-learn FutureWarnings from skopt with warnings.catch_warnings(): @@ -634,6 +635,8 @@ class Hyperopt: # We don't need exchange instance anymore while running hyperopt self.backtesting.exchange = None # type: ignore self.backtesting.pairlists = None # type: ignore + self.backtesting.strategy.dp = None # type: ignore + IStrategy.dp = None # type: ignore self.epochs = self.load_previous_results(self.results_file)