From f8efb4c88778c6d9f10b645ccb4b690e50006758 Mon Sep 17 00:00:00 2001 From: Pialat Date: Mon, 16 Sep 2019 14:38:25 +0200 Subject: [PATCH] test for hyperopt loss calmar --- tests/optimize/test_hyperopt.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/optimize/test_hyperopt.py b/tests/optimize/test_hyperopt.py index 011f8dc3c..94886b67a 100644 --- a/tests/optimize/test_hyperopt.py +++ b/tests/optimize/test_hyperopt.py @@ -328,6 +328,21 @@ def test_sharpe_loss_prefers_higher_profits(default_conf, hyperopt_results) -> N assert over < correct assert under > correct +# When the profit a two backtests are the same i prefer to take the one that minimise the median drawdown +def test_calmar_loss_prefers_higher_profits(default_conf, + hyperopt_results_min_median_drawdown, + hyperopt_results_max_median_drawdown) -> None: + + default_conf.update({'hyperopt_loss': 'CalmarHyperOptLoss'}) + hl = HyperOptLossResolver(default_conf).hyperoptloss + min_median_drawdown_loss = hl.hyperopt_loss_function(hyperopt_results_min_median_drawdown, + len(hyperopt_results_min_median_drawdown), + datetime(2019, 1, 1), datetime(2019, 5, 1)) + max_median_drawdown_loss = hl.hyperopt_loss_function(hyperopt_results_max_median_drawdown, + len(hyperopt_results_max_median_drawdown), + datetime(2019, 1, 1), datetime(2019, 5, 1)) + assert min_median_drawdown_loss < max_median_drawdown_loss + def test_onlyprofit_loss_prefers_higher_profits(default_conf, hyperopt_results) -> None: results_over = hyperopt_results.copy()