From 6954a1e02951e587cee1d6b8e46365913ace34cb Mon Sep 17 00:00:00 2001 From: Matthias Date: Mon, 29 Mar 2021 19:27:19 +0200 Subject: [PATCH] MOre tests for ParameterHyperopt --- tests/optimize/conftest.py | 2 ++ tests/optimize/test_hyperopt.py | 17 +++++++++++++++++ tests/strategy/test_interface.py | 3 ++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/tests/optimize/conftest.py b/tests/optimize/conftest.py index df6f22e01..5c789ec1e 100644 --- a/tests/optimize/conftest.py +++ b/tests/optimize/conftest.py @@ -14,6 +14,7 @@ from tests.conftest import patch_exchange def hyperopt_conf(default_conf): hyperconf = deepcopy(default_conf) hyperconf.update({ + 'datadir': Path(default_conf['datadir']), 'hyperopt': 'DefaultHyperOpt', 'hyperopt_loss': 'ShortTradeDurHyperOptLoss', 'hyperopt_path': str(Path(__file__).parent / 'hyperopts'), @@ -21,6 +22,7 @@ def hyperopt_conf(default_conf): 'timerange': None, 'spaces': ['default'], 'hyperopt_jobs': 1, + 'hyperopt_min_trades': 1, }) return hyperconf diff --git a/tests/optimize/test_hyperopt.py b/tests/optimize/test_hyperopt.py index 193d997db..36b6f1229 100644 --- a/tests/optimize/test_hyperopt.py +++ b/tests/optimize/test_hyperopt.py @@ -16,6 +16,7 @@ from freqtrade.commands.optimize_commands import setup_optimize_configuration, s from freqtrade.data.history import load_data from freqtrade.exceptions import OperationalException from freqtrade.optimize.hyperopt import Hyperopt +from freqtrade.optimize.hyperopt_auto import HyperOptAuto from freqtrade.optimize.hyperopt_tools import HyperoptTools from freqtrade.resolvers.hyperopt_resolver import HyperOptResolver from freqtrade.state import RunMode @@ -1089,3 +1090,19 @@ def test_print_epoch_details(capsys): assert '# ROI table:' in captured.out assert re.search(r'^\s+minimal_roi = \{$', captured.out, re.MULTILINE) assert re.search(r'^\s+\"90\"\:\s0.14,\s*$', captured.out, re.MULTILINE) + + +def test_in_strategy_auto_hyperopt(mocker, hyperopt_conf, tmpdir) -> None: + # mocker.patch('freqtrade.optimize.hyperopt.dump', MagicMock()) + # mocker.patch('freqtrade.optimize.hyperopt.file_dump_json') + (Path(tmpdir) / 'hyperopt_results').mkdir(parents=True) + # No hyperopt needed + del hyperopt_conf['hyperopt'] + hyperopt_conf.update({ + 'strategy': 'HyperoptableStrategy', + 'user_data_dir': Path(tmpdir), + }) + hyperopt = Hyperopt(hyperopt_conf) + assert isinstance(hyperopt.custom_hyperopt, HyperOptAuto) + + hyperopt.start() diff --git a/tests/strategy/test_interface.py b/tests/strategy/test_interface.py index 72b78338d..4d93f7049 100644 --- a/tests/strategy/test_interface.py +++ b/tests/strategy/test_interface.py @@ -587,7 +587,8 @@ def test_hyperopt_parameters(): assert isinstance(fltpar.get_space(''), Real) assert fltpar.value == 1 - catpar = CategoricalParameter(['buy_rsi', 'buy_macd', 'buy_none'], default='buy_macd', space='buy') + catpar = CategoricalParameter(['buy_rsi', 'buy_macd', 'buy_none'], + default='buy_macd', space='buy') assert isinstance(catpar.get_space(''), Categorical) assert catpar.value == 'buy_macd'