MOre tests for ParameterHyperopt

This commit is contained in:
Matthias 2021-03-29 19:27:19 +02:00
parent 929f329607
commit 6954a1e029
3 changed files with 21 additions and 1 deletions

View File

@ -14,6 +14,7 @@ from tests.conftest import patch_exchange
def hyperopt_conf(default_conf): def hyperopt_conf(default_conf):
hyperconf = deepcopy(default_conf) hyperconf = deepcopy(default_conf)
hyperconf.update({ hyperconf.update({
'datadir': Path(default_conf['datadir']),
'hyperopt': 'DefaultHyperOpt', 'hyperopt': 'DefaultHyperOpt',
'hyperopt_loss': 'ShortTradeDurHyperOptLoss', 'hyperopt_loss': 'ShortTradeDurHyperOptLoss',
'hyperopt_path': str(Path(__file__).parent / 'hyperopts'), 'hyperopt_path': str(Path(__file__).parent / 'hyperopts'),
@ -21,6 +22,7 @@ def hyperopt_conf(default_conf):
'timerange': None, 'timerange': None,
'spaces': ['default'], 'spaces': ['default'],
'hyperopt_jobs': 1, 'hyperopt_jobs': 1,
'hyperopt_min_trades': 1,
}) })
return hyperconf return hyperconf

View File

@ -16,6 +16,7 @@ from freqtrade.commands.optimize_commands import setup_optimize_configuration, s
from freqtrade.data.history import load_data from freqtrade.data.history import load_data
from freqtrade.exceptions import OperationalException from freqtrade.exceptions import OperationalException
from freqtrade.optimize.hyperopt import Hyperopt from freqtrade.optimize.hyperopt import Hyperopt
from freqtrade.optimize.hyperopt_auto import HyperOptAuto
from freqtrade.optimize.hyperopt_tools import HyperoptTools from freqtrade.optimize.hyperopt_tools import HyperoptTools
from freqtrade.resolvers.hyperopt_resolver import HyperOptResolver from freqtrade.resolvers.hyperopt_resolver import HyperOptResolver
from freqtrade.state import RunMode from freqtrade.state import RunMode
@ -1089,3 +1090,19 @@ def test_print_epoch_details(capsys):
assert '# ROI table:' in captured.out assert '# ROI table:' in captured.out
assert re.search(r'^\s+minimal_roi = \{$', captured.out, re.MULTILINE) assert re.search(r'^\s+minimal_roi = \{$', captured.out, re.MULTILINE)
assert re.search(r'^\s+\"90\"\:\s0.14,\s*$', 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()

View File

@ -587,7 +587,8 @@ def test_hyperopt_parameters():
assert isinstance(fltpar.get_space(''), Real) assert isinstance(fltpar.get_space(''), Real)
assert fltpar.value == 1 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 isinstance(catpar.get_space(''), Categorical)
assert catpar.value == 'buy_macd' assert catpar.value == 'buy_macd'