diff --git a/freqtrade/optimize/hyperopt.py b/freqtrade/optimize/hyperopt.py index f5f4222d6..f9a2924a4 100644 --- a/freqtrade/optimize/hyperopt.py +++ b/freqtrade/optimize/hyperopt.py @@ -14,7 +14,7 @@ from operator import itemgetter from typing import Any, Dict, List from pandas import DataFrame -from sklearn.externals.joblib import Parallel, delayed, dump, load +from joblib import Parallel, delayed, dump, load, wrap_non_picklable_objects from skopt import Optimizer from skopt.space import Dimension @@ -219,7 +219,7 @@ class Hyperopt(Backtesting): ) def run_optimizer_parallel(self, parallel, asked) -> List: - return parallel(delayed(self.generate_optimizer)(v) for v in asked) + return parallel(delayed(wrap_non_picklable_objects(self.generate_optimizer))(v) for v in asked) def load_previous_results(self): """ read trials file if we have one """ diff --git a/requirements.txt b/requirements.txt index 2671660ea..11d1bea6b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,6 +8,7 @@ urllib3==1.24.1 wrapt==1.10.11 pandas==0.23.4 scikit-learn==0.20.0 +joblib==0.13.0 scipy==1.1.0 jsonschema==2.6.0 numpy==1.15.4 diff --git a/setup.py b/setup.py index 8853ef7f8..119ad03db 100644 --- a/setup.py +++ b/setup.py @@ -30,6 +30,7 @@ setup(name='freqtrade', 'wrapt', 'pandas', 'scikit-learn', + 'joblib' 'scipy', 'jsonschema', 'TA-Lib',