refactor: automatically load detailed bt data

This commit is contained in:
Matthias
2025-05-03 20:01:13 +02:00
parent f8a151c2a5
commit 8b8bf6f97d
6 changed files with 4 additions and 8 deletions

View File

@@ -129,7 +129,6 @@ class LookaheadAnalysis(BaseAnalysis):
backtesting._set_strategy(backtesting.strategylist[0]) backtesting._set_strategy(backtesting.strategylist[0])
varholder.data, varholder.timerange = backtesting.load_bt_data() varholder.data, varholder.timerange = backtesting.load_bt_data()
backtesting.load_bt_data_detail()
varholder.timeframe = backtesting.timeframe varholder.timeframe = backtesting.timeframe
varholder.indicators = backtesting.strategy.advise_all_indicators(varholder.data) varholder.indicators = backtesting.strategy.advise_all_indicators(varholder.data)

View File

@@ -149,7 +149,6 @@ class RecursiveAnalysis(BaseAnalysis):
backtesting._set_strategy(backtesting.strategylist[0]) backtesting._set_strategy(backtesting.strategylist[0])
varholder.data, varholder.timerange = backtesting.load_bt_data() varholder.data, varholder.timerange = backtesting.load_bt_data()
backtesting.load_bt_data_detail()
varholder.timeframe = backtesting.timeframe varholder.timeframe = backtesting.timeframe
varholder.indicators = backtesting.strategy.advise_all_indicators(varholder.data) varholder.indicators = backtesting.strategy.advise_all_indicators(varholder.data)

View File

@@ -315,9 +315,10 @@ class Backtesting:
) )
self.progress.set_new_value(1) self.progress.set_new_value(1)
self._load_bt_data_detail()
return data, self.timerange return data, self.timerange
def load_bt_data_detail(self) -> None: def _load_bt_data_detail(self) -> None:
""" """
Loads backtest detail data (smaller timeframe) if necessary. Loads backtest detail data (smaller timeframe) if necessary.
""" """
@@ -1767,7 +1768,6 @@ class Backtesting:
data: dict[str, DataFrame] = {} data: dict[str, DataFrame] = {}
data, timerange = self.load_bt_data() data, timerange = self.load_bt_data()
self.load_bt_data_detail()
logger.info("Dataload complete. Calculating indicators") logger.info("Dataload complete. Calculating indicators")
self.load_prior_backtest() self.load_prior_backtest()

View File

@@ -423,7 +423,6 @@ class HyperOptimizer:
def prepare_hyperopt_data(self) -> None: def prepare_hyperopt_data(self) -> None:
HyperoptStateContainer.set_state(HyperoptState.DATALOAD) HyperoptStateContainer.set_state(HyperoptState.DATALOAD)
data, self.timerange = self.backtesting.load_bt_data() data, self.timerange = self.backtesting.load_bt_data()
self.backtesting.load_bt_data_detail()
logger.info("Dataload complete. Calculating indicators") logger.info("Dataload complete. Calculating indicators")
if not self.analyze_per_epoch: if not self.analyze_per_epoch:

View File

@@ -62,7 +62,6 @@ def __run_backtest_bg(btconfig: Config):
from freqtrade.optimize.backtesting import Backtesting from freqtrade.optimize.backtesting import Backtesting
ApiBG.bt["bt"] = Backtesting(btconfig) ApiBG.bt["bt"] = Backtesting(btconfig)
ApiBG.bt["bt"].load_bt_data_detail()
else: else:
ApiBG.bt["bt"].config = btconfig ApiBG.bt["bt"].config = btconfig
ApiBG.bt["bt"].init_backtest() ApiBG.bt["bt"].init_backtest()

View File

@@ -992,7 +992,7 @@ def test_backtest_one_detail_futures(
timerange=timerange, timerange=timerange,
candle_type=CandleType.FUTURES, candle_type=CandleType.FUTURES,
) )
backtesting.load_bt_data_detail() backtesting._load_bt_data_detail()
processed = backtesting.strategy.advise_all_indicators(data) processed = backtesting.strategy.advise_all_indicators(data)
min_date, max_date = get_timerange(processed) min_date, max_date = get_timerange(processed)
@@ -1120,7 +1120,7 @@ def test_backtest_one_detail_futures_funding_fees(
timerange=timerange, timerange=timerange,
candle_type=CandleType.FUTURES, candle_type=CandleType.FUTURES,
) )
backtesting.load_bt_data_detail() backtesting._load_bt_data_detail()
processed = backtesting.strategy.advise_all_indicators(data) processed = backtesting.strategy.advise_all_indicators(data)
min_date, max_date = get_timerange(processed) min_date, max_date = get_timerange(processed)