diff --git a/freqtrade/ft_types/backtest_result_type.py b/freqtrade/ft_types/backtest_result_type.py index 27cdb6126..4cd8f2a58 100644 --- a/freqtrade/ft_types/backtest_result_type.py +++ b/freqtrade/ft_types/backtest_result_type.py @@ -1,3 +1,4 @@ +from copy import deepcopy from typing import Any from typing_extensions import TypedDict @@ -15,11 +16,13 @@ class BacktestResultType(TypedDict): def get_BacktestResultType_default() -> BacktestResultType: - return { - "metadata": {}, - "strategy": {}, - "strategy_comparison": [], - } + return deepcopy( + { + "metadata": {}, + "strategy": {}, + "strategy_comparison": [], + } + ) class BacktestHistoryEntryType(BacktestMetadataType): diff --git a/freqtrade/optimize/optimize_reports/optimize_reports.py b/freqtrade/optimize/optimize_reports/optimize_reports.py index c0188673a..e5b526779 100644 --- a/freqtrade/optimize/optimize_reports/optimize_reports.py +++ b/freqtrade/optimize/optimize_reports/optimize_reports.py @@ -18,7 +18,7 @@ from freqtrade.data.metrics import ( calculate_sortino, calculate_sqn, ) -from freqtrade.ft_types import BacktestResultType +from freqtrade.ft_types import BacktestResultType, get_BacktestResultType_default from freqtrade.util import decimals_per_coin, fmt_coin, get_dry_run_wallet @@ -587,11 +587,7 @@ def generate_backtest_stats( :param max_date: Backtest end date :return: Dictionary containing results per strategy and a strategy summary. """ - result: BacktestResultType = { - "metadata": {}, - "strategy": {}, - "strategy_comparison": [], - } + result: BacktestResultType = get_BacktestResultType_default() market_change = calculate_market_change(btdata, "close") metadata = {} pairlist = list(btdata.keys())