Only call stop methods when they actually support this method
This commit is contained in:
@@ -12,6 +12,11 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
class CooldownPeriod(IProtection):
|
||||
|
||||
# Can globally stop the bot
|
||||
has_global_stop: bool = False
|
||||
# Can stop trading for one pair
|
||||
has_local_stop: bool = True
|
||||
|
||||
def __init__(self, config: Dict[str, Any], protection_config: Dict[str, Any]) -> None:
|
||||
super().__init__(config, protection_config)
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
|
||||
import logging
|
||||
from abc import ABC, abstractmethod
|
||||
from abc import ABC, abstractmethod, abstractproperty
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
|
||||
@@ -15,6 +15,11 @@ ProtectionReturn = Tuple[bool, Optional[datetime], Optional[str]]
|
||||
|
||||
class IProtection(LoggingMixin, ABC):
|
||||
|
||||
# Can globally stop the bot
|
||||
has_global_stop: bool = False
|
||||
# Can stop trading for one pair
|
||||
has_local_stop: bool = False
|
||||
|
||||
def __init__(self, config: Dict[str, Any], protection_config: Dict[str, Any]) -> None:
|
||||
self._config = config
|
||||
self._protection_config = protection_config
|
||||
|
@@ -12,6 +12,11 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
class LowProfitPairs(IProtection):
|
||||
|
||||
# Can globally stop the bot
|
||||
has_global_stop: bool = False
|
||||
# Can stop trading for one pair
|
||||
has_local_stop: bool = True
|
||||
|
||||
def __init__(self, config: Dict[str, Any], protection_config: Dict[str, Any]) -> None:
|
||||
super().__init__(config, protection_config)
|
||||
|
||||
|
@@ -15,6 +15,11 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
class StoplossGuard(IProtection):
|
||||
|
||||
# Can globally stop the bot
|
||||
has_global_stop: bool = True
|
||||
# Can stop trading for one pair
|
||||
has_local_stop: bool = True
|
||||
|
||||
def __init__(self, config: Dict[str, Any], protection_config: Dict[str, Any]) -> None:
|
||||
super().__init__(config, protection_config)
|
||||
|
||||
@@ -67,7 +72,7 @@ class StoplossGuard(IProtection):
|
||||
:return: Tuple of [bool, until, reason].
|
||||
If true, all pairs will be locked with <reason> until <until>
|
||||
"""
|
||||
return self._stoploss_guard(date_now, pair=None)
|
||||
return self._stoploss_guard(date_now, None)
|
||||
|
||||
def stop_per_pair(self, pair: str, date_now: datetime) -> ProtectionReturn:
|
||||
"""
|
||||
@@ -76,4 +81,4 @@ class StoplossGuard(IProtection):
|
||||
:return: Tuple of [bool, until, reason].
|
||||
If true, this pair will be locked with <reason> until <until>
|
||||
"""
|
||||
return False, None, None
|
||||
return self._stoploss_guard(date_now, pair)
|
||||
|
Reference in New Issue
Block a user