diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py index cd822023f..df2f6834a 100644 --- a/freqtrade/optimize/backtesting.py +++ b/freqtrade/optimize/backtesting.py @@ -88,7 +88,6 @@ class Backtesting(object): """ self.strategy = strategy self.ticker_interval = self.config.get('ticker_interval') - self.tickerdata_to_dataframe = strategy.tickerdata_to_dataframe self.advise_buy = strategy.advise_buy self.advise_sell = strategy.advise_sell @@ -371,7 +370,7 @@ class Backtesting(object): self._set_strategy(strat) # need to reprocess data every time to populate signals - preprocessed = self.tickerdata_to_dataframe(data) + preprocessed = self.strategy.tickerdata_to_dataframe(data) # Print timeframe min_date, max_date = self.get_timeframe(preprocessed) diff --git a/freqtrade/optimize/hyperopt.py b/freqtrade/optimize/hyperopt.py index 4a239ab28..b2d05d603 100644 --- a/freqtrade/optimize/hyperopt.py +++ b/freqtrade/optimize/hyperopt.py @@ -352,7 +352,7 @@ class Hyperopt(Backtesting): if self.has_space('buy'): self.strategy.advise_indicators = Hyperopt.populate_indicators # type: ignore - dump(self.tickerdata_to_dataframe(data), TICKERDATA_PICKLE) + dump(self.strategy.tickerdata_to_dataframe(data), TICKERDATA_PICKLE) self.exchange = None # type: ignore self.load_previous_results() diff --git a/freqtrade/tests/optimize/test_backtesting.py b/freqtrade/tests/optimize/test_backtesting.py index a17867b3a..36b2fcdd3 100644 --- a/freqtrade/tests/optimize/test_backtesting.py +++ b/freqtrade/tests/optimize/test_backtesting.py @@ -89,7 +89,7 @@ def simple_backtest(config, contour, num_results, mocker) -> None: backtesting = Backtesting(config) data = load_data_test(contour) - processed = backtesting.tickerdata_to_dataframe(data) + processed = backtesting.strategy.tickerdata_to_dataframe(data) assert isinstance(processed, dict) results = backtesting.backtest( { @@ -125,7 +125,7 @@ def _make_backtest_conf(mocker, conf=None, pair='UNITTEST/BTC', record=None): backtesting = Backtesting(conf) return { 'stake_amount': conf['stake_amount'], - 'processed': backtesting.tickerdata_to_dataframe(data), + 'processed': backtesting.strategy.tickerdata_to_dataframe(data), 'max_open_trades': 10, 'position_stacking': False, 'record': record @@ -313,7 +313,7 @@ def test_backtesting_init(mocker, default_conf) -> None: backtesting = Backtesting(default_conf) assert backtesting.config == default_conf assert backtesting.ticker_interval == '5m' - assert callable(backtesting.tickerdata_to_dataframe) + assert callable(backtesting.strategy.tickerdata_to_dataframe) assert callable(backtesting.advise_buy) assert callable(backtesting.advise_sell) get_fee.assert_called() @@ -327,7 +327,7 @@ def test_tickerdata_to_dataframe(default_conf, mocker) -> None: tickerlist = {'UNITTEST/BTC': tick} backtesting = Backtesting(default_conf) - data = backtesting.tickerdata_to_dataframe(tickerlist) + data = backtesting.strategy.tickerdata_to_dataframe(tickerlist) assert len(data['UNITTEST/BTC']) == 99 # Load strategy to compare the result between Backtesting function and strategy are the same @@ -340,7 +340,7 @@ def test_get_timeframe(default_conf, mocker) -> None: patch_exchange(mocker) backtesting = Backtesting(default_conf) - data = backtesting.tickerdata_to_dataframe( + data = backtesting.strategy.tickerdata_to_dataframe( optimize.load_data( None, ticker_interval='1m', @@ -520,7 +520,7 @@ def test_backtest(default_conf, fee, mocker) -> None: pair = 'UNITTEST/BTC' data = optimize.load_data(None, ticker_interval='5m', pairs=['UNITTEST/BTC']) data = trim_dictlist(data, -200) - data_processed = backtesting.tickerdata_to_dataframe(data) + data_processed = backtesting.strategy.tickerdata_to_dataframe(data) results = backtesting.backtest( { 'stake_amount': default_conf['stake_amount'], @@ -571,7 +571,7 @@ def test_backtest_1min_ticker_interval(default_conf, fee, mocker) -> None: results = backtesting.backtest( { 'stake_amount': default_conf['stake_amount'], - 'processed': backtesting.tickerdata_to_dataframe(data), + 'processed': backtesting.strategy.tickerdata_to_dataframe(data), 'max_open_trades': 1, 'position_stacking': False } @@ -585,7 +585,7 @@ def test_processed(default_conf, mocker) -> None: backtesting = Backtesting(default_conf) dict_of_tickerrows = load_data_test('raise') - dataframes = backtesting.tickerdata_to_dataframe(dict_of_tickerrows) + dataframes = backtesting.strategy.tickerdata_to_dataframe(dict_of_tickerrows) dataframe = dataframes['UNITTEST/BTC'] cols = dataframe.columns # assert the dataframe got some of the indicator columns diff --git a/freqtrade/tests/optimize/test_hyperopt.py b/freqtrade/tests/optimize/test_hyperopt.py index 2035e23df..c93f2d316 100644 --- a/freqtrade/tests/optimize/test_hyperopt.py +++ b/freqtrade/tests/optimize/test_hyperopt.py @@ -194,7 +194,7 @@ def test_start_calls_optimizer(mocker, default_conf, caplog) -> None: default_conf.update({'spaces': 'all'}) hyperopt = Hyperopt(default_conf) - hyperopt.tickerdata_to_dataframe = MagicMock() + hyperopt.strategy.tickerdata_to_dataframe = MagicMock() hyperopt.start() parallel.assert_called_once() @@ -242,7 +242,7 @@ def test_has_space(hyperopt): def test_populate_indicators(hyperopt) -> None: tick = load_tickerdata_file(None, 'UNITTEST/BTC', '1m') tickerlist = {'UNITTEST/BTC': tick} - dataframes = hyperopt.tickerdata_to_dataframe(tickerlist) + dataframes = hyperopt.strategy.tickerdata_to_dataframe(tickerlist) dataframe = hyperopt.populate_indicators(dataframes['UNITTEST/BTC'], {'pair': 'UNITTEST/BTC'}) # Check if some indicators are generated. We will not test all of them @@ -254,7 +254,7 @@ def test_populate_indicators(hyperopt) -> None: def test_buy_strategy_generator(hyperopt) -> None: tick = load_tickerdata_file(None, 'UNITTEST/BTC', '1m') tickerlist = {'UNITTEST/BTC': tick} - dataframes = hyperopt.tickerdata_to_dataframe(tickerlist) + dataframes = hyperopt.strategy.tickerdata_to_dataframe(tickerlist) dataframe = hyperopt.populate_indicators(dataframes['UNITTEST/BTC'], {'pair': 'UNITTEST/BTC'}) populate_buy_trend = hyperopt.buy_strategy_generator(