IMplement check for unlimited settings
verifying that either max_open_trades or stake_amount is set for operations without edge
This commit is contained in:
parent
11059e532b
commit
a8d56b2850
@ -67,12 +67,24 @@ def validate_config_consistency(conf: Dict[str, Any]) -> None:
|
|||||||
_validate_trailing_stoploss(conf)
|
_validate_trailing_stoploss(conf)
|
||||||
_validate_edge(conf)
|
_validate_edge(conf)
|
||||||
_validate_whitelist(conf)
|
_validate_whitelist(conf)
|
||||||
|
_validate_unlimited_amount(conf)
|
||||||
|
|
||||||
# validate configuration before returning
|
# validate configuration before returning
|
||||||
logger.info('Validating configuration ...')
|
logger.info('Validating configuration ...')
|
||||||
validate_config_schema(conf)
|
validate_config_schema(conf)
|
||||||
|
|
||||||
|
|
||||||
|
def _validate_unlimited_amount(conf: Dict[str, Any]) -> None:
|
||||||
|
"""
|
||||||
|
If edge is disabled, either max_open_trades or stake_amount need to be set.
|
||||||
|
:raise: OperationalException if config validation failed
|
||||||
|
"""
|
||||||
|
if (not conf.get('edge', {}).get('enabled')
|
||||||
|
and conf.get('max_open_trades') == float('inf')
|
||||||
|
and conf.get('stake_amount') == constants.UNLIMITED_STAKE_AMOUNT):
|
||||||
|
raise OperationalException("`max_open_trades` and `stake_amount` cannot both be unlimited.")
|
||||||
|
|
||||||
|
|
||||||
def _validate_trailing_stoploss(conf: Dict[str, Any]) -> None:
|
def _validate_trailing_stoploss(conf: Dict[str, Any]) -> None:
|
||||||
|
|
||||||
if conf.get('stoploss') == 0.0:
|
if conf.get('stoploss') == 0.0:
|
||||||
|
@ -722,6 +722,14 @@ def test_validate_default_conf(default_conf) -> None:
|
|||||||
validate_config_schema(default_conf)
|
validate_config_schema(default_conf)
|
||||||
|
|
||||||
|
|
||||||
|
def test_validate_max_open_trades(default_conf):
|
||||||
|
default_conf['max_open_trades'] = float('inf')
|
||||||
|
default_conf['stake_amount'] = 'unlimited'
|
||||||
|
with pytest.raises(OperationalException, match='`max_open_trades` and `stake_amount` '
|
||||||
|
'cannot both be unlimited.'):
|
||||||
|
validate_config_consistency(default_conf)
|
||||||
|
|
||||||
|
|
||||||
def test_validate_tsl(default_conf):
|
def test_validate_tsl(default_conf):
|
||||||
default_conf['stoploss'] = 0.0
|
default_conf['stoploss'] = 0.0
|
||||||
with pytest.raises(OperationalException, match='The config stoploss needs to be different '
|
with pytest.raises(OperationalException, match='The config stoploss needs to be different '
|
||||||
|
Loading…
Reference in New Issue
Block a user