MontrealTradingGroup / freqtrade

Simple High Frequency Trading Bot for crypto currencies
GNU General Public License v3.0
70 stars 61 forks source link

Hyperopt - e 500 Flag not workoing #3

Open CapitalZe opened 5 years ago

CapitalZe commented 5 years ago

After running:

python3 ./trade/main.py -c config.json --customhyperopt BBRSIOPT hyperopt -e 500

with the hyperopt -e 500 flag the following error arises.

    return future.result(timeout=timeout)
  File "/home/dt-nicholas/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 432, in result
    return self.__get_result()
  File "/home/dt-nicholas/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
joblib.externals.loky.process_executor.BrokenProcessPool: A task has failed to un-serialize. Please ensure that the arguments of the function are all picklable.

If I run without the flag as this:

python3 ./trade/main.py -c config.json --customhyperopt BBRSIOPT 

It runs fine.

Any ideas? I can't seem to find any solution that works.

CapitalZe commented 5 years ago

I think it's related to this:

DeprecationWarning: sklearn.externals.joblib is deprecated in 0.21 and will be removed in 0.23. Please import this functionality directly from joblib, which can be installed with: pip install joblib. If this warning is raised when loading pickled models, you may need to re-serialize those models with scikit-learn 0.21+.

I can not isolate it at the moment though.

xmatthias commented 5 years ago

The warning has nothing to do with this problem, it's just a warning.

It's a bug we fixed upstream about a month ago - not sure if it was ported to this fork - this can happen if hyperopt removes all signals (so you got no signal left). - best update to the latest upstream version, either stable (2019-7) or the develop branch.