Add test for hyperopt

This commit is contained in:
Matthias 2019-07-15 20:27:34 +02:00
parent 107f00ff8f
commit b1b4048f97
2 changed files with 19 additions and 2 deletions

View File

@ -63,7 +63,7 @@ class Hyperopt(Backtesting):
# Note, this is ratio. 3.85 stated above means 385Σ%. # Note, this is ratio. 3.85 stated above means 385Σ%.
self.expected_max_profit = 3.0 self.expected_max_profit = 3.0
if self.config['hyperopt_clean_state']: if self.config.get('hyperopt_clean_state'):
self.clean_hyperopt() self.clean_hyperopt()
# Previous evaluations # Previous evaluations
self.trials_file = TRIALSDATA_PICKLE self.trials_file = TRIALSDATA_PICKLE

View File

@ -11,7 +11,7 @@ from freqtrade import DependencyException
from freqtrade.data.converter import parse_ticker_dataframe from freqtrade.data.converter import parse_ticker_dataframe
from freqtrade.data.history import load_tickerdata_file from freqtrade.data.history import load_tickerdata_file
from freqtrade.optimize.default_hyperopt import DefaultHyperOpts from freqtrade.optimize.default_hyperopt import DefaultHyperOpts
from freqtrade.optimize.hyperopt import Hyperopt, HYPEROPT_LOCKFILE from freqtrade.optimize.hyperopt import Hyperopt, HYPEROPT_LOCKFILE, TICKERDATA_PICKLE
from freqtrade.optimize import setup_configuration, start_hyperopt from freqtrade.optimize import setup_configuration, start_hyperopt
from freqtrade.resolvers.hyperopt_resolver import HyperOptResolver from freqtrade.resolvers.hyperopt_resolver import HyperOptResolver
from freqtrade.state import RunMode from freqtrade.state import RunMode
@ -510,3 +510,20 @@ def test_generate_optimizer(mocker, default_conf) -> None:
hyperopt = Hyperopt(default_conf) hyperopt = Hyperopt(default_conf)
generate_optimizer_value = hyperopt.generate_optimizer(list(optimizer_param.values())) generate_optimizer_value = hyperopt.generate_optimizer(list(optimizer_param.values()))
assert generate_optimizer_value == response_expected assert generate_optimizer_value == response_expected
def test_clean_hyperopt(mocker, default_conf, caplog):
patch_exchange(mocker)
default_conf.update({'config': 'config.json.example',
'epochs': 1,
'timerange': None,
'spaces': 'all',
'hyperopt_jobs': 1,
})
mocker.patch("freqtrade.optimize.hyperopt.Path.is_file", MagicMock(return_value=True))
unlinkmock = mocker.patch("freqtrade.optimize.hyperopt.Path.unlink", MagicMock())
hyp = Hyperopt(default_conf)
hyp.clean_hyperopt()
assert unlinkmock.call_count == 2
assert log_has(f"Removing `{TICKERDATA_PICKLE}`.", caplog.record_tuples)