Move base tf logic to config validation
This commit is contained in:
parent
bc48099e48
commit
26a61afa15
@ -355,6 +355,13 @@ def _validate_freqai_include_timeframes(conf: Dict[str, Any]) -> None:
|
|||||||
f"Main timeframe of {main_tf} must be smaller or equal to FreqAI "
|
f"Main timeframe of {main_tf} must be smaller or equal to FreqAI "
|
||||||
f"`include_timeframes`.Offending include-timeframes: {', '.join(offending_lines)}")
|
f"`include_timeframes`.Offending include-timeframes: {', '.join(offending_lines)}")
|
||||||
|
|
||||||
|
# Ensure that the base timeframe is included in the include_timeframes list
|
||||||
|
if main_tf not in freqai_include_timeframes:
|
||||||
|
feature_parameters = conf.get('freqai', {}).get('feature_parameters', {})
|
||||||
|
include_timeframes = [main_tf] + freqai_include_timeframes
|
||||||
|
conf.get('freqai', {}).get('feature_parameters', {}) \
|
||||||
|
.update({**feature_parameters, 'include_timeframes': include_timeframes})
|
||||||
|
|
||||||
|
|
||||||
def _validate_freqai_backtest(conf: Dict[str, Any]) -> None:
|
def _validate_freqai_backtest(conf: Dict[str, Any]) -> None:
|
||||||
if conf.get('runmode', RunMode.OTHER) == RunMode.BACKTEST:
|
if conf.get('runmode', RunMode.OTHER) == RunMode.BACKTEST:
|
||||||
|
@ -1046,8 +1046,13 @@ def test__validate_freqai_include_timeframes(default_conf, caplog) -> None:
|
|||||||
# Validation pass
|
# Validation pass
|
||||||
conf.update({'timeframe': '1m'})
|
conf.update({'timeframe': '1m'})
|
||||||
validate_config_consistency(conf)
|
validate_config_consistency(conf)
|
||||||
conf.update({'analyze_per_epoch': True})
|
|
||||||
|
|
||||||
|
# Ensure base timeframe is in include_timeframes
|
||||||
|
conf['freqai']['feature_parameters']['include_timeframes'] = ["5m", "15m"]
|
||||||
|
validate_config_consistency(conf)
|
||||||
|
assert conf['freqai']['feature_parameters']['include_timeframes'] == ["1m", "5m", "15m"]
|
||||||
|
|
||||||
|
conf.update({'analyze_per_epoch': True})
|
||||||
with pytest.raises(OperationalException,
|
with pytest.raises(OperationalException,
|
||||||
match=r"Using analyze-per-epoch .* not supported with a FreqAI strategy."):
|
match=r"Using analyze-per-epoch .* not supported with a FreqAI strategy."):
|
||||||
validate_config_consistency(conf)
|
validate_config_consistency(conf)
|
||||||
|
Loading…
Reference in New Issue
Block a user