@@ -52,29 +52,25 @@ def __run_backtest_bg(btconfig: Config):
5252 lastconfig = ApiBG .bt ["last_config" ]
5353 strat = StrategyResolver .load_strategy (btconfig )
5454 validate_config_consistency (btconfig )
55-
56- if (
57- not ApiBG .bt ["bt" ]
58- or lastconfig .get ("timeframe" ) != strat .timeframe
55+ time_settings_changed = (
56+ lastconfig .get ("timeframe" ) != strat .timeframe
5957 or lastconfig .get ("timeframe_detail" ) != btconfig .get ("timeframe_detail" )
6058 or lastconfig .get ("timerange" ) != btconfig ["timerange" ]
61- ):
59+ )
60+
61+ if not ApiBG .bt ["bt" ] or time_settings_changed :
6262 from freqtrade .optimize .backtesting import Backtesting
6363
6464 ApiBG .bt ["bt" ] = Backtesting (btconfig )
6565 else :
6666 ApiBG .bt ["bt" ].config = deep_merge_dicts (btconfig , ApiBG .bt ["bt" ].config )
6767 ApiBG .bt ["bt" ].init_backtest ()
68- # Only reload data if timeframe changed.
69- if (
70- not ApiBG .bt ["data" ]
71- or not ApiBG .bt ["timerange" ]
72- or lastconfig .get ("timeframe" ) != strat .timeframe
73- or lastconfig .get ("timerange" ) != btconfig ["timerange" ]
74- ):
68+ # Only reload data if timerange is open or settings changed
69+ if not ApiBG .bt ["data" ] or not ApiBG .bt ["timerange" ] or time_settings_changed :
7570 ApiBG .bt ["data" ], ApiBG .bt ["timerange" ] = ApiBG .bt ["bt" ].load_bt_data ()
7671
7772 lastconfig ["timerange" ] = btconfig ["timerange" ]
73+ lastconfig ["timeframe_detail" ] = btconfig .get ("timeframe_detail" )
7874 lastconfig ["timeframe" ] = strat .timeframe
7975 lastconfig ["enable_protections" ] = btconfig .get ("enable_protections" )
8076 lastconfig ["dry_run_wallet" ] = btconfig .get ("dry_run_wallet" )
0 commit comments