diff --git a/freqtrade/strategy/interface.py b/freqtrade/strategy/interface.py index cbe6afc26..651ca14bf 100644 --- a/freqtrade/strategy/interface.py +++ b/freqtrade/strategy/interface.py @@ -1006,7 +1006,7 @@ class IStrategy(ABC, HyperStrategyMixin): exit_ = latest.get(SignalType.EXIT_LONG.value, 0) == 1 exit_tag = latest.get(SignalTagType.EXIT_TAG.value, None) # Tags can be None, which does not resolve to False. - exit_tag = exit_tag if isinstance(exit_tag, str) else None + exit_tag = exit_tag if isinstance(exit_tag, str) and exit_tag != 'nan' else None logger.debug(f"exit-trigger: {latest['date']} (pair={pair}) " f"enter={enter} exit={exit_}") @@ -1038,17 +1038,17 @@ class IStrategy(ABC, HyperStrategyMixin): exit_short = latest.get(SignalType.EXIT_SHORT.value, 0) == 1 enter_signal: Optional[SignalDirection] = None - enter_tag_value: Optional[str] = None + enter_tag: Optional[str] = None if enter_long == 1 and not any([exit_long, enter_short]): enter_signal = SignalDirection.LONG - enter_tag_value = latest.get(SignalTagType.ENTER_TAG.value, None) + enter_tag = latest.get(SignalTagType.ENTER_TAG.value, None) if (self.config.get('trading_mode', TradingMode.SPOT) != TradingMode.SPOT and self.can_short and enter_short == 1 and not any([exit_short, enter_long])): enter_signal = SignalDirection.SHORT - enter_tag_value = latest.get(SignalTagType.ENTER_TAG.value, None) + enter_tag = latest.get(SignalTagType.ENTER_TAG.value, None) - enter_tag_value = enter_tag_value if isinstance(enter_tag_value, str) else None + enter_tag = enter_tag if isinstance(enter_tag, str) and enter_tag != 'nan' else None timeframe_seconds = timeframe_to_seconds(timeframe) @@ -1058,11 +1058,11 @@ class IStrategy(ABC, HyperStrategyMixin): timeframe_seconds=timeframe_seconds, enter=bool(enter_signal) ): - return None, enter_tag_value + return None, enter_tag logger.debug(f"entry trigger: {latest['date']} (pair={pair}) " - f"enter={enter_long} enter_tag_value={enter_tag_value}") - return enter_signal, enter_tag_value + f"enter={enter_long} enter_tag_value={enter_tag}") + return enter_signal, enter_tag def ignore_expired_candle( self,