Allow use of --strategy-list with freqai, with warning
This commit is contained in:
parent
71e6c54ea4
commit
1b87fd5d7a
@ -91,8 +91,8 @@ class Backtesting:
|
|||||||
|
|
||||||
if self.config.get('strategy_list'):
|
if self.config.get('strategy_list'):
|
||||||
if self.config.get('freqai', {}).get('enabled', False):
|
if self.config.get('freqai', {}).get('enabled', False):
|
||||||
raise OperationalException(
|
logger.warning("Using --strategy-list with FreqAI REQUIRES all strategies "
|
||||||
"You can't use strategy_list and freqai at the same time.")
|
"to have identical populate_any_indicators.")
|
||||||
for strat in list(self.config['strategy_list']):
|
for strat in list(self.config['strategy_list']):
|
||||||
stratconf = deepcopy(self.config)
|
stratconf = deepcopy(self.config)
|
||||||
stratconf['strategy'] = strat
|
stratconf['strategy'] = strat
|
||||||
|
@ -3,21 +3,21 @@ from datetime import datetime, timezone
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from unittest.mock import PropertyMock
|
from unittest.mock import PropertyMock
|
||||||
|
|
||||||
import pytest
|
from freqtrade.commands.optimize_commands import setup_optimize_configuration
|
||||||
|
from freqtrade.enums import RunMode
|
||||||
from freqtrade.commands.optimize_commands import start_backtesting
|
|
||||||
from freqtrade.exceptions import OperationalException
|
|
||||||
from freqtrade.optimize.backtesting import Backtesting
|
from freqtrade.optimize.backtesting import Backtesting
|
||||||
from tests.conftest import (CURRENT_TEST_STRATEGY, get_args, log_has_re, patch_exchange,
|
from tests.conftest import (CURRENT_TEST_STRATEGY, get_args, log_has_re, patch_exchange,
|
||||||
patched_configuration_load_config_file)
|
patched_configuration_load_config_file)
|
||||||
|
|
||||||
|
|
||||||
def test_freqai_backtest_start_backtest_list(freqai_conf, mocker, testdatadir):
|
def test_freqai_backtest_start_backtest_list(freqai_conf, mocker, testdatadir, caplog):
|
||||||
patch_exchange(mocker)
|
patch_exchange(mocker)
|
||||||
|
|
||||||
|
now = datetime.now(timezone.utc)
|
||||||
mocker.patch('freqtrade.plugins.pairlistmanager.PairListManager.whitelist',
|
mocker.patch('freqtrade.plugins.pairlistmanager.PairListManager.whitelist',
|
||||||
PropertyMock(return_value=['HULUMULU/USDT', 'XRP/USDT']))
|
PropertyMock(return_value=['HULUMULU/USDT', 'XRP/USDT']))
|
||||||
# mocker.patch('freqtrade.optimize.backtesting.Backtesting.backtest', backtestmock)
|
mocker.patch('freqtrade.optimize.backtesting.history.load_data')
|
||||||
|
mocker.patch('freqtrade.optimize.backtesting.history.get_timerange', return_value=(now, now))
|
||||||
|
|
||||||
patched_configuration_load_config_file(mocker, freqai_conf)
|
patched_configuration_load_config_file(mocker, freqai_conf)
|
||||||
|
|
||||||
@ -30,9 +30,11 @@ def test_freqai_backtest_start_backtest_list(freqai_conf, mocker, testdatadir):
|
|||||||
'--strategy-list', CURRENT_TEST_STRATEGY
|
'--strategy-list', CURRENT_TEST_STRATEGY
|
||||||
]
|
]
|
||||||
args = get_args(args)
|
args = get_args(args)
|
||||||
with pytest.raises(OperationalException,
|
bt_config = setup_optimize_configuration(args, RunMode.BACKTEST)
|
||||||
match=r"You can't use strategy_list and freqai at the same time\."):
|
Backtesting(bt_config)
|
||||||
start_backtesting(args)
|
assert log_has_re('Using --strategy-list with FreqAI REQUIRES all strategies to have identical '
|
||||||
|
'populate_any_indicators.', caplog)
|
||||||
|
Backtesting.cleanup()
|
||||||
|
|
||||||
|
|
||||||
def test_freqai_backtest_load_data(freqai_conf, mocker, caplog):
|
def test_freqai_backtest_load_data(freqai_conf, mocker, caplog):
|
||||||
|
Loading…
Reference in New Issue
Block a user