Add duration_explanation functions
This commit is contained in:
@@ -5,6 +5,7 @@ from datetime import datetime, timedelta, timezone
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
|
||||
from freqtrade.exchange import timeframe_to_minutes
|
||||
from freqtrade.misc import plural
|
||||
from freqtrade.mixins import LoggingMixin
|
||||
from freqtrade.persistence import Trade
|
||||
|
||||
@@ -26,12 +27,16 @@ class IProtection(LoggingMixin, ABC):
|
||||
self._protection_config = protection_config
|
||||
tf_in_min = timeframe_to_minutes(config['timeframe'])
|
||||
if 'stop_duration_candles' in protection_config:
|
||||
self._stop_duration = (tf_in_min * protection_config.get('stop_duration_candles'))
|
||||
self._stop_duration_candles = protection_config.get('stop_duration_candles', 1)
|
||||
self._stop_duration = (tf_in_min * self._stop_duration_candles)
|
||||
else:
|
||||
self._stop_duration_candles = None
|
||||
self._stop_duration = protection_config.get('stop_duration', 60)
|
||||
if 'lookback_period_candles' in protection_config:
|
||||
self._lookback_period = tf_in_min * protection_config.get('lookback_period_candles', 60)
|
||||
self._lookback_period_candles = protection_config.get('lookback_period_candles', 1)
|
||||
self._lookback_period = tf_in_min * self._lookback_period_candles
|
||||
else:
|
||||
self._lookback_period_candles = None
|
||||
self._lookback_period = protection_config.get('lookback_period', 60)
|
||||
|
||||
LoggingMixin.__init__(self, logger)
|
||||
@@ -40,6 +45,30 @@ class IProtection(LoggingMixin, ABC):
|
||||
def name(self) -> str:
|
||||
return self.__class__.__name__
|
||||
|
||||
@property
|
||||
def stop_duration_str(self) -> str:
|
||||
"""
|
||||
Output configured stop duration in either candles or minutes
|
||||
"""
|
||||
if self._stop_duration_candles:
|
||||
return (f"{self._stop_duration_candles} "
|
||||
f"{plural(self._stop_duration_candles, 'candle', 'candles')}")
|
||||
else:
|
||||
return (f"{self._stop_duration} "
|
||||
f"{plural(self._stop_duration, 'minute', 'minutes')}")
|
||||
|
||||
@property
|
||||
def lookback_period_str(self) -> str:
|
||||
"""
|
||||
Output configured lookback period in either candles or minutes
|
||||
"""
|
||||
if self._lookback_period_candles:
|
||||
return (f"{self._lookback_period_candles} "
|
||||
f"{plural(self._lookback_period_candles, 'candle', 'candles')}")
|
||||
else:
|
||||
return (f"{self._lookback_period} "
|
||||
f"{plural(self._lookback_period, 'minute', 'minutes')}")
|
||||
|
||||
@abstractmethod
|
||||
def short_desc(self) -> str:
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user