diff --git a/build_helpers/pyarrow-16.0.0-cp311-cp311-linux_armv7l.whl b/build_helpers/pyarrow-16.1.0-cp311-cp311-linux_armv7l.whl similarity index 66% rename from build_helpers/pyarrow-16.0.0-cp311-cp311-linux_armv7l.whl rename to build_helpers/pyarrow-16.1.0-cp311-cp311-linux_armv7l.whl index f8022ffbf..345f2dd63 100644 Binary files a/build_helpers/pyarrow-16.0.0-cp311-cp311-linux_armv7l.whl and b/build_helpers/pyarrow-16.1.0-cp311-cp311-linux_armv7l.whl differ diff --git a/build_helpers/pyarrow-16.0.0-cp39-cp39-linux_armv7l.whl b/build_helpers/pyarrow-16.1.0-cp39-cp39-linux_armv7l.whl similarity index 66% rename from build_helpers/pyarrow-16.0.0-cp39-cp39-linux_armv7l.whl rename to build_helpers/pyarrow-16.1.0-cp39-cp39-linux_armv7l.whl index c1cbf19de..ffbe09bf4 100644 Binary files a/build_helpers/pyarrow-16.0.0-cp39-cp39-linux_armv7l.whl and b/build_helpers/pyarrow-16.1.0-cp39-cp39-linux_armv7l.whl differ diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt index a333447c2..956d2288c 100644 --- a/docs/requirements-docs.txt +++ b/docs/requirements-docs.txt @@ -1,6 +1,6 @@ markdown==3.6 mkdocs==1.6.0 -mkdocs-material==9.5.22 +mkdocs-material==9.5.23 mdx_truly_sane_lists==1.3 pymdown-extensions==10.8.1 jinja2==3.1.4 diff --git a/freqtrade/exchange/bingx.py b/freqtrade/exchange/bingx.py index 7ee08273c..4efd621e8 100644 --- a/freqtrade/exchange/bingx.py +++ b/freqtrade/exchange/bingx.py @@ -17,4 +17,6 @@ class Bingx(Exchange): _ft_has: Dict = { "ohlcv_candle_limit": 1000, + "stoploss_on_exchange": False, + "stoploss_order_types": {"limit": "limit", "market": "market"}, } diff --git a/freqtrade/optimize/hyperopt_loss/hyperopt_loss_profit_drawdown.py b/freqtrade/optimize/hyperopt_loss/hyperopt_loss_profit_drawdown.py index ac3f82700..e5ec6075e 100644 --- a/freqtrade/optimize/hyperopt_loss/hyperopt_loss_profit_drawdown.py +++ b/freqtrade/optimize/hyperopt_loss/hyperopt_loss_profit_drawdown.py @@ -10,23 +10,26 @@ individual needs. from pandas import DataFrame +from freqtrade.constants import Config from freqtrade.data.metrics import calculate_max_drawdown from freqtrade.optimize.hyperopt import IHyperOptLoss -# higher numbers penalize drawdowns more severely +# smaller numbers penalize drawdowns more severely DRAWDOWN_MULT = 0.075 class ProfitDrawDownHyperOptLoss(IHyperOptLoss): @staticmethod - def hyperopt_loss_function(results: DataFrame, trade_count: int, *args, **kwargs) -> float: + def hyperopt_loss_function(results: DataFrame, config: Config, *args, **kwargs) -> float: total_profit = results["profit_abs"].sum() try: - drawdown = calculate_max_drawdown(results, value_col="profit_abs") + drawdown = calculate_max_drawdown( + results, starting_balance=config["dry_run_wallet"], value_col="profit_abs" + ) relative_account_drawdown = drawdown.relative_account_drawdown except ValueError: relative_account_drawdown = 0 - return -1 * (total_profit * (1 - relative_account_drawdown * DRAWDOWN_MULT)) + return -1 * (total_profit - (relative_account_drawdown * total_profit) / DRAWDOWN_MULT) diff --git a/freqtrade/optimize/hyperopt_tools.py b/freqtrade/optimize/hyperopt_tools.py index 58d01af47..50c55c43d 100644 --- a/freqtrade/optimize/hyperopt_tools.py +++ b/freqtrade/optimize/hyperopt_tools.py @@ -358,14 +358,15 @@ class HyperoptTools: ) @staticmethod - def prepare_trials_columns(trials: pd.DataFrame, has_drawdown: bool) -> pd.DataFrame: + def prepare_trials_columns(trials: pd.DataFrame) -> pd.DataFrame: trials["Best"] = "" if "results_metrics.winsdrawslosses" not in trials.columns: # Ensure compatibility with older versions of hyperopt results trials["results_metrics.winsdrawslosses"] = "N/A" - if not has_drawdown: + has_account_drawdown = "results_metrics.max_drawdown_account" in trials.columns + if not has_account_drawdown: # Ensure compatibility with older versions of hyperopt results trials["results_metrics.max_drawdown_account"] = None if "is_random" not in trials.columns: @@ -389,7 +390,6 @@ class HyperoptTools: "results_metrics.profit_total_abs", "results_metrics.profit_total", "results_metrics.holding_avg", - "results_metrics.max_drawdown", "results_metrics.max_drawdown_account", "results_metrics.max_drawdown_abs", "loss", @@ -408,7 +408,6 @@ class HyperoptTools: "Total profit", "Profit", "Avg duration", - "max_drawdown", "max_drawdown_account", "max_drawdown_abs", "Objective", @@ -437,9 +436,7 @@ class HyperoptTools: tabulate.PRESERVE_WHITESPACE = True trials = json_normalize(results, max_level=1) - has_account_drawdown = "results_metrics.max_drawdown_account" in trials.columns - - trials = HyperoptTools.prepare_trials_columns(trials, has_account_drawdown) + trials = HyperoptTools.prepare_trials_columns(trials) trials["is_profit"] = False trials.loc[trials["is_initial_point"] | trials["is_random"], "Best"] = "* " @@ -471,23 +468,19 @@ class HyperoptTools: stake_currency = config["stake_currency"] - trials[f"Max Drawdown{' (Acct)' if has_account_drawdown else ''}"] = trials.apply( + trials["Max Drawdown (Acct)"] = trials.apply( lambda x: ( "{} {}".format( fmt_coin(x["max_drawdown_abs"], stake_currency, keep_trailing_zeros=True), - ( - f"({x['max_drawdown_account']:,.2%})" - if has_account_drawdown - else f"({x['max_drawdown']:,.2%})" - ).rjust(10, " "), + (f"({x['max_drawdown_account']:,.2%})").rjust(10, " "), ).rjust(25 + len(stake_currency)) - if x["max_drawdown"] != 0.0 or x["max_drawdown_account"] != 0.0 + if x["max_drawdown_account"] != 0.0 else "--".rjust(25 + len(stake_currency)) ), axis=1, ) - trials = trials.drop(columns=["max_drawdown_abs", "max_drawdown", "max_drawdown_account"]) + trials = trials.drop(columns=["max_drawdown_abs", "max_drawdown_account"]) trials["Profit"] = trials.apply( lambda x: ( diff --git a/freqtrade/optimize/optimize_reports/optimize_reports.py b/freqtrade/optimize/optimize_reports/optimize_reports.py index d40f3e73b..2ca467eb6 100644 --- a/freqtrade/optimize/optimize_reports/optimize_reports.py +++ b/freqtrade/optimize/optimize_reports/optimize_reports.py @@ -497,7 +497,6 @@ def generate_strategy_stats( } try: - max_drawdown_legacy = calculate_max_drawdown(results, value_col="profit_ratio") drawdown = calculate_max_drawdown( results, value_col="profit_abs", starting_balance=start_balance ) @@ -508,7 +507,6 @@ def generate_strategy_stats( strat_stats.update( { - "max_drawdown": max_drawdown_legacy.drawdown_abs, # Deprecated - do not use "max_drawdown_account": drawdown.relative_account_drawdown, "max_relative_drawdown": underwater.relative_account_drawdown, "max_drawdown_abs": drawdown.drawdown_abs, @@ -527,7 +525,6 @@ def generate_strategy_stats( except ValueError: strat_stats.update( { - "max_drawdown": 0.0, "max_drawdown_account": 0.0, "max_relative_drawdown": 0.0, "max_drawdown_abs": 0.0, diff --git a/freqtrade/rpc/api_server/webserver.py b/freqtrade/rpc/api_server/webserver.py index 79909f96e..57f321739 100644 --- a/freqtrade/rpc/api_server/webserver.py +++ b/freqtrade/rpc/api_server/webserver.py @@ -1,5 +1,5 @@ import logging -from ipaddress import IPv4Address +from ipaddress import ip_address from typing import Any, Optional import orjson @@ -180,7 +180,7 @@ class ApiServer(RPCHandler): rest_port = self._config["api_server"]["listen_port"] logger.info(f"Starting HTTP Server at {rest_ip}:{rest_port}") - if not IPv4Address(rest_ip).is_loopback and not running_in_docker(): + if not ip_address(rest_ip).is_loopback and not running_in_docker(): logger.warning("SECURITY WARNING - Local Rest Server listening to external connections") logger.warning( "SECURITY WARNING - This is insecure please set to your loopback," diff --git a/ft_client/requirements.txt b/ft_client/requirements.txt index 56def4059..a1eb259aa 100644 --- a/ft_client/requirements.txt +++ b/ft_client/requirements.txt @@ -1,3 +1,3 @@ # Requirements for freqtrade client library requests==2.31.0 -python-rapidjson==1.16 +python-rapidjson==1.17 diff --git a/requirements-dev.txt b/requirements-dev.txt index 29e11c42b..d3d8aacb0 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -6,12 +6,12 @@ -r requirements-freqai-rl.txt -r docs/requirements-docs.txt -coveralls==4.0.0 +coveralls==4.0.1 ruff==0.4.4 mypy==1.10.0 pre-commit==3.7.1 -pytest==8.2.0 -pytest-asyncio==0.23.6 +pytest==8.2.1 +pytest-asyncio==0.23.7 pytest-cov==5.0.0 pytest-mock==3.14.0 pytest-random-order==1.1.1 diff --git a/requirements.txt b/requirements.txt index 1ee4ddf67..71af75e1a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ numpy==1.26.4 pandas==2.2.2 pandas-ta==0.3.14b -ccxt==4.3.24 +ccxt==4.3.27 cryptography==42.0.7 aiohttp==3.9.5 SQLAlchemy==2.0.30 @@ -22,13 +22,13 @@ jinja2==3.1.4 tables==3.9.1 joblib==1.4.2 rich==13.7.1 -pyarrow==16.0.0; platform_machine != 'armv7l' +pyarrow==16.1.0; platform_machine != 'armv7l' # find first, C search in arrays py_find_1st==1.1.6 # Load ticker files 30% faster -python-rapidjson==1.16 +python-rapidjson==1.17 # Properly format api responses orjson==3.10.3 diff --git a/tests/commands/test_commands.py b/tests/commands/test_commands.py index 77cabc51b..c98c6302e 100644 --- a/tests/commands/test_commands.py +++ b/tests/commands/test_commands.py @@ -54,6 +54,7 @@ from tests.conftest import ( patch_exchange, patched_configuration_load_config_file, ) +from tests.conftest_hyperopt import hyperopt_test_result from tests.conftest_trades import MOCK_TRADE_COUNT @@ -1137,7 +1138,8 @@ def test_start_test_pairlist(mocker, caplog, tickers, default_conf, capsys): pytest.fail(f"Expected well formed JSON, but failed to parse: {captured.out}") -def test_hyperopt_list(mocker, capsys, caplog, saved_hyperopt_results, tmp_path): +def test_hyperopt_list(mocker, capsys, caplog, tmp_path): + saved_hyperopt_results = hyperopt_test_result() csv_file = tmp_path / "test.csv" mocker.patch( "freqtrade.optimize.hyperopt_tools.HyperoptTools._test_hyperopt_results_exist", @@ -1507,7 +1509,8 @@ def test_hyperopt_list(mocker, capsys, caplog, saved_hyperopt_results, tmp_path) csv_file.unlink() -def test_hyperopt_show(mocker, capsys, saved_hyperopt_results): +def test_hyperopt_show(mocker, capsys): + saved_hyperopt_results = hyperopt_test_result() mocker.patch( "freqtrade.optimize.hyperopt_tools.HyperoptTools._test_hyperopt_results_exist", return_value=True, diff --git a/tests/conftest.py b/tests/conftest.py index c2e4f6725..944f78e22 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2707,1004 +2707,6 @@ def open_trade_usdt(): return trade -@pytest.fixture -def saved_hyperopt_results(): - hyperopt_res = [ - { - "loss": 0.4366182531161519, - "params_dict": { - "mfi-value": 15, - "fastd-value": 20, - "adx-value": 25, - "rsi-value": 28, - "mfi-enabled": False, - "fastd-enabled": True, - "adx-enabled": True, - "rsi-enabled": True, - "trigger": "macd_cross_signal", - "sell-mfi-value": 88, - "sell-fastd-value": 97, - "sell-adx-value": 51, - "sell-rsi-value": 67, - "sell-mfi-enabled": False, - "sell-fastd-enabled": False, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-bb_upper", - "roi_t1": 1190, - "roi_t2": 541, - "roi_t3": 408, - "roi_p1": 0.026035863879169705, - "roi_p2": 0.12508730043628782, - "roi_p3": 0.27766427921605896, - "stoploss": -0.2562930402099556, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 15, - "fastd-value": 20, - "adx-value": 25, - "rsi-value": 28, - "mfi-enabled": False, - "fastd-enabled": True, - "adx-enabled": True, - "rsi-enabled": True, - "trigger": "macd_cross_signal", - }, - "sell": { - "sell-mfi-value": 88, - "sell-fastd-value": 97, - "sell-adx-value": 51, - "sell-rsi-value": 67, - "sell-mfi-enabled": False, - "sell-fastd-enabled": False, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-bb_upper", - }, - "roi": { - 0: 0.4287874435315165, - 408: 0.15112316431545753, - 949: 0.026035863879169705, - 2139: 0, - }, - "stoploss": {"stoploss": -0.2562930402099556}, - }, # noqa: E501 - "results_metrics": { - "total_trades": 2, - "trade_count_long": 2, - "trade_count_short": 0, - "wins": 0, - "draws": 0, - "losses": 2, - "profit_mean": -0.01254995, - "profit_median": -0.012222, - "profit_total": -0.00125625, - "profit_total_abs": -2.50999, - "max_drawdown": 0.23, - "max_drawdown_abs": -0.00125625, - "holding_avg": timedelta(minutes=3930.0), - "stake_currency": "BTC", - "strategy_name": "SampleStrategy", - }, # noqa: E501 - "results_explanation": " 2 trades. Avg profit -1.25%. Total profit -0.00125625 BTC ( -2.51Σ%). Avg duration 3930.0 min.", # noqa: E501 - "total_profit": -0.00125625, - "current_epoch": 1, - "is_initial_point": True, - "is_random": False, - "is_best": True, - }, - { - "loss": 20.0, - "params_dict": { - "mfi-value": 17, - "fastd-value": 38, - "adx-value": 48, - "rsi-value": 22, - "mfi-enabled": True, - "fastd-enabled": False, - "adx-enabled": True, - "rsi-enabled": True, - "trigger": "macd_cross_signal", - "sell-mfi-value": 96, - "sell-fastd-value": 68, - "sell-adx-value": 63, - "sell-rsi-value": 81, - "sell-mfi-enabled": False, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-sar_reversal", - "roi_t1": 334, - "roi_t2": 683, - "roi_t3": 140, - "roi_p1": 0.06403981740598495, - "roi_p2": 0.055519840060645045, - "roi_p3": 0.3253712811342459, - "stoploss": -0.338070047333259, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 17, - "fastd-value": 38, - "adx-value": 48, - "rsi-value": 22, - "mfi-enabled": True, - "fastd-enabled": False, - "adx-enabled": True, - "rsi-enabled": True, - "trigger": "macd_cross_signal", - }, # noqa: E501 - "sell": { - "sell-mfi-value": 96, - "sell-fastd-value": 68, - "sell-adx-value": 63, - "sell-rsi-value": 81, - "sell-mfi-enabled": False, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-sar_reversal", - }, # noqa: E501 - "roi": { - 0: 0.4449309386008759, - 140: 0.11955965746663, - 823: 0.06403981740598495, - 1157: 0, - }, # noqa: E501 - "stoploss": {"stoploss": -0.338070047333259}, - }, - "results_metrics": { - "total_trades": 1, - "trade_count_long": 1, - "trade_count_short": 0, - "wins": 0, - "draws": 0, - "losses": 1, - "profit_mean": 0.012357, - "profit_median": -0.012222, - "profit_total": 6.185e-05, - "profit_total_abs": 0.12357, - "max_drawdown": 0.23, - "max_drawdown_abs": -0.00125625, - "holding_avg": timedelta(minutes=1200.0), - }, # noqa: E501 - "results_explanation": " 1 trades. Avg profit 0.12%. Total profit 0.00006185 BTC ( 0.12Σ%). Avg duration 1200.0 min.", # noqa: E501 - "total_profit": 6.185e-05, - "current_epoch": 2, - "is_initial_point": True, - "is_random": False, - "is_best": False, - }, - { - "loss": 14.241196856510731, - "params_dict": { - "mfi-value": 25, - "fastd-value": 16, - "adx-value": 29, - "rsi-value": 20, - "mfi-enabled": False, - "fastd-enabled": False, - "adx-enabled": False, - "rsi-enabled": False, - "trigger": "macd_cross_signal", - "sell-mfi-value": 98, - "sell-fastd-value": 72, - "sell-adx-value": 51, - "sell-rsi-value": 82, - "sell-mfi-enabled": True, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-macd_cross_signal", - "roi_t1": 889, - "roi_t2": 533, - "roi_t3": 263, - "roi_p1": 0.04759065393663096, - "roi_p2": 0.1488819964638463, - "roi_p3": 0.4102801822104605, - "stoploss": -0.05394588767607611, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 25, - "fastd-value": 16, - "adx-value": 29, - "rsi-value": 20, - "mfi-enabled": False, - "fastd-enabled": False, - "adx-enabled": False, - "rsi-enabled": False, - "trigger": "macd_cross_signal", - }, - "sell": { - "sell-mfi-value": 98, - "sell-fastd-value": 72, - "sell-adx-value": 51, - "sell-rsi-value": 82, - "sell-mfi-enabled": True, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-macd_cross_signal", - }, - "roi": { - 0: 0.6067528326109377, - 263: 0.19647265040047726, - 796: 0.04759065393663096, - 1685: 0, - }, - "stoploss": {"stoploss": -0.05394588767607611}, - }, # noqa: E501 - "results_metrics": { - "total_trades": 621, - "trade_count_long": 621, - "trade_count_short": 0, - "wins": 320, - "draws": 0, - "losses": 301, - "profit_mean": -0.043883302093397747, - "profit_median": -0.012222, - "profit_total": -0.13639474, - "profit_total_abs": -272.515306, - "max_drawdown": 0.25, - "max_drawdown_abs": -272.515306, - "holding_avg": timedelta(minutes=1691.207729468599), - }, # noqa: E501 - "results_explanation": " 621 trades. Avg profit -0.44%. Total profit -0.13639474 BTC (-272.52Σ%). Avg duration 1691.2 min.", # noqa: E501 - "total_profit": -0.13639474, - "current_epoch": 3, - "is_initial_point": True, - "is_random": False, - "is_best": False, - }, - { - "loss": 100000, - "params_dict": { - "mfi-value": 13, - "fastd-value": 35, - "adx-value": 39, - "rsi-value": 29, - "mfi-enabled": True, - "fastd-enabled": False, - "adx-enabled": False, - "rsi-enabled": True, - "trigger": "macd_cross_signal", - "sell-mfi-value": 87, - "sell-fastd-value": 54, - "sell-adx-value": 63, - "sell-rsi-value": 93, - "sell-mfi-enabled": False, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-bb_upper", - "roi_t1": 1402, - "roi_t2": 676, - "roi_t3": 215, - "roi_p1": 0.06264755784937427, - "roi_p2": 0.14258587851894644, - "roi_p3": 0.20671291201040828, - "stoploss": -0.11818343570194478, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 13, - "fastd-value": 35, - "adx-value": 39, - "rsi-value": 29, - "mfi-enabled": True, - "fastd-enabled": False, - "adx-enabled": False, - "rsi-enabled": True, - "trigger": "macd_cross_signal", - }, - "sell": { - "sell-mfi-value": 87, - "sell-fastd-value": 54, - "sell-adx-value": 63, - "sell-rsi-value": 93, - "sell-mfi-enabled": False, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-bb_upper", - }, - "roi": { - 0: 0.411946348378729, - 215: 0.2052334363683207, - 891: 0.06264755784937427, - 2293: 0, - }, - "stoploss": {"stoploss": -0.11818343570194478}, - }, # noqa: E501 - "results_metrics": { - "total_trades": 0, - "trade_count_long": 0, - "trade_count_short": 0, - "wins": 0, - "draws": 0, - "losses": 0, - "profit_mean": None, - "profit_median": None, - "profit_total": 0, - "profit": 0.0, - "holding_avg": timedelta(), - }, # noqa: E501 - "results_explanation": " 0 trades. Avg profit nan%. Total profit 0.00000000 BTC ( 0.00Σ%). Avg duration nan min.", # noqa: E501 - "total_profit": 0, - "current_epoch": 4, - "is_initial_point": True, - "is_random": False, - "is_best": False, # noqa: E501 - }, - { - "loss": 0.22195522184191518, - "params_dict": { - "mfi-value": 17, - "fastd-value": 21, - "adx-value": 38, - "rsi-value": 33, - "mfi-enabled": True, - "fastd-enabled": False, - "adx-enabled": True, - "rsi-enabled": False, - "trigger": "macd_cross_signal", - "sell-mfi-value": 87, - "sell-fastd-value": 82, - "sell-adx-value": 78, - "sell-rsi-value": 69, - "sell-mfi-enabled": True, - "sell-fastd-enabled": False, - "sell-adx-enabled": True, - "sell-rsi-enabled": False, - "sell-trigger": "sell-macd_cross_signal", - "roi_t1": 1269, - "roi_t2": 601, - "roi_t3": 444, - "roi_p1": 0.07280999507931168, - "roi_p2": 0.08946698095898986, - "roi_p3": 0.1454876733325284, - "stoploss": -0.18181041180901014, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 17, - "fastd-value": 21, - "adx-value": 38, - "rsi-value": 33, - "mfi-enabled": True, - "fastd-enabled": False, - "adx-enabled": True, - "rsi-enabled": False, - "trigger": "macd_cross_signal", - }, - "sell": { - "sell-mfi-value": 87, - "sell-fastd-value": 82, - "sell-adx-value": 78, - "sell-rsi-value": 69, - "sell-mfi-enabled": True, - "sell-fastd-enabled": False, - "sell-adx-enabled": True, - "sell-rsi-enabled": False, - "sell-trigger": "sell-macd_cross_signal", - }, - "roi": { - 0: 0.3077646493708299, - 444: 0.16227697603830155, - 1045: 0.07280999507931168, - 2314: 0, - }, - "stoploss": {"stoploss": -0.18181041180901014}, - }, # noqa: E501 - "results_metrics": { - "total_trades": 14, - "trade_count_long": 14, - "trade_count_short": 0, - "wins": 6, - "draws": 0, - "losses": 8, - "profit_mean": -0.003539515, - "profit_median": -0.012222, - "profit_total": -0.002480140000000001, - "profit_total_abs": -4.955321, - "max_drawdown": 0.34, - "max_drawdown_abs": -4.955321, - "holding_avg": timedelta(minutes=3402.8571428571427), - }, # noqa: E501 - "results_explanation": " 14 trades. Avg profit -0.35%. Total profit -0.00248014 BTC ( -4.96Σ%). Avg duration 3402.9 min.", # noqa: E501 - "total_profit": -0.002480140000000001, - "current_epoch": 5, - "is_initial_point": True, - "is_random": False, - "is_best": True, - }, - { - "loss": 0.545315889154162, - "params_dict": { - "mfi-value": 22, - "fastd-value": 43, - "adx-value": 46, - "rsi-value": 20, - "mfi-enabled": False, - "fastd-enabled": False, - "adx-enabled": True, - "rsi-enabled": True, - "trigger": "bb_lower", - "sell-mfi-value": 87, - "sell-fastd-value": 65, - "sell-adx-value": 94, - "sell-rsi-value": 63, - "sell-mfi-enabled": False, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-macd_cross_signal", - "roi_t1": 319, - "roi_t2": 556, - "roi_t3": 216, - "roi_p1": 0.06251955472249589, - "roi_p2": 0.11659519602202795, - "roi_p3": 0.0953744132197762, - "stoploss": -0.024551752215582423, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 22, - "fastd-value": 43, - "adx-value": 46, - "rsi-value": 20, - "mfi-enabled": False, - "fastd-enabled": False, - "adx-enabled": True, - "rsi-enabled": True, - "trigger": "bb_lower", - }, - "sell": { - "sell-mfi-value": 87, - "sell-fastd-value": 65, - "sell-adx-value": 94, - "sell-rsi-value": 63, - "sell-mfi-enabled": False, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-macd_cross_signal", - }, - "roi": { - 0: 0.2744891639643, - 216: 0.17911475074452382, - 772: 0.06251955472249589, - 1091: 0, - }, - "stoploss": {"stoploss": -0.024551752215582423}, - }, # noqa: E501 - "results_metrics": { - "total_trades": 39, - "trade_count_long": 39, - "trade_count_short": 0, - "wins": 20, - "draws": 0, - "losses": 19, - "profit_mean": -0.0021400679487179478, - "profit_median": -0.012222, - "profit_total": -0.0041773, - "profit_total_abs": -8.346264999999997, - "max_drawdown": 0.45, - "max_drawdown_abs": -4.955321, - "holding_avg": timedelta(minutes=636.9230769230769), - }, # noqa: E501 - "results_explanation": " 39 trades. Avg profit -0.21%. Total profit -0.00417730 BTC ( -8.35Σ%). Avg duration 636.9 min.", # noqa: E501 - "total_profit": -0.0041773, - "current_epoch": 6, - "is_initial_point": True, - "is_random": False, - "is_best": False, - }, - { - "loss": 4.713497421432944, - "params_dict": { - "mfi-value": 13, - "fastd-value": 41, - "adx-value": 21, - "rsi-value": 29, - "mfi-enabled": False, - "fastd-enabled": True, - "adx-enabled": False, - "rsi-enabled": False, - "trigger": "bb_lower", - "sell-mfi-value": 99, - "sell-fastd-value": 60, - "sell-adx-value": 81, - "sell-rsi-value": 69, - "sell-mfi-enabled": True, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": False, - "sell-trigger": "sell-macd_cross_signal", - "roi_t1": 771, - "roi_t2": 620, - "roi_t3": 145, - "roi_p1": 0.0586919200378493, - "roi_p2": 0.04984118697312542, - "roi_p3": 0.37521058680247044, - "stoploss": -0.14613268022709905, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 13, - "fastd-value": 41, - "adx-value": 21, - "rsi-value": 29, - "mfi-enabled": False, - "fastd-enabled": True, - "adx-enabled": False, - "rsi-enabled": False, - "trigger": "bb_lower", - }, - "sell": { - "sell-mfi-value": 99, - "sell-fastd-value": 60, - "sell-adx-value": 81, - "sell-rsi-value": 69, - "sell-mfi-enabled": True, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": False, - "sell-trigger": "sell-macd_cross_signal", - }, - "roi": { - 0: 0.4837436938134452, - 145: 0.10853310701097472, - 765: 0.0586919200378493, - 1536: 0, - }, # noqa: E501 - "stoploss": {"stoploss": -0.14613268022709905}, - }, # noqa: E501 - "results_metrics": { - "total_trades": 318, - "trade_count_long": 318, - "trade_count_short": 0, - "wins": 100, - "draws": 0, - "losses": 218, - "profit_mean": -0.0039833954716981146, - "profit_median": -0.012222, - "profit_total": -0.06339929, - "profit_total_abs": -126.67197600000004, - "max_drawdown": 0.50, - "max_drawdown_abs": -200.955321, - "holding_avg": timedelta(minutes=3140.377358490566), - }, # noqa: E501 - "results_explanation": " 318 trades. Avg profit -0.40%. Total profit -0.06339929 BTC (-126.67Σ%). Avg duration 3140.4 min.", # noqa: E501 - "total_profit": -0.06339929, - "current_epoch": 7, - "is_initial_point": True, - "is_random": False, - "is_best": False, - }, - { - "loss": 20.0, # noqa: E501 - "params_dict": { - "mfi-value": 24, - "fastd-value": 43, - "adx-value": 33, - "rsi-value": 20, - "mfi-enabled": False, - "fastd-enabled": True, - "adx-enabled": True, - "rsi-enabled": True, - "trigger": "sar_reversal", - "sell-mfi-value": 89, - "sell-fastd-value": 74, - "sell-adx-value": 70, - "sell-rsi-value": 70, - "sell-mfi-enabled": False, - "sell-fastd-enabled": False, - "sell-adx-enabled": False, - "sell-rsi-enabled": True, - "sell-trigger": "sell-sar_reversal", - "roi_t1": 1149, - "roi_t2": 375, - "roi_t3": 289, - "roi_p1": 0.05571820757172588, - "roi_p2": 0.0606240398618907, - "roi_p3": 0.1729012220156157, - "stoploss": -0.1588514289110401, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 24, - "fastd-value": 43, - "adx-value": 33, - "rsi-value": 20, - "mfi-enabled": False, - "fastd-enabled": True, - "adx-enabled": True, - "rsi-enabled": True, - "trigger": "sar_reversal", - }, - "sell": { - "sell-mfi-value": 89, - "sell-fastd-value": 74, - "sell-adx-value": 70, - "sell-rsi-value": 70, - "sell-mfi-enabled": False, - "sell-fastd-enabled": False, - "sell-adx-enabled": False, - "sell-rsi-enabled": True, - "sell-trigger": "sell-sar_reversal", - }, - "roi": { - 0: 0.2892434694492323, - 289: 0.11634224743361658, - 664: 0.05571820757172588, - 1813: 0, - }, - "stoploss": {"stoploss": -0.1588514289110401}, - }, # noqa: E501 - "results_metrics": { - "total_trades": 1, - "trade_count_long": 1, - "trade_count_short": 0, - "wins": 0, - "draws": 1, - "losses": 0, - "profit_mean": 0.0, - "profit_median": 0.0, - "profit_total": 0.0, - "profit_total_abs": 0.0, - "max_drawdown": 0.0, - "max_drawdown_abs": 0.52, - "holding_avg": timedelta(minutes=5340.0), - }, # noqa: E501 - "results_explanation": " 1 trades. Avg profit 0.00%. Total profit 0.00000000 BTC ( 0.00Σ%). Avg duration 5340.0 min.", # noqa: E501 - "total_profit": 0.0, - "current_epoch": 8, - "is_initial_point": True, - "is_random": False, - "is_best": False, - }, - { - "loss": 2.4731817780991223, - "params_dict": { - "mfi-value": 22, - "fastd-value": 20, - "adx-value": 29, - "rsi-value": 40, - "mfi-enabled": False, - "fastd-enabled": False, - "adx-enabled": False, - "rsi-enabled": False, - "trigger": "sar_reversal", - "sell-mfi-value": 97, - "sell-fastd-value": 65, - "sell-adx-value": 81, - "sell-rsi-value": 64, - "sell-mfi-enabled": True, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-bb_upper", - "roi_t1": 1012, - "roi_t2": 584, - "roi_t3": 422, - "roi_p1": 0.036764323603472565, - "roi_p2": 0.10335480573205287, - "roi_p3": 0.10322347377503042, - "stoploss": -0.2780610808108503, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 22, - "fastd-value": 20, - "adx-value": 29, - "rsi-value": 40, - "mfi-enabled": False, - "fastd-enabled": False, - "adx-enabled": False, - "rsi-enabled": False, - "trigger": "sar_reversal", - }, - "sell": { - "sell-mfi-value": 97, - "sell-fastd-value": 65, - "sell-adx-value": 81, - "sell-rsi-value": 64, - "sell-mfi-enabled": True, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-bb_upper", - }, - "roi": { - 0: 0.2433426031105559, - 422: 0.14011912933552545, - 1006: 0.036764323603472565, - 2018: 0, - }, - "stoploss": {"stoploss": -0.2780610808108503}, - }, # noqa: E501 - "results_metrics": { - "total_trades": 229, - "trade_count_long": 229, - "trade_count_short": 0, - "wins": 150, - "draws": 0, - "losses": 79, - "profit_mean": -0.0038433433624454144, - "profit_median": -0.012222, - "profit_total": -0.044050070000000004, - "profit_total_abs": -88.01256299999999, - "max_drawdown": 0.41, - "max_drawdown_abs": -150.955321, - "holding_avg": timedelta(minutes=6505.676855895196), - }, # noqa: E501 - "results_explanation": " 229 trades. Avg profit -0.38%. Total profit -0.04405007 BTC ( -88.01Σ%). Avg duration 6505.7 min.", # noqa: E501 - "total_profit": -0.044050070000000004, # noqa: E501 - "current_epoch": 9, - "is_initial_point": True, - "is_random": False, - "is_best": False, - }, - { - "loss": -0.2604606005845212, # noqa: E501 - "params_dict": { - "mfi-value": 23, - "fastd-value": 24, - "adx-value": 22, - "rsi-value": 24, - "mfi-enabled": False, - "fastd-enabled": False, - "adx-enabled": False, - "rsi-enabled": True, - "trigger": "macd_cross_signal", - "sell-mfi-value": 97, - "sell-fastd-value": 70, - "sell-adx-value": 64, - "sell-rsi-value": 80, - "sell-mfi-enabled": False, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-sar_reversal", - "roi_t1": 792, - "roi_t2": 464, - "roi_t3": 215, - "roi_p1": 0.04594053535385903, - "roi_p2": 0.09623192684243963, - "roi_p3": 0.04428219070850663, - "stoploss": -0.16992287161634415, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 23, - "fastd-value": 24, - "adx-value": 22, - "rsi-value": 24, - "mfi-enabled": False, - "fastd-enabled": False, - "adx-enabled": False, - "rsi-enabled": True, - "trigger": "macd_cross_signal", - }, - "sell": { - "sell-mfi-value": 97, - "sell-fastd-value": 70, - "sell-adx-value": 64, - "sell-rsi-value": 80, - "sell-mfi-enabled": False, - "sell-fastd-enabled": True, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-sar_reversal", - }, - "roi": { - 0: 0.18645465290480528, - 215: 0.14217246219629864, - 679: 0.04594053535385903, - 1471: 0, - }, - "stoploss": {"stoploss": -0.16992287161634415}, - }, # noqa: E501 - "results_metrics": { - "total_trades": 4, - "trade_count_long": 4, - "trade_count_short": 0, - "wins": 0, - "draws": 0, - "losses": 4, - "profit_mean": 0.001080385, - "profit_median": -0.012222, - "profit_total": 0.00021629, - "profit_total_abs": 0.432154, - "max_drawdown": 0.13, - "max_drawdown_abs": -4.955321, - "holding_avg": timedelta(minutes=2850.0), - }, # noqa: E501 - "results_explanation": " 4 trades. Avg profit 0.11%. Total profit 0.00021629 BTC ( 0.43Σ%). Avg duration 2850.0 min.", # noqa: E501 - "total_profit": 0.00021629, - "current_epoch": 10, - "is_initial_point": True, - "is_random": False, - "is_best": True, - }, - { - "loss": 4.876465945994304, # noqa: E501 - "params_dict": { - "mfi-value": 20, - "fastd-value": 32, - "adx-value": 49, - "rsi-value": 23, - "mfi-enabled": True, - "fastd-enabled": True, - "adx-enabled": False, - "rsi-enabled": False, - "trigger": "bb_lower", - "sell-mfi-value": 75, - "sell-fastd-value": 56, - "sell-adx-value": 61, - "sell-rsi-value": 62, - "sell-mfi-enabled": False, - "sell-fastd-enabled": False, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-macd_cross_signal", - "roi_t1": 579, - "roi_t2": 614, - "roi_t3": 273, - "roi_p1": 0.05307643172744114, - "roi_p2": 0.1352282078262871, - "roi_p3": 0.1913307406325751, - "stoploss": -0.25728526022513887, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 20, - "fastd-value": 32, - "adx-value": 49, - "rsi-value": 23, - "mfi-enabled": True, - "fastd-enabled": True, - "adx-enabled": False, - "rsi-enabled": False, - "trigger": "bb_lower", - }, - "sell": { - "sell-mfi-value": 75, - "sell-fastd-value": 56, - "sell-adx-value": 61, - "sell-rsi-value": 62, - "sell-mfi-enabled": False, - "sell-fastd-enabled": False, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-macd_cross_signal", - }, - "roi": { - 0: 0.3796353801863034, - 273: 0.18830463955372825, - 887: 0.05307643172744114, - 1466: 0, - }, - "stoploss": {"stoploss": -0.25728526022513887}, - }, # noqa: E501 - # New Hyperopt mode! - "results_metrics": { - "total_trades": 117, - "trade_count_long": 117, - "trade_count_short": 0, - "wins": 67, - "draws": 0, - "losses": 50, - "profit_mean": -0.012698609145299145, - "profit_median": -0.012222, - "profit_total": -0.07436117, - "profit_total_abs": -148.573727, - "max_drawdown": 0.52, - "max_drawdown_abs": -224.955321, - "holding_avg": timedelta(minutes=4282.5641025641025), - }, # noqa: E501 - "results_explanation": " 117 trades. Avg profit -1.27%. Total profit -0.07436117 BTC (-148.57Σ%). Avg duration 4282.6 min.", # noqa: E501 - "total_profit": -0.07436117, - "current_epoch": 11, - "is_initial_point": True, - "is_random": False, - "is_best": False, - }, - { - "loss": 100000, - "params_dict": { - "mfi-value": 10, - "fastd-value": 36, - "adx-value": 31, - "rsi-value": 22, - "mfi-enabled": True, - "fastd-enabled": True, - "adx-enabled": True, - "rsi-enabled": False, - "trigger": "sar_reversal", - "sell-mfi-value": 80, - "sell-fastd-value": 71, - "sell-adx-value": 60, - "sell-rsi-value": 85, - "sell-mfi-enabled": False, - "sell-fastd-enabled": False, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-bb_upper", - "roi_t1": 1156, - "roi_t2": 581, - "roi_t3": 408, - "roi_p1": 0.06860454019988212, - "roi_p2": 0.12473718444931989, - "roi_p3": 0.2896360635226823, - "stoploss": -0.30889015124682806, - }, # noqa: E501 - "params_details": { - "buy": { - "mfi-value": 10, - "fastd-value": 36, - "adx-value": 31, - "rsi-value": 22, - "mfi-enabled": True, - "fastd-enabled": True, - "adx-enabled": True, - "rsi-enabled": False, - "trigger": "sar_reversal", - }, - "sell": { - "sell-mfi-value": 80, - "sell-fastd-value": 71, - "sell-adx-value": 60, - "sell-rsi-value": 85, - "sell-mfi-enabled": False, - "sell-fastd-enabled": False, - "sell-adx-enabled": True, - "sell-rsi-enabled": True, - "sell-trigger": "sell-bb_upper", - }, - "roi": { - 0: 0.4829777881718843, - 408: 0.19334172464920202, - 989: 0.06860454019988212, - 2145: 0, - }, - "stoploss": {"stoploss": -0.30889015124682806}, - }, # noqa: E501 - "results_metrics": { - "total_trades": 0, - "trade_count_long": 0, - "trade_count_short": 0, - "wins": 0, - "draws": 0, - "losses": 0, - "profit_mean": None, - "profit_median": None, - "profit_total": 0, - "profit_total_abs": 0.0, - "max_drawdown": 0.0, - "max_drawdown_abs": 0.0, - "holding_avg": timedelta(), - }, # noqa: E501 - "results_explanation": " 0 trades. Avg profit nan%. Total profit 0.00000000 BTC ( 0.00Σ%). Avg duration nan min.", # noqa: E501 - "total_profit": 0, - "current_epoch": 12, - "is_initial_point": True, - "is_random": False, - "is_best": False, - }, - ] - - for res in hyperopt_res: - res["results_metrics"]["holding_avg_s"] = res["results_metrics"][ - "holding_avg" - ].total_seconds() - - return hyperopt_res - - @pytest.fixture(scope="function") def limit_buy_order_usdt_open(): return { diff --git a/tests/conftest_hyperopt.py b/tests/conftest_hyperopt.py new file mode 100644 index 000000000..af4039a3c --- /dev/null +++ b/tests/conftest_hyperopt.py @@ -0,0 +1,1000 @@ +from datetime import timedelta + + +def hyperopt_test_result(): + """ + Sample hyperopt test result, used for some tests. + """ + hyperopt_res = [ + { + "loss": 0.4366182531161519, + "params_dict": { + "mfi-value": 15, + "fastd-value": 20, + "adx-value": 25, + "rsi-value": 28, + "mfi-enabled": False, + "fastd-enabled": True, + "adx-enabled": True, + "rsi-enabled": True, + "trigger": "macd_cross_signal", + "sell-mfi-value": 88, + "sell-fastd-value": 97, + "sell-adx-value": 51, + "sell-rsi-value": 67, + "sell-mfi-enabled": False, + "sell-fastd-enabled": False, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-bb_upper", + "roi_t1": 1190, + "roi_t2": 541, + "roi_t3": 408, + "roi_p1": 0.026035863879169705, + "roi_p2": 0.12508730043628782, + "roi_p3": 0.27766427921605896, + "stoploss": -0.2562930402099556, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 15, + "fastd-value": 20, + "adx-value": 25, + "rsi-value": 28, + "mfi-enabled": False, + "fastd-enabled": True, + "adx-enabled": True, + "rsi-enabled": True, + "trigger": "macd_cross_signal", + }, + "sell": { + "sell-mfi-value": 88, + "sell-fastd-value": 97, + "sell-adx-value": 51, + "sell-rsi-value": 67, + "sell-mfi-enabled": False, + "sell-fastd-enabled": False, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-bb_upper", + }, + "roi": { + 0: 0.4287874435315165, + 408: 0.15112316431545753, + 949: 0.026035863879169705, + 2139: 0, + }, + "stoploss": {"stoploss": -0.2562930402099556}, + }, # noqa: E501 + "results_metrics": { + "total_trades": 2, + "trade_count_long": 2, + "trade_count_short": 0, + "wins": 0, + "draws": 0, + "losses": 2, + "profit_mean": -0.01254995, + "profit_median": -0.012222, + "profit_total": -0.00125625, + "profit_total_abs": -2.50999, + "max_drawdown_account": 0.23, + "max_drawdown_abs": -0.00125625, + "holding_avg": timedelta(minutes=3930.0), + "stake_currency": "BTC", + "strategy_name": "SampleStrategy", + }, # noqa: E501 + "results_explanation": " 2 trades. Avg profit -1.25%. Total profit -0.00125625 BTC ( -2.51Σ%). Avg duration 3930.0 min.", # noqa: E501 + "total_profit": -0.00125625, + "current_epoch": 1, + "is_initial_point": True, + "is_random": False, + "is_best": True, + }, + { + "loss": 20.0, + "params_dict": { + "mfi-value": 17, + "fastd-value": 38, + "adx-value": 48, + "rsi-value": 22, + "mfi-enabled": True, + "fastd-enabled": False, + "adx-enabled": True, + "rsi-enabled": True, + "trigger": "macd_cross_signal", + "sell-mfi-value": 96, + "sell-fastd-value": 68, + "sell-adx-value": 63, + "sell-rsi-value": 81, + "sell-mfi-enabled": False, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-sar_reversal", + "roi_t1": 334, + "roi_t2": 683, + "roi_t3": 140, + "roi_p1": 0.06403981740598495, + "roi_p2": 0.055519840060645045, + "roi_p3": 0.3253712811342459, + "stoploss": -0.338070047333259, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 17, + "fastd-value": 38, + "adx-value": 48, + "rsi-value": 22, + "mfi-enabled": True, + "fastd-enabled": False, + "adx-enabled": True, + "rsi-enabled": True, + "trigger": "macd_cross_signal", + }, # noqa: E501 + "sell": { + "sell-mfi-value": 96, + "sell-fastd-value": 68, + "sell-adx-value": 63, + "sell-rsi-value": 81, + "sell-mfi-enabled": False, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-sar_reversal", + }, # noqa: E501 + "roi": { + 0: 0.4449309386008759, + 140: 0.11955965746663, + 823: 0.06403981740598495, + 1157: 0, + }, # noqa: E501 + "stoploss": {"stoploss": -0.338070047333259}, + }, + "results_metrics": { + "total_trades": 1, + "trade_count_long": 1, + "trade_count_short": 0, + "wins": 0, + "draws": 0, + "losses": 1, + "profit_mean": 0.012357, + "profit_median": -0.012222, + "profit_total": 6.185e-05, + "profit_total_abs": 0.12357, + "max_drawdown_account": 0.23, + "max_drawdown_abs": -0.00125625, + "holding_avg": timedelta(minutes=1200.0), + }, # noqa: E501 + "results_explanation": " 1 trades. Avg profit 0.12%. Total profit 0.00006185 BTC ( 0.12Σ%). Avg duration 1200.0 min.", # noqa: E501 + "total_profit": 6.185e-05, + "current_epoch": 2, + "is_initial_point": True, + "is_random": False, + "is_best": False, + }, + { + "loss": 14.241196856510731, + "params_dict": { + "mfi-value": 25, + "fastd-value": 16, + "adx-value": 29, + "rsi-value": 20, + "mfi-enabled": False, + "fastd-enabled": False, + "adx-enabled": False, + "rsi-enabled": False, + "trigger": "macd_cross_signal", + "sell-mfi-value": 98, + "sell-fastd-value": 72, + "sell-adx-value": 51, + "sell-rsi-value": 82, + "sell-mfi-enabled": True, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-macd_cross_signal", + "roi_t1": 889, + "roi_t2": 533, + "roi_t3": 263, + "roi_p1": 0.04759065393663096, + "roi_p2": 0.1488819964638463, + "roi_p3": 0.4102801822104605, + "stoploss": -0.05394588767607611, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 25, + "fastd-value": 16, + "adx-value": 29, + "rsi-value": 20, + "mfi-enabled": False, + "fastd-enabled": False, + "adx-enabled": False, + "rsi-enabled": False, + "trigger": "macd_cross_signal", + }, + "sell": { + "sell-mfi-value": 98, + "sell-fastd-value": 72, + "sell-adx-value": 51, + "sell-rsi-value": 82, + "sell-mfi-enabled": True, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-macd_cross_signal", + }, + "roi": { + 0: 0.6067528326109377, + 263: 0.19647265040047726, + 796: 0.04759065393663096, + 1685: 0, + }, + "stoploss": {"stoploss": -0.05394588767607611}, + }, # noqa: E501 + "results_metrics": { + "total_trades": 621, + "trade_count_long": 621, + "trade_count_short": 0, + "wins": 320, + "draws": 0, + "losses": 301, + "profit_mean": -0.043883302093397747, + "profit_median": -0.012222, + "profit_total": -0.13639474, + "profit_total_abs": -272.515306, + "max_drawdown_account": 0.25, + "max_drawdown_abs": -272.515306, + "holding_avg": timedelta(minutes=1691.207729468599), + }, # noqa: E501 + "results_explanation": " 621 trades. Avg profit -0.44%. Total profit -0.13639474 BTC (-272.52Σ%). Avg duration 1691.2 min.", # noqa: E501 + "total_profit": -0.13639474, + "current_epoch": 3, + "is_initial_point": True, + "is_random": False, + "is_best": False, + }, + { + "loss": 100000, + "params_dict": { + "mfi-value": 13, + "fastd-value": 35, + "adx-value": 39, + "rsi-value": 29, + "mfi-enabled": True, + "fastd-enabled": False, + "adx-enabled": False, + "rsi-enabled": True, + "trigger": "macd_cross_signal", + "sell-mfi-value": 87, + "sell-fastd-value": 54, + "sell-adx-value": 63, + "sell-rsi-value": 93, + "sell-mfi-enabled": False, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-bb_upper", + "roi_t1": 1402, + "roi_t2": 676, + "roi_t3": 215, + "roi_p1": 0.06264755784937427, + "roi_p2": 0.14258587851894644, + "roi_p3": 0.20671291201040828, + "stoploss": -0.11818343570194478, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 13, + "fastd-value": 35, + "adx-value": 39, + "rsi-value": 29, + "mfi-enabled": True, + "fastd-enabled": False, + "adx-enabled": False, + "rsi-enabled": True, + "trigger": "macd_cross_signal", + }, + "sell": { + "sell-mfi-value": 87, + "sell-fastd-value": 54, + "sell-adx-value": 63, + "sell-rsi-value": 93, + "sell-mfi-enabled": False, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-bb_upper", + }, + "roi": { + 0: 0.411946348378729, + 215: 0.2052334363683207, + 891: 0.06264755784937427, + 2293: 0, + }, + "stoploss": {"stoploss": -0.11818343570194478}, + }, # noqa: E501 + "results_metrics": { + "total_trades": 0, + "trade_count_long": 0, + "trade_count_short": 0, + "wins": 0, + "draws": 0, + "losses": 0, + "profit_mean": None, + "profit_median": None, + "profit_total": 0, + "profit": 0.0, + "holding_avg": timedelta(), + }, # noqa: E501 + "results_explanation": " 0 trades. Avg profit nan%. Total profit 0.00000000 BTC ( 0.00Σ%). Avg duration nan min.", # noqa: E501 + "total_profit": 0, + "current_epoch": 4, + "is_initial_point": True, + "is_random": False, + "is_best": False, # noqa: E501 + }, + { + "loss": 0.22195522184191518, + "params_dict": { + "mfi-value": 17, + "fastd-value": 21, + "adx-value": 38, + "rsi-value": 33, + "mfi-enabled": True, + "fastd-enabled": False, + "adx-enabled": True, + "rsi-enabled": False, + "trigger": "macd_cross_signal", + "sell-mfi-value": 87, + "sell-fastd-value": 82, + "sell-adx-value": 78, + "sell-rsi-value": 69, + "sell-mfi-enabled": True, + "sell-fastd-enabled": False, + "sell-adx-enabled": True, + "sell-rsi-enabled": False, + "sell-trigger": "sell-macd_cross_signal", + "roi_t1": 1269, + "roi_t2": 601, + "roi_t3": 444, + "roi_p1": 0.07280999507931168, + "roi_p2": 0.08946698095898986, + "roi_p3": 0.1454876733325284, + "stoploss": -0.18181041180901014, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 17, + "fastd-value": 21, + "adx-value": 38, + "rsi-value": 33, + "mfi-enabled": True, + "fastd-enabled": False, + "adx-enabled": True, + "rsi-enabled": False, + "trigger": "macd_cross_signal", + }, + "sell": { + "sell-mfi-value": 87, + "sell-fastd-value": 82, + "sell-adx-value": 78, + "sell-rsi-value": 69, + "sell-mfi-enabled": True, + "sell-fastd-enabled": False, + "sell-adx-enabled": True, + "sell-rsi-enabled": False, + "sell-trigger": "sell-macd_cross_signal", + }, + "roi": { + 0: 0.3077646493708299, + 444: 0.16227697603830155, + 1045: 0.07280999507931168, + 2314: 0, + }, + "stoploss": {"stoploss": -0.18181041180901014}, + }, # noqa: E501 + "results_metrics": { + "total_trades": 14, + "trade_count_long": 14, + "trade_count_short": 0, + "wins": 6, + "draws": 0, + "losses": 8, + "profit_mean": -0.003539515, + "profit_median": -0.012222, + "profit_total": -0.002480140000000001, + "profit_total_abs": -4.955321, + "max_drawdown_account": 0.34, + "max_drawdown_abs": -4.955321, + "holding_avg": timedelta(minutes=3402.8571428571427), + }, # noqa: E501 + "results_explanation": " 14 trades. Avg profit -0.35%. Total profit -0.00248014 BTC ( -4.96Σ%). Avg duration 3402.9 min.", # noqa: E501 + "total_profit": -0.002480140000000001, + "current_epoch": 5, + "is_initial_point": True, + "is_random": False, + "is_best": True, + }, + { + "loss": 0.545315889154162, + "params_dict": { + "mfi-value": 22, + "fastd-value": 43, + "adx-value": 46, + "rsi-value": 20, + "mfi-enabled": False, + "fastd-enabled": False, + "adx-enabled": True, + "rsi-enabled": True, + "trigger": "bb_lower", + "sell-mfi-value": 87, + "sell-fastd-value": 65, + "sell-adx-value": 94, + "sell-rsi-value": 63, + "sell-mfi-enabled": False, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-macd_cross_signal", + "roi_t1": 319, + "roi_t2": 556, + "roi_t3": 216, + "roi_p1": 0.06251955472249589, + "roi_p2": 0.11659519602202795, + "roi_p3": 0.0953744132197762, + "stoploss": -0.024551752215582423, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 22, + "fastd-value": 43, + "adx-value": 46, + "rsi-value": 20, + "mfi-enabled": False, + "fastd-enabled": False, + "adx-enabled": True, + "rsi-enabled": True, + "trigger": "bb_lower", + }, + "sell": { + "sell-mfi-value": 87, + "sell-fastd-value": 65, + "sell-adx-value": 94, + "sell-rsi-value": 63, + "sell-mfi-enabled": False, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-macd_cross_signal", + }, + "roi": { + 0: 0.2744891639643, + 216: 0.17911475074452382, + 772: 0.06251955472249589, + 1091: 0, + }, + "stoploss": {"stoploss": -0.024551752215582423}, + }, # noqa: E501 + "results_metrics": { + "total_trades": 39, + "trade_count_long": 39, + "trade_count_short": 0, + "wins": 20, + "draws": 0, + "losses": 19, + "profit_mean": -0.0021400679487179478, + "profit_median": -0.012222, + "profit_total": -0.0041773, + "profit_total_abs": -8.346264999999997, + "max_drawdown_account": 0.45, + "max_drawdown_abs": -4.955321, + "holding_avg": timedelta(minutes=636.9230769230769), + }, # noqa: E501 + "results_explanation": " 39 trades. Avg profit -0.21%. Total profit -0.00417730 BTC ( -8.35Σ%). Avg duration 636.9 min.", # noqa: E501 + "total_profit": -0.0041773, + "current_epoch": 6, + "is_initial_point": True, + "is_random": False, + "is_best": False, + }, + { + "loss": 4.713497421432944, + "params_dict": { + "mfi-value": 13, + "fastd-value": 41, + "adx-value": 21, + "rsi-value": 29, + "mfi-enabled": False, + "fastd-enabled": True, + "adx-enabled": False, + "rsi-enabled": False, + "trigger": "bb_lower", + "sell-mfi-value": 99, + "sell-fastd-value": 60, + "sell-adx-value": 81, + "sell-rsi-value": 69, + "sell-mfi-enabled": True, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": False, + "sell-trigger": "sell-macd_cross_signal", + "roi_t1": 771, + "roi_t2": 620, + "roi_t3": 145, + "roi_p1": 0.0586919200378493, + "roi_p2": 0.04984118697312542, + "roi_p3": 0.37521058680247044, + "stoploss": -0.14613268022709905, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 13, + "fastd-value": 41, + "adx-value": 21, + "rsi-value": 29, + "mfi-enabled": False, + "fastd-enabled": True, + "adx-enabled": False, + "rsi-enabled": False, + "trigger": "bb_lower", + }, + "sell": { + "sell-mfi-value": 99, + "sell-fastd-value": 60, + "sell-adx-value": 81, + "sell-rsi-value": 69, + "sell-mfi-enabled": True, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": False, + "sell-trigger": "sell-macd_cross_signal", + }, + "roi": { + 0: 0.4837436938134452, + 145: 0.10853310701097472, + 765: 0.0586919200378493, + 1536: 0, + }, # noqa: E501 + "stoploss": {"stoploss": -0.14613268022709905}, + }, # noqa: E501 + "results_metrics": { + "total_trades": 318, + "trade_count_long": 318, + "trade_count_short": 0, + "wins": 100, + "draws": 0, + "losses": 218, + "profit_mean": -0.0039833954716981146, + "profit_median": -0.012222, + "profit_total": -0.06339929, + "profit_total_abs": -126.67197600000004, + "max_drawdown_account": 0.50, + "max_drawdown_abs": -200.955321, + "holding_avg": timedelta(minutes=3140.377358490566), + }, # noqa: E501 + "results_explanation": " 318 trades. Avg profit -0.40%. Total profit -0.06339929 BTC (-126.67Σ%). Avg duration 3140.4 min.", # noqa: E501 + "total_profit": -0.06339929, + "current_epoch": 7, + "is_initial_point": True, + "is_random": False, + "is_best": False, + }, + { + "loss": 20.0, # noqa: E501 + "params_dict": { + "mfi-value": 24, + "fastd-value": 43, + "adx-value": 33, + "rsi-value": 20, + "mfi-enabled": False, + "fastd-enabled": True, + "adx-enabled": True, + "rsi-enabled": True, + "trigger": "sar_reversal", + "sell-mfi-value": 89, + "sell-fastd-value": 74, + "sell-adx-value": 70, + "sell-rsi-value": 70, + "sell-mfi-enabled": False, + "sell-fastd-enabled": False, + "sell-adx-enabled": False, + "sell-rsi-enabled": True, + "sell-trigger": "sell-sar_reversal", + "roi_t1": 1149, + "roi_t2": 375, + "roi_t3": 289, + "roi_p1": 0.05571820757172588, + "roi_p2": 0.0606240398618907, + "roi_p3": 0.1729012220156157, + "stoploss": -0.1588514289110401, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 24, + "fastd-value": 43, + "adx-value": 33, + "rsi-value": 20, + "mfi-enabled": False, + "fastd-enabled": True, + "adx-enabled": True, + "rsi-enabled": True, + "trigger": "sar_reversal", + }, + "sell": { + "sell-mfi-value": 89, + "sell-fastd-value": 74, + "sell-adx-value": 70, + "sell-rsi-value": 70, + "sell-mfi-enabled": False, + "sell-fastd-enabled": False, + "sell-adx-enabled": False, + "sell-rsi-enabled": True, + "sell-trigger": "sell-sar_reversal", + }, + "roi": { + 0: 0.2892434694492323, + 289: 0.11634224743361658, + 664: 0.05571820757172588, + 1813: 0, + }, + "stoploss": {"stoploss": -0.1588514289110401}, + }, # noqa: E501 + "results_metrics": { + "total_trades": 1, + "trade_count_long": 1, + "trade_count_short": 0, + "wins": 0, + "draws": 1, + "losses": 0, + "profit_mean": 0.0, + "profit_median": 0.0, + "profit_total": 0.0, + "profit_total_abs": 0.0, + "max_drawdown_account": 0.0, + "max_drawdown_abs": 0.52, + "holding_avg": timedelta(minutes=5340.0), + }, # noqa: E501 + "results_explanation": " 1 trades. Avg profit 0.00%. Total profit 0.00000000 BTC ( 0.00Σ%). Avg duration 5340.0 min.", # noqa: E501 + "total_profit": 0.0, + "current_epoch": 8, + "is_initial_point": True, + "is_random": False, + "is_best": False, + }, + { + "loss": 2.4731817780991223, + "params_dict": { + "mfi-value": 22, + "fastd-value": 20, + "adx-value": 29, + "rsi-value": 40, + "mfi-enabled": False, + "fastd-enabled": False, + "adx-enabled": False, + "rsi-enabled": False, + "trigger": "sar_reversal", + "sell-mfi-value": 97, + "sell-fastd-value": 65, + "sell-adx-value": 81, + "sell-rsi-value": 64, + "sell-mfi-enabled": True, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-bb_upper", + "roi_t1": 1012, + "roi_t2": 584, + "roi_t3": 422, + "roi_p1": 0.036764323603472565, + "roi_p2": 0.10335480573205287, + "roi_p3": 0.10322347377503042, + "stoploss": -0.2780610808108503, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 22, + "fastd-value": 20, + "adx-value": 29, + "rsi-value": 40, + "mfi-enabled": False, + "fastd-enabled": False, + "adx-enabled": False, + "rsi-enabled": False, + "trigger": "sar_reversal", + }, + "sell": { + "sell-mfi-value": 97, + "sell-fastd-value": 65, + "sell-adx-value": 81, + "sell-rsi-value": 64, + "sell-mfi-enabled": True, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-bb_upper", + }, + "roi": { + 0: 0.2433426031105559, + 422: 0.14011912933552545, + 1006: 0.036764323603472565, + 2018: 0, + }, + "stoploss": {"stoploss": -0.2780610808108503}, + }, # noqa: E501 + "results_metrics": { + "total_trades": 229, + "trade_count_long": 229, + "trade_count_short": 0, + "wins": 150, + "draws": 0, + "losses": 79, + "profit_mean": -0.0038433433624454144, + "profit_median": -0.012222, + "profit_total": -0.044050070000000004, + "profit_total_abs": -88.01256299999999, + "max_drawdown_account": 0.41, + "max_drawdown_abs": -150.955321, + "holding_avg": timedelta(minutes=6505.676855895196), + }, # noqa: E501 + "results_explanation": " 229 trades. Avg profit -0.38%. Total profit -0.04405007 BTC ( -88.01Σ%). Avg duration 6505.7 min.", # noqa: E501 + "total_profit": -0.044050070000000004, # noqa: E501 + "current_epoch": 9, + "is_initial_point": True, + "is_random": False, + "is_best": False, + }, + { + "loss": -0.2604606005845212, # noqa: E501 + "params_dict": { + "mfi-value": 23, + "fastd-value": 24, + "adx-value": 22, + "rsi-value": 24, + "mfi-enabled": False, + "fastd-enabled": False, + "adx-enabled": False, + "rsi-enabled": True, + "trigger": "macd_cross_signal", + "sell-mfi-value": 97, + "sell-fastd-value": 70, + "sell-adx-value": 64, + "sell-rsi-value": 80, + "sell-mfi-enabled": False, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-sar_reversal", + "roi_t1": 792, + "roi_t2": 464, + "roi_t3": 215, + "roi_p1": 0.04594053535385903, + "roi_p2": 0.09623192684243963, + "roi_p3": 0.04428219070850663, + "stoploss": -0.16992287161634415, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 23, + "fastd-value": 24, + "adx-value": 22, + "rsi-value": 24, + "mfi-enabled": False, + "fastd-enabled": False, + "adx-enabled": False, + "rsi-enabled": True, + "trigger": "macd_cross_signal", + }, + "sell": { + "sell-mfi-value": 97, + "sell-fastd-value": 70, + "sell-adx-value": 64, + "sell-rsi-value": 80, + "sell-mfi-enabled": False, + "sell-fastd-enabled": True, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-sar_reversal", + }, + "roi": { + 0: 0.18645465290480528, + 215: 0.14217246219629864, + 679: 0.04594053535385903, + 1471: 0, + }, + "stoploss": {"stoploss": -0.16992287161634415}, + }, # noqa: E501 + "results_metrics": { + "total_trades": 4, + "trade_count_long": 4, + "trade_count_short": 0, + "wins": 0, + "draws": 0, + "losses": 4, + "profit_mean": 0.001080385, + "profit_median": -0.012222, + "profit_total": 0.00021629, + "profit_total_abs": 0.432154, + "max_drawdown_account": 0.13, + "max_drawdown_abs": -4.955321, + "holding_avg": timedelta(minutes=2850.0), + }, # noqa: E501 + "results_explanation": " 4 trades. Avg profit 0.11%. Total profit 0.00021629 BTC ( 0.43Σ%). Avg duration 2850.0 min.", # noqa: E501 + "total_profit": 0.00021629, + "current_epoch": 10, + "is_initial_point": True, + "is_random": False, + "is_best": True, + }, + { + "loss": 4.876465945994304, # noqa: E501 + "params_dict": { + "mfi-value": 20, + "fastd-value": 32, + "adx-value": 49, + "rsi-value": 23, + "mfi-enabled": True, + "fastd-enabled": True, + "adx-enabled": False, + "rsi-enabled": False, + "trigger": "bb_lower", + "sell-mfi-value": 75, + "sell-fastd-value": 56, + "sell-adx-value": 61, + "sell-rsi-value": 62, + "sell-mfi-enabled": False, + "sell-fastd-enabled": False, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-macd_cross_signal", + "roi_t1": 579, + "roi_t2": 614, + "roi_t3": 273, + "roi_p1": 0.05307643172744114, + "roi_p2": 0.1352282078262871, + "roi_p3": 0.1913307406325751, + "stoploss": -0.25728526022513887, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 20, + "fastd-value": 32, + "adx-value": 49, + "rsi-value": 23, + "mfi-enabled": True, + "fastd-enabled": True, + "adx-enabled": False, + "rsi-enabled": False, + "trigger": "bb_lower", + }, + "sell": { + "sell-mfi-value": 75, + "sell-fastd-value": 56, + "sell-adx-value": 61, + "sell-rsi-value": 62, + "sell-mfi-enabled": False, + "sell-fastd-enabled": False, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-macd_cross_signal", + }, + "roi": { + 0: 0.3796353801863034, + 273: 0.18830463955372825, + 887: 0.05307643172744114, + 1466: 0, + }, + "stoploss": {"stoploss": -0.25728526022513887}, + }, # noqa: E501 + # New Hyperopt mode! + "results_metrics": { + "total_trades": 117, + "trade_count_long": 117, + "trade_count_short": 0, + "wins": 67, + "draws": 0, + "losses": 50, + "profit_mean": -0.012698609145299145, + "profit_median": -0.012222, + "profit_total": -0.07436117, + "profit_total_abs": -148.573727, + "max_drawdown_account": 0.52, + "max_drawdown_abs": -224.955321, + "holding_avg": timedelta(minutes=4282.5641025641025), + }, # noqa: E501 + "results_explanation": " 117 trades. Avg profit -1.27%. Total profit -0.07436117 BTC (-148.57Σ%). Avg duration 4282.6 min.", # noqa: E501 + "total_profit": -0.07436117, + "current_epoch": 11, + "is_initial_point": True, + "is_random": False, + "is_best": False, + }, + { + "loss": 100000, + "params_dict": { + "mfi-value": 10, + "fastd-value": 36, + "adx-value": 31, + "rsi-value": 22, + "mfi-enabled": True, + "fastd-enabled": True, + "adx-enabled": True, + "rsi-enabled": False, + "trigger": "sar_reversal", + "sell-mfi-value": 80, + "sell-fastd-value": 71, + "sell-adx-value": 60, + "sell-rsi-value": 85, + "sell-mfi-enabled": False, + "sell-fastd-enabled": False, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-bb_upper", + "roi_t1": 1156, + "roi_t2": 581, + "roi_t3": 408, + "roi_p1": 0.06860454019988212, + "roi_p2": 0.12473718444931989, + "roi_p3": 0.2896360635226823, + "stoploss": -0.30889015124682806, + }, # noqa: E501 + "params_details": { + "buy": { + "mfi-value": 10, + "fastd-value": 36, + "adx-value": 31, + "rsi-value": 22, + "mfi-enabled": True, + "fastd-enabled": True, + "adx-enabled": True, + "rsi-enabled": False, + "trigger": "sar_reversal", + }, + "sell": { + "sell-mfi-value": 80, + "sell-fastd-value": 71, + "sell-adx-value": 60, + "sell-rsi-value": 85, + "sell-mfi-enabled": False, + "sell-fastd-enabled": False, + "sell-adx-enabled": True, + "sell-rsi-enabled": True, + "sell-trigger": "sell-bb_upper", + }, + "roi": { + 0: 0.4829777881718843, + 408: 0.19334172464920202, + 989: 0.06860454019988212, + 2145: 0, + }, + "stoploss": {"stoploss": -0.30889015124682806}, + }, # noqa: E501 + "results_metrics": { + "total_trades": 0, + "trade_count_long": 0, + "trade_count_short": 0, + "wins": 0, + "draws": 0, + "losses": 0, + "profit_mean": None, + "profit_median": None, + "profit_total": 0, + "profit_total_abs": 0.0, + "max_drawdown_account": 0.0, + "max_drawdown_abs": 0.0, + "holding_avg": timedelta(), + }, # noqa: E501 + "results_explanation": " 0 trades. Avg profit nan%. Total profit 0.00000000 BTC ( 0.00Σ%). Avg duration nan min.", # noqa: E501 + "total_profit": 0, + "current_epoch": 12, + "is_initial_point": True, + "is_random": False, + "is_best": False, + }, + ] + + for res in hyperopt_res: + res["results_metrics"]["holding_avg_s"] = res["results_metrics"][ + "holding_avg" + ].total_seconds() + return hyperopt_res diff --git a/tests/optimize/test_hyperopt.py b/tests/optimize/test_hyperopt.py index 08f0408ed..4d2f9ae36 100644 --- a/tests/optimize/test_hyperopt.py +++ b/tests/optimize/test_hyperopt.py @@ -47,7 +47,7 @@ def generate_result_metrics(): "profit_total_abs": 0.001, "profit_total": 0.01, "holding_avg": timedelta(minutes=20), - "max_drawdown": 0.001, + "max_drawdown_account": 0.001, "max_drawdown_abs": 0.001, "loss": 0.001, "is_initial_point": 0.001, diff --git a/tests/strategy/strats/hyperoptable_strategy.py b/tests/strategy/strats/hyperoptable_strategy.py index bc71ed3ae..3a2b210be 100644 --- a/tests/strategy/strats/hyperoptable_strategy.py +++ b/tests/strategy/strats/hyperoptable_strategy.py @@ -52,7 +52,7 @@ class HyperoptableStrategy(StrategyTestV3): bot_loop_started = False bot_started = False - def bot_loop_start(self): + def bot_loop_start(self, **kwargs): self.bot_loop_started = True def bot_start(self, **kwargs) -> None: diff --git a/tests/strategy/strats/hyperoptable_strategy_v2.py b/tests/strategy/strats/hyperoptable_strategy_v2.py index 650c587f5..40e139e1f 100644 --- a/tests/strategy/strats/hyperoptable_strategy_v2.py +++ b/tests/strategy/strats/hyperoptable_strategy_v2.py @@ -48,7 +48,7 @@ class HyperoptableStrategyV2(StrategyTestV2): bot_loop_started = False - def bot_loop_start(self): + def bot_loop_start(self, **kwargs): self.bot_loop_started = True def bot_start(self, **kwargs) -> None: